我试着做一个不和谐的机器人。
我寻找一些教程,但我的代码似乎不工作..
我创建了一个简单的乒乓命令,但由于某种原因,它不工作!
下面是我的bot.js代码:
require('dotenv').config();
const { Client, GatewayIntentBits } = require('discord.js');
const client = new Client({ intents: [GatewayIntentBits.Guilds, 'GuildMessages'] });
client.on('ready', () => {
console.log(`Thunder bot is ready! Tag is ${client.user.tag}`);
});
client.on('message', (messageCreate) => {
if (message.content === 'ping'){
message.reply('Pong!')
}
});
client.login(process.env.TOKEN);
但是乒乓命令不起作用!
4条答案
按热度按时间v8wbuo2f1#
机器人不响应您有两个原因:
1.您的bot没有“MessageContent”意图
client.on('message'
...可能导致弃用警告以下是更正:
w6mmgewl2#
2个原因;
1.在
client.on()
中输入message
而不是messageCreate
,反之亦然。1.缺少messageContent Intent。
jq6vz3qz3#
1.您需要使用以下Intent来读取消息并对其做出React:
1.您要监听的事件称为“messageCreate”(您监听的是“message”):
这应该可行:
uqdfh47h4#
您没有定义变量message,在这种情况下,您需要将messageCreate改为message,或者您需要
message.content === "something"
和message.reply("somethingelse")
而不是messageCreate.content === "something"
和messageCreate.reply("somethingelse")
。不仅如此,您还需要使用messageContent intent,并且尽管您不必这样做,您应该使用GatewayIntentBits来定义intent,而不是字符串。(例如{ intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages, GatewayIntentBits.MessageContent] }
)