diff --git a/DiscordFreeEmojis64pxInstaller.ps1 b/DiscordFreeEmojis64pxInstaller.ps1 index 687c4c3..38ef03a 100644 --- a/DiscordFreeEmojis64pxInstaller.ps1 +++ b/DiscordFreeEmojis64pxInstaller.ps1 @@ -107,9 +107,9 @@ const BaseColor = "#0cf"; var Discord; var Utils = { - Log: (message) => { console.log(\`%c[FreeEmojis] %c\${message}\`, \`color:\${BaseColor};font-weight:bold\`, "") }, - Warn: (message) => { console.warn(\`%c[FreeEmojis] %c\${message}\`, \`color:\${BaseColor};font-weight:bold\`, "") }, - Error: (message) => { console.error(\`%c[FreeEmojis] %c\${message}\`, \`color:\${BaseColor};font-weight:bold\`, "") } + Log: (message) => { console.log(`%c[FreeEmojis] %c${message}`, `color:${BaseColor};font-weight:bold`, "") }, + Warn: (message) => { console.warn(`%c[FreeEmojis] %c${message}`, `color:${BaseColor};font-weight:bold`, "") }, + Error: (message) => { console.error(`%c[FreeEmojis] %c${message}`, `color:${BaseColor};font-weight:bold`, "") } }; function Init(nonInvasive) @@ -170,36 +170,37 @@ function Init(nonInvasive) const findModuleByUniqueProperties = (propNames, nonInvasive) => findModule(module => propNames.every(prop => module[prop] !== undefined), nonInvasive); - let emojisModule = findModuleByUniqueProperties([ 'getDisambiguatedEmojiContext', 'filterExternal' ], nonInvasive); - if(emojisModule == null) { if(!nonInvasive) Utils.Error("emojisModule not found."); return 0; } + let emojisModule = findModuleByUniqueProperties([ 'getDisambiguatedEmojiContext', 'search' ], nonInvasive); + if(emojisModule == null) { if(!nonInvasive) Utils.Error("emojisModule not found."); return 0; } - let messageEmojiParserModule = findModuleByUniqueProperties([ 'parse', 'parsePreprocessor', 'unparse' ], nonInvasive); - if(messageEmojiParserModule == null) { if(!nonInvasive) Utils.Error("messageEmojiParserModule not found."); return 0; } - - let emojiPickerModule = findModuleByUniqueProperties([ 'useEmojiSelectHandler' ], nonInvasive); - if(emojiPickerModule == null) { if(!nonInvasive) Utils.Error("emojiPickerModule not found."); return 0; } + let messageEmojiParserModule = findModuleByUniqueProperties([ 'parse', 'parsePreprocessor', 'unparse' ], nonInvasive); + if(messageEmojiParserModule == null) { if(!nonInvasive) Utils.Error("messageEmojiParserModule not found."); return 0; } + + let emojiPickerModule = findModuleByUniqueProperties([ 'useEmojiSelectHandler' ], nonInvasive); + if(emojiPickerModule == null) { if(!nonInvasive) Utils.Error("emojiPickerModule not found."); return 0; } - const original_filterExternal = emojisModule.filterExternal; - emojisModule.filterExternal = function(guild, query, n) { - let emojis = emojisModule.getDisambiguatedEmojiContext(guild ? guild.guild_id : null).nameMatchesChain(query); - if(n > 0) emojis = emojis.take(n); - return emojis.value(); - } + const original_search = emojisModule.search; + emojisModule.search = function() { + let result = Discord.original_search.apply(this, arguments); + result.unlocked.push(...result.locked); + result.locked = []; + return result; + } - const original_parse = messageEmojiParserModule.parse; - messageEmojiParserModule.parse = function() { - let result = original_parse.apply(this, arguments); - if(result.invalidEmojis.length !== 0) { - for(let emoji of result.invalidEmojis) { - result.content = result.content.replace(\`<\${emoji.animated ? "a" : ""}:\${emoji.originalName || emoji.name}:\${emoji.id}>\`, emoji.url.split("?")[0] + "?size=64"); - } - result.invalidEmojis = []; - } - return result; - }; + const original_parse = messageEmojiParserModule.parse; + messageEmojiParserModule.parse = function() { + let result = original_parse.apply(this, arguments); + if(result.invalidEmojis.length !== 0) { + for(let emoji of result.invalidEmojis) { + result.content = result.content.replace(`<${emoji.animated ? "a" : ""}:${emoji.originalName || emoji.name}:${emoji.id}>`, emoji.url.split("?")[0] + "?size=64"); + } + result.invalidEmojis = []; + } + return result; + }; - const original_useEmojiSelectHandler = emojiPickerModule.useEmojiSelectHandler; - emojiPickerModule.useEmojiSelectHandler = function(args) { + const original_useEmojiSelectHandler = emojiPickerModule.useEmojiSelectHandler; + emojiPickerModule.useEmojiSelectHandler = function(args) { const { onSelectEmoji, closePopout } = args; const originalHandler = original_useEmojiSelectHandler.apply(this, arguments); return function(data, state) { @@ -212,13 +213,14 @@ function Init(nonInvasive) if(state.isFinalSelection) closePopout(); } }; - }; + }; Utils.Log("loaded"); return 1; } + var InitFails = 0; function TryInit() {