diff options
author | Drake <53356436+Ruthenic@users.noreply.github.com> | 2022-10-02 13:12:48 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-10-02 22:12:48 +0200 |
commit | d102d5d976172cf004acf4945e46d274129e776e (patch) | |
tree | 982e5a487fa2f6f0ae4b45c225a220067403811d /src | |
parent | 46585efc029fd9e99deeef7f9d0f0b6446480a35 (diff) | |
download | Vencord-d102d5d976172cf004acf4945e46d274129e776e.tar.gz Vencord-d102d5d976172cf004acf4945e46d274129e776e.tar.bz2 Vencord-d102d5d976172cf004acf4945e46d274129e776e.zip |
Make NitroBypass only add spaces when there are none (#26)
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/nitroBypass.ts | 13 |
1 files changed, 11 insertions, 2 deletions
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(/(?<!\\)<a?:(\w+):(\d+)>/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)}`; + }); } }); }, |