Skip to content

Commit

Permalink
fix(ClientOptions): make ClientOptions#intents returns an IntentsBi…
Browse files Browse the repository at this point in the history
…tField (#8617)

* fix(ClientOptions): make ClientOptions#intents returns an instance of IntentsBitField

* fix: client.options

* fix(types): Client#options

* fix(WebSocketShard): remove require for IntentsBitField

* fix(eslint): yarn format
  • Loading branch information
Idris1401 committed Oct 9, 2022
1 parent 5f72d8b commit 4c2955a
Show file tree
Hide file tree
Showing 3 changed files with 4 additions and 5 deletions.
2 changes: 1 addition & 1 deletion packages/discord.js/src/client/Client.js
Expand Up @@ -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');
Expand Down
5 changes: 2 additions & 3 deletions packages/discord.js/src/client/websocket/WebSocketShard.js
Expand Up @@ -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');

Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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)],
};
Expand Down
2 changes: 1 addition & 1 deletion packages/discord.js/typings/index.d.ts
Expand Up @@ -768,7 +768,7 @@ export class Client<Ready extends boolean = boolean> extends BaseClient {
public channels: ChannelManager;
public get emojis(): BaseGuildEmojiManager;
public guilds: GuildManager;
public options: ClientOptions;
public options: Omit<ClientOptions, 'intents'> & { intents: IntentsBitField };
public get readyAt(): If<Ready, Date>;
public readyTimestamp: If<Ready, number>;
public sweepers: Sweepers;
Expand Down

0 comments on commit 4c2955a

Please sign in to comment.