【问题标题】:Functional delete command that have a problem, please, read the text before the code. Thanks功能删除命令有问题,请阅读代码前的文字。谢谢
【发布时间】:2020-09-15 22:40:17
【问题描述】:

我正在使用 discord.js 制作一个不和谐的机器人,情况是我有一个从聊天中删除消息的命令,但它们只能由拥有 MANAGE_MESSAGES 权限的人使用,这个命令可以完美运行但是什么我不明白这是因为当它检测到此人没有权限时,它不会发送该人没有MANAGE_MESSAGES 权限的消息。感谢您的帮助。

case 'delete':
        if (!args[1]) return message.reply('Please enter a number of messages you would like to delete like ``k!delete 5``. LIMIT: 100 MESSAGES');
        message.channel.bulkDelete(args[1]);
        if (!message.member.hasPermission('MANAGE_MESSAGES'))
          return message.channel.send('You dont have the permission `MANAGE_MESSAGES` to use this command!!');
        break;

【问题讨论】:

    标签: bots discord discord.js


    【解决方案1】:

    该命令无法完美运行。由于代码行是按顺序执行的,因此当前您正在执行bulkDelete,甚至还没有查看成员是否有权这样做。

    您没有看到错误消息的原因可能是由于某种竞争条件:批量删除端点由后台工作人员处理,处理时间可能比您的 message.channel.send 长。因此消息正在发送,但立即从bulkDelete 中删除。

    要修复,只需在权限检查后移动您的bulkDelete 行。

    【讨论】:

      猜你喜欢
      • 2016-03-15
      • 1970-01-01
      • 2021-12-28
      • 2014-07-13
      • 2022-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多