首页 > 解决方案 > 我如何修改此代码以让机器人读取完整的不和谐消息以响应短语和标记特定角色?

问题描述

我正在尝试制作一个不和谐的机器人,当它在消息的任何部分看到短语“Tier 5 Egg”时会做出响应。

bot.on("message", message => {
  if(message.content === 'Tier 5 Egg') {
    message.channel.send('A Tier 5 Egg has appear in @role1 @role2');
  }
});

当它响应时,我希望它发送消息并在其响应中标记两个特定角色。我试过做@并包括它的角色ID,它只是把它放在纯文本中。我也不知道如何更改它,因此它会读取该特定短语的整个消息。

标签: javascriptdiscord.js

解决方案


正如您在文档中看到的那样,一旦您获得角色,您只需将其与消息字符串连接起来,它会自动提及该角色,因此您可以尝试这样的事情:

bot.on("message", message => {
  if(message.content.indexOf('Tier 5 Egg') > -1) {
    let role1 = message.channel.guild.roles.find('name', 'role1Name');
    let role2 = message.channel.guild.roles.find('name', 'role1Name');
    message.channel.send(`A Tier 5 Egg has appear in ${role1} ${role2}`);
  }
});

推荐阅读