[英]Discord.js 'RangeError [BITFIELD_INVALID]: Invalid bitfield flag or number.'
[英]Discord.js: Invalid bitfield flag or number: GUILDS
我有我的第一个 go 来制作 Discord 机器人。 代码非常基本,只是一个在启动时将自己的标签记录到控制台的机器人:
const Discord = require("discord.js");
const TOKEN = "REDACTED"
const client = new Discord.Client({
intents: ["GUILDS", "GUILD_MESSAGES"]
})
client.on("ready", () => {
console.log(`Logged in as ${client.user.tag}`)
})
client.login(TOKEN)
但是,在 VSCode 终端中键入node index.js
后,我收到以下错误:
PS C:\Users\15055\Documents\Alt Formatter> node index.js
C:\Users\15055\Documents\Alt Formatter\node_modules\discord.js\src\util\BitField.js:168
throw new RangeError(ErrorCodes.BitFieldInvalid, bit);
^
RangeError [BitFieldInvalid]: Invalid bitfield flag or number: GUILDS.
at IntentsBitField.resolve (C:\Users\15055\Documents\Alt Formatter\node_modules\discord.js\src\util\BitField.js:168:11)
at C:\Users\15055\Documents\Alt Formatter\node_modules\discord.js\src\util\BitField.js:163:54
at Array.map (<anonymous>)
at IntentsBitField.resolve (C:\Users\15055\Documents\Alt Formatter\node_modules\discord.js\src\util\BitField.js:163:40)
at Client._validateOptions (C:\Users\15055\Documents\Alt Formatter\node_modules\discord.js\src\client\Client.js:481:41)
at new Client (C:\Users\15055\Documents\Alt Formatter\node_modules\discord.js\src\client\Client.js:78:10)
at Object.<anonymous> (C:\Users\15055\Documents\Alt Formatter\index.js:9:16)
at Module._compile (node:internal/modules/cjs/loader:1112:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1166:10)
at Module.load (node:internal/modules/cjs/loader:988:32) {
[Symbol(code)]: 11
}
Node.js v18.4.0
我已经使用命令npm i discord.js
安装了 discord.js,所以我使用的是 v14。
根据文档,您不能使用字符串作为意图名称,但您可以从包中导入它们,因此在您的情况下类似于
const Discord = require('discord.js');
const client = new Discord.Client({ intents: [
Discord.Intents.FLAGS.GUILDS,
Discord.Intents.FLAGS.GUILD_MESSAGES,
]});
应该做的伎俩。
在 discord.js v14 中,可以从GatewayIntentBits
获得意图标志。
const { Client, GatewayIntentBits } = require('discord.js');
const client = new Discord.Client({
intents: [
GatewayIntentBits.Guilds,
GatewayIntentBits.GuildMessages,
]
})
变更清单:
v12/v13 | v14 |
---|---|
GUILDS |
GatewayIntentBits.Guilds |
GUILD_BANS |
GatewayIntentBits.GuildBans |
GUILD_EMOJIS_AND_STICKERS |
GatewayIntentBits.GuildEmojisAndStickers |
GUILD_INTEGRATIONS |
GatewayIntentBits.GuildIntegrations |
GUILD_INVITES |
GatewayIntentBits.GuildInvites |
GUILD_MEMBERS |
GatewayIntentBits.GuildMembers |
GUILD_MESSAGE_REACTIONS |
GatewayIntentBits.GuildMessageReactions |
GUILD_MESSAGE_TYPING |
GatewayIntentBits.GuildMessageTyping |
GUILD_MESSAGES |
GatewayIntentBits.GuildMessages |
GUILD_PRESENCES |
GatewayIntentBits.GuildPresences |
GUILD_SCHEDULED_EVENTS |
GatewayIntentBits.GuildScheduledEvents |
GUILD_VOICE_STATES |
GatewayIntentBits.GuildVoiceStates |
GUILD_WEBHOOKS |
GatewayIntentBits.GuildWebhooks |
DIRECT_MESSAGES |
GatewayIntentBits.DirectMessages |
DIRECT_MESSAGE_TYPING |
GatewayIntentBits.DirectMessageTyping |
DIRECT_MESSAGE_REACTIONS |
GatewayIntentBits.DirectMessageReactions |
我根据文档找到的解决方案是:
const { Client, GatewayIntentBits } = require("discord.js");
const client = new Client({
intents: [
GatewayIntentBits.Guilds,
GatewayIntentBits.GuildMessages,
]});
希望能帮助到你
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.