Skip to content

Commit 640e93d

Browse files
committed
fix: fix crush because of mod menu button not translateble
1 parent 14d2995 commit 640e93d

1 file changed

Lines changed: 32 additions & 25 deletions

File tree

src/main/java/zadudoder/spmhelper/mixin/GameMenuScreenMixin.java

Lines changed: 32 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@
77
import net.minecraft.client.gui.screen.Screen;
88
import net.minecraft.client.gui.tooltip.Tooltip;
99
import net.minecraft.client.gui.widget.ButtonWidget;
10+
import net.minecraft.text.MutableText;
1011
import net.minecraft.text.Text;
12+
import net.minecraft.text.TranslatableTextContent;
1113
import net.minecraft.util.Identifier;
1214
import org.spongepowered.asm.mixin.Mixin;
1315
import org.spongepowered.asm.mixin.Unique;
@@ -34,24 +36,27 @@ private void init(CallbackInfo info) {
3436
int buttonHeight = 20;
3537

3638
for (Element widget : ((GameMenuScreen) (Object) this).children()) {
37-
if (widget instanceof ButtonWidget button &&
38-
(button.getMessage().getString().equals("Моды") || button.getMessage().getString().equals("Mods"))) {
39+
if (widget instanceof ButtonWidget button) {
40+
Text buttonText = button.getMessage();
41+
if (buttonText.getContent() instanceof TranslatableTextContent translatableText &&
42+
translatableText.getKey().equals("menu.modded")) {
3943

40-
int buttonX = button.getX() - buttonWidth - 4;
41-
int buttonY = button.getY();
44+
int buttonX = button.getX() - buttonWidth - 4;
45+
int buttonY = button.getY();
4246

43-
Text tooltipText = Text.translatable("text.spmhelper.current_screen")
44-
.append(Text.translatable("text.spmhelper.screen_type." + SPmHelperConfig.get().defaultScreen.name().toLowerCase()));
47+
Text tooltipText = Text.translatable("text.spmhelper.current_screen")
48+
.append(Text.translatable("text.spmhelper.screen_type." + SPmHelperConfig.get().defaultScreen.name().toLowerCase()));
4549

46-
this.menuButton = ButtonWidget.builder(
47-
Text.literal(""),
48-
btn -> openSelectedScreen())
49-
.dimensions(buttonX, buttonY, buttonWidth, buttonHeight)
50-
.tooltip(Tooltip.of(tooltipText))
51-
.build();
50+
this.menuButton = ButtonWidget.builder(
51+
Text.literal(""),
52+
btn -> openSelectedScreen())
53+
.dimensions(buttonX, buttonY, buttonWidth, buttonHeight)
54+
.tooltip(Tooltip.of(tooltipText))
55+
.build();
5256

53-
this.addDrawableChild(menuButton);
54-
break;
57+
this.addDrawableChild(menuButton);
58+
break;
59+
}
5560
}
5661
}
5762
}
@@ -75,16 +80,18 @@ private void openSelectedScreen() {
7580

7681
@Inject(method = "render", at = @At("TAIL"))
7782
private void onRender(DrawContext context, int mouseX, int mouseY, float delta, CallbackInfo ci) {
78-
int iconSize = 16;
79-
int x = menuButton.getX() + (menuButton.getWidth() - iconSize) / 2;
80-
int y = menuButton.getY() + (menuButton.getHeight() - iconSize) / 2;
81-
Identifier BUTTON_ICON = Identifier.of("spmhelper", "gui/bookwithfeather.png");
82-
context.drawTexture(
83-
BUTTON_ICON,
84-
x, y,
85-
0, 0,
86-
iconSize, iconSize,
87-
iconSize, iconSize
88-
);
83+
if (SPmHelperConfig.get().enableMenuButton) {
84+
int iconSize = 16;
85+
int x = menuButton.getX() + (menuButton.getWidth() - iconSize) / 2;
86+
int y = menuButton.getY() + (menuButton.getHeight() - iconSize) / 2;
87+
Identifier BUTTON_ICON = Identifier.of("spmhelper", "gui/bookwithfeather.png");
88+
context.drawTexture(
89+
BUTTON_ICON,
90+
x, y,
91+
0, 0,
92+
iconSize, iconSize,
93+
iconSize, iconSize
94+
);
95+
}
8996
}
9097
}

0 commit comments

Comments
 (0)