如何解决如何在Discord JS中检测嵌入消息中的特定单词
我正在尝试为服务器中的“ EPIC RPG”播放器制作一个提醒机器人,有一个事件由“ EPIC RPG”人员随机主持,因此,如果有事件,我决定制作一个公告机器人。
这是我的代码:
client.on('message',message => {
let embed = message.embeds[0];
if (embed) {
message.channel.send( "<@&734426095759130674>" +"\:moneybag:" + "**CATCH**" + "\:moneybag:" );
}
});
您可以看到我的命令是在每个机器人发出的每条嵌入消息上触发的,我想要的只是由“ EPIC RPG”机器人(例如“ IT'S RAINING COINS ”)中的特定字词触发像下面的图片一样,有什么想法吗?
解决方法
您可以使用embed.title来获取嵌入标题,该标题表示正在下雨硬币。
您还可以通过embed.description获得其他信息,例如描述。
Discord.js MessageEmbed Docs
您可以使用以下方式检查嵌入信息:
client.on('message',message => {
let embed = message.embeds[0];
if (embed && embed.title.includes('IT\'S RAINING COINS')) {
message.channel.send( "<@&734426095759130674>" +"\:moneybag:" + "**CATCH**" + "\:moneybag:" );
}
});
,
您可以对字段进行排序,并检查它是否在其中一个字段中。
const embed = message.embeds[0];
if(!embed) return;
let foundText = false;
embed.fields.forEach(f => {
if(f.name.includes('IT\'S RAINING COINS')) foundText = true;
});
if (embed && embed.title.includes('IT\'S RAINING COINS')) {
message.channel.send( "<@&734426095759130674>" +"\:moneybag:" + "**CATCH**" + "\:moneybag:" );
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。