From a6e5c9722313cad63802559bd0a568911371f28c Mon Sep 17 00:00:00 2001 From: EvilSeph Date: Sun, 19 Jun 2011 01:44:57 -0400 Subject: [PATCH] Fixed losing an infinite item when interacting with an entity. Thanks for the help Rigby! --- src/main/java/net/minecraft/server/EntityHuman.java | 6 ++++-- .../java/net/minecraft/server/NetServerHandler.java | 10 ++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java index 5feff7a7f1..88dbc4e749 100644 --- a/src/main/java/net/minecraft/server/EntityHuman.java +++ b/src/main/java/net/minecraft/server/EntityHuman.java @@ -512,7 +512,8 @@ public abstract class EntityHuman extends EntityLiving { if (itemstack != null && entity instanceof EntityLiving) { itemstack.a((EntityLiving) entity); - if (itemstack.count <= 0) { + // CraftBukkit - bypass infinite items; <= 0 -> == 0 + if (itemstack.count == 0) { itemstack.a(this); this.G(); } @@ -573,7 +574,8 @@ public abstract class EntityHuman extends EntityLiving { if (itemstack != null && entity instanceof EntityLiving) { itemstack.a((EntityLiving) entity, this); - if (itemstack.count <= 0) { + // CraftBukkit - bypass infinite items; <= 0 -> == 0 + if (itemstack.count == 0) { itemstack.a(this); this.G(); } diff --git a/src/main/java/net/minecraft/server/NetServerHandler.java b/src/main/java/net/minecraft/server/NetServerHandler.java index fb9ec17c40..52d0995c76 100644 --- a/src/main/java/net/minecraft/server/NetServerHandler.java +++ b/src/main/java/net/minecraft/server/NetServerHandler.java @@ -869,8 +869,18 @@ public class NetServerHandler extends NetHandler implements ICommandListener { } // CraftBukkit end this.player.c(entity); + // CraftBukkit start - update the client if the item is an infinite one + if (this.player.inventory.getItemInHand().count <= -1) { + this.player.a(this.player.activeContainer); + } + // CraftBukkit end } else if (packet7useentity.c == 1) { this.player.d(entity); + // CraftBukkit start - update the client if the item is an infinite one + if (this.player.inventory.getItemInHand().count <= -1) { + this.player.a(this.player.activeContainer); + } + // CraftBukkit end } } }