From 5b30f2e916718ae9f480ae222de70675e64d4b2d Mon Sep 17 00:00:00 2001 From: DBotThePony Date: Sun, 30 Jul 2023 11:01:22 +0700 Subject: [PATCH] Use sendNow in menus when sending data for first time --- .../ru/dbotthepony/mc/otm/menu/MatteryMenu.kt | 42 +++++++++---------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/MatteryMenu.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/MatteryMenu.kt index 73bc13ebd..3fd0165cd 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/MatteryMenu.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/MatteryMenu.kt @@ -402,45 +402,45 @@ abstract class MatteryMenu @JvmOverloads protected constructor( } } - override fun broadcastChanges() { + private var broadcastOnce = false + + protected fun matteryBroadcast() { val payload = mSynchronizer.collectNetworkPayload() if (payload != null) { - MenuNetworkChannel.send(ply, MenuFieldPacket(containerId, payload)) + if (broadcastOnce) { + MenuNetworkChannel.send(ply, MenuFieldPacket(containerId, payload)) + } else { + MenuNetworkChannel.sendNow(ply, MenuFieldPacket(containerId, payload)) + } } - super.broadcastChanges() - val consumer = PacketDistributor.PLAYER.with { ply as ServerPlayer } for (slot in _filterSlots) { val packet = slot.sendChanges() if (packet != null) { - MenuNetworkChannel.send(consumer, packet) + if (broadcastOnce) { + MenuNetworkChannel.send(consumer, packet) + } else { + MenuNetworkChannel.sendNow(consumer, packet) + } } } + + broadcastOnce = true + } + + override fun broadcastChanges() { + super.broadcastChanges() + matteryBroadcast() } override fun broadcastFullState() { mSynchronizer.invalidate() - val payload = mSynchronizer.collectNetworkPayload() - - if (payload != null) { - MenuNetworkChannel.send(ply, MenuFieldPacket(containerId, payload)) - } - super.broadcastFullState() - - val consumer = PacketDistributor.PLAYER.with { ply as ServerPlayer } - - for (slot in _filterSlots) { - val packet = slot.sendChanges(true) - - if (packet != null) { - MenuNetworkChannel.send(consumer, packet) - } - } + matteryBroadcast() } override fun stillValid(player: Player): Boolean {