Devwatch responses are now less vague.

This commit is contained in:
Nix Krystik
2026-06-04 14:44:26 +08:00
parent 57eb5f403c
commit a3397c7850
+18 -11
View File
@@ -4,20 +4,27 @@ import { Database } from '../shared/Database';
export default { export default {
name: 'dev-watch', name: 'dev-watch',
handler: async function (client: Client, interaction: ButtonInteraction) { handler: async function (client: Client, interaction: ButtonInteraction) {
const member = await interaction.guild!.members.fetch(interaction.user.id); try {
if (!interaction.guild) throw new Error('This action must be run in a guild.');
if (!member) return await interaction.reply({ flags: [MessageFlags.Ephemeral], content: 'There was an error. Please try again later.' }); const settings = await Database.getGuildSettings(interaction.guild.id);
if (!settings || !settings.devwatch_role_id) throw new Error('`devwatch_role_id` was not configured. Please configure a role then try again.');
const member = await interaction.guild.members.fetch(interaction.user.id);
if (!member) throw new Error('Unable to retreive the member executing this command.');
const settings = await Database.getGuildSettings(interaction.guild!.id); const bot = await interaction.guild.members.fetchMe();
const role = await interaction.guild?.roles.fetch(settings.devwatch_role_id);
if (role?.position! > bot.roles.highest.position) throw new Error('The configured `devwatch_role_id` is higher than my highest role.');
if (!settings || !settings.devwatch_role_id) return await interaction.reply({ flags: [MessageFlags.Ephemeral], content: 'There was an error. Please try again later.' }); if (member.roles.cache.has(settings.devwatch_role_id)) {
await member.roles.remove(settings.devwatch_role_id);
if (member.roles.cache.has(settings.devwatch_role_id)) { await interaction.reply({ flags: [MessageFlags.Ephemeral], content: 'Removed role.' });
await member.roles.remove(settings.devwatch_role_id); } else {
await interaction.reply({ flags: [MessageFlags.Ephemeral], content: 'Removed role.' }); await member.roles.add(settings.devwatch_role_id);
} else { await interaction.reply({ flags: [MessageFlags.Ephemeral], content: 'Added role.' });
await member.roles.add(settings.devwatch_role_id); }
await interaction.reply({ flags: [MessageFlags.Ephemeral], content: 'Added role.' }); } catch (error: Error | any) {
await interaction.reply({ flags: [MessageFlags.Ephemeral], content: error.message });
} }
} }
}; };