如何使用机器人检查不一致的角色?

问题描述:

我试图让机器人在服务器的每个角色都有不同的响应,但我似乎无法使其工作。它不给我任何错误,但它给了我错误的答案。如何使用机器人检查不一致的角色?

client.on('message', message => 
{ 
    if(message.content === prefix + 'assist') 
    if (message.member.roles.equals("344848334969765893")) 
     {  
     message.reply("Ohhh a fellow rng player! May the rng be with you!"); 
     } 
    else 
     { 
     message.reply("You do not have the Admin role."); 
     } 
}) 
+0

欢迎#1。为了让人们更容易帮助您,请正确格式化您的代码。或者用至少4个空格(多行)缩进**或者**将它换回到后面的单元格中(内联代码)。另外,在提问时请尽量注意拼写。谢谢! –

+0

此外,请指定运行代码时出错的地方。请务必参考[如何提问](https://*.com/help/how-to-ask) –

您正在寻找

member.roles.find('name', 'Admin') 

与之相对

member.member.roles.equals("344848334969765893") 

或使用

member.roles.get('344848334969765893') 

,因为你已经知道的ID。您可以在findhere找到discord.js收集文档。


为了更充分地回答,因为你正在做的逻辑,它会像

client.on('message', (message) => { 
    if(message.content === prefix + 'assist') { 
    if (message.member.roles.get('344848334969765893')) 
     {  
     message.reply("Ohhh a fellow rng player! May the rng be with you!"); 
     } 
    else 
     { 
     message.reply("You do not have the Admin role."); 
     } 
    } 
}); 
+0

由于某种原因, member.roles.get('344848334969765893') 无法工作对,但 member.roles.find('name','Admin') 工作正常。谢谢。 –

+0

没问题。我会看看他们是否有不同的首选方法。可能会尝试它作为一个int。我不经常为他们使用文字。 如果你想看到他们的文档,他们使用许多与[maps]相同的功能(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map /得到) –