applyNetworkPayload -> read

This commit is contained in:
DBotThePony 2023-02-15 14:23:57 +07:00
parent 513ef21926
commit b254a705d7
Signed by: DBot
GPG Key ID: DCC23B5715498507
7 changed files with 13 additions and 15 deletions

View File

@ -40,7 +40,7 @@ abstract class AndroidFeature(val type: AndroidFeatureType<*>, val android: Matt
} }
open fun applyNetworkPayload(stream: InputStream) { open fun applyNetworkPayload(stream: InputStream) {
synchronizer.applyNetworkPayload(stream) synchronizer.read(stream)
} }
override fun serializeNBT(): CompoundTag { override fun serializeNBT(): CompoundTag {

View File

@ -196,7 +196,7 @@ class AndroidResearch(val type: AndroidResearchType, val capability: MatteryPlay
} }
fun applyNetworkPayload(stream: InputStream) { fun applyNetworkPayload(stream: InputStream) {
synchronizer.applyNetworkPayload(stream) synchronizer.read(stream)
} }
val canResearch: Boolean get() { val canResearch: Boolean get() {

View File

@ -39,13 +39,11 @@ import java.io.InputStream
import java.lang.ref.WeakReference import java.lang.ref.WeakReference
import java.math.BigDecimal import java.math.BigDecimal
import java.util.* import java.util.*
import java.util.function.Consumer
import java.util.function.Supplier import java.util.function.Supplier
import kotlin.ConcurrentModificationException import kotlin.ConcurrentModificationException
import kotlin.collections.ArrayList import kotlin.collections.ArrayList
import kotlin.collections.HashMap import kotlin.collections.HashMap
import kotlin.properties.ReadOnlyProperty import kotlin.properties.ReadOnlyProperty
import kotlin.properties.ReadWriteProperty
import kotlin.reflect.KMutableProperty0 import kotlin.reflect.KMutableProperty0
import kotlin.reflect.KProperty import kotlin.reflect.KProperty
import kotlin.reflect.KProperty0 import kotlin.reflect.KProperty0
@ -1112,7 +1110,7 @@ class FieldSynchronizer(private val callback: Runnable, private val alwaysCallCa
private val missingFields = ObjectArraySet<String>() private val missingFields = ObjectArraySet<String>()
private val missingFieldsMap = Int2ObjectArrayMap<String>() private val missingFieldsMap = Int2ObjectArrayMap<String>()
fun applyNetworkPayload(stream: InputStream, sizeLimit: NbtAccounter = NbtAccounter(1L shl 21 /* 2 MiB */)): Int { fun read(stream: InputStream, sizeLimit: NbtAccounter = NbtAccounter(1L shl 21 /* 2 MiB */)): Int {
if (stream.read() > 0) { if (stream.read() > 0) {
idToField.clear() idToField.clear()
missingFieldsMap.clear() missingFieldsMap.clear()

View File

@ -60,9 +60,9 @@ class MatteryPlayerFieldPacket(val bytes: ByteArray, val length: Int, val isPubl
} }
if (isPublic) { if (isPublic) {
player.publicSynchronizer.applyNetworkPayload(ByteArrayInputStream(bytes, 0, length)) player.publicSynchronizer.read(ByteArrayInputStream(bytes, 0, length))
} else { } else {
player.synchronizer.applyNetworkPayload(ByteArrayInputStream(bytes, 0, length)) player.synchronizer.read(ByteArrayInputStream(bytes, 0, length))
} }
} }
} }

View File

@ -32,7 +32,7 @@ class MenuFieldPacket(val bytes: ByteArray, val length: Int) : MatteryPacket {
override fun play(context: Supplier<NetworkEvent.Context>) { override fun play(context: Supplier<NetworkEvent.Context>) {
context.packetHandled = true context.packetHandled = true
context.get().enqueueWork { context.get().enqueueWork {
(minecraft.player?.containerMenu as? MatteryMenu)?.mSynchronizer?.applyNetworkPayload(ByteArrayInputStream(bytes, 0, length)) (minecraft.player?.containerMenu as? MatteryMenu)?.mSynchronizer?.read(ByteArrayInputStream(bytes, 0, length))
} }
} }

View File

@ -25,7 +25,7 @@ class BlockEntitySyncPacket(val position: BlockPos, val buffer: ByteArray, val v
val blockEntity = level.getBlockEntity(position) as? SynchronizedBlockEntity ?: return@enqueueWork val blockEntity = level.getBlockEntity(position) as? SynchronizedBlockEntity ?: return@enqueueWork
try { try {
blockEntity.synchronizer.applyNetworkPayload(FastByteArrayInputStream(buffer, 0, validBytes)) blockEntity.synchronizer.read(FastByteArrayInputStream(buffer, 0, validBytes))
} catch(err: Throwable) { } catch(err: Throwable) {
LOGGER.error("Exception while reading synchronized BlockEntity data!\nPosition: $position\nBlock: ${level.getBlockState(position)}\nBlock entity: $blockEntity", err) LOGGER.error("Exception while reading synchronized BlockEntity data!\nPosition: $position\nBlock: ${level.getBlockState(position)}\nBlock entity: $blockEntity", err)
throw err throw err

View File

@ -31,7 +31,7 @@ object FieldSynchronizerTests {
intA2.value = 348488 intA2.value = 348488
intA3.value = -4 intA3.value = -4
b.applyNetworkPayload(a.collectNetworkPayload()!!.let { ByteArrayInputStream(it.array, 0, it.length) }) b.read(a.collectNetworkPayload()!!.let { ByteArrayInputStream(it.array, 0, it.length) })
assertEquals(boolA.value, boolB.value) assertEquals(boolA.value, boolB.value)
assertEquals(intA.value, intB.value) assertEquals(intA.value, intB.value)
@ -62,7 +62,7 @@ object FieldSynchronizerTests {
//intA2.setValue(348488) //intA2.setValue(348488)
intA3.value = -4 intA3.value = -4
b.applyNetworkPayload(a.collectNetworkPayload()!!.let { ByteArrayInputStream(it.array, 0, it.length) }) b.read(a.collectNetworkPayload()!!.let { ByteArrayInputStream(it.array, 0, it.length) })
assertEquals(boolA.value, boolB.value) assertEquals(boolA.value, boolB.value)
assertEquals(intA.value, intB.value) assertEquals(intA.value, intB.value)
@ -95,8 +95,8 @@ object FieldSynchronizerTests {
f4.value = 80L f4.value = 80L
b.applyNetworkPayload(bEndpoint.collectNetworkPayload()!!.let { ByteArrayInputStream(it.array, 0, it.length) }) b.read(bEndpoint.collectNetworkPayload()!!.let { ByteArrayInputStream(it.array, 0, it.length) })
c.applyNetworkPayload(cEndpoint.collectNetworkPayload()!!.let { ByteArrayInputStream(it.array, 0, it.length) }) c.read(cEndpoint.collectNetworkPayload()!!.let { ByteArrayInputStream(it.array, 0, it.length) })
for ((i, field) in bFields.withIndex()) { for ((i, field) in bFields.withIndex()) {
assertEquals(aFields[i].value, field.value) assertEquals(aFields[i].value, field.value)
@ -125,7 +125,7 @@ object FieldSynchronizerTests {
fieldsa[i].value = i fieldsa[i].value = i
} }
b.applyNetworkPayload(a.collectNetworkPayload()!!.let { ByteArrayInputStream(it.array, 0, it.length) }) b.read(a.collectNetworkPayload()!!.let { ByteArrayInputStream(it.array, 0, it.length) })
for (i in 0 .. 900) { for (i in 0 .. 900) {
assertEquals(fieldsa[i].value, fieldsb[i].value) assertEquals(fieldsa[i].value, fieldsb[i].value)
@ -153,7 +153,7 @@ object FieldSynchronizerTests {
fieldsa[i].value = i fieldsa[i].value = i
} }
b.applyNetworkPayload(a.collectNetworkPayload()!!.let { ByteArrayInputStream(it.array, 0, it.length) }) b.read(a.collectNetworkPayload()!!.let { ByteArrayInputStream(it.array, 0, it.length) })
for (i in 0 .. 900) { for (i in 0 .. 900) {
assertEquals(fieldsa[i].value, fieldsb[i].value) assertEquals(fieldsa[i].value, fieldsb[i].value)