mirror of
https://github.com/discordjs/discord.js.git
synced 2024-08-21 22:54:41 +12:00
feat(ClientApplication): Approximate guild count and new GET
route (#9713)
* feat: add approx guild count and get route * refactor: replace route * docs: update description of class The replacement route justifies this change. * feat(ClientApplication): add `approximateGuildCount` * refactor: revert now-unnecessary changes
This commit is contained in:
parent
3b18e5b08d
commit
632a9b4965
2 changed files with 35 additions and 3 deletions
|
@ -15,7 +15,7 @@ const PermissionsBitField = require('../util/PermissionsBitField');
|
|||
*/
|
||||
|
||||
/**
|
||||
* Represents a Client OAuth2 Application.
|
||||
* Represents a client application.
|
||||
* @extends {Application}
|
||||
*/
|
||||
class ClientApplication extends Application {
|
||||
|
@ -69,6 +69,26 @@ class ClientApplication extends Application {
|
|||
this.flags = new ApplicationFlagsBitField(data.flags).freeze();
|
||||
}
|
||||
|
||||
if ('approximate_guild_count' in data) {
|
||||
/**
|
||||
* An approximate amount of guilds this application is in.
|
||||
* @type {?number}
|
||||
*/
|
||||
this.approximateGuildCount = data.approximate_guild_count;
|
||||
} else {
|
||||
this.approximateGuildCount ??= null;
|
||||
}
|
||||
|
||||
if ('guild_id' in data) {
|
||||
/**
|
||||
* The id of the guild associated with this application.
|
||||
* @type {?Snowflake}
|
||||
*/
|
||||
this.guildId = data.guild_id;
|
||||
} else {
|
||||
this.guildId ??= null;
|
||||
}
|
||||
|
||||
if ('cover_image' in data) {
|
||||
/**
|
||||
* The hash of the application's cover image
|
||||
|
@ -130,6 +150,15 @@ class ClientApplication extends Application {
|
|||
: this.owner ?? null;
|
||||
}
|
||||
|
||||
/**
|
||||
* The guild associated with this application.
|
||||
* @type {?Guild}
|
||||
* @readonly
|
||||
*/
|
||||
get guild() {
|
||||
return this.client.guilds.cache.get(this.guildId) ?? null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Whether this application is partial
|
||||
* @type {boolean}
|
||||
|
@ -144,8 +173,8 @@ class ClientApplication extends Application {
|
|||
* @returns {Promise<ClientApplication>}
|
||||
*/
|
||||
async fetch() {
|
||||
const app = await this.client.rest.get(Routes.oauth2CurrentApplication());
|
||||
this._patch(app);
|
||||
const data = await this.client.rest.get(Routes.currentApplication());
|
||||
this._patch(data);
|
||||
return this;
|
||||
}
|
||||
|
||||
|
|
3
packages/discord.js/typings/index.d.ts
vendored
3
packages/discord.js/typings/index.d.ts
vendored
|
@ -1012,8 +1012,11 @@ export class ClientApplication extends Application {
|
|||
public botPublic: boolean | null;
|
||||
public botRequireCodeGrant: boolean | null;
|
||||
public commands: ApplicationCommandManager;
|
||||
public guildId: Snowflake | null;
|
||||
public get guild(): Guild | null;
|
||||
public cover: string | null;
|
||||
public flags: Readonly<ApplicationFlagsBitField>;
|
||||
public approximateGuildCount: number | null;
|
||||
public tags: string[];
|
||||
public installParams: ClientApplicationInstallParams | null;
|
||||
public customInstallURL: string | null;
|
||||
|
|
Loading…
Reference in a new issue