我正在执行一个命令,您可以使用该命令为服务器设置警告角色。我遇到了一个问题,它将警告角色设置为您作为命令参数提供的任何值。我希望它仅接受有效的角色ID,为此,我需要检查具有给定ID的角色是否存在。有办法吗?这是我可能需要的一些代码:
execute(message, args) {
if (!message.member.hasPermission('MANAGE_GUILD'))
return message.channel.send(
'You are missing the permissions to manage the server'
);
let guildID = message.guild.id;
let warnedRole = args;
if (!warnedRole) {
return message.reply('invalid role ID');
}
}
如您所见,我尝试使用if
条件来执行此操作,但是我意识到它不起作用,因为它将警告的角色设置为您键入命令的自变量(甚至有些单词或12之类的数字)。那么有没有办法检查公会中是否存在具有给定ID(warnedRole)的角色?
答案 0 :(得分:1)
假设您正在使用discord.js v12+
,则可以尝试以下操作:
const role = message.guild.roles.cache.get(args[0]);
// if role does not exist
if (!role) {
// ...
};