--- a/net/minecraft/world/entity/projectile/windcharge/AbstractWindCharge.java
+++ b/net/minecraft/world/entity/projectile/windcharge/AbstractWindCharge.java
@@ -25,6 +25,10 @@
 import net.minecraft.world.phys.MovingObjectPositionEntity;
 import net.minecraft.world.phys.Vec3D;
 
+// CraftBukkit start
+import org.bukkit.event.entity.EntityRemoveEvent;
+// CraftBukkit end
+
 public abstract class AbstractWindCharge extends EntityFireball implements ItemSupplier {
 
     public static final ExplosionDamageCalculator EXPLOSION_DAMAGE_CALCULATOR = new SimpleExplosionDamageCalculator(true, false, Optional.empty(), BuiltInRegistries.BLOCK.get(TagsBlock.BLOCKS_WIND_CHARGE_EXPLOSIONS).map(Function.identity()));
@@ -111,7 +115,7 @@
             Vec3D vec3d1 = movingobjectpositionblock.getLocation().add(vec3d);
 
             this.explode(vec3d1);
-            this.discard();
+            this.discard(EntityRemoveEvent.Cause.HIT); // CraftBukkit - add Bukkit remove cause
         }
 
     }
@@ -120,7 +124,7 @@
     protected void onHit(MovingObjectPosition movingobjectposition) {
         super.onHit(movingobjectposition);
         if (!this.level().isClientSide) {
-            this.discard();
+            this.discard(EntityRemoveEvent.Cause.HIT); // CraftBukkit - add Bukkit remove cause
         }
 
     }
@@ -155,7 +159,7 @@
     public void tick() {
         if (!this.level().isClientSide && this.getBlockY() > this.level().getMaxY() + 30) {
             this.explode(this.position());
-            this.discard();
+            this.discard(EntityRemoveEvent.Cause.OUT_OF_WORLD); // CraftBukkit - add Bukkit remove cause
         } else {
             super.tick();
         }
