package io.gitlab.jfronny.libjf.config.impl.network.client; import io.gitlab.jfronny.libjf.config.impl.network.packet.ConfigurationCompletePacket; import io.gitlab.jfronny.libjf.config.impl.network.packet.ConfigurationPacket; import io.gitlab.jfronny.libjf.config.impl.network.RequestRouter; import net.fabricmc.fabric.api.client.networking.v1.*; public class JfConfigNetworkClient { public static boolean isAvailable = false; public static void initialize() { JfConfigNetworkCommands.initialize(); ClientPlayNetworking.registerGlobalReceiver(RequestRouter.RESPONSE_ID, (client, handler, buf, responseSender) -> { RequestRouter.acceptResponse(buf, responseSender); }); ClientPlayNetworking.registerGlobalReceiver(RequestRouter.REQUEST_ID, (client, handler, buf, responseSender) -> { RequestRouter.acceptRequest(buf, responseSender); }); ClientConfigurationNetworking.registerGlobalReceiver(ConfigurationPacket.PACKET_TYPE, (packet, responseSender) -> { isAvailable = packet.version() == RequestRouter.PROTOCOL_VERSION; // Handshake possible? responseSender.sendPacket(new ConfigurationCompletePacket()); }); ClientConfigurationConnectionEvents.INIT.register((handler, client) -> { isAvailable = false; // Reset for new server connection }); } }