From e5e8522f8b23faa907409b86b926349f1c209158 Mon Sep 17 00:00:00 2001 From: JFronny Date: Sun, 21 Jul 2024 22:15:18 +0200 Subject: [PATCH] chore: add some fixes discovered while porting --- .../libjf/config/impl/dsl/DSLImpl.java | 8 +++-- .../config/impl/network/RequestRouter.java | 2 +- .../impl/network/packet/RequestPacket.java | 2 +- .../impl/network/packet/ResponsePacket.java | 2 +- .../network/rci/MirrorConfigCategory.java | 1 - .../config/impl/network/rci/MirrorObject.java | 29 ++++++++++--------- .../ui/tiny/entry/EntryInfoWidgetBuilder.java | 2 +- .../impl/ui/tiny/entry/EntryListWidget.java | 1 - .../libjf/config/test/tiny/TestConfig.java | 2 +- .../jfronny/libjf/web/impl/JfWebConfig.java | 2 +- 10 files changed, 27 insertions(+), 24 deletions(-) diff --git a/libjf-config-core-v2/src/main/java/io/gitlab/jfronny/libjf/config/impl/dsl/DSLImpl.java b/libjf-config-core-v2/src/main/java/io/gitlab/jfronny/libjf/config/impl/dsl/DSLImpl.java index 9a4587f..9831533 100644 --- a/libjf-config-core-v2/src/main/java/io/gitlab/jfronny/libjf/config/impl/dsl/DSLImpl.java +++ b/libjf-config-core-v2/src/main/java/io/gitlab/jfronny/libjf/config/impl/dsl/DSLImpl.java @@ -5,6 +5,8 @@ import io.gitlab.jfronny.libjf.config.api.v2.ConfigInstance; import io.gitlab.jfronny.libjf.config.api.v2.dsl.ConfigBuilder; import io.gitlab.jfronny.libjf.config.api.v2.dsl.DSL; +import java.util.Objects; + public class DSLImpl implements DSL { @Override public ConfigInstance config(String configId, ConfigBuilder.ConfigBuilderFunction builder) { @@ -32,17 +34,17 @@ public class DSLImpl implements DSL { @Override public ConfigInstance config(ConfigBuilder.ConfigBuilderFunction builder) { - return config(defaultId, builder); + return config(Objects.requireNonNull(defaultId), builder); } @Override public ConfigInstance register(ConfigBuilder.ConfigBuilderFunction builder) { - return register(defaultId, builder); + return register(Objects.requireNonNull(defaultId), builder); } @Override public ConfigInstance register(ConfigHolder config, ConfigBuilder.ConfigBuilderFunction builder) { - return register(config, defaultId, builder); + return register(config, Objects.requireNonNull(defaultId), builder); } } } diff --git a/libjf-config-network-v0/src/main/java/io/gitlab/jfronny/libjf/config/impl/network/RequestRouter.java b/libjf-config-network-v0/src/main/java/io/gitlab/jfronny/libjf/config/impl/network/RequestRouter.java index f591588..d15702b 100644 --- a/libjf-config-network-v0/src/main/java/io/gitlab/jfronny/libjf/config/impl/network/RequestRouter.java +++ b/libjf-config-network-v0/src/main/java/io/gitlab/jfronny/libjf/config/impl/network/RequestRouter.java @@ -112,7 +112,7 @@ public class RequestRouter { } while (keys.contains(id)); currentRequests.put(id, new Request(temporaryHandlers, responseHandler)); } - responseSender.sendPacket(new RequestPacket(id, parent, name, PacketByteBufs.copy(body))); + responseSender.sendPacket(new RequestPacket(id, parent, name, body == null ? PacketByteBufs.empty() : PacketByteBufs.copy(body))); } private record Request(Map temporaryHandlers, ResponseHandler responseHandler) {} diff --git a/libjf-config-network-v0/src/main/java/io/gitlab/jfronny/libjf/config/impl/network/packet/RequestPacket.java b/libjf-config-network-v0/src/main/java/io/gitlab/jfronny/libjf/config/impl/network/packet/RequestPacket.java index 21fd69b..ead057a 100644 --- a/libjf-config-network-v0/src/main/java/io/gitlab/jfronny/libjf/config/impl/network/packet/RequestPacket.java +++ b/libjf-config-network-v0/src/main/java/io/gitlab/jfronny/libjf/config/impl/network/packet/RequestPacket.java @@ -16,7 +16,7 @@ public record RequestPacket(long request, @Nullable Long parent, String name, Pa PacketCodecs.VAR_LONG, RequestPacket::request, PacketCodecs.optional(PacketCodecs.VAR_LONG), RequestPacket::optionalParent, PacketCodecs.STRING, RequestPacket::name, - PacketCodec.of(PacketByteBuf::writeBytes, PacketByteBufs::copy), RequestPacket::aux, + PacketCodec.of((value, buf) -> buf.writeBytes(value), PacketByteBufs::copy), RequestPacket::aux, RequestPacket::new); private RequestPacket(long request, Optional parent, String name, PacketByteBuf aux) { diff --git a/libjf-config-network-v0/src/main/java/io/gitlab/jfronny/libjf/config/impl/network/packet/ResponsePacket.java b/libjf-config-network-v0/src/main/java/io/gitlab/jfronny/libjf/config/impl/network/packet/ResponsePacket.java index 83030d7..caee47d 100644 --- a/libjf-config-network-v0/src/main/java/io/gitlab/jfronny/libjf/config/impl/network/packet/ResponsePacket.java +++ b/libjf-config-network-v0/src/main/java/io/gitlab/jfronny/libjf/config/impl/network/packet/ResponsePacket.java @@ -12,7 +12,7 @@ public record ResponsePacket(long request, int status, PacketByteBuf aux) implem public static final PacketCodec CODEC = PacketCodec.tuple( PacketCodecs.VAR_LONG, ResponsePacket::request, PacketCodecs.INTEGER, ResponsePacket::status, - PacketCodec.of(PacketByteBuf::writeBytes, PacketByteBufs::copy), ResponsePacket::aux, + PacketCodec.of((value, buf) -> buf.writeBytes(value), PacketByteBufs::copy), ResponsePacket::aux, ResponsePacket::new ); diff --git a/libjf-config-network-v0/src/main/java/io/gitlab/jfronny/libjf/config/impl/network/rci/MirrorConfigCategory.java b/libjf-config-network-v0/src/main/java/io/gitlab/jfronny/libjf/config/impl/network/rci/MirrorConfigCategory.java index 32145d7..6a0407f 100644 --- a/libjf-config-network-v0/src/main/java/io/gitlab/jfronny/libjf/config/impl/network/rci/MirrorConfigCategory.java +++ b/libjf-config-network-v0/src/main/java/io/gitlab/jfronny/libjf/config/impl/network/rci/MirrorConfigCategory.java @@ -1,6 +1,5 @@ package io.gitlab.jfronny.libjf.config.impl.network.rci; -import io.gitlab.jfronny.libjf.LibJf; import io.gitlab.jfronny.libjf.config.api.v2.*; import io.gitlab.jfronny.libjf.config.api.v2.type.Type; import io.gitlab.jfronny.libjf.config.impl.network.rci.entry.*; diff --git a/libjf-config-network-v0/src/main/java/io/gitlab/jfronny/libjf/config/impl/network/rci/MirrorObject.java b/libjf-config-network-v0/src/main/java/io/gitlab/jfronny/libjf/config/impl/network/rci/MirrorObject.java index 0c7737b..09a9bc4 100644 --- a/libjf-config-network-v0/src/main/java/io/gitlab/jfronny/libjf/config/impl/network/rci/MirrorObject.java +++ b/libjf-config-network-v0/src/main/java/io/gitlab/jfronny/libjf/config/impl/network/rci/MirrorObject.java @@ -5,7 +5,8 @@ import net.fabricmc.fabric.api.networking.v1.PacketSender; import net.minecraft.network.PacketByteBuf; import java.util.Map; -import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.locks.Condition; +import java.util.concurrent.locks.ReentrantLock; import java.util.function.Consumer; public class MirrorObject { @@ -17,22 +18,24 @@ public class MirrorObject { protected T synchronize(Consumer> action) { Object[] result = {null}; - AtomicBoolean pause = new AtomicBoolean(true); + ReentrantLock lock = new ReentrantLock(); + Condition condition = lock.newCondition(); action.accept(with -> { result[0] = with; - pause.set(false); - synchronized (result) { - result.notifyAll(); + lock.lock(); + try { + condition.signal(); + } finally { + lock.unlock(); } }); - synchronized (result) { - while (pause.get()) { - try { - if (pause.get()) result.wait(); - } catch (InterruptedException e) { - // ignored - } - } + lock.lock(); + try { + condition.await(); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + } finally { + lock.unlock(); } return (T) result[0]; } diff --git a/libjf-config-ui-tiny/src/client/java/io/gitlab/jfronny/libjf/config/impl/ui/tiny/entry/EntryInfoWidgetBuilder.java b/libjf-config-ui-tiny/src/client/java/io/gitlab/jfronny/libjf/config/impl/ui/tiny/entry/EntryInfoWidgetBuilder.java index 28ecc85..88363c5 100644 --- a/libjf-config-ui-tiny/src/client/java/io/gitlab/jfronny/libjf/config/impl/ui/tiny/entry/EntryInfoWidgetBuilder.java +++ b/libjf-config-ui-tiny/src/client/java/io/gitlab/jfronny/libjf/config/impl/ui/tiny/entry/EntryInfoWidgetBuilder.java @@ -169,7 +169,7 @@ public class EntryInfoWidgetBuilder { state.managedTemp = false; state.tempValue = null; return (screen, textRenderer) -> { - final ButtonWidget button = ButtonWidget.builder(Text.translatable("libjf-config-core-v2.edit"), $ -> { + final ButtonWidget button = ButtonWidget.builder(Text.translatable(ConfigCore.MOD_ID + ".edit"), $ -> { final String jsonified; if (state.tempValue == null) { try { diff --git a/libjf-config-ui-tiny/src/client/java/io/gitlab/jfronny/libjf/config/impl/ui/tiny/entry/EntryListWidget.java b/libjf-config-ui-tiny/src/client/java/io/gitlab/jfronny/libjf/config/impl/ui/tiny/entry/EntryListWidget.java index 7dddd2c..4f2385e 100644 --- a/libjf-config-ui-tiny/src/client/java/io/gitlab/jfronny/libjf/config/impl/ui/tiny/entry/EntryListWidget.java +++ b/libjf-config-ui-tiny/src/client/java/io/gitlab/jfronny/libjf/config/impl/ui/tiny/entry/EntryListWidget.java @@ -9,7 +9,6 @@ import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.widget.*; import net.minecraft.client.render.RenderLayer; import net.minecraft.text.*; -import net.minecraft.util.math.MathHelper; import org.jetbrains.annotations.Nullable; import java.util.*; diff --git a/libjf-config-ui-tiny/src/testmod/java/io/gitlab/jfronny/libjf/config/test/tiny/TestConfig.java b/libjf-config-ui-tiny/src/testmod/java/io/gitlab/jfronny/libjf/config/test/tiny/TestConfig.java index 24b2b1b..80231a5 100644 --- a/libjf-config-ui-tiny/src/testmod/java/io/gitlab/jfronny/libjf/config/test/tiny/TestConfig.java +++ b/libjf-config-ui-tiny/src/testmod/java/io/gitlab/jfronny/libjf/config/test/tiny/TestConfig.java @@ -19,7 +19,7 @@ public class TestConfig implements JfCustomConfig { @Override public void register(DSL.Defaulted dsl) { - dsl.register(builder -> builder + dsl.register("libjf-config-ui-tiny-testmod", builder -> builder .category("ca1", builder1 -> builder1 .value("value1", value1, Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY, () -> value1, v -> value1 = v) .value("doubleValue", doubleValue, -0.74, 1.6, () -> doubleValue, v -> doubleValue = v) diff --git a/libjf-web-v1/src/main/java/io/gitlab/jfronny/libjf/web/impl/JfWebConfig.java b/libjf-web-v1/src/main/java/io/gitlab/jfronny/libjf/web/impl/JfWebConfig.java index 4a258ad..20246f9 100644 --- a/libjf-web-v1/src/main/java/io/gitlab/jfronny/libjf/web/impl/JfWebConfig.java +++ b/libjf-web-v1/src/main/java/io/gitlab/jfronny/libjf/web/impl/JfWebConfig.java @@ -17,7 +17,7 @@ public class JfWebConfig { public static void ensureValidPort() { if (port == 0) { port = findAvailablePort(); - ConfigHolder.getInstance().getRegistered().get("libjf-web-v1").write(); + JFC_JfWebConfig.INSTANCE.write(); } }