Fixed unable to eat/throw

This commit is contained in:
Erik Broes 2011-03-24 23:27:40 +01:00
parent 92518f4fc0
commit f330025f1f
2 changed files with 13 additions and 10 deletions

View File

@ -185,6 +185,12 @@ public class ItemInWorldManager {
public boolean a(EntityHuman entityhuman, World world, ItemStack itemstack) { public boolean a(EntityHuman entityhuman, World world, ItemStack itemstack) {
int i = itemstack.count; int i = itemstack.count;
PlayerInteractEvent event = CraftEventFactory.callPlayerInteractEvent(entityhuman, Action.RIGHT_CLICK_AIR, itemstack);
if (event.useItemInHand() == Event.Result.DENY) {
return false;
}
ItemStack itemstack1 = itemstack.a(world, entityhuman); ItemStack itemstack1 = itemstack.a(world, entityhuman);
if (itemstack1 == itemstack && (itemstack1 == null || itemstack1.count == i)) { if (itemstack1 == itemstack && (itemstack1 == null || itemstack1.count == i)) {

View File

@ -17,6 +17,7 @@ import org.bukkit.craftbukkit.entity.CraftPlayer;
import org.bukkit.craftbukkit.event.CraftEventFactory; import org.bukkit.craftbukkit.event.CraftEventFactory;
import org.bukkit.craftbukkit.CraftServer; import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.Event;
import org.bukkit.event.Event.Type; import org.bukkit.event.Event.Type;
import org.bukkit.event.block.*; import org.bukkit.event.block.*;
import org.bukkit.event.player.*; import org.bukkit.event.player.*;
@ -410,17 +411,13 @@ public class NetServerHandler extends NetHandler implements ICommandListener {
} }
// CraftBukkit start // CraftBukkit start
PlayerInteractEvent event = CraftEventFactory.callPlayerInteractEvent(this.e, Action.RIGHT_CLICK_AIR, itemstack); int itemstackAmount = itemstack.count;
this.e.c.a(this.e, this.e.world, itemstack);
if (!event.isCancelled()) { // CraftBukkit notch decrements the counter by 1 in the above method with food,
int itemstackAmount = itemstack.count; // snowballs and so forth, but he does it in a place that doesn't cause the
this.e.c.a(this.e, this.e.world, itemstack); // inventory update packet to get sent
always = (itemstack.count != itemstackAmount);
// CraftBukkit notch decrements the counter by 1 in the above method with food,
// snowballs and so forth, but he does it in a place that doesn't cause the
// inventory update packet to get sent
always = (itemstack.count != itemstackAmount);
}
// CraftBukkit end // CraftBukkit end
} else { } else {
int i = packet15place.a; int i = packet15place.a;