mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-10 00:23:30 +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
|
||||
* @property {string} [username] The new username
|
||||
* @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
|
||||
* @returns {Promise<ClientUser>}
|
||||
*/
|
||||
async edit({ username, avatar }) {
|
||||
async edit({ username, avatar, banner }) {
|
||||
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;
|
||||
@@ -95,6 +100,20 @@ class ClientUser extends User {
|
||||
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
|
||||
* @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 setAFK(afk?: boolean, shardId?: number | readonly number[]): ClientPresence;
|
||||
public setAvatar(avatar: BufferResolvable | Base64Resolvable | null): Promise<this>;
|
||||
public setBanner(banner: BufferResolvable | Base64Resolvable | null): Promise<this>;
|
||||
public setPresence(data: PresenceData): ClientPresence;
|
||||
public setStatus(status: PresenceStatusData, shardId?: number | readonly number[]): ClientPresence;
|
||||
public setUsername(username: string): Promise<this>;
|
||||
@@ -5233,6 +5234,7 @@ export interface ClientPresenceStatusData {
|
||||
export interface ClientUserEditOptions {
|
||||
username?: string;
|
||||
avatar?: BufferResolvable | Base64Resolvable | null;
|
||||
banner?: BufferResolvable | Base64Resolvable | null;
|
||||
}
|
||||
|
||||
export interface CloseEvent {
|
||||
|
||||
Reference in New Issue
Block a user