package net.moonleay.gimble.networking import kotlinx.serialization.cbor.Cbor import kotlinx.serialization.decodeFromByteArray import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking import net.minecraft.network.PacketByteBuf import net.minecraft.server.network.ServerPlayerEntity import net.minecraft.text.Text import net.moonleay.gimble.editor.ServerEditorManager import net.moonleay.gimble.editor.state.EditorState object GimbleServer { fun registerPacketHandler() { ServerPlayNetworking .registerGlobalReceiver(PacketIDs.UPDATE_EDITOR_STATE_ID) { server, player, handler, buf, responseSender -> handleStateUpdate(player, buf) } } private fun handleStateUpdate(player: ServerPlayerEntity, buf: PacketByteBuf){ val state = Cbor.decodeFromByteArray(buf.readByteArray()) ServerEditorManager.updateEditorState(player.uuid, state) // player.sendMessage(Text.of("Mode: ${state.editorMode} with ${state.editorModifier}")) } }