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.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);
}
}
}

View File

@ -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) {}

View File

@ -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) {

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(
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
);

View File

@ -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.*;

View File

@ -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];
}

View File

@ -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 {

View File

@ -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.*;

View File

@ -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)

View File

@ -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();
}
}