--- a/net/minecraft/world/entity/projectile/EntityLlamaSpit.java +++ b/net/minecraft/world/entity/projectile/EntityLlamaSpit.java @@ -14,6 +14,10 @@ import net.minecraft.world.phys.MovingObjectPositionEntity; import net.minecraft.world.phys.Vec3D; +// CraftBukkit start +import org.bukkit.event.entity.EntityRemoveEvent; +// CraftBukkit end + public class EntityLlamaSpit extends IProjectile { public EntityLlamaSpit(EntityTypes entitytypes, World world) { @@ -32,7 +36,7 @@ Vec3D vec3d = this.getDeltaMovement(); MovingObjectPosition movingobjectposition = ProjectileHelper.getHitResultOnMoveVector(this, this::canHitEntity); - this.onHit(movingobjectposition); + this.preOnHit(movingobjectposition); // CraftBukkit - projectile hit event double d0 = this.getX() + vec3d.x; double d1 = this.getY() + vec3d.y; double d2 = this.getZ() + vec3d.z; @@ -42,9 +46,9 @@ float f1 = 0.06F; if (this.level().getBlockStates(this.getBoundingBox()).noneMatch(BlockBase.BlockData::isAir)) { - this.discard(); + this.discard(EntityRemoveEvent.Cause.DESPAWN); // CraftBukkit - add Bukkit remove cause } else if (this.isInWaterOrBubble()) { - this.discard(); + this.discard(EntityRemoveEvent.Cause.DESPAWN); // CraftBukkit - add Bukkit remove cause } else { this.setDeltaMovement(vec3d.scale(0.9900000095367432D)); if (!this.isNoGravity()) { @@ -72,7 +76,7 @@ protected void onHitBlock(MovingObjectPositionBlock movingobjectpositionblock) { super.onHitBlock(movingobjectpositionblock); if (!this.level().isClientSide) { - this.discard(); + this.discard(EntityRemoveEvent.Cause.HIT); // CraftBukkit - add Bukkit remove cause } }