From 30808f9f0b8cb5d5004cb1f2234b11155d1a5c10 Mon Sep 17 00:00:00 2001 From: Souji Date: Sat, 17 Oct 2020 15:54:22 +0200 Subject: [PATCH] feat(Message): allow custom emoji format for react (#4895) --- src/managers/GuildEmojiManager.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/managers/GuildEmojiManager.js b/src/managers/GuildEmojiManager.js index c13ad1328..acf3576e8 100644 --- a/src/managers/GuildEmojiManager.js +++ b/src/managers/GuildEmojiManager.js @@ -6,6 +6,7 @@ const GuildEmoji = require('../structures/GuildEmoji'); const ReactionEmoji = require('../structures/ReactionEmoji'); const Collection = require('../util/Collection'); const DataResolver = require('../util/DataResolver'); +const { parseEmoji } = require('../util/Util'); /** * Manages API methods for GuildEmojis and stores their cache. @@ -105,6 +106,7 @@ class GuildEmojiManager extends BaseManager { /** * Data that can be resolved to give an emoji identifier. This can be: * * The unicode representation of an emoji + * * The ``, `<:name:id>`, `:name:id` or `a:name:id` emoji identifier string of an emoji * * An EmojiResolvable * @typedef {string|EmojiResolvable} EmojiIdentifierResolvable */ @@ -119,6 +121,10 @@ class GuildEmojiManager extends BaseManager { if (emojiResolvable) return emojiResolvable.identifier; if (emoji instanceof ReactionEmoji) return emoji.identifier; if (typeof emoji === 'string') { + const res = parseEmoji(emoji); + if (res && res.name.length) { + emoji = `${res.animated ? 'a:' : ''}${res.name}${res.id ? `:${res.id}` : ''}`; + } if (!emoji.includes('%')) return encodeURIComponent(emoji); else return emoji; }