CobbleSync Network Handler

This commit is contained in:
2025-05-10 18:30:46 -04:00
parent 56fb8f5a6e
commit 1a63c191e3
13 changed files with 111 additions and 122 deletions

View File

@@ -0,0 +1,26 @@
package co.sirblob.network
import co.sirblob.network.handler.OpenPCHandler
import co.sirblob.network.packet.OpenPCPacket
import com.cobblemon.mod.common.net.PacketRegisterInfo
object CobbleSyncNetwork {
val s2cPayloads = generateS2CPacketInfoList()
val c2sPayloads = generateC2SPacketInfoList()
private fun generateS2CPacketInfoList(): List<PacketRegisterInfo<*>> {
val list = mutableListOf<PacketRegisterInfo<*>>()
return list
}
private fun generateC2SPacketInfoList(): List<PacketRegisterInfo<*>> {
val list = mutableListOf<PacketRegisterInfo<*>>()
list.add(PacketRegisterInfo(OpenPCPacket.ID, OpenPCPacket::decode, OpenPCHandler))
return list
}
}

View File

@@ -0,0 +1,18 @@
package co.sirblob.network.handler
import co.sirblob.network.packet.OpenPCPacket
import com.cobblemon.mod.common.api.net.ServerNetworkPacketHandler
import com.cobblemon.mod.common.util.pc
import net.minecraft.server.MinecraftServer
import net.minecraft.server.level.ServerPlayer
object OpenPCHandler : ServerNetworkPacketHandler<OpenPCPacket> {
override fun handle(packet: OpenPCPacket, server: MinecraftServer, player: ServerPlayer) {
server.execute {
val pc = player.pc()
com.cobblemon.mod.common.net.messages.client.storage.pc.OpenPCPacket(pc.uuid, 0).sendToPlayer(player)
}
}
}

View File

@@ -0,0 +1,17 @@
package co.sirblob.network.packet
import co.sirblob.CobbleSync
import com.cobblemon.mod.common.api.net.NetworkPacket
import net.minecraft.server.level.ServerPlayer
interface CobbleSyncNetworkPacket<T : NetworkPacket<T>> : NetworkPacket<T> {
override fun sendToServer() {
CobbleSync.networkManager.sendToServer(this)
}
override fun sendToPlayer(player: ServerPlayer) {
CobbleSync.networkManager.sendPacketToPlayer(player, this)
}
}

View File

@@ -0,0 +1,20 @@
package co.sirblob.network.packet
import co.sirblob.CobbleSync
import net.minecraft.network.RegistryFriendlyByteBuf
import net.minecraft.resources.ResourceLocation
class OpenPCPacket: CobbleSyncNetworkPacket<OpenPCPacket> {
companion object {
val ID = ResourceLocation.fromNamespaceAndPath("open_pc", CobbleSync.ID)
fun decode(buffer: RegistryFriendlyByteBuf): OpenPCPacket = OpenPCPacket()
}
override val id = ID
override fun encode(buffer: RegistryFriendlyByteBuf) {
// TO SOMETHING
}
}