Improved EmojiIdentifierResolvable support (#1361)

* EmojiIdentifierResolvable now supports emoji IDs and pre-encoded unicode

* forgot to return the identifier and not the emoji itself

* using ? in JSDoc instead of |null
This commit is contained in:
Lana Reeve
2017-04-12 00:32:18 -04:00
committed by Crawl
parent c5e2ea7458
commit 40c610987e

View File

@@ -236,21 +236,24 @@ class ClientDataResolver {
/** /**
* Data that can be resolved to give an emoji identifier. This can be: * Data that can be resolved to give an emoji identifier. This can be:
* * A string * * The unicode representation of an emoji
* * An Emoji * * A custom emoji ID
* * A ReactionEmoji * * An Emoji object
* * A ReactionEmoji object
* @typedef {string|Emoji|ReactionEmoji} EmojiIdentifierResolvable * @typedef {string|Emoji|ReactionEmoji} EmojiIdentifierResolvable
*/ */
/** /**
* Resolves an EmojiResolvable to an emoji identifier * Resolves an EmojiResolvable to an emoji identifier
* @param {EmojiIdentifierResolvable} emoji The emoji resolvable to resolve * @param {EmojiIdentifierResolvable} emoji The emoji resolvable to resolve
* @returns {string} * @returns {?string}
*/ */
resolveEmojiIdentifier(emoji) { resolveEmojiIdentifier(emoji) {
if (emoji instanceof Emoji || emoji instanceof ReactionEmoji) return emoji.identifier; if (emoji instanceof Emoji || emoji instanceof ReactionEmoji) return emoji.identifier;
if (typeof emoji === 'string') { if (typeof emoji === 'string') {
if (!emoji.includes('%')) return encodeURIComponent(emoji); if (!isNaN(parseInt(emoji))) return this.client.emojis.get(emoji).identifier;
else if (!emoji.includes('%')) return encodeURIComponent(emoji);
else return emoji;
} }
return null; return null;
} }