即使没有任何错误,我的 discord.js 机器人也不会回复用户消息

2022-01-10 00:00:00 bots node.js javascript discord.js

我的 discord.js 机器人版本是 13.1.0,我的节点版本是 16.7.0.我在终端中输入了这些命令:npm init 创建 package.json 和 npm install discord.js 安装 discord 包.

my discord.js bot has version 13.1.0, and my node's version is 16.7.0. I entered these commands in the terminal : npm init to create package.json and npm install discord.js to install discord package.

我在 index.js 中编写了代码,并创建了 config.json 将令牌放在那里.

I writed the code in index.js, and I created config.json to put the token there.

当我运行代码时,它会显示准备就绪!"在控制台中并在 Discord 中在线.我还可以毫无问题地更改机器人的状态和活动.这里的问题是机器人不发送或回复消息.

When I run then the code it shows me 'Ready!' in the console and being online in Discord. I also can change the status and the activity of the bot without a problem. The problem here is the bot doesn't send or reply to a message.

下面是代码

const { Client, Intents } = require('discord.js');
const { token } = require('./config.json');

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

client.once('ready', () => {
    console.log('Ready!');
});

client.on ('messageCreate', (message) => {
    if (message.content === 'hello') {
        message.reply('Hello')
    };
});

client.login(token);

这是 config.json 的代码,以防万一.

this's config.json's code just in case.

{
    "token": "my_bot_token!"
}

推荐答案

问题是由于缺少意图引起的.要收听消息,您需要指定 GUILD_MESSAGES 标志:

The issue is caused by missing intents. To listen to messages, you need to specify the GUILD_MESSAGES flag:

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

相关文章