From bcc57087cea9b795286cdf596aa3591b58c812da Mon Sep 17 00:00:00 2001 From: Ahmad <103906421+ahmadk953@users.noreply.github.com> Date: Sat, 14 Jun 2025 15:14:28 -0400 Subject: [PATCH] fix(bot): fixed achievement command --- src/commands/fun/achievement.ts | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/src/commands/fun/achievement.ts b/src/commands/fun/achievement.ts index c1ef61b..5fea0f2 100644 --- a/src/commands/fun/achievement.ts +++ b/src/commands/fun/achievement.ts @@ -26,7 +26,6 @@ const command = { data: new SlashCommandBuilder() .setName('achievement') .setDescription('Manage server achievements') - .setDefaultMemberPermissions(PermissionFlagsBits.ManageGuild) .addSubcommand((subcommand) => subcommand .setName('create') @@ -185,6 +184,13 @@ async function handleCreateAchievement( const rewardType = interaction.options.getString('reward_type'); const rewardValue = interaction.options.getString('reward_value'); + if (!interaction.memberPermissions?.has(PermissionFlagsBits.ManageGuild)) { + await interaction.editReply( + 'You do not have permission to create achievements.', + ); + return; + } + if (requirementType === 'command_usage' && !commandName) { await interaction.editReply( 'Command name is required for command_usage type achievements.', @@ -252,6 +258,13 @@ async function handleDeleteAchievement( ) { const achievementId = interaction.options.getInteger('id')!; + if (!interaction.memberPermissions?.has(PermissionFlagsBits.ManageGuild)) { + await interaction.editReply( + 'You do not have permission to delete achievements.', + ); + return; + } + try { const success = await deleteAchievement(achievementId); @@ -278,6 +291,13 @@ async function handleAwardAchievement( const user = interaction.options.getUser('user')!; const achievementId = interaction.options.getInteger('achievement_id')!; + if (!interaction.memberPermissions?.has(PermissionFlagsBits.ManageGuild)) { + await interaction.editReply( + 'You do not have permission to award achievements.', + ); + return; + } + try { const allAchievements = await getAllAchievements(); const achievement = allAchievements.find((a) => a.id === achievementId); @@ -659,6 +679,13 @@ async function handleUnawardAchievement( const user = interaction.options.getUser('user')!; const achievementId = interaction.options.getInteger('achievement_id')!; + if (!interaction.memberPermissions?.has(PermissionFlagsBits.ManageGuild)) { + await interaction.editReply( + 'You do not have permission to unaward achievements.', + ); + return; + } + try { const allAchievements = await getAllAchievements(); const achievement = allAchievements.find((a) => a.id === achievementId);