检查预定义角色并执行命令

时间:2018-12-31 16:06:21

标签: javascript node.js discord discord.js

我需要检查用户是否具有预定义的角色,如果具有该角色,请将其删除。如果不是,则发送一条消息,说明内容。

let user = message.guild.member(message.mentions.users.first() || message.guild.members.get(args[0]));
let muterole = message.guild.roles.find(x => x.name === "Muted");

if (user.roles.has(muterole)) user.removeRole(muterole);
if (!user.roles.has(muterole)) message.channel.send("This user does not have the muted role!");

如果user拥有该角色,我希望它删除该角色,如果没有,则发送一条消息。 但是,我当前的结果是,无论他是否担任Muted角色,它都会发送消息,如果他确实具有它,则不会删除它。

我的最终目标是这个。我的mute命令使用node ms,因此我可以静音指定的时间,因此我需要取消静音,但是如果用户取消静音,则不会停止计时器(我认为没有计时器方式),所以我的想法是输入静音命令->“如果用户在一段时间后拥有mute角色,但是如果用户没有mute角色,则返回”

1 个答案:

答案 0 :(得分:0)

这可能有助于检测成员是否具有角色

// assuming role.id is an actual ID of a valid role:
if(message.member.roles.has(role.id)) {
  console.log(`Yay, the author of the message has the role!`);
} else {
  console.log(`author does not have the role`);
}