mirror of
https://github.com/PaperMC/Paper.git
synced 2025-01-16 06:30:46 +01:00
Extend Player Interact cancellation
GUIs are opened on the client, meaning that the server cannot block them from opening, However, it is possible to close these GUIs from the server. Flower pots are also not updated on the client when interaction is cancelled, this patch also resolves this.
This commit is contained in:
parent
e3dd06b7c1
commit
794fc9799b
1 changed files with 6 additions and 2 deletions
|
@ -291,7 +291,7 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
@@ -321,15 +483,54 @@
|
||||
@@ -321,15 +483,58 @@
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -337,7 +337,11 @@
|
|||
+
|
||||
+ // send a correcting update to the client for the block above as well, this because of replaceable blocks (such as grass, sea grass etc)
|
||||
+ player.connection.send(new ClientboundBlockUpdatePacket(world, blockposition.above()));
|
||||
+ // Paper start - extend Player Interact cancellation // TODO: consider merging this into the extracted method
|
||||
+ } else if (iblockdata.is(Blocks.JIGSAW) || iblockdata.is(Blocks.STRUCTURE_BLOCK) || iblockdata.getBlock() instanceof net.minecraft.world.level.block.CommandBlock) {
|
||||
+ player.connection.send(new net.minecraft.network.protocol.game.ClientboundContainerClosePacket(this.player.containerMenu.containerId));
|
||||
+ }
|
||||
+ // Paper end - extend Player Interact cancellation
|
||||
+ player.getBukkitEntity().updateInventory(); // SPIGOT-2867
|
||||
+ return (event.useItemInHand() != Event.Result.ALLOW) ? InteractionResult.SUCCESS : InteractionResult.PASS;
|
||||
+ } else if (this.gameModeForPlayer == GameType.SPECTATOR) {
|
||||
|
@ -346,7 +350,7 @@
|
|||
if (itileinventory != null) {
|
||||
player.openMenu(itileinventory);
|
||||
return InteractionResult.CONSUME;
|
||||
@@ -359,7 +560,7 @@
|
||||
@@ -359,7 +564,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue