mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-10 16:43:31 +01:00
feat: GuildEmbed support (#2766)
* feat: Guild embed support * docs: Fixed setEmbed's reason argument not being optional * fix: Guild#setEmbed should return the guild itself for consistency * docs: Updated typings * fix: Requested change
This commit is contained in:
@@ -483,6 +483,29 @@ class Guild extends Base {
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* The Guild Embed object
|
||||
* @typedef {Object} GuildEmbedData
|
||||
* @property {boolean} enabled Whether the embed is enabled
|
||||
* @property {?GuildChannel} channel The embed channel
|
||||
*/
|
||||
|
||||
/**
|
||||
* Fetches the guild embed.
|
||||
* @returns {Promise<GuildEmbedData>}
|
||||
* @example
|
||||
* // Fetches the guild embed
|
||||
* guild.fetchEmbed()
|
||||
* .then(embed => console.log(`The embed is ${embed.enabled ? 'enabled' : 'disabled'}`))
|
||||
* .catch(console.error);
|
||||
*/
|
||||
fetchEmbed() {
|
||||
return this.client.api.guilds(this.id).embed.get().then(data => ({
|
||||
enabled: data.enabled,
|
||||
channel: data.channel_id ? this.channels.get(data.channel_id) : null,
|
||||
}));
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetches audit logs for this guild.
|
||||
* @param {Object} [options={}] Options for fetching audit logs
|
||||
@@ -790,6 +813,22 @@ class Guild extends Base {
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Edits the guild's embed.
|
||||
* @param {GuildEmbedData} embed The embed for the guild
|
||||
* @param {string} [reason] Reason for changing the guild's embed
|
||||
* @returns {Promise<Guild>}
|
||||
*/
|
||||
setEmbed(embed, reason) {
|
||||
return this.client.api.guilds(this.id).embed.patch({
|
||||
data: {
|
||||
enabled: embed.enabled,
|
||||
channel_id: this.channels.resolveID(embed.channel),
|
||||
},
|
||||
reason,
|
||||
}).then(() => this);
|
||||
}
|
||||
|
||||
/**
|
||||
* Leaves the guild.
|
||||
* @returns {Promise<Guild>}
|
||||
|
||||
Reference in New Issue
Block a user