Parcourir la source

Adjust scoreboard width, modmenu integration

Lortseam il y a 4 ans
Parent
commit
b14585468f

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

@@ -1,5 +1,6 @@
 package me.lortseam.uglyscoreboardfix;
 package me.lortseam.uglyscoreboardfix;
 
 
+import io.github.prospector.modmenu.api.ModMenuApi;
 import lombok.Getter;
 import lombok.Getter;
 import me.lortseam.completeconfig.CompleteConfig;
 import me.lortseam.completeconfig.CompleteConfig;
 import me.lortseam.completeconfig.ConfigManager;
 import me.lortseam.completeconfig.ConfigManager;
@@ -10,12 +11,13 @@ import net.fabricmc.api.EnvType;
 import net.fabricmc.api.Environment;
 import net.fabricmc.api.Environment;
 
 
 @Environment(EnvType.CLIENT)
 @Environment(EnvType.CLIENT)
-public class UglyScoreboardFix implements ClientModInitializer, ConfigCategory {
+public class UglyScoreboardFix implements ClientModInitializer, ConfigCategory, ModMenuApi {
 
 
     private static final String MOD_ID = "uglyscoreboardfix";
     private static final String MOD_ID = "uglyscoreboardfix";
     @Getter
     @Getter
     private static UglyScoreboardFix instance;
     private static UglyScoreboardFix instance;
 
 
+    @Getter
     private final ConfigManager configManager = CompleteConfig.register(MOD_ID);
     private final ConfigManager configManager = CompleteConfig.register(MOD_ID);
     @Getter
     @Getter
     @ConfigEntry
     @ConfigEntry

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

@@ -1,10 +1,12 @@
 package me.lortseam.uglyscoreboardfix.mixin;
 package me.lortseam.uglyscoreboardfix.mixin;
 
 
 import me.lortseam.uglyscoreboardfix.UglyScoreboardFix;
 import me.lortseam.uglyscoreboardfix.UglyScoreboardFix;
+import net.minecraft.client.font.TextRenderer;
 import net.minecraft.client.gui.hud.InGameHud;
 import net.minecraft.client.gui.hud.InGameHud;
 import org.spongepowered.asm.mixin.Mixin;
 import org.spongepowered.asm.mixin.Mixin;
 import org.spongepowered.asm.mixin.injection.At;
 import org.spongepowered.asm.mixin.injection.At;
 import org.spongepowered.asm.mixin.injection.ModifyVariable;
 import org.spongepowered.asm.mixin.injection.ModifyVariable;
+import org.spongepowered.asm.mixin.injection.Redirect;
 
 
 @Mixin(InGameHud.class)
 @Mixin(InGameHud.class)
 public abstract class MixinInGameHud {
 public abstract class MixinInGameHud {
@@ -14,4 +16,14 @@ public abstract class MixinInGameHud {
         return UglyScoreboardFix.getInstance().isEnabled() ? "" : score;
         return UglyScoreboardFix.getInstance().isEnabled() ? "" : score;
     }
     }
 
 
+    @ModifyVariable(method = "renderScoreboardSidebar", at = @At(value = "STORE"), ordinal = 2)
+    private int uglyscoreboardfix$modifySeperatorWidth(int seperatorWidth) {
+        return UglyScoreboardFix.getInstance().isEnabled() ? 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) {
+        return UglyScoreboardFix.getInstance().isEnabled() ? 0 : textRenderer.getWidth(score);
+    }
+
 }
 }

+ 14 - 0
src/main/java/me/lortseam/uglyscoreboardfix/modmenu/ModMenuIntegration.java

@@ -0,0 +1,14 @@
+package me.lortseam.uglyscoreboardfix.modmenu;
+
+import io.github.prospector.modmenu.api.ConfigScreenFactory;
+import io.github.prospector.modmenu.api.ModMenuApi;
+import me.lortseam.uglyscoreboardfix.UglyScoreboardFix;
+
+public class ModMenuIntegration implements ModMenuApi {
+
+    @Override
+    public ConfigScreenFactory<?> getModConfigScreenFactory() {
+        return parent -> UglyScoreboardFix.getInstance().getConfigManager().getConfigScreen(parent);
+    }
+
+}

+ 3 - 0
src/main/resources/fabric.mod.json

@@ -17,6 +17,9 @@
   "entrypoints": {
   "entrypoints": {
     "client": [
     "client": [
       "me.lortseam.uglyscoreboardfix.UglyScoreboardFix"
       "me.lortseam.uglyscoreboardfix.UglyScoreboardFix"
+    ],
+    "modmenu": [
+      "me.lortseam.uglyscoreboardfix.modmenu.ModMenuIntegration"
     ]
     ]
   },
   },
   "mixins": [
   "mixins": [