I'm having my first go at making a Discord bot. The code is very basic, just a bot that logs its own tag into the console upon startup:
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)
Upon typing node index.js into the VSCode terminal, however, I am given the following error:
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
I have installed discord.js with the command npm i discord.js so I'm using v14.
In discord.js v14, intent flags are available from GatewayIntentBits.
const { Client, GatewayIntentBits } = require('discord.js');
const client = new Discord.Client({
intents: [
GatewayIntentBits.Guilds,
GatewayIntentBits.GuildMessages,
]
})
List of changes:
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
N/A
GatewayIntentBits.MessageContent
the solution I've found based on the documentation is :
const { Client, GatewayIntentBits } = require("discord.js");
const client = new Client({
intents: [
GatewayIntentBits.Guilds,
GatewayIntentBits.GuildMessages,
]});
Hope it helps
Based on the documentation, you can't use strings for intent names, but you import them from the package, so in your case something like
const Discord = require('discord.js');
const client = new Discord.Client({ intents: [
Discord.Intents.FLAGS.GUILDS,
Discord.Intents.FLAGS.GUILD_MESSAGES,
]});
should do the trick.
Related
I'm having my first go at making a Discord bot. The code is very basic, just a bot that logs its own tag into the console upon startup:
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)
Upon typing node index.js into the VSCode terminal, however, I am given the following error:
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
I have installed discord.js with the command npm i discord.js so I'm using v14.
In discord.js v14, intent flags are available from GatewayIntentBits.
const { Client, GatewayIntentBits } = require('discord.js');
const client = new Discord.Client({
intents: [
GatewayIntentBits.Guilds,
GatewayIntentBits.GuildMessages,
]
})
List of changes:
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
N/A
GatewayIntentBits.MessageContent
the solution I've found based on the documentation is :
const { Client, GatewayIntentBits } = require("discord.js");
const client = new Client({
intents: [
GatewayIntentBits.Guilds,
GatewayIntentBits.GuildMessages,
]});
Hope it helps
Based on the documentation, you can't use strings for intent names, but you import them from the package, so in your case something like
const Discord = require('discord.js');
const client = new Discord.Client({ intents: [
Discord.Intents.FLAGS.GUILDS,
Discord.Intents.FLAGS.GUILD_MESSAGES,
]});
should do the trick.
This question already has answers here:
Discord.js: Invalid bitfield flag or number: GUILDS
(3 answers)
Closed 4 months ago.
i am trying to make a discord bot but when i use this code i get an error. please help, as i do not understand!
EDIT: i just attached the error, you're welcome!
code:
const Discord = require('discord.js');
const client = new Discord.Client({
allowedMentions: {
parse: ['users', 'roles'],
repliedUser: true
},
intents: [
"GUILDS",
"GUILD_MESSAGES",
"GUILD_PRESENCES",
"GUILD_MEMBERS",
"GUILD_MESSAGE_REACTIONS"
],
});
client.on('ready', () => {
console.log('I am ready')
});
client.login("TOKEN")
error is:
C:\Users\me\OneDrive\Desktop\code\js\my bot\node_modules\discord.js\src\util\BitField.js:168
throw new RangeError(ErrorCodes.BitFieldInvalid, bit);
^
RangeError [BitFieldInvalid]: Invalid bitfield flag or number: GUILDS.
at Function.resolve (C:\Users\me\OneDrive\Desktop\code\js\my bot\node_modules\discord.js\src\util\BitField.js:168:11)
at C:\Users\me\OneDrive\Desktop\code\js\my bot\node_modules\discord.js\src\util\BitField.js:163:54
at Array.map (<anonymous>)
at Function.resolve (C:\Users\me\OneDrive\Desktop\code\js\my bot\node_modules\discord.js\src\util\BitField.js:163:40)
at Client._validateOptions (C:\Users\me\OneDrive\Desktop\code\js\my bot\node_modules\discord.js\src\client\Client.js:481:41)
at new Client (C:\Users\me\OneDrive\Desktop\code\js\my bot\node_modules\discord.js\src\client\Client.js:78:10)
at Object.<anonymous> (C:\Users\me\OneDrive\Desktop\code\js\my bot\index.js:3:16)
at Module._compile (node:internal/modules/cjs/loader:1105:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1159:10)
at Module.load (node:internal/modules/cjs/loader:981:32) {
[Symbol(code)]: 11
}
In discord.js v14, intent flags are available from GatewayIntentBits.
const { Client, GatewayIntentBits } = require('discord.js');
const client = new Client({
intents: [
GatewayIntentBits.Guilds,
GatewayIntentBits.GuildMessages,
GatewayIntentBits.GuildPresences,
GatewayIntentBits.GuildMembers,
GatewayIntentBits.GuildMessageReactions,
],
});
List of changes:
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
N/A
GatewayIntentBits.MessageContent
They're PascalCase in the newest version. So Guilds not GUILDS
I can't import discord intents
I have discord.js version 13.6.0
This is the start where I import stuff
const { Client, Intents } = require('discord.js');
And here is where I get an error
const bot = new Client({
intents: [
Intents.FLAGS.GUILDS,
Intents.FLAGS.GUILD_MESSAGES
]});
and the error is:
TypeError: Cannot read properties of undefined (reading 'FLAGS')
Not really sure why this error is happening, but you can pass strings instead of the Intents object, e.g.:
const bot = new Client({
intents: [ "GUILDS", "GUILD_MESSAGES" ]
})
This is currently working for me:
import { Client, GatewayIntentBits } from 'discord.js';
const client = new Client({
intents: [
GatewayIntentBits.Guilds,
GatewayIntentBits.GuildMessages,
],
});
Possible intents can be found in the docs for GatewayIntentBits.
i used IntentsBitField instead of Intents and it works for me, here's an example :
import DiscordJS,{ IntentsBitField } from 'discord.js'
const client = new DiscordJS.Client({
intents: [
IntentsBitField.Flags.Guilds,
IntentsBitField.Flags.GuildMessages
]
})
for more information about Gateway Intents check this link enter link description here
I set up the
const { Client, Intents } = require('discord.js');
const client = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES] });
for my discord.js bot.
But now I just get the error message:
Uncaught c:\Users\niko\Documents\bot\receptionist\index.js:8
The line 8 in my index.js is this:
const client = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES] });
remove the first line of the code which states:
const Discord = require('discord.js')
and also delete the third line of the code which follows :
const client= new Discord.Client()
because you're declaring the client with the intents below after declaring the
prefix.
And also delete
const bot = client
const { Client, Intents, MessageEmbed, Presence, Collection, Interaction } = require ('discord.js');
const client = new Client({
intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES]
});
Im using Discord.js V13 and when i try to run the bot i get this error everytime.
Main File:
const { Discord, Intents } = require('discord.js');
const client = new Discord.Client({
partials: ["CHANNEL","MESSAGE","REACTION"],
intents: [Intents.ALL]
});
The error:
const client = new Discord.Client({
^
TypeError: Cannot read properties of undefined (reading 'Client')
The solution here is that i can`t deconstruct the library from itself, and my mistake is that i needed to put only the intents that my bot needs.
My solution:
const Discord = require('discord.js');
const client = new Discord.Client({
partials: ["CHANNEL","MESSAGE","REACTION"],
intents: [
Discord.Intents.FLAGS.GUILDS, // <--line 5 here
Discord.Intents.FLAGS.GUILD_MESSAGE_REACTIONS,
Discord.Intents.FLAGS.GUILD_MESSAGES,
Discord.Intents.FLAGS.GUILD_INVITES,
Discord.Intents.FLAGS.GUILD_MEMBERS,
Discord.Intents.FLAGS.GUILD_PRESENCES
]
});
You cannot deconstruct the library from itself.
Either deconstruct the client:
const { Client, Intents } = require('discord.js');
const client = new Client(...);
// ...
Or utilitize the library entirely:
const Discord = require('discord.js');
const client = new Discord.Client(...);
// ...