最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - How do I delete an interaction reply in discord.js v13? - Stack Overflow

programmeradmin4浏览0评论

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 badge
Add a ment  | 

2 Answers 2

Reset to default 2

Use <Interaction>.deleteReply()

Use method .deleteReply():

async execute(interaction) {
  const replyMessage = await interaction.reply('message');
  setTimeout(() => interaction.deleteReply(), 10000);
}
发布评论

评论列表(0)

  1. 暂无评论