LibJF/libjf-config-network-v0/src/main/java/io/gitlab/jfronny/libjf/config/impl/network/rci/entry/MirrorEntryInfoBase.java

60 lines
1.9 KiB
Java

package io.gitlab.jfronny.libjf.config.impl.network.rci.entry;
import io.gitlab.jfronny.gson.stream.JsonReader;
import io.gitlab.jfronny.gson.stream.JsonWriter;
import io.gitlab.jfronny.libjf.config.api.v2.EntryInfo;
import io.gitlab.jfronny.libjf.config.api.v2.type.Type;
import io.gitlab.jfronny.libjf.config.impl.network.rci.MirrorConfigCategory;
import io.gitlab.jfronny.libjf.config.impl.network.rci.MirrorObject;
import net.fabricmc.fabric.api.networking.v1.PacketByteBufs;
import net.fabricmc.fabric.api.networking.v1.PacketSender;
import net.minecraft.network.PacketByteBuf;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
public abstract class MirrorEntryInfoBase<T> extends MirrorObject implements EntryInfo<T> {
protected final MirrorConfigCategory category;
protected final String entryName;
public MirrorEntryInfoBase(PacketSender packetSender, MirrorConfigCategory category, String entryName) {
super(packetSender);
this.category = category;
this.entryName = entryName;
}
protected void writePath(PacketByteBuf buf) {
category.writeCategoryPath(buf);
buf.writeString(entryName);
}
@Override
public String getName() {
return entryName;
}
@Override
public void loadFromJson(JsonReader reader) throws IOException, IllegalAccessException {
throw new UnsupportedEncodingException();
}
@Override
public void writeTo(JsonWriter writer, String translationPrefix) throws IOException, IllegalAccessException {
throw new UnsupportedEncodingException();
}
@Override
public void fix() {
PacketByteBuf buf = PacketByteBufs.create();
writePath(buf);
sendRequest("fixEntry", buf);
}
@Override
public void reset() throws IllegalAccessException {
PacketByteBuf buf = PacketByteBufs.create();
writePath(buf);
sendRequest("resetEntry", buf);
}
}