From 98b9ac6fde61515e8fcd2facc2bb418fecd73307 Mon Sep 17 00:00:00 2001 From: Anthony Berg Date: Wed, 15 Jan 2025 20:46:25 +0100 Subject: [PATCH] feat(arabot): add a check if the user is restricted when trying to gain access to the server --- src/interaction-handlers/welcome.ts | 24 ++++++++++++++++++++---- src/utils/devIDs.ts | 1 + src/utils/ids.ts | 1 + 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/src/interaction-handlers/welcome.ts b/src/interaction-handlers/welcome.ts index c908524..2a197f6 100644 --- a/src/interaction-handlers/welcome.ts +++ b/src/interaction-handlers/welcome.ts @@ -21,8 +21,14 @@ import { InteractionHandler, InteractionHandlerTypes, } from '@sapphire/framework'; -import type { ButtonInteraction, GuildMember, TextChannel } from 'discord.js'; +import { + ButtonInteraction, + GuildMember, + MessageFlagsBitField, + TextChannel, +} from 'discord.js'; import IDs from '#utils/ids'; +import { checkActive } from '#utils/database/moderation/restriction'; export class WelcomeButtonHandler extends InteractionHandler { public constructor( @@ -54,7 +60,7 @@ export class WelcomeButtonHandler extends InteractionHandler { await interaction.reply({ content: 'There was an error giving you the role, please try again later or contact ModMail to be let into this server.', - ephemeral: true, + flags: MessageFlagsBitField.Flags.Ephemeral, }); return; } @@ -62,6 +68,16 @@ export class WelcomeButtonHandler extends InteractionHandler { try { member = member as GuildMember; + // Checks if the user is currently restricted + if (await checkActive(member.id)) { + await interaction.reply({ + content: `You are currently restricted from this server! Contact the moderators by sending a DM to <@${IDs.modMail}>.`, + flags: MessageFlagsBitField.Flags.Ephemeral, + }); + + return; + } + // Give non-vegan role if (!member.voice.channel) { await member.roles.add(IDs.roles.nonvegan.nonvegan); @@ -78,13 +94,13 @@ export class WelcomeButtonHandler extends InteractionHandler { await interaction.reply({ content: "You're currently in a verification, you'll have to leave the verification or get verified before being able to access the server again.", - ephemeral: true, + flags: MessageFlagsBitField.Flags.Ephemeral, }); } catch (error) { await interaction.reply({ content: 'There was an error giving you the role, please try again later or contact ModMail to be let into this server.', - ephemeral: true, + flags: MessageFlagsBitField.Flags.Ephemeral, }); } } diff --git a/src/utils/devIDs.ts b/src/utils/devIDs.ts index e650c42..6f81377 100644 --- a/src/utils/devIDs.ts +++ b/src/utils/devIDs.ts @@ -141,6 +141,7 @@ const devIDs = { private: '999431679527628818', restricted: '999431679812845654', }, + modMail: '575252669443211264', }; export default devIDs; diff --git a/src/utils/ids.ts b/src/utils/ids.ts index fefc40d..80a582e 100644 --- a/src/utils/ids.ts +++ b/src/utils/ids.ts @@ -143,6 +143,7 @@ let IDs = { private: '992581296901599302', restricted: '809765577236283472', }, + modMail: '575252669443211264', }; // Check if the bot is in development mode