Skip to content

Commit b3e2973

Browse files
committed
feat: Support 1.19.4
1 parent f296bd7 commit b3e2973

File tree

5 files changed

+19
-31
lines changed

5 files changed

+19
-31
lines changed

gradle.properties

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,15 @@ org.gradle.jvmargs=-Xmx1G
33

44
# Fabric Properties
55
# check these on https://fabricmc.net/develop
6-
minecraft_version=1.19.3
7-
yarn_mappings=1.19.3+build.5
8-
loader_version=0.14.17
6+
minecraft_version=1.19.4
7+
yarn_mappings=1.19.4+build.2
8+
loader_version=0.15.10
99

1010
# Mod Properties
1111
project_name=Mod Settings
12-
mod_version=1.1.0+1.19.3
12+
mod_version=1.1.0+1.19.4
1313
maven_group=se.icus.mag
1414
archives_base_name=modsettings
1515

1616
# Fabric api
17-
fabric_version=0.76.0+1.19.3
17+
fabric_version=0.87.2+1.19.4

src/main/java/se/icus/mag/modsettings/gui/MenuScreensChanger.java

Lines changed: 7 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,11 @@
11
package se.icus.mag.modsettings.gui;
22

3-
import java.util.Optional;
3+
import java.util.List;
44
import net.fabricmc.fabric.api.client.screen.v1.Screens;
55
import net.minecraft.client.MinecraftClient;
6-
import net.minecraft.client.gui.screen.GameMenuScreen;
76
import net.minecraft.client.gui.screen.Screen;
8-
import net.minecraft.client.gui.screen.TitleScreen;
97
import net.minecraft.client.gui.widget.ClickableWidget;
10-
import net.minecraft.client.gui.widget.GridWidget;
11-
import net.minecraft.text.MutableText;
128
import net.minecraft.text.Text;
13-
import net.minecraft.text.TranslatableTextContent;
14-
15-
import java.util.List;
16-
import se.icus.mag.modsettings.mixin.GridWidgetAccessor;
179

1810
public abstract class MenuScreensChanger {
1911
private static final int TITLE_FULL_BUTTON_WIDTH = 200;
@@ -22,17 +14,14 @@ public abstract class MenuScreensChanger {
2214
private static final int BUTTON_HEIGHT = 20;
2315
private static final int BUTTON_VERICAL_SPACING = 24;
2416

25-
public static void postTitleScreenInit(TitleScreen screen) {
17+
public static void postTitleScreenInit(Screen screen) {
2618
List<ClickableWidget> buttons = Screens.getButtons(screen);
27-
injectModSettingsButton(screen, buttons, TITLE_FULL_BUTTON_WIDTH, 2, BUTTON_VERICAL_SPACING / 2);
19+
injectModSettingsButton(screen, buttons, TITLE_FULL_BUTTON_WIDTH, 2, BUTTON_VERICAL_SPACING / 2);
2820
}
2921

30-
public static void postGameMenuScreenInit(GameMenuScreen screen) {
31-
Optional<ClickableWidget> gridWidgetOpt = Screens.getButtons(screen).stream().filter(w -> w instanceof GridWidget).findFirst();
32-
if (gridWidgetOpt.isEmpty()) return;
33-
34-
List<ClickableWidget> buttons = ((GridWidgetAccessor) gridWidgetOpt.get()).getChildren();
35-
injectModSettingsButton(screen, buttons, INGAME_FULL_BUTTON_WIDTH, 4, 0);
22+
public static void postGameMenuScreenInit(Screen screen) {
23+
List<ClickableWidget> buttons = Screens.getButtons(screen);
24+
injectModSettingsButton(screen, buttons, INGAME_FULL_BUTTON_WIDTH, 4, 0);
3625
}
3726

3827
private static void injectModSettingsButton(Screen screen, List<ClickableWidget> buttons, int fullButtonWidth,
@@ -85,8 +74,7 @@ private static void injectModSettingsButton(Screen screen, List<ClickableWidget>
8574

8675
private static boolean buttonHasText(ClickableWidget button, String translationKey) {
8776
Text text = button.getMessage();
88-
return text instanceof MutableText mutableText &&
89-
mutableText.getContent().equals(new TranslatableTextContent(translationKey));
77+
return text.getContent().equals(Text.translatable(translationKey).getContent());
9078
}
9179

9280
public static class ModSettingsButton extends Button {

src/main/java/se/icus/mag/modsettings/gui/ModSettingsScreen.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ private ModSettingsOption[] getAllModConfigOptions() {
6262
public void render(MatrixStack matrices, int mouseX, int mouseY, float delta) {
6363
this.renderBackground(matrices);
6464
this.list.render(matrices, mouseX, mouseY, delta);
65-
drawCenteredText(matrices, this.textRenderer, this.title, this.width / 2, 5, TITLE_COLOR);
65+
drawCenteredTextWithShadow(matrices, this.textRenderer, this.title, this.width / 2, 5, TITLE_COLOR);
6666
super.render(matrices, mouseX, mouseY, delta);
6767
}
6868

src/main/java/se/icus/mag/modsettings/mixin/ScreenMixin.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package se.icus.mag.modsettings.mixin;
22

33
import net.minecraft.client.MinecraftClient;
4-
import net.minecraft.client.gui.AbstractParentElement;
5-
import net.minecraft.client.gui.Drawable;
64
import net.minecraft.client.gui.screen.GameMenuScreen;
75
import net.minecraft.client.gui.screen.Screen;
86
import net.minecraft.client.gui.screen.TitleScreen;
@@ -12,11 +10,13 @@
1210
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
1311
import se.icus.mag.modsettings.gui.MenuScreensChanger;
1412

15-
// Set priority so we run after ModMenu (1000) and MinimalMenu (1100)
13+
// Set priority so we run after Fabric API, used by ModMenu, which uses
14+
// the default priority (1000). We also avoid conflict with MinimalMenu
15+
// which hooks into TitleScreen.init(), which is called as part of Screen.init()
1616
@Mixin(value = Screen.class, priority = 1500)
17-
public abstract class ScreenMixin extends AbstractParentElement implements Drawable {
17+
public abstract class ScreenMixin {
1818

19-
@Inject(method = "init(Lnet/minecraft/client/MinecraftClient;II)V", at = @At("RETURN"))
19+
@Inject(method = "init(Lnet/minecraft/client/MinecraftClient;II)V", at = @At("TAIL"))
2020
private void init(MinecraftClient client, int width, int height, CallbackInfo info) {
2121
Screen screen = (Screen) (Object) this;
2222

src/main/resources/fabric.mod.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,6 @@
3333
"fabricloader": ">=0.7.4",
3434
"fabric-screen-api-v1": ">=1.0.4",
3535
"fabric-key-binding-api-v1": ">=1.0.1",
36-
"minecraft": "~1.19"
36+
"minecraft": "1.19.4"
3737
}
3838
}

0 commit comments

Comments
 (0)