From d102d5d976172cf004acf4945e46d274129e776e Mon Sep 17 00:00:00 2001 From: Drake <53356436+Ruthenic@users.noreply.github.com> Date: Sun, 2 Oct 2022 13:12:48 -0700 Subject: Make NitroBypass only add spaces when there are none (#26) --- src/plugins/nitroBypass.ts | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/plugins/nitroBypass.ts b/src/plugins/nitroBypass.ts index cd77704..4a0ed44 100644 --- a/src/plugins/nitroBypass.ts +++ b/src/plugins/nitroBypass.ts @@ -48,6 +48,10 @@ export default definePlugin({ const { getCustomEmojiById } = findByProps("getCustomEmojiById"); + function getWordBoundary(origStr, offset) { + return (!origStr[offset] || /\s/.test(origStr[offset])) ? "" : " "; + } + this.preSend = addPreSendListener((_, messageObj) => { const guildId = this.guildId; for (const emoji of messageObj.validNonShortcutEmojis) { @@ -56,7 +60,9 @@ export default definePlugin({ const emojiString = `<${emoji.animated ? 'a' : ''}:${emoji.originalName || emoji.name}:${emoji.id}>`; const url = emoji.url.replace(/\?size=[0-9]+/, `?size=48`); - messageObj.content = messageObj.content.replace(emojiString, ` ${url} `); + messageObj.content = messageObj.content.replace(emojiString, (match, offset, origStr) => { + return `${getWordBoundary(origStr, offset-1)}${url}${getWordBoundary(origStr, offset+match.length)}`; + }); } }); @@ -66,9 +72,12 @@ export default definePlugin({ for (const [emojiStr, _, emojiId] of messageObj.content.matchAll(/(?/ig)) { const emoji = getCustomEmojiById(emojiId); if (emoji == null || (emoji.guildId === guildId && !emoji.animated)) continue; + if (!emoji.require_colons) continue; const url = emoji.url.replace(/\?size=[0-9]+/, `?size=48`); - messageObj.content = messageObj.content.replace(emojiStr, ` ${url} `); + messageObj.content = messageObj.content.replace(emojiStr, (match, offset, origStr) => { + return `${getWordBoundary(origStr, offset-1)}${url}${getWordBoundary(origStr, offset+match.length)}`; + }); } }); }, -- cgit