Discord.js在用户角色中的搜索问题

Discord.js在用户角色中的搜索问题,discord.js,Discord.js,我正在尝试创建一个命令,在这种情况下,它被激活/攻击,我正在寻找的机制是,如果目标用户(提到)有一个角色(Lavander),这是一种盾牌,发送一条嵌入消息,说防御并从你处移除角色(打破盾牌),如果目标用户(提到)没有盾牌角色,只需发送另一条消息说已攻击。这是我一直在做的代码,但它对我不起作用,即使它没有给出错误,只是在使用它时,它忽略了角色检测,并出于我不知道的原因发送这两条消息,有人能帮我吗 if (message.content.startsWith('/attack')) {

我正在尝试创建一个命令,在这种情况下,它被激活/攻击,我正在寻找的机制是,如果目标用户(提到)有一个角色(Lavander),这是一种盾牌,发送一条嵌入消息,说防御并从你处移除角色(打破盾牌),如果目标用户(提到)没有盾牌角色,只需发送另一条消息说已攻击。这是我一直在做的代码,但它对我不起作用,即使它没有给出错误,只是在使用它时,它忽略了角色检测,并出于我不知道的原因发送这两条消息,有人能帮我吗

    if (message.content.startsWith('/attack')) {

  let Lavander = message.guild.roles.cache.find(role => role.name == "Lavander");
  let member = message.mentions.members.first();

  if (message.member.roles.cache.has(Lavander)) return
  member.roles.remove(Lavander);
  message.channel.send(new Discord.MessageEmbed()
    .setColor("GOLD")
    .setTitle(message.author.username)
    .setDescription("Defended"))

  message.channel.send(new Discord.MessageEmbed()
    .setColor("GOLD")
    .setTitle(message.author.username)
    .setDescription("Attacked"))
}

对我来说,这似乎是
letlavander=message.guild.roles.cache.find(role=>role.name==“Lavander”)
可能应该是
让Lavander=message.guild.roles.cache.find(role=>role.name=='Lavander')
但是如果没有关于故障和/或错误的信息,我就不能告诉您任何其他信息。

方法
集合。has
需要id作为属性。所以你需要这样的想法:

bot.on('message',(message)=>{
if(message.content.startsWith('/attack')){
让lavander=message.guild.roles.cache.find((role)=>role.name=='lavander');
让member=message.notices.members.first();
如果(!member | |!lavander)返回消息。回复('No role或member');
if(message.member.roles.cache.has(lavander.id)){
成员。角色。移除(洗手盆);
let embed=new Discord.MessageEmbed()
.setColor(“金色”)
.setTitle(message.author.username)
.setDescription(“辩护”);
}否则{
let embed=new Discord.MessageEmbed()
.setColor(“金色”)
.setTitle(message.author.username)
.setDescription('Attacked');
message.channel.send(嵌入);
}
}
});

您有哪些小故障?你为什么要发送一个攻击的和一个防御的嵌入?请详细说明。什么小故障?你有错误吗?我想让它在上面提到的一个没有角色时发送嵌入攻击,在这种情况下,严格比较没有区别。在角色名称中使用“”和“”符号有区别吗?没有。请参阅