是否可以通过其ID discord.js检查角色是否存在?

时间:2020-09-03 17:41:04

标签: javascript node.js discord discord.js

我正在执行一个命令,您可以使用该命令为服务器设置警告角色。我遇到了一个问题,它将警告角色设置为您作为命令参数提供的任何值。我希望它仅接受有效的角色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)的角色?

1 个答案:

答案 0 :(得分:1)

假设您正在使用discord.js v12+,则可以尝试以下操作:

const role = message.guild.roles.cache.get(args[0]);

// if role does not exist
if (!role) {
  // ...
};