diff options
author | IRONM00N <64110067+IRONM00N@users.noreply.github.com> | 2022-08-18 22:42:12 -0400 |
---|---|---|
committer | IRONM00N <64110067+IRONM00N@users.noreply.github.com> | 2022-08-18 22:42:12 -0400 |
commit | 2356d2c44736fb83021dacb551625852111c8ce6 (patch) | |
tree | 10408d22fdd7a358d2f5c5917c3b59e55aa4c19d /src/listeners | |
parent | 8aed6f93f7740c592cbc0e2f9fd3269c05286077 (diff) | |
download | tanzanite-2356d2c44736fb83021dacb551625852111c8ce6.tar.gz tanzanite-2356d2c44736fb83021dacb551625852111c8ce6.tar.bz2 tanzanite-2356d2c44736fb83021dacb551625852111c8ce6.zip |
restructure, experimental presence and member automod, fixed bugs probably made some more bugs
Diffstat (limited to 'src/listeners')
-rw-r--r-- | src/listeners/automod/automodCreate.ts (renamed from src/listeners/message/automodCreate.ts) | 5 | ||||
-rw-r--r-- | src/listeners/automod/automodUpdate.ts (renamed from src/listeners/message/automodUpdate.ts) | 6 | ||||
-rw-r--r-- | src/listeners/automod/memberAutomod.ts | 21 | ||||
-rw-r--r-- | src/listeners/automod/presenceAutomod.ts | 27 | ||||
-rw-r--r-- | src/listeners/commands/commandError.ts | 4 | ||||
-rw-r--r-- | src/listeners/interaction/interactionCreate.ts | 4 | ||||
-rw-r--r-- | src/listeners/member-custom/bushLevelUpdate.ts | 6 |
7 files changed, 62 insertions, 11 deletions
diff --git a/src/listeners/message/automodCreate.ts b/src/listeners/automod/automodCreate.ts index 0f089a3..529651c 100644 --- a/src/listeners/message/automodCreate.ts +++ b/src/listeners/automod/automodCreate.ts @@ -1,4 +1,4 @@ -import { AutoMod, BushListener, type BushClientEvents } from '#lib'; +import { BushListener, MessageAutomod, type BushClientEvents } from '#lib'; export default class AutomodMessageCreateListener extends BushListener { public constructor() { @@ -10,6 +10,7 @@ export default class AutomodMessageCreateListener extends BushListener { } public async exec(...[message]: BushClientEvents['messageCreate']) { - return new AutoMod(message); + if (message.member === null) return; + return new MessageAutomod(message); } } diff --git a/src/listeners/message/automodUpdate.ts b/src/listeners/automod/automodUpdate.ts index fa00f92..d68759f 100644 --- a/src/listeners/message/automodUpdate.ts +++ b/src/listeners/automod/automodUpdate.ts @@ -1,4 +1,4 @@ -import { AutoMod, BushListener, type BushClientEvents } from '#lib'; +import { BushListener, MessageAutomod, type BushClientEvents } from '#lib'; export default class AutomodMessageUpdateListener extends BushListener { public constructor() { @@ -11,7 +11,7 @@ export default class AutomodMessageUpdateListener extends BushListener { public async exec(...[_, newMessage]: BushClientEvents['messageUpdate']) { const fullMessage = newMessage.partial ? await newMessage.fetch().catch(() => null) : newMessage; - if (!fullMessage) return; - return new AutoMod(fullMessage); + if (!fullMessage?.member) return; + return new MessageAutomod(fullMessage); } } diff --git a/src/listeners/automod/memberAutomod.ts b/src/listeners/automod/memberAutomod.ts new file mode 100644 index 0000000..01eb56c --- /dev/null +++ b/src/listeners/automod/memberAutomod.ts @@ -0,0 +1,21 @@ +import { BushClientEvents, BushListener, MemberAutomod } from '#lib'; +import chalk from 'chalk'; + +export default class PresenceAutomodListener extends BushListener { + public constructor() { + super('memberAutomod', { + emitter: 'client', + event: 'guildMemberUpdate' + }); + } + + public async exec(...[_, newMember]: BushClientEvents['guildMemberUpdate']) { + if (!(await newMember.guild.hasFeature('automodMembers'))) return; + if (!(await newMember.guild.hasFeature('automod'))) return; + + new MemberAutomod(newMember); + console.log( + `${chalk.hex('#ff7105')('[MemberAutomod]')} Created a new MemberAutomod for ${newMember.user.tag} (${newMember.user.id})` + ); + } +} diff --git a/src/listeners/automod/presenceAutomod.ts b/src/listeners/automod/presenceAutomod.ts new file mode 100644 index 0000000..f361508 --- /dev/null +++ b/src/listeners/automod/presenceAutomod.ts @@ -0,0 +1,27 @@ +import { BushClientEvents, BushListener, PresenceAutomod } from '#lib'; +import chalk from 'chalk'; + +/* export default */ class PresenceAutomodListener extends BushListener { + public constructor() { + super('presenceAutomod', { + emitter: 'client', + event: 'presenceUpdate' + }); + } + + public async exec(...[_, newPresence]: BushClientEvents['presenceUpdate']) { + if (!newPresence.member || !newPresence.guild) return; + + if (!newPresence.activities.length) return; + + if (!(await newPresence.guild.hasFeature('automodPresence'))) return; + if (!(await newPresence.guild.hasFeature('automod'))) return; + + new PresenceAutomod(newPresence); + console.log( + `${chalk.hex('#ffe605')('[PresenceAutomod]')} Created a new PresenceAutomod for ${newPresence.member.user.tag} (${ + newPresence.member.user.id + })` + ); + } +} diff --git a/src/listeners/commands/commandError.ts b/src/listeners/commands/commandError.ts index f12881a..bfa857c 100644 --- a/src/listeners/commands/commandError.ts +++ b/src/listeners/commands/commandError.ts @@ -1,8 +1,8 @@ import { capitalize, colors, format, formatError, SlashMessage, type BushCommandHandlerEvents } from '#lib'; import { type AkairoMessage, type Command } from 'discord-akairo'; import { ChannelType, Client, EmbedBuilder, escapeInlineCode, GuildTextBasedChannel, type Message } from 'discord.js'; -import { bold } from '../../lib/common/util/Format.js'; -import { BushListener } from '../../lib/extensions/discord-akairo/BushListener.js'; +import { BushListener } from '../../../lib/extensions/discord-akairo/BushListener.js'; +import { bold } from '../../../lib/utils/Format.js'; export default class CommandErrorListener extends BushListener { public constructor() { diff --git a/src/listeners/interaction/interactionCreate.ts b/src/listeners/interaction/interactionCreate.ts index 91bcae6..8dd753b 100644 --- a/src/listeners/interaction/interactionCreate.ts +++ b/src/listeners/interaction/interactionCreate.ts @@ -1,4 +1,4 @@ -import { AutoMod, BushListener, emojis, format, oxford, surroundArray, type BushClientEvents } from '#lib'; +import { BushListener, emojis, format, handleAutomodInteraction, oxford, surroundArray, type BushClientEvents } from '#lib'; import { InteractionType } from 'discord.js'; export default class InteractionCreateListener extends BushListener { @@ -22,7 +22,7 @@ export default class InteractionCreateListener extends BushListener { } else if (interaction.isButton()) { const id = interaction.customId; if (['paginate_', 'command_', 'confirmationPrompt_', 'appeal'].some((s) => id.startsWith(s))) return; - else if (id.startsWith('automod;')) void AutoMod.handleInteraction(interaction); + else if (id.startsWith('automod;')) void handleAutomodInteraction(interaction); else if (id.startsWith('button-role;') && interaction.inCachedGuild()) { const [, roleId] = id.split(';'); const role = interaction.guild.roles.cache.get(roleId); diff --git a/src/listeners/member-custom/bushLevelUpdate.ts b/src/listeners/member-custom/bushLevelUpdate.ts index 0281288..702f7cc 100644 --- a/src/listeners/member-custom/bushLevelUpdate.ts +++ b/src/listeners/member-custom/bushLevelUpdate.ts @@ -52,10 +52,12 @@ export default class BushLevelUpdateListener extends BushListener { } try { if (promises.length) await Promise.all(promises); - } catch (e) { + } catch (e: any) { await member.guild.error( 'bushLevelUpdate', - `There was an error adding level roles to ${member.user.tag} upon reaching to level ${newLevel}.\n${e?.message ?? e}` + `There was an error adding level roles to ${member.user.tag} upon reaching to level ${newLevel}.\n${ + 'message' in e ? e.message : e + }` ); } } |