Fix removal of items from Item Frames. Fixes BUKKIT-5736

By: feildmaster <admin@feildmaster.com>
This commit is contained in:
CraftBukkit/Spigot 2014-08-02 16:03:50 -05:00
parent 38f3f4a701
commit 9bf675b0b6

View File

@ -564,8 +564,12 @@ public class CraftEventFactory {
return handleEntityDamageEvent(damagee, source, modifiers, modifierFunctions); return handleEntityDamageEvent(damagee, source, modifiers, modifierFunctions);
} }
// Non-Living Entities such as EntityEnderCrystal, EntityItemFrame, and EntityFireball need to call this // Non-Living Entities such as EntityEnderCrystal and EntityFireball need to call this
public static boolean handleNonLivingEntityDamageEvent(Entity entity, DamageSource source, double damage) { public static boolean handleNonLivingEntityDamageEvent(Entity entity, DamageSource source, double damage) {
return handleNonLivingEntityDamageEvent(entity, source, damage, true);
}
public static boolean handleNonLivingEntityDamageEvent(Entity entity, DamageSource source, double damage, boolean cancelOnZeroDamage) {
if (entity instanceof EntityEnderCrystal && !(source instanceof EntityDamageSource)) { if (entity instanceof EntityEnderCrystal && !(source instanceof EntityDamageSource)) {
return false; return false;
} }
@ -580,7 +584,7 @@ public class CraftEventFactory {
if (event == null) { if (event == null) {
return false; return false;
} }
return event.isCancelled() || event.getDamage() == 0; return event.isCancelled() || (cancelOnZeroDamage && event.getDamage() == 0);
} }
public static PlayerLevelChangeEvent callPlayerLevelChangeEvent(Player player, int oldLevel, int newLevel) { public static PlayerLevelChangeEvent callPlayerLevelChangeEvent(Player player, int oldLevel, int newLevel) {