fix: reject lock request for non-PSH block
This commit is contained in:
parent
1841e71ff8
commit
68b8c73896
@ -6,6 +6,7 @@ import net.minecraft.network.FriendlyByteBuf
|
|||||||
import net.minecraft.server.level.ServerLevel
|
import net.minecraft.server.level.ServerLevel
|
||||||
import net.minecraft.server.level.ServerPlayer
|
import net.minecraft.server.level.ServerPlayer
|
||||||
import quaedam.shell.ProjectionShell
|
import quaedam.shell.ProjectionShell
|
||||||
|
import quaedam.shell.ProjectionShellBlock
|
||||||
import quaedam.shell.ProjectionShellMutex
|
import quaedam.shell.ProjectionShellMutex
|
||||||
import java.util.function.Supplier
|
import java.util.function.Supplier
|
||||||
|
|
||||||
@ -33,7 +34,12 @@ data class ServerboundPSHLockAcquirePacket(val pos: BlockPos) {
|
|||||||
if (!ctx.player.level().isClientSide) {
|
if (!ctx.player.level().isClientSide) {
|
||||||
ctx.queue {
|
ctx.queue {
|
||||||
val player = ctx.player as ServerPlayer
|
val player = ctx.player as ServerPlayer
|
||||||
val result = ProjectionShellMutex.tryLock(ctx.player.level() as ServerLevel, pos, player)
|
val level = ctx.player.level() as ServerLevel
|
||||||
|
if (level.getBlockState(pos).block !is ProjectionShellBlock) {
|
||||||
|
ProjectionShell.channel.sendToPlayer(player, ClientboundPSHLockResultPacket(pos, false))
|
||||||
|
return@queue
|
||||||
|
}
|
||||||
|
val result = ProjectionShellMutex.tryLock(level, pos, player)
|
||||||
ProjectionShell.channel.sendToPlayer(player, ClientboundPSHLockResultPacket(pos, result))
|
ProjectionShell.channel.sendToPlayer(player, ClientboundPSHLockResultPacket(pos, result))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user