More 1.20.5

This commit is contained in:
apion
2024-06-06 21:55:28 -04:00
parent 41f2ec0585
commit b72be56330
6 changed files with 39 additions and 16 deletions
@@ -12,9 +12,12 @@ import com.cobblemon.mod.common.api.reactive.SimpleObservable
import com.cobblemon.mod.common.net.IntSize
import com.cobblemon.mod.common.util.DataKeys
import com.cobblemon.mod.common.util.readSizedInt
import com.cobblemon.mod.common.util.readString
import com.cobblemon.mod.common.util.writeSizedInt
import com.cobblemon.mod.common.util.writeString
import com.google.gson.JsonArray
import com.google.gson.JsonObject
import io.netty.buffer.ByteBuf
import net.minecraft.nbt.NbtCompound
import net.minecraft.nbt.NbtList
import net.minecraft.network.PacketByteBuf
@@ -59,7 +62,7 @@ class BenchedMoves : Iterable<BenchedMove> {
return json
}
fun saveToBuffer(buffer: PacketByteBuf) {
fun saveToBuffer(buffer: ByteBuf) {
buffer.writeShort(benchedMoves.size)
benchedMoves.forEach { it.saveToBuffer(buffer) }
}
@@ -81,7 +84,7 @@ class BenchedMoves : Iterable<BenchedMove> {
return this
}
fun loadFromBuffer(buffer: PacketByteBuf): BenchedMoves {
fun loadFromBuffer(buffer: ByteBuf): BenchedMoves {
doThenEmit {
clear()
repeat(times = buffer.readShort().toInt()) {
@@ -105,7 +108,7 @@ data class BenchedMove(val moveTemplate: MoveTemplate, val ppRaisedStages: Int)
return json
}
fun saveToBuffer(buffer: PacketByteBuf) {
fun saveToBuffer(buffer: ByteBuf) {
buffer.writeString(moveTemplate.name)
buffer.writeSizedInt(IntSize.U_BYTE, ppRaisedStages)
}
@@ -127,7 +130,7 @@ data class BenchedMove(val moveTemplate: MoveTemplate, val ppRaisedStages: Int)
)
}
fun loadFromBuffer(buffer: PacketByteBuf): BenchedMove {
fun loadFromBuffer(buffer: ByteBuf): BenchedMove {
val name = buffer.readString()
return BenchedMove(
Moves.getByName(name) ?: MoveTemplate.dummy(name),
@@ -14,6 +14,7 @@ import com.cobblemon.mod.common.api.types.ElementalType
import com.cobblemon.mod.common.net.IntSize
import com.cobblemon.mod.common.util.DataKeys
import com.cobblemon.mod.common.util.readSizedInt
import com.cobblemon.mod.common.util.readString
import com.cobblemon.mod.common.util.writeSizedInt
import com.cobblemon.mod.common.util.writeString
import com.google.gson.JsonObject
@@ -137,7 +138,7 @@ open class Move(
return Move(template, currentPp, raisedPpStages)
}
fun loadFromBuffer(buffer: PacketByteBuf): Move {
fun loadFromBuffer(buffer: ByteBuf): Move {
val moveName = buffer.readString()
val currentPp = buffer.readSizedInt(IntSize.U_BYTE)
val raisedPpStages = buffer.readSizedInt(IntSize.U_BYTE)
@@ -162,7 +162,7 @@ class MoveSet : Iterable<Move> {
/**
* Returns a MoveSet build from given Buffer
*/
fun loadFromBuffer(buffer: PacketByteBuf): MoveSet {
fun loadFromBuffer(buffer: ByteBuf): MoveSet {
doWithoutEmitting {
clear()
val amountMoves = buffer.readSizedInt(IntSize.U_BYTE)
@@ -37,6 +37,7 @@ import com.cobblemon.mod.common.util.readSizedInt
import com.cobblemon.mod.common.util.readString
import com.cobblemon.mod.common.util.readUuid
import com.cobblemon.mod.common.util.writeIdentifier
import com.cobblemon.mod.common.util.writeNbt
import com.cobblemon.mod.common.util.writeNullable
import com.cobblemon.mod.common.util.writeSizedInt
import com.cobblemon.mod.common.util.writeString
@@ -13,6 +13,7 @@ import com.cobblemon.mod.common.entity.pokemon.PokemonEntity
import com.cobblemon.mod.common.pokemon.Pokemon
import com.cobblemon.mod.common.util.*
import com.google.gson.JsonObject
import io.netty.buffer.ByteBuf
import net.minecraft.nbt.NbtCompound
import net.minecraft.network.PacketByteBuf
import net.minecraft.registry.RegistryKey
@@ -30,7 +31,7 @@ sealed class PokemonState {
"shouldered" to ShoulderedState::class.java
)
fun fromBuffer(buffer: PacketByteBuf): PokemonState {
fun fromBuffer(buffer: ByteBuf): PokemonState {
val type = buffer.readString()
return states[type]?.newInstance()?.readFromBuffer(buffer) ?: InactivePokemonState()
}
@@ -49,10 +50,10 @@ sealed class PokemonState {
open fun readFromNBT(nbt: NbtCompound): PokemonState = this
open fun writeToJSON(json: JsonObject): JsonObject? = json
open fun readFromJSON(json: JsonObject): PokemonState = this
open fun writeToBuffer(buffer: PacketByteBuf) {
open fun writeToBuffer(buffer: ByteBuf) {
buffer.writeString(name)
}
open fun readFromBuffer(buffer: PacketByteBuf): PokemonState = this
open fun readFromBuffer(buffer: ByteBuf): PokemonState = this
}
class InactivePokemonState : PokemonState() {
override fun writeToNBT(nbt: NbtCompound) = null
@@ -78,13 +79,13 @@ class SentOutState() : ActivePokemonState() {
override fun writeToNBT(nbt: NbtCompound) = null
override fun writeToJSON(json: JsonObject) = null
override fun writeToBuffer(buffer: PacketByteBuf) {
override fun writeToBuffer(buffer: ByteBuf) {
super.writeToBuffer(buffer)
buffer.writeInt(entityId)
buffer.writeString(dimension.value.toString())
}
override fun readFromBuffer(buffer: PacketByteBuf): SentOutState {
override fun readFromBuffer(buffer: ByteBuf): SentOutState {
super.readFromBuffer(buffer)
entityId = buffer.readInt()
dimension = RegistryKey.of(RegistryKey.ofRegistry(dimension.value), Identifier(buffer.readString()))
@@ -154,7 +155,7 @@ class ShoulderedState() : ActivePokemonState() {
return this
}
override fun writeToBuffer(buffer: PacketByteBuf) {
override fun writeToBuffer(buffer: ByteBuf) {
super.writeToBuffer(buffer)
buffer.writeBoolean(isLeftShoulder)
buffer.writeUuid(playerUUID)
@@ -162,7 +163,7 @@ class ShoulderedState() : ActivePokemonState() {
buffer.writeUuid(pokemonUUID)
}
override fun readFromBuffer(buffer: PacketByteBuf): PokemonState {
override fun readFromBuffer(buffer: ByteBuf): PokemonState {
super.readFromBuffer(buffer)
isLeftShoulder = buffer.readBoolean()
playerUUID = buffer.readUuid()
@@ -4,10 +4,13 @@ import com.cobblemon.mod.common.api.storage.party.PartyPosition
import com.cobblemon.mod.common.api.storage.pc.PCPosition
import com.cobblemon.mod.common.net.IntSize
import io.netty.buffer.ByteBuf
import java.util.UUID
import kotlin.jvm.optionals.getOrNull
import io.netty.buffer.ByteBufOutputStream
import io.netty.handler.codec.EncoderException
import net.minecraft.entity.EntityDimensions
import net.minecraft.item.ItemStack
import net.minecraft.nbt.NbtElement
import net.minecraft.nbt.NbtEnd
import net.minecraft.nbt.NbtIo
import net.minecraft.nbt.NbtOps
import net.minecraft.network.PacketByteBuf
import net.minecraft.network.codec.PacketEncoder
@@ -15,7 +18,8 @@ import net.minecraft.network.encoding.StringEncoding
import net.minecraft.text.Text
import net.minecraft.text.TextCodecs
import net.minecraft.util.Identifier
import org.apache.commons.io.IOUtils.writer
import java.io.IOException
import java.util.UUID
import kotlin.jvm.optionals.getOrNull
fun PacketByteBuf.readItemStack(): ItemStack {
@@ -153,4 +157,17 @@ fun ByteBuf.writeEnumConstant(value: Enum<*>) {
fun <T : Enum<T>> ByteBuf.readEnumConstant(clazz: Class<T>): T {
return clazz.getEnumConstants()[this.readInt()]
}
fun ByteBuf.writeNbt(nbt: NbtElement) {
if (nbt == null) {
NbtIo.writeForPacket(NbtEnd.INSTANCE, ByteBufOutputStream(this))
}
try {
NbtIo.writeForPacket(nbt, ByteBufOutputStream(this))
} catch (var3: IOException) {
val iOException = var3
throw EncoderException(iOException)
}
}