PaperMC/paper-server/nms-patches/net/minecraft/world/entity/projectile/EntityEnderSignal.patch

37 lines
1.8 KiB
Diff
Raw Normal View History

2021-03-15 23:00:00 +01:00
--- a/net/minecraft/world/entity/projectile/EntityEnderSignal.java
+++ b/net/minecraft/world/entity/projectile/EntityEnderSignal.java
@@ -16,6 +16,10 @@
import net.minecraft.world.level.World;
import net.minecraft.world.phys.Vec3D;
+// CraftBukkit start
+import org.bukkit.event.entity.EntityRemoveEvent;
+// CraftBukkit end
+
public class EntityEnderSignal extends Entity implements ItemSupplier {
private static final DataWatcherObject<ItemStack> DATA_ITEM_STACK = DataWatcher.defineId(EntityEnderSignal.class, DataWatcherRegistry.ITEM_STACK);
@@ -146,7 +150,7 @@
++this.life;
if (this.life > 80 && !this.level().isClientSide) {
this.playSound(SoundEffects.ENDER_EYE_DEATH, 1.0F, 1.0F);
- this.discard();
+ this.discard(this.surviveAfterDeath ? EntityRemoveEvent.Cause.DROP : EntityRemoveEvent.Cause.DESPAWN); // CraftBukkit - add Bukkit remove cause
if (this.surviveAfterDeath) {
this.level().addFreshEntity(new EntityItem(this.level(), this.getX(), this.getY(), this.getZ(), this.getItem()));
} else {
@@ -167,7 +171,12 @@
@Override
public void readAdditionalSaveData(NBTTagCompound nbttagcompound) {
if (nbttagcompound.contains("Item", 10)) {
- this.setItem((ItemStack) ItemStack.parse(this.registryAccess(), nbttagcompound.getCompound("Item")).orElse(this.getDefaultItem()));
+ // CraftBukkit start - SPIGOT-6103 summon, see also SPIGOT-5474
+ ItemStack itemstack = (ItemStack) ItemStack.parse(this.registryAccess(), nbttagcompound.getCompound("Item")).orElse(this.getDefaultItem());
+ if (!itemstack.isEmpty()) {
+ this.setItem(itemstack);
+ }
+ // CraftBukkit end
} else {
this.setItem(this.getDefaultItem());
}