mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-15 02:53:31 +01:00
feat(ClientUser): Add support for setting bot banner (#10176)
* feat(discord.js): added support to setting bot banner added feature to set banner for bot from code level the function is in the experimental phase of Discord. * fix: resolve requested changes * fix: add missing type in ClientUserEditOptions --------- Co-authored-by: Jiralite <33201955+Jiralite@users.noreply.github.com>
This commit is contained in:
@@ -47,6 +47,7 @@ class ClientUser extends User {
|
|||||||
* @typedef {Object} ClientUserEditOptions
|
* @typedef {Object} ClientUserEditOptions
|
||||||
* @property {string} [username] The new username
|
* @property {string} [username] The new username
|
||||||
* @property {?(BufferResolvable|Base64Resolvable)} [avatar] The new avatar
|
* @property {?(BufferResolvable|Base64Resolvable)} [avatar] The new avatar
|
||||||
|
* @property {?(BufferResolvable|Base64Resolvable)} [banner] The new banner
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -54,9 +55,13 @@ class ClientUser extends User {
|
|||||||
* @param {ClientUserEditOptions} options The options to provide
|
* @param {ClientUserEditOptions} options The options to provide
|
||||||
* @returns {Promise<ClientUser>}
|
* @returns {Promise<ClientUser>}
|
||||||
*/
|
*/
|
||||||
async edit({ username, avatar }) {
|
async edit({ username, avatar, banner }) {
|
||||||
const data = await this.client.rest.patch(Routes.user(), {
|
const data = await this.client.rest.patch(Routes.user(), {
|
||||||
body: { username, avatar: avatar && (await resolveImage(avatar)) },
|
body: {
|
||||||
|
username,
|
||||||
|
avatar: avatar && (await resolveImage(avatar)),
|
||||||
|
banner: banner && (await resolveImage(banner)),
|
||||||
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
this.client.token = data.token;
|
this.client.token = data.token;
|
||||||
@@ -95,6 +100,20 @@ class ClientUser extends User {
|
|||||||
return this.edit({ avatar });
|
return this.edit({ avatar });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the banner of the logged in client.
|
||||||
|
* @param {?(BufferResolvable|Base64Resolvable)} banner The new banner
|
||||||
|
* @returns {Promise<ClientUser>}
|
||||||
|
* @example
|
||||||
|
* // Set banner
|
||||||
|
* client.user.setBanner('./banner.png')
|
||||||
|
* .then(user => console.log(`New banner set!`))
|
||||||
|
* .catch(console.error);
|
||||||
|
*/
|
||||||
|
setBanner(banner) {
|
||||||
|
return this.edit({ banner });
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Options for setting activities
|
* Options for setting activities
|
||||||
* @typedef {Object} ActivitiesOptions
|
* @typedef {Object} ActivitiesOptions
|
||||||
|
|||||||
2
packages/discord.js/typings/index.d.ts
vendored
2
packages/discord.js/typings/index.d.ts
vendored
@@ -1093,6 +1093,7 @@ export class ClientUser extends User {
|
|||||||
public setActivity(name: string, options?: Omit<ActivityOptions, 'name'>): ClientPresence;
|
public setActivity(name: string, options?: Omit<ActivityOptions, 'name'>): ClientPresence;
|
||||||
public setAFK(afk?: boolean, shardId?: number | readonly number[]): ClientPresence;
|
public setAFK(afk?: boolean, shardId?: number | readonly number[]): ClientPresence;
|
||||||
public setAvatar(avatar: BufferResolvable | Base64Resolvable | null): Promise<this>;
|
public setAvatar(avatar: BufferResolvable | Base64Resolvable | null): Promise<this>;
|
||||||
|
public setBanner(banner: BufferResolvable | Base64Resolvable | null): Promise<this>;
|
||||||
public setPresence(data: PresenceData): ClientPresence;
|
public setPresence(data: PresenceData): ClientPresence;
|
||||||
public setStatus(status: PresenceStatusData, shardId?: number | readonly number[]): ClientPresence;
|
public setStatus(status: PresenceStatusData, shardId?: number | readonly number[]): ClientPresence;
|
||||||
public setUsername(username: string): Promise<this>;
|
public setUsername(username: string): Promise<this>;
|
||||||
@@ -5233,6 +5234,7 @@ export interface ClientPresenceStatusData {
|
|||||||
export interface ClientUserEditOptions {
|
export interface ClientUserEditOptions {
|
||||||
username?: string;
|
username?: string;
|
||||||
avatar?: BufferResolvable | Base64Resolvable | null;
|
avatar?: BufferResolvable | Base64Resolvable | null;
|
||||||
|
banner?: BufferResolvable | Base64Resolvable | null;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface CloseEvent {
|
export interface CloseEvent {
|
||||||
|
|||||||
Reference in New Issue
Block a user