diff options
author | IRONM00N <64110067+IRONM00N@users.noreply.github.com> | 2021-12-30 16:55:37 -0500 |
---|---|---|
committer | IRONM00N <64110067+IRONM00N@users.noreply.github.com> | 2021-12-30 16:55:37 -0500 |
commit | 83db032fb91996c926a5d007a9e5fa4abed65871 (patch) | |
tree | 28081718636b6c41aea89018504f3f7e4f837903 /src/listeners/member-custom | |
parent | f0a9f894575871d498447c5de2b5f0f826b117b7 (diff) | |
download | tanzanite-83db032fb91996c926a5d007a9e5fa4abed65871.tar.gz tanzanite-83db032fb91996c926a5d007a9e5fa4abed65871.tar.bz2 tanzanite-83db032fb91996c926a5d007a9e5fa4abed65871.zip |
add timeout command and fix some other moderation commands
Diffstat (limited to 'src/listeners/member-custom')
-rw-r--r-- | src/listeners/member-custom/bushRemoveTimeout.ts | 31 | ||||
-rw-r--r-- | src/listeners/member-custom/bushTimeout.ts | 34 |
2 files changed, 65 insertions, 0 deletions
diff --git a/src/listeners/member-custom/bushRemoveTimeout.ts b/src/listeners/member-custom/bushRemoveTimeout.ts new file mode 100644 index 0000000..30a3ab4 --- /dev/null +++ b/src/listeners/member-custom/bushRemoveTimeout.ts @@ -0,0 +1,31 @@ +import { BushListener, type BushClientEvents } from '#lib'; +import { GuildMember, MessageEmbed } from 'discord.js'; + +export default class BushRemoveTimeoutListener extends BushListener { + public constructor() { + super('bushRemoveTimeout', { + emitter: 'client', + event: 'bushRemoveTimeout', + category: 'member-custom' + }); + } + + public override async exec(...[victim, moderator, guild, reason, caseID, dmSuccess]: BushClientEvents['bushRemoveTimeout']) { + const logChannel = await guild.getLogChannel('moderation'); + if (!logChannel) return; + const user = victim instanceof GuildMember ? victim.user : victim; + + const logEmbed = new MessageEmbed() + .setColor(util.colors.discord.GREEN) + .setTimestamp() + .setFooter({ text: `CaseID: ${caseID}` }) + .setAuthor({ name: user.tag, iconURL: user.avatarURL({ dynamic: true, format: 'png', size: 4096 }) ?? undefined }) + .addField('**Action**', `${'Remove Timeout'}`) + .addField('**User**', `${user} (${user.tag})`) + .addField('**Moderator**', `${moderator} (${moderator.tag})`) + // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing + .addField('**Reason**', `${reason || '[No Reason Provided]'}`); + if (dmSuccess === false) logEmbed.addField('**Additional Info**', 'Could not dm user.'); + return await logChannel.send({ embeds: [logEmbed] }); + } +} diff --git a/src/listeners/member-custom/bushTimeout.ts b/src/listeners/member-custom/bushTimeout.ts new file mode 100644 index 0000000..63ba41d --- /dev/null +++ b/src/listeners/member-custom/bushTimeout.ts @@ -0,0 +1,34 @@ +import { BushListener, type BushClientEvents } from '#lib'; +import { GuildMember, MessageEmbed } from 'discord.js'; + +export default class BushTimeoutListener extends BushListener { + public constructor() { + super('bushTimeout', { + emitter: 'client', + event: 'bushTimeout', + category: 'member-custom' + }); + } + + public override async exec( + ...[victim, moderator, guild, reason, caseID, duration, dmSuccess]: BushClientEvents['bushTimeout'] + ) { + const logChannel = await guild.getLogChannel('moderation'); + if (!logChannel) return; + const user = victim instanceof GuildMember ? victim.user : victim; + + const logEmbed = new MessageEmbed() + .setColor(util.colors.discord.ORANGE) + .setTimestamp() + .setFooter({ text: `CaseID: ${caseID}` }) + .setAuthor({ name: user.tag, iconURL: user.avatarURL({ dynamic: true, format: 'png', size: 4096 }) ?? undefined }) + .addField('**Action**', `${'Timeout'}`) + .addField('**User**', `${user} (${user.tag})`) + .addField('**Moderator**', `${moderator} (${moderator.tag})`) + // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing + .addField('**Reason**', `${reason || '[No Reason Provided]'}`) + .addField('**Duration**', `${util.humanizeDuration(duration) || duration}`); + if (dmSuccess === false) logEmbed.addField('**Additional Info**', 'Could not dm user.'); + return await logChannel.send({ embeds: [logEmbed] }); + } +} |