为什么 JavaScript 中的 Discord 聊天机器人没有响应?



我正在按照discord教程制作这个简单的聊天机器人。

聊天机器人已经登录到我的服务器…我在Discord上的聊天室里输入"ping",但聊天机器人没有回应"ping"。应该的。

下面是main.js代码:
const { Client, Intents } = require('discord.js');
const client = new Client({ intents: [Intents.FLAGS.GUILDS] });
client.on('ready', () => {
console.log(`Logged in as ${client.user.tag}!`);
});
client.on('interactionCreate', async interaction => {
if (!interaction.isCommand()) return;
if (interaction.commandName === 'ping') {
console.log("we got a hello!")
await interaction.reply('Pong!');
}
});
client.login('token');

注意:我有一个秘密令牌,它有'token'

在我的终端上显示Logged in as Quote.it#4979!,当我在服务器上查看它时,我的bot是在线的。

但是当我在Discord中写"ping"时什么也没有发生。我怎样才能更好地诊断出发生了什么?

我在这里看到了几个问题,首先,它看起来不像您正在注册ping命令(见这里),其次,您没有正确的意图,您需要GUILD_MESSAGES(见这里)。

这是一个简单的乒乓球机器人:

const { Client, Intents } = require('discord.js')
const client = new Client({
intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES],
partials: ['CHANNEL', 'MESSAGE'],
})
client.on('ready', () => {
console.log(`Logged in as ${client.user.tag}!`)
})
client.on('messageCreate', (message) => {
if (message.content.startsWith('ping')) {
message.channel.send('pong!')
}
})
client.login('token')

最新更新