So, shortly, I have two packets:
- Client To Server
- Server To Client
I understand how packets looks like in 1.21, but their registering is very weird thing
For example I have this packets
public class TestS2CPacket implements CustomPayload {
public static final Identifier PACKET_ID = IdentifierUtils.id("test_packet_s2c");
public static final Id<TestS2CPacket> TYPE = new Id<>(PACKET_ID);
public static final PacketCodec<RegistryByteBuf, TestS2CPacket> CODEC = CustomPayload.codecOf(TestS2CPacket::write, TestS2CPacket::new);
private final String message;
public TestS2CPacket(String message) {
this.message = message;
}
public TestS2CPacket(RegistryByteBuf buf) {
this.message = buf.readString();
}
public void write(RegistryByteBuf buf) {
buf.writeString(this.message);
}
@Override
public Id<? extends CustomPayload> getId() {
return TYPE;
}
}
public class TestC2SPacket implements CustomPayload {
public static final Identifier PACKET_ID = IdentifierUtils.id("test_packet_c2s");
public static final Id<TestC2SPacket> TYPE = new Id<>(PACKET_ID);
public static final PacketCodec<RegistryByteBuf, TestC2SPacket> CODEC = CustomPayload.codecOf(TestC2SPacket::write, TestC2SPacket::new);
private final String message;
public TestC2SPacket(String message) {
this.message = message;
}
public TestC2SPacket(RegistryByteBuf buf) {
this.message = buf.readString();
}
public void write(RegistryByteBuf buf) {
buf.writeString(this.message);
}
@Override
public Id<? extends CustomPayload> getId() {
return TYPE;
}
}
Read messages below