I'm trying to delete the bot's reply to the user's purge mand.
module.exports = {
data: new SlashCommandBuilder()
.setName("purge") // Command name
.setDescription("Deletes a set number of messages") // Command description
.addNumberOption((option) => // Adds an argument
option
.setName("number") // Argument name
.setDescription("Sets the number of messages to delete") // Argument description
.setRequired(true), // Argument requirement
),
async execute(interaction) {
if (interaction.member.permissions.has("MANAGE_MESSAGES") && interaction.guild.me.permissions.has("MANAGE_MESSAGES")) {
await interaction.channel.bulkDelete(interaction.options.getNumber("number"));
await interaction.reply(`Deleted ${interaction.options.getNumber("number")} message(s) successfully.`);
setTimeout(() => interaction.message.delete(), 1000);
} else if (interaction.member.permissions.has("MANAGE_MESSAGES") === false) {
interaction.reply("You do not have the **Manage Messages** permission. Please ask a moderator to give you this permission.")
} else {
interaction.reply("I have not been given the relevant permissions to do this. Please contact a moderator and ask them to give me the **Manage Messages** permission.")
}
}
}
All the solutions I have tried all throw a " is not a function" or "Cannot read the property of undefined". Could anyone help with this? Thanks!
I'm trying to delete the bot's reply to the user's purge mand.
module.exports = {
data: new SlashCommandBuilder()
.setName("purge") // Command name
.setDescription("Deletes a set number of messages") // Command description
.addNumberOption((option) => // Adds an argument
option
.setName("number") // Argument name
.setDescription("Sets the number of messages to delete") // Argument description
.setRequired(true), // Argument requirement
),
async execute(interaction) {
if (interaction.member.permissions.has("MANAGE_MESSAGES") && interaction.guild.me.permissions.has("MANAGE_MESSAGES")) {
await interaction.channel.bulkDelete(interaction.options.getNumber("number"));
await interaction.reply(`Deleted ${interaction.options.getNumber("number")} message(s) successfully.`);
setTimeout(() => interaction.message.delete(), 1000);
} else if (interaction.member.permissions.has("MANAGE_MESSAGES") === false) {
interaction.reply("You do not have the **Manage Messages** permission. Please ask a moderator to give you this permission.")
} else {
interaction.reply("I have not been given the relevant permissions to do this. Please contact a moderator and ask them to give me the **Manage Messages** permission.")
}
}
}
All the solutions I have tried all throw a " is not a function" or "Cannot read the property of undefined". Could anyone help with this? Thanks!
Share Improve this question asked Nov 26, 2021 at 23:53 legendofthelandlegendoftheland 11 gold badge1 silver badge1 bronze badge2 Answers
Reset to default 2Use <Interaction>.deleteReply()
Use method .deleteReply()
:
async execute(interaction) {
const replyMessage = await interaction.reply('message');
setTimeout(() => interaction.deleteReply(), 10000);
}