我的命令限制系统有问题。
消息“您没有权限”将仅运行一次(当您没有该角色时)。我知道,如果您不设置var(在这种情况下为checkrole
),则代码将执行一次,但是,我不知道如何检查命令的执行时间。
所以我可以做这样的事情:
if (command === ' ') {
checkrole = false
}
兴趣代码:
if (!message.member.roles.some(r => ["someone"].includes(r.name.toLowerCase())) && checkrole === false) {
checkrole = true;
return message.channel.send('Sorry, but you do not have the **permissions** to do that.');
}
(已定义var checkrole-它以false(var checkrole = false;
开始)
亲切的问候, 鲁本
答案 0 :(得分:0)
通常,如果要使用命令,则需要前缀。选择该选项后,您将知道消息(Message.content
)的内容将以prefix + command
开头。所以你可以这样写:
// Assuming that:
// var prefix = '-'; for example
if (message.content.startsWith(prefix + "mycommand")) {
checkrole = false;
}
尽管这行得通,但是有更有效的方式使用命令,尤其是在您需要使用参数等的情况下。
读this guide可能会为您提供帮助:它涵盖了基础知识,也涵盖了更高级的内容;)