javascript - 我如何修改此代码以让机器人读取完整的不和谐消息以响应短语和标记特定角色?
问题描述
我正在尝试制作一个不和谐的机器人,当它在消息的任何部分看到短语“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,它只是把它放在纯文本中。我也不知道如何更改它,因此它会读取该特定短语的整个消息。
解决方案
正如您在文档中看到的那样,一旦您获得角色,您只需将其与消息字符串连接起来,它会自动提及该角色,因此您可以尝试这样的事情:
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}`);
}
});
推荐阅读
- java - 如何在启动时为在 Tomcat 9.x 中运行的 ADF 应用程序创建动态 JNDI 数据源
- groovy - 如何让 Spock 在类似于 Mockito 的 Reactor 中匹配?
- android - 如何正确制作转换器类?
- spring-boot - MongoDB Spring悲观锁
- python - 用于频谱分析的 FFT
- ubuntu - 新交所开发环境
- server-side-rendering - HOC、上下文 API 和下一页
- javascript - 使用上下文 API (React.js) 仅更改状态对象中的特定键
- javascript - 如何在数组中断言数组?
- json - Unpivot 列 pyspark 数据框,其中值是字典列表