【问题标题】:Discord bot delete commandDiscord 机器人删除命令
【发布时间】:2019-12-14 15:15:57
【问题描述】:

我的主要目标是让具有消息管理权限的人键入删除消息的命令,但能够指定他们要删除的消息数量。

我尝试过弄乱变量,但我对它们了解不多,通常会以一些错误结束。我尝试用成功的变量替换已删除消息的值(2),但在用消息更改变量时我一无所知。

 if(message.member.hasPermission('MANAGE_MESSAGES')) {
                        if(message.content.startsWith(`${prefix}delete`)) {
                        message.channel.bulkDelete(2)
                        }
                    }

【问题讨论】:

    标签: javascript node.js discord.js


    【解决方案1】:

    您需要拆分 message.content,这将返回一个数组,我将在此示例中将其命名为 args。那么,args[1] 应该是您要查找的数字。

    const prefix = '@' 
    const args = message.content.split(' ')
    
        if(message.member.hasPermission('MANAGE_MESSAGES')) {
                                if(message.content.startsWith(`${prefix}delete`)) {
                                message.channel.bulkDelete(args[1])
                                }
                            }
    

    等等!您只需要确保 args[1] 现在是一个数字。

    【讨论】:

      【解决方案2】:

      我假设你在消息事件中拥有它。

      这是您可以做到的众多方法之一:

      if(message.content.startsWith(`${prefix}delete`)) {
            const user = message.mentions.users.first();
            // Parse Amount
            const amount = !!parseInt(message.content.split(' ')[1]) ? parseInt(message.content.split(' ')[1]) : parseInt(message.content.split(' ')[2])
            //Check if it the amount for message to delete where declared
            if (!amount) return message.reply('Must specify an amount to delete!').then(msg => msg.delete(15000));
            // Fetch 100 messages (will be filtered and lowered up to max amount requested)
            message.channel.fetchMessages({
              limit: 100,
            }).then((messages) => {
                //I declare the messages like that with amount + 1 to delete the command itself
                messages = messages.array().slice(0, amount + 1);
                //And finally buldDelete deletes the desired amount
                message.channel.bulkDelete(messages).then(messages => console.log(`Bulk deleted ${args[0]} messages`))
                  .catch(console.error);
      
      
            });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-03-10
        • 2018-05-06
        • 2021-10-06
        • 2021-08-14
        • 2020-08-24
        • 2021-01-01
        • 2020-07-08
        • 2021-03-11
        相关资源
        最近更新 更多