问题:无法实现member.roles.cache.has('role-id-here');从实例。我认为是因为我没有缓存任何东西?再次不确定对动态命令的暗示。请说明如何调试这种情况。
目标:实施角色权限。
bot.on('ready', () => {
console.log("The bot is active and ready to go!");
bot.user.setActivity ("Only The Best Since 2020");
});
bot.on('message', function(message) {
if(message.content[0] === PREFIX) {
let command = message.content.substring(message.content.indexOf(" ") + 1, message.content.length);
}
});
bot.on('message', message => {
let args = message.content.substring(PREFIX.length).split(" ");
switch(args[0].toLowerCase()) {
case "ctr":
bot.commands.get('ctr').execute(message, args);
break;
您确定使用的是Discord v12版本吗?
对于不和谐v12,您可以使用:
if (message.member.roles.cache.has('ROLE ID')) {
//then code
}
if (message.member.roles.cache.some(role => ['ID','ID2'].includes(role.id))) {
//then code
}
对于不和谐v11,您可以使用:
if (message.member.roles.has('ROLE ID')) {
//then code
}
if (message.member.roles.some(role => ['ID','ID2'].includes(role.id))) {
//then code
}