From 565c640bc6cfda9e814b598c4d57be4cc90dcdf6 Mon Sep 17 00:00:00 2001 From: Gus Caplan Date: Mon, 30 Jan 2017 21:47:27 -0600 Subject: [PATCH] Add role support to emoji creation (#1141) * add role support to emojis * specify types --- src/client/rest/RESTMethods.js | 8 +++++--- src/structures/Guild.js | 7 ++++--- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/client/rest/RESTMethods.js b/src/client/rest/RESTMethods.js index 4e65257ab..1815f7357 100644 --- a/src/client/rest/RESTMethods.js +++ b/src/client/rest/RESTMethods.js @@ -559,9 +559,11 @@ class RESTMethods { .then(data => data.pruned); } - createEmoji(guild, image, name) { - return this.rest.makeRequest('post', `${Constants.Endpoints.guildEmojis(guild.id)}`, true, { name, image }) - .then(data => this.client.actions.GuildEmojiCreate.handle(data, guild).emoji); + createEmoji(guild, image, name, roles) { + const data = { image, name }; + if (roles) data.roles = roles.map(r => r.id ? r.id : r); + return this.rest.makeRequest('post', `${Constants.Endpoints.guildEmojis(guild.id)}`, true, data) + .then(emoji => this.client.actions.GuildEmojiCreate.handle(emoji, guild).emoji); } updateEmoji(emoji, _data) { diff --git a/src/structures/Guild.js b/src/structures/Guild.js index 643a30ac9..2c4c93b22 100644 --- a/src/structures/Guild.js +++ b/src/structures/Guild.js @@ -682,6 +682,7 @@ class Guild { * Creates a new custom emoji in the guild. * @param {BufferResolvable|Base64Resolvable} attachment The image for the emoji. * @param {string} name The name for the emoji. + * @param {Collection|Role[]} [roles] Roles to limit the emoji to * @returns {Promise} The created emoji. * @example * // create a new emoji from a url @@ -694,13 +695,13 @@ class Guild { * .then(emoji => console.log(`Created new emoji with name ${emoji.name}!`)) * .catch(console.error); */ - createEmoji(attachment, name) { + createEmoji(attachment, name, roles) { return new Promise(resolve => { if (typeof attachment === 'string' && attachment.startsWith('data:')) { - resolve(this.client.rest.methods.createEmoji(this, attachment, name)); + resolve(this.client.rest.methods.createEmoji(this, attachment, name, roles)); } else { this.client.resolver.resolveBuffer(attachment).then(data => - resolve(this.client.rest.methods.createEmoji(this, data, name)) + resolve(this.client.rest.methods.createEmoji(this, data, name, roles)) ); } });