mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-24 18:07:39 +01:00
Fix removal of items from Item Frames. Fixes BUKKIT-5736
This commit is contained in:
parent
594d7cb8c9
commit
971329c42b
@ -24,7 +24,7 @@ public class EntityItemFrame extends EntityHanging {
|
||||
} else if (this.getItem() != null) {
|
||||
if (!this.world.isStatic) {
|
||||
// CraftBukkit start - fire EntityDamageEvent
|
||||
if (org.bukkit.craftbukkit.event.CraftEventFactory.handleNonLivingEntityDamageEvent(this, damagesource, f) || this.dead) {
|
||||
if (org.bukkit.craftbukkit.event.CraftEventFactory.handleNonLivingEntityDamageEvent(this, damagesource, f, false) || this.dead) {
|
||||
return true;
|
||||
}
|
||||
// CraftBukkit end
|
||||
|
@ -564,8 +564,12 @@ public class CraftEventFactory {
|
||||
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) {
|
||||
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)) {
|
||||
return false;
|
||||
}
|
||||
@ -580,7 +584,7 @@ public class CraftEventFactory {
|
||||
if (event == null) {
|
||||
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) {
|
||||
|
Loading…
Reference in New Issue
Block a user