From caee4c801a184fe47833b999d9683f7569e5fd63 Mon Sep 17 00:00:00 2001 From: Martin Prokoph Date: Wed, 1 Oct 2025 19:00:00 +0200 Subject: [PATCH] port: The Copper Age (1.21.9) Most changes were related to the MidnightLib 1.8.0 update --- build.gradle | 2 +- .../gui/compat/BorderlessMiningCompat.java | 3 ++- .../puzzlemc/gui/screen/PuzzleOptionsScreen.java | 6 +++--- .../gui/screen/widget/PuzzleOptionListWidget.java | 14 ++++++++------ fabric/build.gradle | 2 +- gradle.properties | 14 +++++++------- .../java/net/puzzlemc/neoforge/PuzzleNeoForge.java | 2 +- 7 files changed, 23 insertions(+), 20 deletions(-) diff --git a/build.gradle b/build.gradle index b59c229..cec1550 100755 --- a/build.gradle +++ b/build.gradle @@ -3,7 +3,7 @@ import groovy.json.JsonOutput plugins { id "architectury-plugin" version "3.4-SNAPSHOT" - id "dev.architectury.loom" version "1.10-SNAPSHOT" apply false + id "dev.architectury.loom" version "1.11-SNAPSHOT" apply false id "me.shedaniel.unified-publishing" version "0.1.+" apply false id 'com.github.johnrengelman.shadow' version '8.1.1' apply false } diff --git a/common/src/main/java/net/puzzlemc/gui/compat/BorderlessMiningCompat.java b/common/src/main/java/net/puzzlemc/gui/compat/BorderlessMiningCompat.java index 32257ae..2b342b5 100644 --- a/common/src/main/java/net/puzzlemc/gui/compat/BorderlessMiningCompat.java +++ b/common/src/main/java/net/puzzlemc/gui/compat/BorderlessMiningCompat.java @@ -1,5 +1,6 @@ package net.puzzlemc.gui.compat; +import com.mojang.text2speech.OperatingSystem; import link.infra.borderlessmining.config.ConfigHandler; import net.minecraft.client.MinecraftClient; import net.minecraft.text.Text; @@ -17,7 +18,7 @@ public class BorderlessMiningCompat { bmConfig.setEnabledPending(!bmConfig.isEnabledOrPending()); bmConfig.save(); })); - if (MinecraftClient.IS_SYSTEM_MAC) { + if (OperatingSystem.get() == OperatingSystem.MAC_OS) { PuzzleApi.addToMiscOptions(new PuzzleWidget(Text.translatable("config.borderlessmining.general.enabledmac"), (button) -> button.setMessage(bmConfig.enableMacOS ? YES : NO), (button) -> { bmConfig.enableMacOS = !bmConfig.enableMacOS; bmConfig.setEnabledPending(bmConfig.isEnabled()); diff --git a/common/src/main/java/net/puzzlemc/gui/screen/PuzzleOptionsScreen.java b/common/src/main/java/net/puzzlemc/gui/screen/PuzzleOptionsScreen.java index 9be0c10..c424e99 100755 --- a/common/src/main/java/net/puzzlemc/gui/screen/PuzzleOptionsScreen.java +++ b/common/src/main/java/net/puzzlemc/gui/screen/PuzzleOptionsScreen.java @@ -5,6 +5,7 @@ import net.minecraft.client.gui.tab.GridScreenTab; import net.minecraft.client.gui.tab.Tab; import net.minecraft.client.gui.tab.TabManager; import net.minecraft.client.gui.widget.TabNavigationWidget; +import net.minecraft.client.input.KeyInput; import net.minecraft.screen.ScreenTexts; import net.minecraft.text.Text; import net.puzzlemc.gui.PuzzleApi; @@ -75,9 +76,8 @@ public class PuzzleOptionsScreen extends Screen { list.addAll(options); } @Override - public boolean keyPressed(int keyCode, int scanCode, int modifiers) { - if (this.tabNavigation.trySwitchTabsWithKey(keyCode)) return true; - return super.keyPressed(keyCode, scanCode, modifiers); + public boolean keyPressed(KeyInput input) { + return this.tabNavigation.keyPressed(input) || super.keyPressed(input); } @Override public void tick() { diff --git a/common/src/main/java/net/puzzlemc/gui/screen/widget/PuzzleOptionListWidget.java b/common/src/main/java/net/puzzlemc/gui/screen/widget/PuzzleOptionListWidget.java index ecbb311..cbbb744 100755 --- a/common/src/main/java/net/puzzlemc/gui/screen/widget/PuzzleOptionListWidget.java +++ b/common/src/main/java/net/puzzlemc/gui/screen/widget/PuzzleOptionListWidget.java @@ -1,6 +1,9 @@ package net.puzzlemc.gui.screen.widget; +import eu.midnightdust.lib.config.ButtonEntry; +import eu.midnightdust.lib.config.EntryInfo; import eu.midnightdust.lib.config.MidnightConfig; +import eu.midnightdust.lib.config.MidnightConfigListWidget; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.MinecraftClient; @@ -19,8 +22,7 @@ import java.util.List; import static net.puzzlemc.core.PuzzleCore.LOGGER; -@Environment(EnvType.CLIENT) -public class PuzzleOptionListWidget extends MidnightConfig.MidnightConfigListWidget { +public class PuzzleOptionListWidget extends MidnightConfigListWidget { TextRenderer textRenderer; public PuzzleOptionListWidget(MinecraftClient minecraftClient, int i, int j, int k, int l) { @@ -51,7 +53,7 @@ public class PuzzleOptionListWidget extends MidnightConfig.MidnightConfigListWid } } public void addButton(List buttons, Text text) { - MidnightConfig.EntryInfo info = new MidnightConfig.EntryInfo(null, "puzzle"); + EntryInfo info = new EntryInfo(null, "puzzle"); if (buttons.isEmpty()) info.comment = new MidnightConfig.Comment(){ public Class annotationType() {return null;} public boolean centered() {return true;} @@ -60,12 +62,12 @@ public class PuzzleOptionListWidget extends MidnightConfig.MidnightConfigListWid public String url() {return "";} public String requiredMod() {return "";} }; - var entry = new MidnightConfig.ButtonEntry(buttons, text, info); + var entry = new ButtonEntry(buttons, text, info); this.addEntry(entry); } public void renderWidget(DrawContext context, int mouseX, int mouseY, float delta) { super.renderWidget(context, mouseX, mouseY, delta); - MidnightConfig.ButtonEntry e = this.getHoveredEntry(); + ButtonEntry e = this.getHoveredEntry(); if (client.currentScreen instanceof PuzzleOptionsScreen page && e != null && !e.buttons.isEmpty() && e.text.getContent() instanceof TranslatableTextContent content) { ClickableWidget button = e.buttons.getFirst(); @@ -92,7 +94,7 @@ public class PuzzleOptionListWidget extends MidnightConfig.MidnightConfigListWid } @Override - public MidnightConfig.ButtonEntry getHoveredEntry() { + public ButtonEntry getHoveredEntry() { return super.getHoveredEntry(); } } diff --git a/fabric/build.gradle b/fabric/build.gradle index 95d8052..572350f 100644 --- a/fabric/build.gradle +++ b/fabric/build.gradle @@ -26,7 +26,7 @@ dependencies { modApi "net.fabricmc.fabric-api:fabric-api:${rootProject.fabric_api_version}" modImplementation include ("maven.modrinth:midnightlib:${rootProject.midnightlib_version}-fabric") - modImplementation ("com.terraformersmc:modmenu:${project.modmenu_version}") { + modCompileOnlyApi ("com.terraformersmc:modmenu:${project.modmenu_version}") { exclude(group: "net.fabricmc.fabric-api") } diff --git a/gradle.properties b/gradle.properties index 509247f..d764bda 100755 --- a/gradle.properties +++ b/gradle.properties @@ -1,13 +1,13 @@ # Done to increase the memory available to gradle. org.gradle.jvmargs=-Xmx2G -minecraft_version=1.21.6 +minecraft_version=1.21.9 supported_versions= -yarn_mappings=1.21.6+build.1 +yarn_mappings=1.21.9+build.1 enabled_platforms=fabric,neoforge # Mod Properties -mod_version = 2.1.1 +mod_version = 2.1.2 maven_group = net.puzzlemc archives_base_name = puzzle release_type=release @@ -15,14 +15,14 @@ curseforge_id=563977 modrinth_id=3IuO68q1 # Modloaders -fabric_loader_version=0.16.14 -fabric_api_version=0.127.0+1.21.6 +fabric_loader_version=0.17.2 +fabric_api_version=0.133.14+1.21.9 -neoforge_version=21.6.0-beta +neoforge_version=21.9.3-beta yarn_mappings_patch_neoforge_version = 1.21+build.4 # Libraries -midnightlib_version = 1.7.4+1.21.6 +midnightlib_version = 1.8.1+1.21.9 modmenu_version = 15.0.0-beta.1 # Mod Integrations diff --git a/neoforge/src/main/java/net/puzzlemc/neoforge/PuzzleNeoForge.java b/neoforge/src/main/java/net/puzzlemc/neoforge/PuzzleNeoForge.java index 9ce9de4..6a7002a 100644 --- a/neoforge/src/main/java/net/puzzlemc/neoforge/PuzzleNeoForge.java +++ b/neoforge/src/main/java/net/puzzlemc/neoforge/PuzzleNeoForge.java @@ -21,7 +21,7 @@ public class PuzzleNeoForge { ModList.get().getModContainerById(MOD_ID).orElseThrow().registerExtensionPoint(IConfigScreenFactory.class, (client, parent) -> new PuzzleOptionsScreen(parent)); } - @EventBusSubscriber(modid = MOD_ID, bus = EventBusSubscriber.Bus.MOD, value = Dist.CLIENT) + @EventBusSubscriber(modid = MOD_ID, value = Dist.CLIENT) public static class MidnightLibBusEvents { @SubscribeEvent public static void onResourceReload(AddClientReloadListenersEvent event) {