From 5564f09c51f0ef2248eda9250f40b4c902508cfa Mon Sep 17 00:00:00 2001 From: Daniel Odendahl Jr Date: Fri, 6 Oct 2017 12:50:45 +0000 Subject: [PATCH] Improve emoji flow --- types/emoji.js | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/types/emoji.js b/types/emoji.js index ab57f4b8..bd0bb8f9 100644 --- a/types/emoji.js +++ b/types/emoji.js @@ -14,9 +14,12 @@ class EmojiArgumentType extends ArgumentType { } if (!msg.guild) return false; const search = value.toLowerCase(); - const emojis = msg.guild.emojis.filterArray(emoji => emoji.name.toLowerCase() === search); + let emojis = msg.guild.emojis.filterArray(emoji => emoji.name.toLowerCase().includes(search)); if (!emojis.length) return false; if (emojis.length === 1) return true; + const exactEmojis = msg.guild.emojis.filterArray(emoji => emoji.name.toLowerCase() === search); + if (exactEmojis.length === 1) return true; + if (exactEmojis.length > 0) emojis = exactEmojis; return emojis.length <= 15 ? `${util.disambiguation(emojis.map(emoji => escapeMarkdown(emoji.name)), 'emojis', null)}\n` : 'Multiple emojis found. Please be more specific.'; @@ -24,12 +27,13 @@ class EmojiArgumentType extends ArgumentType { parse(value, msg) { const matches = value.match(/^(?:<:([a-zA-Z0-9_]+):)?([0-9]+)>?$/); - if (matches) return msg.client.emojis.get(matches[2]); - if (!msg.guild) return null; + if (matches) return msg.client.emojis.get(matches[2]) || null; const search = value.toLowerCase(); - const emojis = msg.guild.emojis.filterArray(emoji => emoji.name.toLowerCase() === search); + const emojis = msg.guild.emojis.filterArray(emoji => emoji.name.toLowerCase().includes(search)); if (!emojis.length) return null; if (emojis.length === 1) return emojis[0]; + const exactEmojis = msg.guild.emojis.filterArray(emoji => emoji.name.toLowerCase() === search); + if (exactEmojis.length === 1) return exactEmojis[0]; return null; } }