chore: add some fixes discovered while porting
This commit is contained in:
parent
dac6013763
commit
e5e8522f8b
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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<String, RequestHandler> temporaryHandlers, ResponseHandler responseHandler) {}
|
||||
|
@ -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<Long> parent, String name, PacketByteBuf aux) {
|
||||
|
@ -12,7 +12,7 @@ public record ResponsePacket(long request, int status, PacketByteBuf aux) implem
|
||||
public static final PacketCodec<PacketByteBuf, ResponsePacket> 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
|
||||
);
|
||||
|
||||
|
@ -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.*;
|
||||
|
@ -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> T synchronize(Consumer<Hold<T>> 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()) {
|
||||
lock.lock();
|
||||
try {
|
||||
if (pause.get()) result.wait();
|
||||
condition.await();
|
||||
} catch (InterruptedException e) {
|
||||
// ignored
|
||||
}
|
||||
}
|
||||
Thread.currentThread().interrupt();
|
||||
} finally {
|
||||
lock.unlock();
|
||||
}
|
||||
return (T) result[0];
|
||||
}
|
||||
|
@ -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 {
|
||||
|
@ -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.*;
|
||||
|
@ -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)
|
||||
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user