【问题标题】: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!')
      }
    }

  }
});

【问题讨论】:

    标签: discord.js bots embed


    【解决方案1】:

    MessageEmbed 类中,您可以拥有fields 属性-

     message.embeds[i].fields[0].name
     message.embeds[i].fields[0].value
    

    【讨论】:

    • 我按照你的说法更改了代码client.on('message', (message) =&gt; { if (message &amp;&amp; message.embeds) { for (var i = 0; i &lt; message.embeds.length; i++) { if ( message.embeds[i].fields[0].name &amp;&amp; message.embeds[i].fields[0].name.includes("arena event")) { message.channel.send('&lt;@&amp;721372445457645579&gt; JOIN!') } } } }); 它可以工作,但一段时间后给我这个错误 TypeError: Cannot read property 'name' or undefined
    • 表示没有字段
    • 试试这个 - client.on('message', (message) =&gt; { if (message &amp;&amp; message.embeds) { for (var i = 0; i &lt; message.embeds.length; i++) { if ( message.embeds[i].fields.length &amp;&amp; message.embeds[i].fields[0].name.includes("arena event")) { message.channel.send('&lt;@&amp;721372445457645579&gt; JOIN!') } } } });
    猜你喜欢
    • 2021-02-21
    • 2021-12-17
    • 1970-01-01
    • 1970-01-01
    • 2019-11-05
    • 1970-01-01
    • 2012-06-01
    • 2019-04-11
    • 2020-12-25
    相关资源
    最近更新 更多