feat(arabot): add a check if the user is restricted when trying to gain access to the server

This commit is contained in:
Anthony Berg 2025-01-15 20:46:25 +01:00
parent 1f92bf5d68
commit 98b9ac6fde
3 changed files with 22 additions and 4 deletions

View File

@ -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,
});
}
}

View File

@ -141,6 +141,7 @@ const devIDs = {
private: '999431679527628818',
restricted: '999431679812845654',
},
modMail: '575252669443211264',
};
export default devIDs;

View File

@ -143,6 +143,7 @@ let IDs = {
private: '992581296901599302',
restricted: '809765577236283472',
},
modMail: '575252669443211264',
};
// Check if the bot is in development mode