chore: add some fixes discovered while porting
All checks were successful
ci/woodpecker/push/docs Pipeline was successful
ci/woodpecker/push/jfmod Pipeline was successful

This commit is contained in:
Johannes Frohnmeyer 2024-07-21 22:15:18 +02:00
parent dac6013763
commit e5e8522f8b
Signed by: Johannes
GPG Key ID: E76429612C2929F4
10 changed files with 27 additions and 24 deletions

View File

@ -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.ConfigBuilder;
import io.gitlab.jfronny.libjf.config.api.v2.dsl.DSL; import io.gitlab.jfronny.libjf.config.api.v2.dsl.DSL;
import java.util.Objects;
public class DSLImpl implements DSL { public class DSLImpl implements DSL {
@Override @Override
public ConfigInstance config(String configId, ConfigBuilder.ConfigBuilderFunction builder) { public ConfigInstance config(String configId, ConfigBuilder.ConfigBuilderFunction builder) {
@ -32,17 +34,17 @@ public class DSLImpl implements DSL {
@Override @Override
public ConfigInstance config(ConfigBuilder.ConfigBuilderFunction builder) { public ConfigInstance config(ConfigBuilder.ConfigBuilderFunction builder) {
return config(defaultId, builder); return config(Objects.requireNonNull(defaultId), builder);
} }
@Override @Override
public ConfigInstance register(ConfigBuilder.ConfigBuilderFunction builder) { public ConfigInstance register(ConfigBuilder.ConfigBuilderFunction builder) {
return register(defaultId, builder); return register(Objects.requireNonNull(defaultId), builder);
} }
@Override @Override
public ConfigInstance register(ConfigHolder config, ConfigBuilder.ConfigBuilderFunction builder) { public ConfigInstance register(ConfigHolder config, ConfigBuilder.ConfigBuilderFunction builder) {
return register(config, defaultId, builder); return register(config, Objects.requireNonNull(defaultId), builder);
} }
} }
} }

View File

@ -112,7 +112,7 @@ public class RequestRouter {
} while (keys.contains(id)); } while (keys.contains(id));
currentRequests.put(id, new Request(temporaryHandlers, responseHandler)); 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<String, RequestHandler> temporaryHandlers, ResponseHandler responseHandler) {} private record Request(Map<String, RequestHandler> temporaryHandlers, ResponseHandler responseHandler) {}

View File

@ -16,7 +16,7 @@ public record RequestPacket(long request, @Nullable Long parent, String name, Pa
PacketCodecs.VAR_LONG, RequestPacket::request, PacketCodecs.VAR_LONG, RequestPacket::request,
PacketCodecs.optional(PacketCodecs.VAR_LONG), RequestPacket::optionalParent, PacketCodecs.optional(PacketCodecs.VAR_LONG), RequestPacket::optionalParent,
PacketCodecs.STRING, RequestPacket::name, 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); RequestPacket::new);
private RequestPacket(long request, Optional<Long> parent, String name, PacketByteBuf aux) { private RequestPacket(long request, Optional<Long> parent, String name, PacketByteBuf aux) {

View File

@ -12,7 +12,7 @@ public record ResponsePacket(long request, int status, PacketByteBuf aux) implem
public static final PacketCodec<PacketByteBuf, ResponsePacket> CODEC = PacketCodec.tuple( public static final PacketCodec<PacketByteBuf, ResponsePacket> CODEC = PacketCodec.tuple(
PacketCodecs.VAR_LONG, ResponsePacket::request, PacketCodecs.VAR_LONG, ResponsePacket::request,
PacketCodecs.INTEGER, ResponsePacket::status, 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 ResponsePacket::new
); );

View File

@ -1,6 +1,5 @@
package io.gitlab.jfronny.libjf.config.impl.network.rci; 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.*;
import io.gitlab.jfronny.libjf.config.api.v2.type.Type; import io.gitlab.jfronny.libjf.config.api.v2.type.Type;
import io.gitlab.jfronny.libjf.config.impl.network.rci.entry.*; import io.gitlab.jfronny.libjf.config.impl.network.rci.entry.*;

View File

@ -5,7 +5,8 @@ import net.fabricmc.fabric.api.networking.v1.PacketSender;
import net.minecraft.network.PacketByteBuf; import net.minecraft.network.PacketByteBuf;
import java.util.Map; 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; import java.util.function.Consumer;
public class MirrorObject { public class MirrorObject {
@ -17,22 +18,24 @@ public class MirrorObject {
protected <T> T synchronize(Consumer<Hold<T>> action) { protected <T> T synchronize(Consumer<Hold<T>> action) {
Object[] result = {null}; Object[] result = {null};
AtomicBoolean pause = new AtomicBoolean(true); ReentrantLock lock = new ReentrantLock();
Condition condition = lock.newCondition();
action.accept(with -> { action.accept(with -> {
result[0] = with; result[0] = with;
pause.set(false); lock.lock();
synchronized (result) { try {
result.notifyAll(); condition.signal();
} finally {
lock.unlock();
} }
}); });
synchronized (result) { lock.lock();
while (pause.get()) { try {
try { condition.await();
if (pause.get()) result.wait(); } catch (InterruptedException e) {
} catch (InterruptedException e) { Thread.currentThread().interrupt();
// ignored } finally {
} lock.unlock();
}
} }
return (T) result[0]; return (T) result[0];
} }

View File

@ -169,7 +169,7 @@ public class EntryInfoWidgetBuilder {
state.managedTemp = false; state.managedTemp = false;
state.tempValue = null; state.tempValue = null;
return (screen, textRenderer) -> { 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; final String jsonified;
if (state.tempValue == null) { if (state.tempValue == null) {
try { try {

View File

@ -9,7 +9,6 @@ import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.widget.*; import net.minecraft.client.gui.widget.*;
import net.minecraft.client.render.RenderLayer; import net.minecraft.client.render.RenderLayer;
import net.minecraft.text.*; import net.minecraft.text.*;
import net.minecraft.util.math.MathHelper;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import java.util.*; import java.util.*;

View File

@ -19,7 +19,7 @@ public class TestConfig implements JfCustomConfig {
@Override @Override
public void register(DSL.Defaulted dsl) { public void register(DSL.Defaulted dsl) {
dsl.register(builder -> builder dsl.register("libjf-config-ui-tiny-testmod", builder -> builder
.category("ca1", builder1 -> builder1 .category("ca1", builder1 -> builder1
.value("value1", value1, Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY, () -> value1, v -> value1 = v) .value("value1", value1, Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY, () -> value1, v -> value1 = v)
.value("doubleValue", doubleValue, -0.74, 1.6, () -> doubleValue, v -> doubleValue = v) .value("doubleValue", doubleValue, -0.74, 1.6, () -> doubleValue, v -> doubleValue = v)

View File

@ -17,7 +17,7 @@ public class JfWebConfig {
public static void ensureValidPort() { public static void ensureValidPort() {
if (port == 0) { if (port == 0) {
port = findAvailablePort(); port = findAvailablePort();
ConfigHolder.getInstance().getRegistered().get("libjf-web-v1").write(); JFC_JfWebConfig.INSTANCE.write();
} }
} }