SPIGOT-336, SPIGOT-3366, SPIGOT-5768, SPIGOT-6409, SPIGOT-6861, #1008: Add EntityRemoveEvent

By: DerFrZocker <derrieple@gmail.com>
This commit is contained in:
CraftBukkit/Spigot
2024-02-21 20:55:34 +11:00
parent 6dc11b5d28
commit 64cd2b148a
81 changed files with 2037 additions and 475 deletions

View File

@@ -45,6 +45,7 @@ import org.bukkit.entity.Player;
import org.bukkit.entity.Pose;
import org.bukkit.entity.SpawnCategory;
import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.event.entity.EntityRemoveEvent;
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
import org.bukkit.metadata.MetadataValue;
import org.bukkit.permissions.PermissibleBase;
@@ -291,7 +292,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@Override
public void remove() {
entity.pluginRemoved = true;
entity.discard();
entity.discard(getHandle().generation ? null : EntityRemoveEvent.Cause.PLUGIN);
}
@Override

View File

@@ -118,7 +118,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
// during world generation, we don't want to run logic for dropping items and xp
if (getHandle().generation && health == 0) {
getHandle().discard();
getHandle().discard(null); // Add Bukkit remove cause
return;
}

View File

@@ -2,6 +2,7 @@ package org.bukkit.craftbukkit.entity;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.WindCharge;
import org.bukkit.event.entity.EntityRemoveEvent;
public class CraftWindCharge extends CraftFireball implements WindCharge {
public CraftWindCharge(CraftServer server, net.minecraft.world.entity.projectile.WindCharge entity) {
@@ -11,7 +12,7 @@ public class CraftWindCharge extends CraftFireball implements WindCharge {
@Override
public void explode() {
this.getHandle().explode();
this.getHandle().discard(); // SPIGOT-7577 - explode doesn't discard the entity, this happens only in tick and onHitBlock
this.getHandle().discard(EntityRemoveEvent.Cause.EXPLODE); // SPIGOT-7577 - explode doesn't discard the entity, this happens only in tick and onHitBlock
}
@Override