Communication API for Fabric client and Paper server
how to use for developer:
public class FooBarPacket implements CscPacket{
public FooBarPacket(ByteBuf buf) {
read(buf);
}
private int foo;
@Override
public void read(ByteBuf buf) {
foo = buf.readInt();
}
@Override
public void write(ByteBuf buf) {
buf.writeInt(foo);
}
}
public static CscPacketType<FooBarPacket> FOO_BAR_PACKET = CscApi.registerPacket(
"foo_bar",
FooBarPacket.class,
FooBarPacket::new
);
public class ServerClass {
private static final Logger log = LoggerFactory.getLogger(ServerClass.class);
public void init() {
CscServer.getService().registerListener((packet, player) -> {
log.info("Received packet {} from player {}", packet.getClass().getSimpleName(), player.getName());
}, ModPackets.FOO_BAR_PACKET);
}
public void sendFooBarPacket(Player player) {
CscServer.getService().sendPacket(new FooBarPacket(), player);
}
}
public class ClientClass {
private static final Logger log = LoggerFactory.getLogger(ClientClass.class);
public void init() {
CscClient.getService().registerListener(packet -> {
log.info("Received packet: {}", packet);
}, ModPackets.FOO_BAR_PACKET);
}
public void sendFooBarPacket() {
CscClient.getService().sendPacket(new FooBarPacket());
}
}
Conversation