我该如何修复 CLIENT_MISSING_INTENTS 错误?

26

我开始学习discord.js,但现在遇到了这个问题。我尝试过搜索,但无法解决。

const Discord = require('discord.js');
// const Discord = require('discord.js');

// Using Intents class
const client = new Discord.Client();

client.on('message', (msg) => {
  // Send back a reply when the specific command has been written by a user.
  if (msg.content === '!hello') {
    msg.reply('Hello, World!');
  }
});

client.login('my_token');

我遇到的错误如下:

在这里输入图片描述

4个回答

34

您需要使用网关意图指定您希望您的机器人接收的事件。

而不是

const client = new Discord.Client();

使用

const client = new Discord.Client({ intents: [Enter intents here] })

例如
Discord.js v14:
const client = new Discord.Client({ intents: [
  Discord.GatewayIntentBits.Guilds,
  Discord.GatewayIntentBits.GuildMessages
]})

Discord.js v13:

const client = new Discord.Client({ intents: ["GUILDS", "GUILD_MESSAGES"] })

注:此内容与编程有关。


这是另一个有用的页面:网关
  • Intents可以帮助您控制机器人接收哪些事件。有关更多信息,请参见特权意图
  • 您需要node.js 16.6或更高版本才能使用discord.js13。在shell中运行npm install node@16
  • 客户端事件列表位于客户端的事件选项卡下。

4

您可以通过在Shell中输入以下内容来降级discord.js版本:

npm i discord.js@12.5.3

最新版本的discord.js功能不太好,所以我使用v12版本。这不是一个复杂的脚本。


2
添加意图。
const { Client, Intents } = require('discord.js');
// Create a new client instance
const client = new Client({ intents: [Intents.FLAGS.GUILDS] });

您可以使用discord.js文档中提供的模板。 文档

0
client = new Discord.Client({intents: 32767})

这应该应用在哪里?替换第二行代码吗?还是其他地方?您能否扩展您的答案,请访问此链接。但请注意,不要包含“编辑:”、“更新:”或类似内容 - 答案应该看起来像今天写的一样。 - Peter Mortensen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接