Lortseam 4 роки тому
батько
коміт
4e9073ed83

+ 8 - 6
src/main/java/me/lortseam/uglyscoreboardfix/Config.java

@@ -1,15 +1,19 @@
 package me.lortseam.uglyscoreboardfix;
 
+import lombok.AccessLevel;
 import lombok.Getter;
+import lombok.NoArgsConstructor;
 import me.lortseam.completeconfig.api.ConfigCategory;
 import net.minecraft.scoreboard.ScoreboardObjective;
 import net.minecraft.scoreboard.ScoreboardPlayerScore;
 
+@NoArgsConstructor(access = AccessLevel.PRIVATE)
 public final class Config implements ConfigCategory {
 
     @Getter
+    private static final Config instance = new Config();
+
     private Type type = Type.CONSECUTIVE_ORDER;
-    @Getter
     private Hide hide = Hide.SCORES;
 
     @Override
@@ -17,13 +21,11 @@ public final class Config implements ConfigCategory {
         return true;
     }
 
-    public enum Hide {
-
-        SIDEBAR, SCORES
-
+    public boolean shouldHide(Hide hide, ScoreboardObjective objective) {
+        return hide == this.hide && type.test(objective);
     }
 
-    public enum Type {
+    private enum Type {
 
         ALWAYS() {
             @Override

+ 7 - 0
src/main/java/me/lortseam/uglyscoreboardfix/Hide.java

@@ -0,0 +1,7 @@
+package me.lortseam.uglyscoreboardfix;
+
+public enum Hide {
+
+    SIDEBAR, SCORES
+
+}

+ 1 - 12
src/main/java/me/lortseam/uglyscoreboardfix/UglyScoreboardFix.java

@@ -4,29 +4,18 @@ import io.github.prospector.modmenu.api.ConfigScreenFactory;
 import io.github.prospector.modmenu.api.ModMenuApi;
 import me.lortseam.completeconfig.ConfigBuilder;
 import me.lortseam.completeconfig.ConfigHandler;
-import me.lortseam.completeconfig.api.ConfigCategory;
-import me.lortseam.completeconfig.api.ConfigEntry;
 import me.lortseam.completeconfig.api.ConfigOwner;
 import net.fabricmc.api.EnvType;
 import net.fabricmc.api.Environment;
-import net.minecraft.scoreboard.ScoreboardObjective;
 
 @Environment(EnvType.CLIENT)
 public class UglyScoreboardFix implements ConfigOwner, ModMenuApi {
 
-    private static Config config = new Config();
     private static ConfigHandler configHandler;
 
-    public static Config.Hide determineFix(ScoreboardObjective objective) {
-        if (!config.getType().test(objective)) {
-            return null;
-        }
-        return config.getHide();
-    }
-
     @Override
     public void onInitializeClientConfig(ConfigBuilder builder) {
-        configHandler = builder.add(config).finish();
+        configHandler = builder.add(Config.getInstance()).finish();
     }
 
     @Override

+ 5 - 5
src/main/java/me/lortseam/uglyscoreboardfix/mixin/MixinInGameHud.java

@@ -1,7 +1,7 @@
 package me.lortseam.uglyscoreboardfix.mixin;
 
 import me.lortseam.uglyscoreboardfix.Config;
-import me.lortseam.uglyscoreboardfix.UglyScoreboardFix;
+import me.lortseam.uglyscoreboardfix.Hide;
 import net.minecraft.client.font.TextRenderer;
 import net.minecraft.client.gui.hud.InGameHud;
 import net.minecraft.client.util.math.MatrixStack;
@@ -18,24 +18,24 @@ public abstract class MixinInGameHud {
 
     @Inject(method = "renderScoreboardSidebar", at = @At("HEAD"), cancellable = true)
     private void uglyscoreboardfix$modifySidebar(MatrixStack matrices, ScoreboardObjective objective, CallbackInfo ci) {
-        if (UglyScoreboardFix.determineFix(objective) == Config.Hide.SIDEBAR) {
+        if (Config.getInstance().shouldHide(Hide.SIDEBAR, objective)) {
             ci.cancel();
         }
     }
 
     @ModifyVariable(method = "renderScoreboardSidebar", at = @At(value = "STORE"))
     private String uglyscoreboardfix$modifyScore(String score, MatrixStack matrices, ScoreboardObjective objective) {
-        return UglyScoreboardFix.determineFix(objective) == Config.Hide.SCORES ? "" : score;
+        return Config.getInstance().shouldHide(Hide.SCORES, objective) ? "" : score;
     }
 
     @ModifyVariable(method = "renderScoreboardSidebar", at = @At(value = "STORE"), ordinal = 2)
     private int uglyscoreboardfix$modifySeperatorWidth(int seperatorWidth, MatrixStack matrices, ScoreboardObjective objective) {
-        return UglyScoreboardFix.determineFix(objective) == Config.Hide.SCORES ? 0 : seperatorWidth;
+        return Config.getInstance().shouldHide(Hide.SCORES, objective) ? 0 : seperatorWidth;
     }
 
     @Redirect(method = "renderScoreboardSidebar", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/font/TextRenderer;getWidth(Ljava/lang/String;)I", ordinal = 1))
     private int uglyscoreboardfix$modifyScoreWidth(TextRenderer textRenderer, String score, MatrixStack matrices, ScoreboardObjective objective) {
-        return UglyScoreboardFix.determineFix(objective) == Config.Hide.SCORES ? 0 : textRenderer.getWidth(score);
+        return Config.getInstance().shouldHide(Hide.SCORES, objective) ? 0 : textRenderer.getWidth(score);
     }
 
 }