From adb082305d41194f0392353f1da29d43f2bc5617 Mon Sep 17 00:00:00 2001 From: Jisagi Date: Thu, 11 Jul 2019 13:09:43 +0200 Subject: [PATCH] feat(Guild): add banner to edit method and add setBanner method (#3364) * add setBanner method to Guild * typos fixed & typings added * more typings * docs(Guild): add banner to GuildEditData --- src/structures/Guild.js | 16 ++++++++++++++++ typings/index.d.ts | 2 ++ 2 files changed, 18 insertions(+) diff --git a/src/structures/Guild.js b/src/structures/Guild.js index 30f3175f9..90728501f 100644 --- a/src/structures/Guild.js +++ b/src/structures/Guild.js @@ -770,6 +770,7 @@ class Guild extends Base { * @property {Base64Resolvable} [icon] The icon of the guild * @property {GuildMemberResolvable} [owner] The owner of the guild * @property {Base64Resolvable} [splash] The splash screen of the guild + * @property {Base64Resolvable} [banner] The banner of the guild * @property {DefaultMessageNotifications|number} [defaultMessageNotifications] The default message notifications */ @@ -802,6 +803,7 @@ class Guild extends Base { if (typeof data.icon !== 'undefined') _data.icon = data.icon; if (data.owner) _data.owner_id = this.client.users.resolve(data.owner).id; if (data.splash) _data.splash = data.splash; + if (data.banner) _data.banner = data.banner; if (typeof data.explicitContentFilter !== 'undefined') { _data.explicit_content_filter = Number(data.explicitContentFilter); } @@ -971,6 +973,20 @@ class Guild extends Base { return this.edit({ splash: await DataResolver.resolveImage(splash), reason }); } + /** + * Sets a new guild banner. + * @param {Base64Resolvable|BufferResolvable} banner The new banner of the guild + * @param {string} [reason] Reason for changing the guild's banner + * @returns {Promise} + * @example + * guild.setBanner('./banner.png') + * .then(updated => console.log('Updated the guild banner')) + * .catch(console.error); + */ + async setBanner(banner, reason) { + return this.edit({ banner: await DataResolver.resolveImage(banner), reason }); + } + /** * The data needed for updating a channel's position. * @typedef {Object} ChannelPosition diff --git a/typings/index.d.ts b/typings/index.d.ts index df4831d00..42e8d2dc0 100644 --- a/typings/index.d.ts +++ b/typings/index.d.ts @@ -493,6 +493,7 @@ declare module 'discord.js' { public member(user: UserResolvable): GuildMember | null; public setAFKChannel(afkChannel: ChannelResolvable | null, reason?: string): Promise; public setAFKTimeout(afkTimeout: number, reason?: string): Promise; + public setBanner(banner: Base64Resolvable | null, reason?: string): Promise; public setChannelPositions(channelPositions: ChannelPosition[]): Promise; public setDefaultMessageNotifications(defaultMessageNotifications: DefaultMessageNotifications | number, reason?: string): Promise; public setEmbed(embed: GuildEmbedData, reason?: string): Promise; @@ -1947,6 +1948,7 @@ declare module 'discord.js' { icon?: Base64Resolvable; owner?: GuildMemberResolvable; splash?: Base64Resolvable; + banner?: Base64Resolvable; } interface GuildEmbedData {