From 765ad60d0b5a8dc595fd3170a9c25bfa4fc82a4e Mon Sep 17 00:00:00 2001 From: Martin Prokoph Date: Fri, 6 Sep 2024 12:00:06 +0200 Subject: [PATCH] Fix crash on MacOS since v1.6.0 - Closes #67 - Temporarily disabled function popups on MacOS until a solution without non-headless java mode is found - Also exposed a couple of fields for an upcoming Puzzle update --- common/src/main/java/eu/midnightdust/core/MidnightLib.java | 7 ++++--- .../java/eu/midnightdust/lib/config/MidnightConfig.java | 7 +++++-- gradle.properties | 2 +- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/common/src/main/java/eu/midnightdust/core/MidnightLib.java b/common/src/main/java/eu/midnightdust/core/MidnightLib.java index e3601b4..99986cc 100755 --- a/common/src/main/java/eu/midnightdust/core/MidnightLib.java +++ b/common/src/main/java/eu/midnightdust/core/MidnightLib.java @@ -22,9 +22,10 @@ public class MidnightLib { @Environment(EnvType.CLIENT) public static void onInitializeClient() { - try { System.setProperty("java.awt.headless", "false"); - if (!IS_SYSTEM_MAC) UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); - } catch (Exception e) { LOGGER.error("Error setting system look and feel", e); } + try { if (!IS_SYSTEM_MAC) { + System.setProperty("java.awt.headless", "false"); + UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); + }} catch (Exception e) { LOGGER.error("Error setting system look and feel", e); } MidnightLibConfig.init(MOD_ID, MidnightLibConfig.class); } public static void registerAutoCommand() { diff --git a/common/src/main/java/eu/midnightdust/lib/config/MidnightConfig.java b/common/src/main/java/eu/midnightdust/lib/config/MidnightConfig.java index 08e8cff..041702d 100755 --- a/common/src/main/java/eu/midnightdust/lib/config/MidnightConfig.java +++ b/common/src/main/java/eu/midnightdust/lib/config/MidnightConfig.java @@ -25,6 +25,8 @@ import java.util.*; import java.util.function.BiFunction; import java.util.function.Function; import java.util.function.Predicate; import java.util.regex.Pattern; +import static net.minecraft.client.MinecraftClient.IS_SYSTEM_MAC; + /** MidnightConfig v2.6.0 by Martin "Motschen" Prokoph * Single class config library - feel free to copy! * Based on ... @@ -372,6 +374,7 @@ public abstract class MidnightConfig { } List widgets = Lists.newArrayList(widget, resetButton); if (info.actionButton != null) { + if (IS_SYSTEM_MAC) info.actionButton.active = false; widget.setWidth(widget.getWidth() - 22); widget.setX(widget.getX() + 22); widgets.add(info.actionButton); } if (cycleButton != null) { @@ -401,7 +404,7 @@ public abstract class MidnightConfig { } @Environment(EnvType.CLIENT) public static class MidnightConfigListWidget extends ElementListWidget { - boolean renderHeaderSeparator = true; + public boolean renderHeaderSeparator = true; public MidnightConfigListWidget(MinecraftClient client, int width, int height, int y, int itemHeight) { super(client, width, height, y, itemHeight); } @Override public int getScrollbarX() { return this.width -7; } @@ -418,7 +421,7 @@ public abstract class MidnightConfig { } public static class ButtonEntry extends ElementListWidget.Entry { private static final TextRenderer textRenderer = MinecraftClient.getInstance().textRenderer; - private final Text text; + public final Text text; public final List buttons; public final EntryInfo info; public boolean centered = false; diff --git a/gradle.properties b/gradle.properties index d3b6ba2..16ef449 100644 --- a/gradle.properties +++ b/gradle.properties @@ -6,7 +6,7 @@ yarn_mappings=1.21+build.1 enabled_platforms=fabric,neoforge archives_base_name=midnightlib -mod_version=1.6.2 +mod_version=1.6.3 maven_group=eu.midnightdust release_type=release curseforge_id=488090