fix(bot): fixed achievement command

This commit is contained in:
Ahmad 2025-06-14 15:14:28 -04:00
parent 47de72d0a4
commit bcc57087ce
No known key found for this signature in database
GPG key ID: 8FD8A93530D182BF

View file

@ -26,7 +26,6 @@ const command = {
data: new SlashCommandBuilder() data: new SlashCommandBuilder()
.setName('achievement') .setName('achievement')
.setDescription('Manage server achievements') .setDescription('Manage server achievements')
.setDefaultMemberPermissions(PermissionFlagsBits.ManageGuild)
.addSubcommand((subcommand) => .addSubcommand((subcommand) =>
subcommand subcommand
.setName('create') .setName('create')
@ -185,6 +184,13 @@ async function handleCreateAchievement(
const rewardType = interaction.options.getString('reward_type'); const rewardType = interaction.options.getString('reward_type');
const rewardValue = interaction.options.getString('reward_value'); 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) { if (requirementType === 'command_usage' && !commandName) {
await interaction.editReply( await interaction.editReply(
'Command name is required for command_usage type achievements.', 'Command name is required for command_usage type achievements.',
@ -252,6 +258,13 @@ async function handleDeleteAchievement(
) { ) {
const achievementId = interaction.options.getInteger('id')!; 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 { try {
const success = await deleteAchievement(achievementId); const success = await deleteAchievement(achievementId);
@ -278,6 +291,13 @@ async function handleAwardAchievement(
const user = interaction.options.getUser('user')!; const user = interaction.options.getUser('user')!;
const achievementId = interaction.options.getInteger('achievement_id')!; 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 { try {
const allAchievements = await getAllAchievements(); const allAchievements = await getAllAchievements();
const achievement = allAchievements.find((a) => a.id === achievementId); const achievement = allAchievements.find((a) => a.id === achievementId);
@ -659,6 +679,13 @@ async function handleUnawardAchievement(
const user = interaction.options.getUser('user')!; const user = interaction.options.getUser('user')!;
const achievementId = interaction.options.getInteger('achievement_id')!; 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 { try {
const allAchievements = await getAllAchievements(); const allAchievements = await getAllAchievements();
const achievement = allAchievements.find((a) => a.id === achievementId); const achievement = allAchievements.find((a) => a.id === achievementId);