diff --git a/packages/discord.js/src/client/Client.js b/packages/discord.js/src/client/Client.js index 8d629d871693..0cf4c2543fd6 100644 --- a/packages/discord.js/src/client/Client.js +++ b/packages/discord.js/src/client/Client.js @@ -479,7 +479,7 @@ class Client extends BaseClient { if (typeof options.intents === 'undefined') { throw new DiscordjsTypeError(ErrorCodes.ClientMissingIntents); } else { - options.intents = IntentsBitField.resolve(options.intents); + options.intents = new IntentsBitField(options.intents).freeze(); } if (typeof options.shardCount !== 'number' || isNaN(options.shardCount) || options.shardCount < 1) { throw new DiscordjsTypeError(ErrorCodes.ClientInvalidOption, 'shardCount', 'a number greater than or equal to 1'); diff --git a/packages/discord.js/src/client/websocket/WebSocketShard.js b/packages/discord.js/src/client/websocket/WebSocketShard.js index 392fc5cc0ad7..5683938f939d 100644 --- a/packages/discord.js/src/client/websocket/WebSocketShard.js +++ b/packages/discord.js/src/client/websocket/WebSocketShard.js @@ -5,7 +5,6 @@ const { setTimeout, setInterval, clearTimeout, clearInterval } = require('node:t const { GatewayDispatchEvents, GatewayIntentBits, GatewayOpcodes } = require('discord-api-types/v10'); const WebSocket = require('../../WebSocket'); const Events = require('../../util/Events'); -const IntentsBitField = require('../../util/IntentsBitField'); const Status = require('../../util/Status'); const WebSocketShardEvents = require('../../util/WebSocketShardEvents'); @@ -512,7 +511,7 @@ class WebSocketShard extends EventEmitter { this.emit(WebSocketShardEvents.AllReady); return; } - const hasGuildsIntent = new IntentsBitField(this.manager.client.options.intents).has(GatewayIntentBits.Guilds); + const hasGuildsIntent = this.manager.client.options.intents.has(GatewayIntentBits.Guilds); // Step 2. Create a timeout that will mark the shard as ready if there are still unavailable guilds // * The timeout is 15 seconds by default // * This can be optionally changed in the client options via the `waitGuildTimeout` option @@ -687,7 +686,7 @@ class WebSocketShard extends EventEmitter { // Clone the identify payload and assign the token and shard info const d = { ...client.options.ws, - intents: IntentsBitField.resolve(client.options.intents), + intents: client.options.intents.bitfield, token: client.token, shard: [this.id, Number(client.options.shardCount)], }; diff --git a/packages/discord.js/typings/index.d.ts b/packages/discord.js/typings/index.d.ts index b6ebc3ef2289..f7dae2ba6fa0 100644 --- a/packages/discord.js/typings/index.d.ts +++ b/packages/discord.js/typings/index.d.ts @@ -768,7 +768,7 @@ export class Client extends BaseClient { public channels: ChannelManager; public get emojis(): BaseGuildEmojiManager; public guilds: GuildManager; - public options: ClientOptions; + public options: Omit & { intents: IntentsBitField }; public get readyAt(): If; public readyTimestamp: If; public sweepers: Sweepers;