From 9dd3b40f411212b99bb1471d2d83660397c4a41c Mon Sep 17 00:00:00 2001 From: NK Date: Tue, 14 Mar 2023 00:16:21 +0000 Subject: [PATCH] adding edited scoreboard to mod, replacing hypixel url with my url, and SKYBLOCK to LILASE, and hiding server id --- build.gradle.kts | 6 --- .../lilase/events/ScoreboardRenderEvent.java | 17 +++++++ .../night0721/lilase/features/cofl/Cofl.java | 2 +- .../lilase/mixins/MixinGuiIngame.java | 45 +++++++++++++++++++ src/main/resources/mixins.lilase.json | 1 + 5 files changed, 64 insertions(+), 7 deletions(-) create mode 100644 src/main/java/me/night0721/lilase/events/ScoreboardRenderEvent.java create mode 100644 src/main/java/me/night0721/lilase/mixins/MixinGuiIngame.java diff --git a/build.gradle.kts b/build.gradle.kts index 421befa..766ae2e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -54,12 +54,6 @@ val shade: Configuration by configurations.creating { configurations.implementation.get().extendsFrom(this) } -//sourceSets { -// main { -// output.setResourcesDir(java.outputDir) -// } -//} - repositories { maven("https://repo.polyfrost.cc/releases") } diff --git a/src/main/java/me/night0721/lilase/events/ScoreboardRenderEvent.java b/src/main/java/me/night0721/lilase/events/ScoreboardRenderEvent.java new file mode 100644 index 0000000..aced6ce --- /dev/null +++ b/src/main/java/me/night0721/lilase/events/ScoreboardRenderEvent.java @@ -0,0 +1,17 @@ +package me.night0721.lilase.events; + +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.scoreboard.ScoreObjective; +import net.minecraftforge.fml.common.eventhandler.Cancelable; +import net.minecraftforge.fml.common.eventhandler.Event; + +@Cancelable +public class ScoreboardRenderEvent extends Event { + public ScoreObjective objective; + public ScaledResolution resolution; + + public ScoreboardRenderEvent(ScoreObjective objective, ScaledResolution resolution) { + this.objective = objective; + this.resolution = resolution; + } +} \ No newline at end of file diff --git a/src/main/java/me/night0721/lilase/features/cofl/Cofl.java b/src/main/java/me/night0721/lilase/features/cofl/Cofl.java index 0bd83f2..a6a0d40 100644 --- a/src/main/java/me/night0721/lilase/features/cofl/Cofl.java +++ b/src/main/java/me/night0721/lilase/features/cofl/Cofl.java @@ -68,7 +68,7 @@ public class Cofl { Utils.debugLog("Price: " + Integer.parseInt(priceMatcher.group(1).replaceAll(",", ""))); Utils.debugLog("Name: " + nameMatcher.group(1)); price = Integer.parseInt(priceMatcher.group(1).replaceAll(",", "")); - getQueue().add(new QueueItem(command,nameMatcher.group(1), price)); + getQueue().add(new QueueItem(command, nameMatcher.group(1), price)); getQueue().scheduleClear(); } diff --git a/src/main/java/me/night0721/lilase/mixins/MixinGuiIngame.java b/src/main/java/me/night0721/lilase/mixins/MixinGuiIngame.java new file mode 100644 index 0000000..08065f3 --- /dev/null +++ b/src/main/java/me/night0721/lilase/mixins/MixinGuiIngame.java @@ -0,0 +1,45 @@ +package me.night0721.lilase.mixins; + +import me.night0721.lilase.events.ScoreboardRenderEvent; +import net.minecraft.client.gui.GuiIngame; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.scoreboard.ScoreObjective; +import net.minecraft.util.EnumChatFormatting; +import net.minecraftforge.common.MinecraftForge; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.ModifyArg; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import java.util.regex.Pattern; + +/* + Credits: Cephetir + */ +@Mixin(GuiIngame.class) +public class MixinGuiIngame { + + @ModifyArg(method = "renderScoreboard", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/FontRenderer;drawString(Ljava/lang/String;III)I")) + public String a(String text) { + String txt = keepScoreboardCharacters(stripColor(text)).trim(); + if (txt.startsWith("www")) return "§4w§cw§6w§e.§2n§ai§bg§3h§1t§90§d7§42§c1§6.§em§2e"; + if (txt.startsWith("SKY")) return "§c§lLILASE"; + if (Pattern.compile("\\d{2}/\\d{2}/\\d{2}").matcher(txt).find()) return txt.split(" ")[0]; + if (text.startsWith(EnumChatFormatting.RED + "") && Pattern.compile("\\d+").matcher(txt).matches()) return ""; + else return text; + } + + @Inject(method = "renderScoreboard", at = @At("HEAD"), cancellable = true) + public void renderScoreboard(ScoreObjective s, ScaledResolution score, CallbackInfo ci) { + if (MinecraftForge.EVENT_BUS.post(new ScoreboardRenderEvent(s, score))) ci.cancel(); + } + + public String keepScoreboardCharacters(String str) { + return str.replaceAll("[^a-z A-Z:\\d/'.]", ""); + } + + public String stripColor(String str) { + return str.replaceAll("(?i)§[\\dA-FK-OR]", ""); + } +} \ No newline at end of file diff --git a/src/main/resources/mixins.lilase.json b/src/main/resources/mixins.lilase.json index c1d5d8b..020095d 100644 --- a/src/main/resources/mixins.lilase.json +++ b/src/main/resources/mixins.lilase.json @@ -8,6 +8,7 @@ "MixinNetworkManager" ], "client": [ + "MixinGuiIngame", "MixinMinecraft", "MixinNetHandlerPlayClient" ]