mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-19 04:53:30 +01:00
Add support to edit emojis (#1142)
* Add support to edit emojis * Fixes for coding style. * Add and use guildEmoji constants for updateEmoji * Just use the Constant * Fix typo in edit documentation * Specify property types * Fix ridiculous typo. * Update Emoji.js
This commit is contained in:
@@ -123,6 +123,7 @@ class ClientDataManager {
|
|||||||
const oldEmoji = cloneObject(currentEmoji);
|
const oldEmoji = cloneObject(currentEmoji);
|
||||||
currentEmoji.setup(newData);
|
currentEmoji.setup(newData);
|
||||||
this.client.emit(Constants.Events.GUILD_EMOJI_UPDATE, oldEmoji, currentEmoji);
|
this.client.emit(Constants.Events.GUILD_EMOJI_UPDATE, oldEmoji, currentEmoji);
|
||||||
|
return currentEmoji;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,10 @@ const Action = require('./Action');
|
|||||||
|
|
||||||
class GuildEmojiUpdateAction extends Action {
|
class GuildEmojiUpdateAction extends Action {
|
||||||
handle(oldEmoji, newEmoji) {
|
handle(oldEmoji, newEmoji) {
|
||||||
this.client.dataManager.updateEmoji(oldEmoji, newEmoji);
|
const emoji = this.client.dataManager.updateEmoji(oldEmoji, newEmoji);
|
||||||
|
return {
|
||||||
|
emoji,
|
||||||
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -564,6 +564,14 @@ class RESTMethods {
|
|||||||
.then(data => this.client.actions.GuildEmojiCreate.handle(data, guild).emoji);
|
.then(data => this.client.actions.GuildEmojiCreate.handle(data, guild).emoji);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
updateEmoji(emoji, _data) {
|
||||||
|
const data = {};
|
||||||
|
if (_data.name) data.name = _data.name;
|
||||||
|
if (_data.roles) data.roles = _data.roles.map(r => r.id ? r.id : r);
|
||||||
|
return this.rest.makeRequest('patch', Constants.Endpoints.guildEmoji(emoji.guild.id, emoji.id), true, data)
|
||||||
|
.then(newEmoji => this.client.actions.GuildEmojiUpdate.handle(emoji, newEmoji).emoji);
|
||||||
|
}
|
||||||
|
|
||||||
deleteEmoji(emoji) {
|
deleteEmoji(emoji) {
|
||||||
return this.rest.makeRequest('delete', `${Constants.Endpoints.guildEmojis(emoji.guild.id)}/${emoji.id}`, true)
|
return this.rest.makeRequest('delete', `${Constants.Endpoints.guildEmojis(emoji.guild.id)}/${emoji.id}`, true)
|
||||||
.then(() => this.client.actions.GuildEmojiDelete.handle(emoji).data);
|
.then(() => this.client.actions.GuildEmojiDelete.handle(emoji).data);
|
||||||
|
|||||||
@@ -101,6 +101,27 @@ class Emoji {
|
|||||||
return encodeURIComponent(this.name);
|
return encodeURIComponent(this.name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Data for editing an emoji
|
||||||
|
* @typedef {Object} EmojiEditData
|
||||||
|
* @property {string} [name] The name of the emoji
|
||||||
|
* @property {Collection<string, Role>|Array<string|Role>} [roles] Roles to restrict emoji to
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Edits the emoji
|
||||||
|
* @param {EmojiEditData} data The new data for the emoji
|
||||||
|
* @returns {Promise<Emoji>}
|
||||||
|
* @example
|
||||||
|
* // edit a emoji
|
||||||
|
* emoji.edit({name: 'newemoji'})
|
||||||
|
* .then(e => console.log(`Edited emoji ${e}`))
|
||||||
|
* .catch(console.error);
|
||||||
|
*/
|
||||||
|
edit(data) {
|
||||||
|
return this.client.rest.methods.updateEmoji(this, data);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* When concatenated with a string, this automatically returns the emoji mention rather than the object.
|
* When concatenated with a string, this automatically returns the emoji mention rather than the object.
|
||||||
* @returns {string}
|
* @returns {string}
|
||||||
|
|||||||
@@ -125,6 +125,7 @@ const Endpoints = exports.Endpoints = {
|
|||||||
guildMemberNickname: (guildID) => `${Endpoints.guildMember(guildID, '@me')}/nick`,
|
guildMemberNickname: (guildID) => `${Endpoints.guildMember(guildID, '@me')}/nick`,
|
||||||
guildChannels: (guildID) => `${Endpoints.guild(guildID)}/channels`,
|
guildChannels: (guildID) => `${Endpoints.guild(guildID)}/channels`,
|
||||||
guildEmojis: (guildID) => `${Endpoints.guild(guildID)}/emojis`,
|
guildEmojis: (guildID) => `${Endpoints.guild(guildID)}/emojis`,
|
||||||
|
guildEmoji: (guildID, emojiID) => `${Endpoints.guildEmojis(guildID)}/${emojiID}`,
|
||||||
guildSearch: (guildID) => `${Endpoints.guild(guildID)}/messages/search`,
|
guildSearch: (guildID) => `${Endpoints.guild(guildID)}/messages/search`,
|
||||||
guildVoiceRegions: (guildID) => `${Endpoints.guild(guildID)}/regions`,
|
guildVoiceRegions: (guildID) => `${Endpoints.guild(guildID)}/regions`,
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user