簡體   English   中英

如何使機器人不響應自身 discord.js

[英]How to make a bot not respond to itself discord.js

所以我知道if (message.author.id === client.user.id) return; 或者if(message.author.bot) return; 但我不知道我應該把它放在哪里。 我的代碼是這樣的:

const {Client, Intents} = require('discord.js'); 
const dotenv = require('dotenv')

dotenv.config();

const client = new Client(
    {
        intents:[
             Intents.FLAGS.GUILDS,
             Intents.FLAGS.GUILD_MESSAGES,
        ]
    }
);

client.on('ready', ()=>{
    console.log('bot working ngl')
})

//greetings
const random_greeting = () =>{
    return Math.floor(Math.random() * 6);
  }
  
  client.on('messageCreate', msg=>{
    let greeting = ['Hi', 'Yo', 'Ohayo', 'Hello', '👋👋', 'Ok...',]
    if (msg.content === 'hi', 'yo'){
      msg.reply(greeting[random_greeting()])
    }
  })

  client.on('message', message => {
    if (message.author.id === client.user.id) return;
  })
client.login(process.env.TOKEN)

正如您所看到的,當有人打招呼時,機器人會通過說出列表中 6 個單詞中的 1 個來打招呼,但問題是,每當機器人用該列表詞回復某人時,就會繼續發送這些單詞的垃圾郵件。 什么代碼可以阻止它自己回復,我應該把它放在哪里

只需添加到您的 messageCreate 事件:

  if (message.author.bot) return;

這很簡單。 在您的 messageCreate 事件中,只需將其添加為事件的第一行:

if(msg.author == client.user) return;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM