diff --git a/src/builtins/general/24hour.js b/src/builtins/appearance/24hour.js similarity index 96% rename from src/builtins/general/24hour.js rename to src/builtins/appearance/24hour.js index ec4e86f3..5274c5cd 100644 --- a/src/builtins/general/24hour.js +++ b/src/builtins/appearance/24hour.js @@ -3,7 +3,7 @@ import {DiscordModules} from "modules"; export default new class TwentyFourHour extends Builtin { get name() {return "24Hour";} - get category() {return "general";} + get category() {return "appearance";} get id() {return "twentyFourHour";} enabled() { diff --git a/src/builtins/appearance/coloredtext.js b/src/builtins/appearance/coloredtext.js index a529a8c0..69c17298 100644 --- a/src/builtins/appearance/coloredtext.js +++ b/src/builtins/appearance/coloredtext.js @@ -1,7 +1,7 @@ import Builtin from "../../structs/builtin"; import {WebpackModules} from "modules"; -const MessageContent = WebpackModules.getModule(m => m.default && m.default.displayName && m.default.displayName == "Message"); + export default new class ColoredText extends Builtin { get name() {return "ColoredText";} @@ -13,16 +13,28 @@ export default new class ColoredText extends Builtin { } disabled() { + this.removeColoredText(); this.unpatchAll(); } injectColoredText() { - this.after(MessageContent.prototype, "render", (thisObject, args, retVal) => { - this.after(retVal.props, "children", {after: ({returnValue}) => { - const markup = returnValue.props.children[1]; - const roleColor = thisObject.props.message.colorString; - if (markup && roleColor) markup.props.style = {color: roleColor}; - }}); + const MessageContent = WebpackModules.getModule(m => m.default && m.default.displayName && m.default.displayName == "Message"); + this.before(MessageContent, "default", (thisObject, [props]) => { + if (!props || !props.childrenMessageContent) return; + const messageContent = props.childrenMessageContent; + if (!messageContent.type || !messageContent.type.type || messageContent.type.type.displayName != "MessageContent") return; + + const originalType = messageContent.type.type; + if (originalType.__originalMethod) return; // Don't patch again + messageContent.type.type = function(childProps) { + const returnValue = originalType(childProps); + const roleColor = childProps.message.colorString || ""; + returnValue.props.style = {color: roleColor}; + return returnValue; + }; + + messageContent.type.type.__originalMethod = originalType; + Object.assign(messageContent.type.type, originalType); }); } diff --git a/src/builtins/builtins.js b/src/builtins/builtins.js index b667fe2d..b5d59bbf 100644 --- a/src/builtins/builtins.js +++ b/src/builtins/builtins.js @@ -3,7 +3,7 @@ export {default as CustomCSS} from "./customcss"; export {default as WindowPrefs} from "./windowprefs"; -export {default as TwentyFourHour} from "./general/24hour"; +export {default as TwentyFourHour} from "./appearance/24hour"; export {default as ClassNormalizer} from "./general/classnormalizer"; export {default as PublicServers} from "./general/publicservers"; export {default as VoiceDisconnect} from "./general/voicedisconnect"; diff --git a/src/modules/core.js b/src/modules/core.js index 20ab64c8..2c03543a 100644 --- a/src/modules/core.js +++ b/src/modules/core.js @@ -40,14 +40,14 @@ export default new class Core { { name: "jquery", type: "script", - url: "//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js", - backup: "//cdn.jsdelivr.net/gh/jquery/jquery@2.0.0/jquery.min.js" + url: "https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js", + backup: "https://cdn.jsdelivr.net/gh/jquery/jquery@2.0.0/jquery.min.js" }, { name: "bd-stylesheet", type: "style", - url: "https://gitcdn.xyz/repo/rauenzi/BetterDiscordApp/gh-pages/dist/style.css", - backup: "//rauenzi.github.io/BetterDiscordApp/dist/style.css", + url: "https://rauenzi.github.io/BetterDiscordApp/dist/style.css", + backup: "https://gitcdn.xyz/repo/rauenzi/BetterDiscordApp/gh-pages/dist/style.css", localPath: "style.css" } ]; diff --git a/src/modules/patcher.js b/src/modules/patcher.js index 222f398b..edf7bd41 100644 --- a/src/modules/patcher.js +++ b/src/modules/patcher.js @@ -112,6 +112,8 @@ export default class Patcher { children: [] }; patch.proxyFunction = module[functionName] = this.makeOverride(patch); + module[functionName].__originalFunction = patch.originalFunction; + module[functionName].toString = () => patch.originalFunction.toString(); this.patches.push(patch); return patch; }