1.13: Resend bed on cancelled interaction (#1245)

Minecraft 1.13 requires resending the block for both parts of the bed
This commit is contained in:
Brokkonaut 2018-07-21 14:47:22 +02:00 committed by Daniel Ennis
parent 1fe8472503
commit ff4ae7b05e

View file

@ -1,4 +1,4 @@
From 8ee7700cdaccb5163a9398141a29fc19c30e0eea Mon Sep 17 00:00:00 2001 From 0fb78f02246374d62846d855b0a0774ea91877cb Mon Sep 17 00:00:00 2001
From: Shane Freeder <theboyetronic@gmail.com> From: Shane Freeder <theboyetronic@gmail.com>
Date: Sun, 11 Feb 2018 10:43:46 +0000 Date: Sun, 11 Feb 2018 10:43:46 +0000
Subject: [PATCH] Extend Player Interact cancellation Subject: [PATCH] Extend Player Interact cancellation
@ -13,7 +13,7 @@ Update adjacent blocks of doors, double plants, pistons and beds
when cancelling interaction. when cancelling interaction.
diff --git a/src/main/java/net/minecraft/server/PlayerInteractManager.java b/src/main/java/net/minecraft/server/PlayerInteractManager.java diff --git a/src/main/java/net/minecraft/server/PlayerInteractManager.java b/src/main/java/net/minecraft/server/PlayerInteractManager.java
index e34198e40..620efb1ac 100644 index e34198e4..e375e255 100644
--- a/src/main/java/net/minecraft/server/PlayerInteractManager.java --- a/src/main/java/net/minecraft/server/PlayerInteractManager.java
+++ b/src/main/java/net/minecraft/server/PlayerInteractManager.java +++ b/src/main/java/net/minecraft/server/PlayerInteractManager.java
@@ -110,6 +110,7 @@ public class PlayerInteractManager { @@ -110,6 +110,7 @@ public class PlayerInteractManager {
@ -24,7 +24,7 @@ index e34198e40..620efb1ac 100644
// Update any tile entity data for this block // Update any tile entity data for this block
TileEntity tileentity = this.world.getTileEntity(blockposition); TileEntity tileentity = this.world.getTileEntity(blockposition);
if (tileentity != null) { if (tileentity != null) {
@@ -249,6 +250,34 @@ public class PlayerInteractManager { @@ -249,6 +250,33 @@ public class PlayerInteractManager {
return flag; return flag;
} }
@ -42,15 +42,14 @@ index e34198e40..620efb1ac 100644
+ BlockPosition piston = position.shift(data.get(BlockPistonExtension.FACING).opposite()); + BlockPosition piston = position.shift(data.get(BlockPistonExtension.FACING).opposite());
+ this.player.playerConnection.sendPacket(new PacketPlayOutBlockChange(world, piston)); + this.player.playerConnection.sendPacket(new PacketPlayOutBlockChange(world, piston));
+ } else if (block instanceof BlockBed) { + } else if (block instanceof BlockBed) {
+ if (data.get(BlockBed.PART) == BlockPropertyBedPart.FOOT) { + // Restore other half of bed
+ // Restore head of bed + boolean foot = data.get(BlockBed.PART) == BlockPropertyBedPart.FOOT;
+ BlockPosition head = position.shift(data.get(BlockBed.FACING)); + BlockPosition otherBlock = position.shift(foot ? data.get(BlockBed.FACING) : data.get(BlockBed.FACING).opposite());
+ this.player.playerConnection.sendPacket(new PacketPlayOutBlockChange(world, head)); + this.player.playerConnection.sendPacket(new PacketPlayOutBlockChange(world, otherBlock));
+ +
+ TileEntity tileentity = this.world.getTileEntity(head); + TileEntity tileentity = this.world.getTileEntity(otherBlock);
+ if (tileentity != null) { + if (tileentity != null) {
+ this.player.playerConnection.sendPacket(tileentity.getUpdatePacket()); + this.player.playerConnection.sendPacket(tileentity.getUpdatePacket());
+ }
+ } + }
+ } + }
+ } + }
@ -59,7 +58,7 @@ index e34198e40..620efb1ac 100644
public boolean breakBlock(BlockPosition blockposition) { public boolean breakBlock(BlockPosition blockposition) {
IBlockData iblockdata = this.world.getType(blockposition); IBlockData iblockdata = this.world.getType(blockposition);
// CraftBukkit start - fire BlockBreakEvent // CraftBukkit start - fire BlockBreakEvent
@@ -297,11 +326,7 @@ public class PlayerInteractManager { @@ -297,11 +325,7 @@ public class PlayerInteractManager {
} }
// Let the client know the block still exists // Let the client know the block still exists
((EntityPlayer) this.player).playerConnection.sendPacket(new PacketPlayOutBlockChange(this.world, blockposition)); ((EntityPlayer) this.player).playerConnection.sendPacket(new PacketPlayOutBlockChange(this.world, blockposition));
@ -72,7 +71,7 @@ index e34198e40..620efb1ac 100644
// Update any tile entity data for this block // Update any tile entity data for this block
TileEntity tileentity = this.world.getTileEntity(blockposition); TileEntity tileentity = this.world.getTileEntity(blockposition);
if (tileentity != null) { if (tileentity != null) {
@@ -459,7 +484,25 @@ public class PlayerInteractManager { @@ -459,7 +483,25 @@ public class PlayerInteractManager {
((EntityPlayer) entityhuman).playerConnection.sendPacket(new PacketPlayOutBlockChange(world, bottom ? blockposition.up() : blockposition.down())); ((EntityPlayer) entityhuman).playerConnection.sendPacket(new PacketPlayOutBlockChange(world, bottom ? blockposition.up() : blockposition.down()));
} else if (iblockdata.getBlock() instanceof BlockCake) { } else if (iblockdata.getBlock() instanceof BlockCake) {
((EntityPlayer) entityhuman).getBukkitEntity().sendHealthUpdate(); // SPIGOT-1341 - reset health for cake ((EntityPlayer) entityhuman).getBukkitEntity().sendHealthUpdate(); // SPIGOT-1341 - reset health for cake
@ -99,5 +98,5 @@ index e34198e40..620efb1ac 100644
enuminteractionresult = (event.useItemInHand() != Event.Result.ALLOW) ? EnumInteractionResult.SUCCESS : EnumInteractionResult.PASS; enuminteractionresult = (event.useItemInHand() != Event.Result.ALLOW) ? EnumInteractionResult.SUCCESS : EnumInteractionResult.PASS;
} else if (this.gamemode == EnumGamemode.SPECTATOR) { } else if (this.gamemode == EnumGamemode.SPECTATOR) {
-- --
2.18.0 2.16.1.windows.1