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.MenuFieldPacket
|
||||
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.sender
|
||||
import java.io.DataInputStream
|
||||
@ -68,13 +69,16 @@ abstract class MatteryMenu @JvmOverloads protected constructor(
|
||||
|
||||
override fun play(context: Supplier<NetworkEvent.Context>) {
|
||||
context.packetHandled = true
|
||||
val menu = context.sender?.containerMenu as? MatteryMenu ?: return
|
||||
if (menu.containerId != containerId) return
|
||||
val input = menu.playerInputs.getOrNull(inputId) ?: return
|
||||
if (!input.allowSpectators && context.sender!!.isSpectator) return
|
||||
|
||||
context.enqueueWork {
|
||||
val menu = context.sender?.containerMenu as? MatteryMenu ?: return@enqueueWork
|
||||
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))))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
inner class PlayerInput<V>(val codec: IStreamCodec<V>, val allowSpectators: Boolean = false, val handler: (V) -> Unit) {
|
||||
val id = playerInputs.size
|
||||
|
Loading…
Reference in New Issue
Block a user