aboutsummaryrefslogtreecommitdiff
path: root/src/listeners
diff options
context:
space:
mode:
authorIRONM00N <64110067+IRONM00N@users.noreply.github.com>2022-08-18 22:42:12 -0400
committerIRONM00N <64110067+IRONM00N@users.noreply.github.com>2022-08-18 22:42:12 -0400
commit2356d2c44736fb83021dacb551625852111c8ce6 (patch)
tree10408d22fdd7a358d2f5c5917c3b59e55aa4c19d /src/listeners
parent8aed6f93f7740c592cbc0e2f9fd3269c05286077 (diff)
downloadtanzanite-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.ts21
-rw-r--r--src/listeners/automod/presenceAutomod.ts27
-rw-r--r--src/listeners/commands/commandError.ts4
-rw-r--r--src/listeners/interaction/interactionCreate.ts4
-rw-r--r--src/listeners/member-custom/bushLevelUpdate.ts6
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
+ }`
);
}
}