mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-09 16:13:31 +01:00
chore: deprecate client options presence (#10419)
* chore: deprecate client options presence * chore: deprecate in typings * fix: actually use the new prop * chore: nit Co-authored-by: Almeida <almeidx@pm.me> * fix: use correct prop --------- Co-authored-by: Almeida <almeidx@pm.me> Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
This commit is contained in:
@@ -32,6 +32,7 @@ const Status = require('../util/Status');
|
||||
const Sweepers = require('../util/Sweepers');
|
||||
|
||||
let deprecationEmittedForPremiumStickerPacks = false;
|
||||
let deprecationEmittedForClientPresence = false;
|
||||
|
||||
/**
|
||||
* The main hub for interacting with the Discord API, and the starting point for any bot.
|
||||
@@ -139,7 +140,7 @@ class Client extends BaseClient {
|
||||
* @private
|
||||
* @type {ClientPresence}
|
||||
*/
|
||||
this.presence = new ClientPresence(this, this.options.presence);
|
||||
this.presence = new ClientPresence(this, this.options.ws.presence ?? this.options.presence);
|
||||
|
||||
Object.defineProperty(this, 'token', { writable: true });
|
||||
if (!this.token && 'DISCORD_TOKEN' in process.env) {
|
||||
@@ -219,6 +220,15 @@ class Client extends BaseClient {
|
||||
this.emit(Events.Debug, `Provided token: ${this._censoredToken}`);
|
||||
|
||||
if (this.options.presence) {
|
||||
if (!deprecationEmittedForClientPresence) {
|
||||
process.emitWarning(
|
||||
'ClientOptions#presence is deprecated and will be removed. Use ClientOptions#ws#presence instead.',
|
||||
'DeprecationWarning',
|
||||
);
|
||||
|
||||
deprecationEmittedForClientPresence = true;
|
||||
}
|
||||
|
||||
this.options.ws.presence = this.presence._parse(this.options.presence);
|
||||
}
|
||||
|
||||
@@ -547,6 +557,9 @@ class Client extends BaseClient {
|
||||
if (typeof options.ws !== 'object' || options.ws === null) {
|
||||
throw new DiscordjsTypeError(ErrorCodes.ClientInvalidOption, 'ws', 'an object');
|
||||
}
|
||||
if (typeof options.ws.presence !== 'object' || options.ws.presence === null) {
|
||||
throw new DiscordjsTypeError(ErrorCodes.ClientInvalidOption, 'ws.presence', 'an object');
|
||||
}
|
||||
if (typeof options.rest !== 'object' || options.rest === null) {
|
||||
throw new DiscordjsTypeError(ErrorCodes.ClientInvalidOption, 'rest', 'an object');
|
||||
}
|
||||
|
||||
@@ -91,6 +91,7 @@ const { version } = require('../../package.json');
|
||||
* only set this if you know what you are doing</warn>
|
||||
* @property {BuildStrategyFunction} [buildStrategy] Builds the strategy to use for sharding
|
||||
* @property {IdentifyThrottlerFunction} [buildIdentifyThrottler] Builds the identify throttler to use for sharding
|
||||
* @property {PresenceData} [presence={}] Presence data to use upon login
|
||||
*/
|
||||
|
||||
/**
|
||||
|
||||
3
packages/discord.js/typings/index.d.ts
vendored
3
packages/discord.js/typings/index.d.ts
vendored
@@ -181,6 +181,7 @@ import {
|
||||
APISelectMenuDefaultValue,
|
||||
SelectMenuDefaultValueType,
|
||||
InviteType,
|
||||
GatewayPresenceUpdateData,
|
||||
} from 'discord-api-types/v10';
|
||||
import { ChildProcess } from 'node:child_process';
|
||||
import { EventEmitter } from 'node:events';
|
||||
@@ -5304,6 +5305,7 @@ export interface ClientOptions {
|
||||
allowedMentions?: MessageMentionOptions;
|
||||
partials?: readonly Partials[];
|
||||
failIfNotExists?: boolean;
|
||||
/** @deprecated Use {@link ClientOptions.ws.presence} instead */
|
||||
presence?: PresenceData;
|
||||
intents: BitFieldResolvable<GatewayIntentsString, number>;
|
||||
waitGuildTimeout?: number;
|
||||
@@ -6876,6 +6878,7 @@ export interface WebhookMessageCreateOptions extends Omit<MessageCreateOptions,
|
||||
export interface WebSocketOptions {
|
||||
large_threshold?: number;
|
||||
version?: number;
|
||||
presence?: GatewayPresenceUpdateData;
|
||||
buildStrategy?(manager: WSWebSocketManager): IShardingStrategy;
|
||||
buildIdentifyThrottler?(manager: WSWebSocketManager): Awaitable<IIdentifyThrottler>;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user