如何让我的不和谐机器人检测嵌入的字段、标题字段和字段描述?
Posted
技术标签:
【中文标题】如何让我的不和谐机器人检测嵌入的字段、标题字段和字段描述?【英文标题】:How to make my discord bot to detect fields, title field and field description of embeds? 【发布时间】:2021-03-26 10:06:15 【问题描述】:有一个机器人使用嵌入消息随机产生一个事件,我希望我的机器人检测到该嵌入并做出回应。下面的代码用于检测标题、嵌入的描述,但我不知道如何让它检测标题字段或字段描述。
client.on('message', (message) =>
if (message && message.embeds)
for (var i = 0; i < message.embeds.length; i++)
if (
message.embeds[i].description &&
message.embeds[i].description.includes("arena event"))
message.channel.send('<@&721372445457645579> JOIN!')
);
【问题讨论】:
【参考方案1】:从MessageEmbed
类中,您可以拥有fields
属性-
message.embeds[i].fields[0].name
message.embeds[i].fields[0].value
【讨论】:
我按照你的说法更改了代码client.on('message', (message) => if (message && message.embeds) for (var i = 0; i < message.embeds.length; i++) if ( message.embeds[i].fields[0].name && message.embeds[i].fields[0].name.includes("arena event")) message.channel.send('<@&721372445457645579> JOIN!') );
它可以工作,但一段时间后给我这个错误 TypeError: Cannot read property 'name' or undefined
表示没有字段
试试这个 - client.on('message', (message) => if (message && message.embeds) for (var i = 0; i < message.embeds.length; i++) if ( message.embeds[i].fields.length && message.embeds[i].fields[0].name.includes("arena event")) message.channel.send('<@&721372445457645579> JOIN!') );
以上是关于如何让我的不和谐机器人检测嵌入的字段、标题字段和字段描述?的主要内容,如果未能解决你的问题,请参考以下文章