From 57eb5f403c1375e88dcdbc65451045ded312b756 Mon Sep 17 00:00:00 2001 From: Nix Krystik Date: Wed, 3 Jun 2026 23:41:30 +0800 Subject: [PATCH 1/3] copying and pasting for the win. --- src/commands/settings.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/settings.ts b/src/commands/settings.ts index 3ea32c2..35f568f 100644 --- a/src/commands/settings.ts +++ b/src/commands/settings.ts @@ -202,7 +202,7 @@ export default { const devWatchRole = interaction.options.getRole('devwatch-role'); if (devWatchRole) { await Database.updateGuildSettings(interaction.guildId, 'devwatch_role_id', devWatchRole.id); - response.push(`**private_help_role_id** has been set to ${devWatchRole}.`); + response.push(`**devwatch_role_id** has been set to ${devWatchRole}.`); } const addCategory = interaction.options.getChannel('add-staff-category'); From a3397c78500ffd82f9a100d2e17093cb0cf58bf1 Mon Sep 17 00:00:00 2001 From: Nix Krystik Date: Thu, 4 Jun 2026 14:44:26 +0800 Subject: [PATCH 2/3] Devwatch responses are now less vague. --- src/buttons/dev-watch.ts | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/src/buttons/dev-watch.ts b/src/buttons/dev-watch.ts index 3d85b7b..cfddb0c 100644 --- a/src/buttons/dev-watch.ts +++ b/src/buttons/dev-watch.ts @@ -4,20 +4,27 @@ import { Database } from '../shared/Database'; export default { name: 'dev-watch', 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); - await interaction.reply({ flags: [MessageFlags.Ephemeral], content: 'Removed role.' }); - } else { - await member.roles.add(settings.devwatch_role_id); - await interaction.reply({ flags: [MessageFlags.Ephemeral], content: 'Added role.' }); + if (member.roles.cache.has(settings.devwatch_role_id)) { + await member.roles.remove(settings.devwatch_role_id); + await interaction.reply({ flags: [MessageFlags.Ephemeral], content: 'Removed role.' }); + } else { + 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 }); } } }; \ No newline at end of file From dfe4e4598486ff07dd0ecb077ec1d766d2fb2380 Mon Sep 17 00:00:00 2001 From: Tarrgon <61888458+Tarrgon@users.noreply.github.com> Date: Fri, 5 Jun 2026 12:52:07 -0400 Subject: [PATCH 3/3] Fix eslint optional non-null assertion --- src/buttons/dev-watch.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/buttons/dev-watch.ts b/src/buttons/dev-watch.ts index cfddb0c..ee61a06 100644 --- a/src/buttons/dev-watch.ts +++ b/src/buttons/dev-watch.ts @@ -14,7 +14,8 @@ export default { 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 (!role) throw new Error('The configured `devwatch_role_id` does not exist.'); + if (role.position > bot.roles.highest.position) throw new Error('The configured `devwatch_role_id` is higher than my highest role.'); if (member.roles.cache.has(settings.devwatch_role_id)) { await member.roles.remove(settings.devwatch_role_id);