所以我知道讓機器人不回應自己的方法是放置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 個來打招呼,但問題是,每當機器人用該串列詞回復某人時,就會繼續發送這些單詞的垃圾郵件。什么代碼可以阻止它自己回復,我應該把它放在哪里
uj5u.com熱心網友回復:
這很簡單。在您的 messageCreate 事件中,只需將其添加為事件的第一行:
if(msg.author == client.user) return;
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/420406.html
標籤:
上一篇:批量檢查視窗位置
下一篇:我的引導輪播在反應中無法正常作業
