MCPcopy Index your code
hub / github.com/codebymitch/TitanBot / execute

Function execute

src/commands/Leveling/levelremove.js:30–97  ·  view source on GitHub ↗
(interaction, config, client)

Source from the content-addressed store, hash-verified

28 category: 'Leveling',
29
30 async execute(interaction, config, client) {
31 try {
32 await InteractionHelper.safeDefer(interaction);
33
34 const hasPermission = await checkUserPermissions(
35 interaction,
36 PermissionFlagsBits.ManageGuild,
37 'You need ManageGuild permission to use this command.'
38 );
39 if (!hasPermission) return;
40
41 const levelingConfig = await getLevelingConfig(client, interaction.guildId);
42 if (!levelingConfig?.enabled) {
43 await InteractionHelper.safeEditReply(interaction, {
44 embeds: [
45 new EmbedBuilder()
46 .setColor('#f1c40f')
47 .setDescription('The leveling system is currently disabled on this server.')
48 ],
49 flags: MessageFlags.Ephemeral
50 });
51 return;
52 }
53
54 const targetUser = interaction.options.getUser('user');
55 const levelsToRemove = interaction.options.getInteger('levels');
56
57 const member = await interaction.guild.members.fetch(targetUser.id).catch(() => null);
58 if (!member) {
59 throw new TitanBotError(
60 `User ${targetUser.id} not found in this guild`,
61 ErrorTypes.USER_INPUT,
62 'The specified user is not in this server.'
63 );
64 }
65
66 const userData = await getUserLevelData(client, interaction.guildId, targetUser.id);
67 if (userData.level === 0) {
68 throw new TitanBotError(
69 `User ${targetUser.id} is already at minimum level`,
70 ErrorTypes.VALIDATION,
71 `${targetUser.tag} is already at level 0 and cannot have levels removed.`
72 );
73 }
74
75 const updatedData = await removeLevels(client, interaction.guildId, targetUser.id, levelsToRemove);
76
77 await InteractionHelper.safeEditReply(interaction, {
78 embeds: [
79 createEmbed({
80 title: 'Levels Removed',
81 description: `Successfully removed ${levelsToRemove} levels from ${targetUser.tag}.\n**New Level:** ${updatedData.level}`,
82 color: 'success'
83 })
84 ]
85 });
86
87 logger.info(

Callers

nothing calls this directly

Calls 8

checkUserPermissionsFunction · 0.90
getLevelingConfigFunction · 0.90
getUserLevelDataFunction · 0.90
removeLevelsFunction · 0.90
createEmbedFunction · 0.90
handleInteractionErrorFunction · 0.90
safeDeferMethod · 0.80
safeEditReplyMethod · 0.80

Tested by

no test coverage detected