[符号(代码)]:'CLIENT_MISSING_INTENTS'(Discord.js)

Jay*_*Jay 2 node.js npm discord.js

这是我的代码:

    import { Client } from 'discord.js';
    
    const bot = new Client();
    
    bot.on('ready', () => console.log('${bot.user.username} is online'));
    
    bot.login('MyToken');
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误。我安装了节点 14.17.5。

TypeError [CLIENT_MISSING_INTENTS]: Valid intents must be provided for the Client.
    at Client._validateOptions (C:\Users\jayrc\OneDrive\Documents\Coding\Discord\illuminate\node_modules\discord.js\src\client\Client.js:544:13)
    at new Client (C:\Users\jayrc\OneDrive\Documents\Coding\Discord\illuminate\node_modules\discord.js\src\client\Client.js:73:10)
    at file:///C:/Users/jayrc/OneDrive/Documents/Coding/Discord/illuminate/src/bot.js:3:13
    at ModuleJob.run (internal/modules/esm/module_job.js:170:25)
    at async Loader.import (internal/modules/esm/loader.js:178:24)
    at async Object.loadESM (internal/process/esm_loader.js:68:5) {
  [Symbol(code)]: 'CLIENT_MISSING_INTENTS'
Run Code Online (Sandbox Code Playgroud)

Tha*_*ane 6

假设您使用的是 discord.js 的最新版本 (v13),他们在此页面上指定您需要 Node v16.6 或更高版本。

更具体地说,discord.js v13 对其客户端对象引入了许多更改,其中之一就是引入了意图。

您的机器人需要在客户端对象的构造函数中指定其意图,如第 3 行的入门示例

const client = new Client({ intents: [Intents.FLAGS.GUILDS] });
Run Code Online (Sandbox Code Playgroud)

显然,您需要哪些意图取决于您的机器人的行为。您可以在Discord 的官方开发人员文档上阅读意图。