当前位置: 首页 > 知识库问答 >
问题:

删除消息命令,它只适用于所有者、管理员和主持人

艾飞宇
2023-03-14

我正在为我的服务器编写Discord bot代码。我想为我的机器人添加一个命令,该命令将清除一个文本通道,并且只允许具有所有者、管理员、版主角色的人。

在代码中,它是haveif(!message.member.roles.cache.some(r=

所以我需要修正:3个角色中的1个仍然可以使用它。

代码如下:

case 'clear': 
    if(!args[1]) 
        return message.reply('Please specify the number of messages to clear `e.g. !clear 10`')
            .then(message => message.delete({timeout: 3500}));

    if(!message.member.roles.cache.some(r => r.name === "Owner") || 
            !message.member.roles.cache.some(r => r.name === "Admin") || 
            !message.member.roles.cache.some(r => r.name === "Moderator")) 
        return message.reply('You do not have permissions to clear!')
            .then(message => message.delete({timeout: 3500}));

    message.channel.bulkDelete(args[1]);
    break;

共有1个答案

吴康平
2023-03-14

您需要检查用户是否没有这三个角色。因为您在if语句和not语句之间给出了||

如果您给出

注意:您提供的代码中有一些括号错误和引号错误。

更新:“**所有者**”已更改为“所有者”

以下是更新的代码:

case 'clear': 
            if(!args[1]) return message.reply('Please specify the number of messages to clear `e.g. !clear 10`')
            .then(message => message.delete({timeout: 3500}));
            if(!message.member.roles.cache.some(r => r.name === "Owner") && (!message.member.roles.cache.some(r => r.name === "Admin")) && (!message.member.roles.cache.some(r => r.name === "Moderator")) 
               {
                 return message.reply('You do not have permissions to clear!')
                 .then(message => message.delete({timeout: 3500}));
               }
            message.channel.bulkDelete(args[1]);
            break;

 类似资料:
  • 我看过与此相关的类似问题,但并没有找到正确的答案。我只想从 Kafka 主题中删除消息,而不是更改保留超时。我已经安装了kafka_2.11-0.8.2.1,并使用蝙蝠文件在Windows上运行它。我想知道我是否可以删除主题中发布的所有消息,而不删除整个主题。

  • 仅企业版可用 请求header DELETE /v1/account/deleteActManager Authorization:Bearer {ACCESS TOKEN} 注: 请将上方的{ACCESS TOKEN}替换为您的ACCESS TOKEN 请求payload { "manager_id" : 233, "is_delete_act" : 1 } payload参

  • 注意:这将只显示有关使用Java消费者API的消费者(非基于ZooKeeper的消费者)的信息。 此工具还适用于基于ZooKeeper的使用者: bin/kafka-consumer-groups.sh--zookeeper localhost:2181--description--group my-group null PS:这似乎没有出现在2.5文档中

  • 使用alter命令,我添加了主键和外键 alter table employee1添加主键(eid); alter table accounts1 add foreign key(eid)REFERENCEEE1(eid); 错误: MySQL>alter table employee1删除约束eID; 错误1064(42000):您的SQL语法中有错误;查看将ponds与您的MySQL serv

  • 我试图删除所有消息从一个渠道使用不和谐的机器人,但唯一的命令删除消息,我发现是 它一次只删除一条消息,我想清除所有可以使用的命令?

  • 我正在参与一个项目,该项目将首先构建一个简单的消息系统,该系统将接收消息,存储消息并将其路由到适当的部门。基本用例是: < li >用户在网站表单中写下一条消息或一个问题,并选择一个部门将消息发送给该部门 < li >根据用户的选择,消息被发送到相应部门的消息队列,状态为“未读”、“已读”等。(我们还没有确定所有的状态)。 < li >这些信息成为用户与网站互动的一部分,即,如果用户拨打客服电话,