【问题标题】:TypeError: throw new TypeError('CLIENT_MISSING_INTENTS'); IssueTypeError: throw new TypeError('CLIENT_MISSING_INTENTS');问题
【发布时间】:2022-01-06 03:26:53
【问题描述】:

即使我在我的 Index.js 中添加了意图,我也会收到此消息

Discord.js 版本:13.3.1 节点:16.6.1

我的 Index.js 的代码

const config = require('../config.json');
const mongoose = require('mongoose');
const Discord = require("discord.js");
const bot = new Discord.Client();
const { Intents } = require('discord.js');
const client = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES] });
bot.on("ready", () => {
    console.log(`Bot is online!\n${bot.users.size} users, in ${bot.guilds.size} servers connected.`);
});
// HERE IS MONGODB BUT NOT SHOWING
const Client = require('./Structures/Client');
const WelcomeSchema = require(`../src/Models/welcome`)
bot.on("guildMemberAdd", async  (member, guil) => {
    WelcomeSchema.findOne({ guildId: member.guild.id }, async (err, data) => {
        if(!data) return;
        const user = member.user;
        const channel = member.guild.channels.cache.get(data.channelId);
        channel.send({embed: {color: "BLUE", description: `sd`}})
    })
})
const client = new Client(config);
client.start();

如果您能帮我找到问题,那将意义重大。谢谢!

【问题讨论】:

  • 您可能已将意图添加到 client 常量中,但您使用的是没有意图的 bot 常量。
  • 是的,这是一个问题,但我也找到了另一种方法。我已经解决了我的问题。

标签: node.js discord discord.js issue-tracking


【解决方案1】:

我现在意识到您提供的代码存在很多问题。

没有。 1 - 客户定义

看起来您正在定义三个不同的客户端。 (botclient,可能还有Client。)

您应该以所有事件和命令都绑定到一个客户端对象的方式组织代码,因为运行多个客户端可能会导致速率限制和性能问题。 (以及完全毫无意义。)

错误似乎表明bot 在其创建过程中没有给出任何意图,这可以通过使用...来修复。

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

没有。 2:引用未定义的变量

在您在文件开头定义client 的行上,您使用new Client,尽管Client 尚未导入,并且稍后在文件中导入。这行不通,因为Client 在程序中的那个位置是undefined

没有。 3:重新分配一个常数

您似乎在文件末尾附近重新分配了另一个const client。这将导致错误,因为client 已经是一个无法覆盖的已定义常量。

没有。 4:访问消息意图(也许???)

最近,discord 要求您启用 Gateway Intents 才能访问某些事件和数据(例如服务器消息和成员)。

要启用意图,请转到您的机器人的Discord Developer Dashboard,从侧边栏中选择“机器人”,然后启用您需要访问的意图。

虽然此意图在 2022 年 4 月 30 日之前不需要能够读取消息,但如果您的机器人指定 GUILD_MESSAGES 意图,则需要启用此选项。

如果您的机器人位于 100 多台服务器中,您需要验证您的机器人才能继续访问需要这些意图的数据。更多关于 here.

【讨论】:

  • 您好!我已经解决了我的问题。我更改了客户并添加了 const intents = new Discord.Intents(32767); const bot = new Discord.Client({ 意图 });。它解决了我所有的问题。但是,我不知道如何更新 package.json 和 package-lock.json 当我更新 discord.js 时它总是发送构建错误有没有安全的方法来做到这一点?
猜你喜欢
  • 2021-01-07
  • 1970-01-01
  • 2019-04-20
  • 1970-01-01
  • 2017-09-29
  • 1970-01-01
  • 1970-01-01
  • 2015-07-19
相关资源
最近更新 更多