Use sendNow in menus when sending data for first time

This commit is contained in:
DBotThePony 2023-07-30 11:01:22 +07:00
parent 1eb90a5c17
commit 5b30f2e916
Signed by: DBot
GPG Key ID: DCC23B5715498507

View File

@ -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 {