summaryrefslogtreecommitdiffstats
path: root/nms-patches
diff options
context:
space:
mode:
authormd_5 <git@md-5.net>2016-07-01 11:20:31 +1000
committermd_5 <git@md-5.net>2016-07-01 11:20:31 +1000
commit45038571f9022e92cda3cdadebef98f90b7b0424 (patch)
treeaf3fb9e2f1d2c8c9be9f8a398db970cbf97cb5d8 /nms-patches
parent8db0dbfc44231627c6095a72fcc8eebe04e5fd3e (diff)
downloadcraftbukkit-45038571f9022e92cda3cdadebef98f90b7b0424.tar
craftbukkit-45038571f9022e92cda3cdadebef98f90b7b0424.tar.gz
craftbukkit-45038571f9022e92cda3cdadebef98f90b7b0424.tar.lz
craftbukkit-45038571f9022e92cda3cdadebef98f90b7b0424.tar.xz
craftbukkit-45038571f9022e92cda3cdadebef98f90b7b0424.zip
SPIGOT-1341: Cancelled cake interact decreases client hunger
Diffstat (limited to 'nms-patches')
-rw-r--r--nms-patches/BlockCake.patch2
-rw-r--r--nms-patches/FoodMetaData.patch2
-rw-r--r--nms-patches/PlayerInteractManager.patch15
3 files changed, 11 insertions, 8 deletions
diff --git a/nms-patches/BlockCake.patch b/nms-patches/BlockCake.patch
index a3891429..64b1aec1 100644
--- a/nms-patches/BlockCake.patch
+++ b/nms-patches/BlockCake.patch
@@ -15,7 +15,7 @@
+ entityhuman.getFoodData().eat(event.getFoodLevel() - oldFoodLevel, 0.1F);
+ }
+
-+ ((EntityPlayer) entityhuman).playerConnection.sendPacket(new PacketPlayOutUpdateHealth(((EntityPlayer) entityhuman).getBukkitEntity().getScaledHealth(), entityhuman.getFoodData().foodLevel, entityhuman.getFoodData().saturationLevel));
++ ((EntityPlayer) entityhuman).getBukkitEntity().sendHealthUpdate();
+ // CraftBukkit end
int i = ((Integer) iblockdata.get(BlockCake.BITES)).intValue();
diff --git a/nms-patches/FoodMetaData.patch b/nms-patches/FoodMetaData.patch
index 24d17772..0e113968 100644
--- a/nms-patches/FoodMetaData.patch
+++ b/nms-patches/FoodMetaData.patch
@@ -33,7 +33,7 @@
+ this.eat(event.getFoodLevel() - oldFoodLevel, itemfood.getSaturationModifier(itemstack));
+ }
+
-+ ((EntityPlayer) entityhuman).playerConnection.sendPacket(new PacketPlayOutUpdateHealth(((EntityPlayer) entityhuman).getBukkitEntity().getScaledHealth(), entityhuman.getFoodData().foodLevel, entityhuman.getFoodData().saturationLevel));
++ ((EntityPlayer) entityhuman).getBukkitEntity().sendHealthUpdate();
+ // CraftBukkit end
}
diff --git a/nms-patches/PlayerInteractManager.patch b/nms-patches/PlayerInteractManager.patch
index 41658afd..4e7bdcba 100644
--- a/nms-patches/PlayerInteractManager.patch
+++ b/nms-patches/PlayerInteractManager.patch
@@ -52,7 +52,7 @@
if (this.isCreative()) {
if (!this.world.douseFire((EntityHuman) null, blockposition, enumdirection)) {
this.breakBlock(blockposition);
-@@ -127,14 +147,48 @@
+@@ -127,15 +147,49 @@
}
}
@@ -87,22 +87,23 @@
+ ((EntityPlayer) this.player).playerConnection.sendPacket(new PacketPlayOutBlockChange(this.world, blockposition));
+ }
+ return;
- }
++ }
+ org.bukkit.event.block.BlockDamageEvent blockEvent = CraftEventFactory.callBlockDamageEvent(this.player, blockposition.getX(), blockposition.getY(), blockposition.getZ(), this.player.inventory.getItemInHand(), f >= 1.0f);
+
+ if (blockEvent.isCancelled()) {
+ // Let the client know the block still exists
+ ((EntityPlayer) this.player).playerConnection.sendPacket(new PacketPlayOutBlockChange(this.world, blockposition));
+ return;
-+ }
-+
+ }
+
+ if (blockEvent.getInstaBreak()) {
+ f = 2.0f;
+ }
+ // CraftBukkit end
-
++
if (iblockdata.getMaterial() != Material.AIR && f >= 1.0F) {
this.breakBlock(blockposition);
+ } else {
@@ -152,6 +206,7 @@
public void a(BlockPosition blockposition) {
@@ -227,7 +228,7 @@
if (this.gamemode == EnumGamemode.SPECTATOR) {
TileEntity tileentity = world.getTileEntity(blockposition);
-@@ -340,6 +474,72 @@
+@@ -340,6 +474,74 @@
}
}
}
@@ -255,6 +256,8 @@
+ if (blockdata.getBlock() instanceof BlockDoor) {
+ boolean bottom = blockdata.get(BlockDoor.HALF) == BlockDoor.EnumDoorHalf.LOWER;
+ ((EntityPlayer) entityhuman).playerConnection.sendPacket(new PacketPlayOutBlockChange(world, bottom ? blockposition.up() : blockposition.down()));
++ } else if (blockdata.getBlock() instanceof BlockCake) {
++ ((EntityPlayer) entityhuman).getBukkitEntity().sendHealthUpdate(); // SPIGOT-1341 - reset health for cake
+ }
+ result = (event.useItemInHand() != Event.Result.ALLOW) ? EnumInteractionResult.SUCCESS : EnumInteractionResult.PASS;
+ } else if (this.gamemode == EnumGamemode.SPECTATOR) {