3
0
Fork 0
mirror of https://github.com/ZeppelinBot/Zeppelin.git synced 2025-05-25 18:25:03 +00:00

added join and leave voice channel triggers

This commit is contained in:
Almeida 2021-05-07 20:06:31 +01:00 committed by almeidx
parent 8445c37f64
commit 03ead92c19
No known key found for this signature in database
GPG key ID: C5FF0C40763546C5
7 changed files with 207 additions and 1 deletions

View file

@ -0,0 +1,37 @@
import * as t from "io-ts";
import { automodTrigger } from "../helpers";
interface JoinVoiceChannelResult {
matchedChannelId: string;
}
export const JoinVoiceChannelTrigger = automodTrigger<JoinVoiceChannelResult>()({
configType: t.union([t.string, t.array(t.string)]),
defaultConfig: "",
async match({ triggerConfig, context }) {
if (!context.member || !context.voiceChannel) {
return;
}
const triggerChannels = Array.isArray(triggerConfig) ? triggerConfig : [triggerConfig];
if (!triggerChannels.includes(context.voiceChannel.id)) {
return;
}
return {
extra: {
matchedChannelId: context.voiceChannel.id,
},
};
},
renderMatchInformation({ matchResult, pluginData, contexts }) {
const channel = pluginData.guild.channels.get(matchResult.extra.matchedChannelId);
const channelName = channel?.name || "Unknown";
const member = contexts[0].member!;
const memberName = `**${member.user.username}#${member.user.discriminator}** (\`${member.id}\`)`;
return `${memberName} has joined the ${channelName} (\`${matchResult.extra.matchedChannelId}\`) voice channel`;
},
});