UsernameHighlight
unknown
java
a year ago
3.3 kB
18
Indexable
package me.blindedbythesun.nya.modules;
import meteordevelopment.meteorclient.events.game.ReceiveMessageEvent;
import meteordevelopment.meteorclient.settings.EnumSetting;
import meteordevelopment.meteorclient.settings.Setting;
import meteordevelopment.meteorclient.settings.SettingGroup;
import meteordevelopment.meteorclient.systems.modules.Module;
import meteordevelopment.orbit.EventHandler;
import net.minecraft.text.MutableText;
import net.minecraft.text.Text;
import net.minecraft.util.Formatting;
import java.util.Locale;
public class UsernameHighlight extends Module {
private final SettingGroup sgGeneral = settings.getDefaultGroup();
public enum HighlightColor {
Black(Formatting.BLACK), DarkBlue(Formatting.DARK_BLUE), DarkGreen(Formatting.DARK_GREEN),
DarkAqua(Formatting.DARK_AQUA), DarkRed(Formatting.DARK_RED), DarkPurple(Formatting.DARK_PURPLE),
Gold(Formatting.GOLD), Gray(Formatting.GRAY), DarkGray(Formatting.DARK_GRAY), Blue(Formatting.BLUE),
Green(Formatting.GREEN), Aqua(Formatting.AQUA), Red(Formatting.RED), LightPurple(Formatting.LIGHT_PURPLE),
Yellow(Formatting.YELLOW);
public final Formatting formatting;
HighlightColor(Formatting formatting) {
this.formatting = formatting;
}
}
private final Setting<HighlightColor> highlightColor = sgGeneral.add(new EnumSetting.Builder<HighlightColor>()
.name("highlight-color")
.description("The color to highlight your username in chat messages")
.defaultValue(HighlightColor.LightPurple)
.build());
private String nameToHighlight;
public UsernameHighlight() {
super(me.blindedbythesun.nya.Addon.CATEGORY, "username-highlight", "Highlights your username in chat messages");
}
@EventHandler
private void onReceiveMessage(ReceiveMessageEvent event) {
Text originalText = event.getMessage();
String lowerNameToHighlight = nameToHighlight.toLowerCase(Locale.ROOT);
MutableText result = Text.empty();
for (Text sibling : originalText.getSiblings()) {
String content = sibling.getString();
String lowerContent = content.toLowerCase(Locale.ROOT);
int startIndex = 0;
while (true) {
int index = lowerContent.indexOf(lowerNameToHighlight, startIndex);
if (index == -1) {
result.append(Text.literal(content.substring(startIndex)).setStyle(sibling.getStyle()));
break;
}
if (index > startIndex) {
result.append(Text.literal(content.substring(startIndex, index)).setStyle(sibling.getStyle()));
}
result.append(Text.literal(content.substring(index, index + nameToHighlight.length()))
.setStyle(sibling.getStyle().withColor(highlightColor.get().formatting)));
startIndex = index + nameToHighlight.length();
}
}
event.setMessage(result);
}
@Override
public void onActivate() {
nameToHighlight = mc.player.getGameProfile().getName();
}
@Override
public void onDeactivate() {
nameToHighlight = "";
}
}Editor is loading...
Leave a Comment