From 4dc487dc3768429fd63e05b1a14f4fd80a0991b9 Mon Sep 17 00:00:00 2001 From: Micle Date: Wed, 15 May 2024 18:33:21 +0100 Subject: [PATCH] Added client config. Added config option for screen text gui. --- .../mixin/GuiRenderTickMixin.java | 6 +++++ .../micle/loginprotection/setup/Config.java | 26 ++++++++++++++++--- 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/src/main/java/dev/micle/loginprotection/mixin/GuiRenderTickMixin.java b/src/main/java/dev/micle/loginprotection/mixin/GuiRenderTickMixin.java index 8b63d5d..fb5f396 100644 --- a/src/main/java/dev/micle/loginprotection/mixin/GuiRenderTickMixin.java +++ b/src/main/java/dev/micle/loginprotection/mixin/GuiRenderTickMixin.java @@ -4,6 +4,7 @@ import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.vertex.PoseStack; import dev.micle.loginprotection.data.ProtectedPlayer; import dev.micle.loginprotection.proxy.Proxy; +import dev.micle.loginprotection.setup.Config; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Font; import net.minecraft.client.gui.GuiGraphics; @@ -20,6 +21,11 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; public class GuiRenderTickMixin { @Inject(method = "render", at = @At(value = "HEAD")) private void onClientTick(GuiGraphics guiGraphics, float partialTick, CallbackInfo ci) { + // Check if enabled + if (!Config.Client.GUI_SCREEN_TEXT_ENABLED.get()) { + return; + } + // Setup PoseStack poseStack = guiGraphics.pose(); poseStack.pushPose(); diff --git a/src/main/java/dev/micle/loginprotection/setup/Config.java b/src/main/java/dev/micle/loginprotection/setup/Config.java index 933bb57..a0e6942 100644 --- a/src/main/java/dev/micle/loginprotection/setup/Config.java +++ b/src/main/java/dev/micle/loginprotection/setup/Config.java @@ -14,14 +14,34 @@ import java.util.List; public final class Config { public static final Server SERVER; public static final ForgeConfigSpec SERVER_SPEC; + public static final Client CLIENT; + public static final ForgeConfigSpec CLIENT_SPEC; + static { - Pair spec_pair = new ForgeConfigSpec.Builder().configure(Server::new); - SERVER = spec_pair.getLeft(); - SERVER_SPEC = spec_pair.getRight(); + Pair specPairServer = new ForgeConfigSpec.Builder().configure(Server::new); + SERVER = specPairServer.getLeft(); + SERVER_SPEC = specPairServer.getRight(); + + Pair specPairClient = new ForgeConfigSpec.Builder().configure(Client::new); + CLIENT = specPairClient.getLeft(); + CLIENT_SPEC = specPairClient.getRight(); } public static void init() { ModLoadingContext.get().registerConfig(ModConfig.Type.SERVER, SERVER_SPEC); + ModLoadingContext.get().registerConfig(ModConfig.Type.CLIENT, CLIENT_SPEC); + } + + public static class Client { + public static ForgeConfigSpec.BooleanValue GUI_SCREEN_TEXT_ENABLED; + + Client(ForgeConfigSpec.Builder builder) { + builder.comment("GUI settings.").push("GUI"); + GUI_SCREEN_TEXT_ENABLED = builder + .comment("Whether current protection status is displayed as text on screen.") + .define("guiScreenTextEnabled", true); + builder.pop(); + } } public static class Server {