a
This commit is contained in:
parent
22ec96345b
commit
fc1623b478
@ -28,6 +28,7 @@ import ru.dbotthepony.mc.otm.network.FieldSynchronizer
|
|||||||
import ru.dbotthepony.mc.otm.network.MatteryPacket
|
import ru.dbotthepony.mc.otm.network.MatteryPacket
|
||||||
import ru.dbotthepony.mc.otm.network.MenuFieldPacket
|
import ru.dbotthepony.mc.otm.network.MenuFieldPacket
|
||||||
import ru.dbotthepony.mc.otm.network.MenuNetworkChannel
|
import ru.dbotthepony.mc.otm.network.MenuNetworkChannel
|
||||||
|
import ru.dbotthepony.mc.otm.network.enqueueWork
|
||||||
import ru.dbotthepony.mc.otm.network.packetHandled
|
import ru.dbotthepony.mc.otm.network.packetHandled
|
||||||
import ru.dbotthepony.mc.otm.network.sender
|
import ru.dbotthepony.mc.otm.network.sender
|
||||||
import java.io.DataInputStream
|
import java.io.DataInputStream
|
||||||
@ -68,13 +69,16 @@ abstract class MatteryMenu @JvmOverloads protected constructor(
|
|||||||
|
|
||||||
override fun play(context: Supplier<NetworkEvent.Context>) {
|
override fun play(context: Supplier<NetworkEvent.Context>) {
|
||||||
context.packetHandled = true
|
context.packetHandled = true
|
||||||
val menu = context.sender?.containerMenu as? MatteryMenu ?: return
|
|
||||||
if (menu.containerId != containerId) return
|
context.enqueueWork {
|
||||||
val input = menu.playerInputs.getOrNull(inputId) ?: return
|
val menu = context.sender?.containerMenu as? MatteryMenu ?: return@enqueueWork
|
||||||
if (!input.allowSpectators && context.sender!!.isSpectator) return
|
if (menu.containerId != containerId) return@enqueueWork
|
||||||
|
val input = menu.playerInputs.getOrNull(inputId) ?: return@enqueueWork
|
||||||
|
if (!input.allowSpectators && context.sender!!.isSpectator) return@enqueueWork
|
||||||
input.invoke(input.codec.read(DataInputStream(FastByteArrayInputStream(payload))))
|
input.invoke(input.codec.read(DataInputStream(FastByteArrayInputStream(payload))))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
inner class PlayerInput<V>(val codec: IStreamCodec<V>, val allowSpectators: Boolean = false, val handler: (V) -> Unit) {
|
inner class PlayerInput<V>(val codec: IStreamCodec<V>, val allowSpectators: Boolean = false, val handler: (V) -> Unit) {
|
||||||
val id = playerInputs.size
|
val id = playerInputs.size
|
||||||
|
Loading…
Reference in New Issue
Block a user