2020-07-16 07:42:56 +02:00
|
|
|
import Builtin from "../../structs/builtin";
|
2021-02-05 23:51:54 +01:00
|
|
|
import {WebpackModules, DiscordModules} from "modules";
|
2019-05-30 23:18:52 +02:00
|
|
|
|
2020-07-30 18:24:26 +02:00
|
|
|
|
2019-05-30 23:18:52 +02:00
|
|
|
|
|
|
|
export default new class ColoredText extends Builtin {
|
|
|
|
get name() {return "ColoredText";}
|
2019-06-06 06:28:43 +02:00
|
|
|
get category() {return "appearance";}
|
2019-06-05 06:30:24 +02:00
|
|
|
get id() {return "coloredText";}
|
2019-05-30 23:18:52 +02:00
|
|
|
|
|
|
|
enabled() {
|
|
|
|
this.injectColoredText();
|
|
|
|
}
|
|
|
|
|
|
|
|
disabled() {
|
2020-07-30 18:24:26 +02:00
|
|
|
this.removeColoredText();
|
2019-06-20 04:19:34 +02:00
|
|
|
this.unpatchAll();
|
2019-05-30 23:18:52 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
injectColoredText() {
|
2021-04-03 05:16:23 +02:00
|
|
|
const MessageContent = WebpackModules.getModule(m => m.type && m.type.displayName === "MessageContent");
|
|
|
|
this.after(MessageContent, "type", (thisObject, [props], returnValue) => {
|
|
|
|
const roleColor = this.getRoleColor(props.message.channel_id, props.message.author.id) || "";
|
|
|
|
returnValue.props.style = {color: roleColor};
|
2019-06-20 04:19:34 +02:00
|
|
|
});
|
2019-05-30 23:18:52 +02:00
|
|
|
}
|
|
|
|
|
2021-02-05 23:51:54 +01:00
|
|
|
getRoleColor(channelId, memberId) {
|
|
|
|
const channel = DiscordModules.ChannelStore.getChannel(channelId);
|
|
|
|
if (!channel) return "";
|
|
|
|
const member = DiscordModules.GuildMemberStore.getMember(channel.guild_id, memberId);
|
|
|
|
if (!member) return "";
|
|
|
|
return member.colorString;
|
|
|
|
}
|
|
|
|
|
2019-05-30 23:18:52 +02:00
|
|
|
removeColoredText() {
|
|
|
|
document.querySelectorAll(".markup-2BOw-j").forEach(elem => {
|
|
|
|
elem.style.setProperty("color", "");
|
|
|
|
});
|
|
|
|
}
|
2021-02-05 23:51:54 +01:00
|
|
|
};
|