From d0e6af2d41514bc1056b76f18505d6d2aff510ab Mon Sep 17 00:00:00 2001 From: Doc Date: Wed, 19 Jun 2024 06:48:33 +1000 Subject: [PATCH] #1428: Expose Creeper igniter --- .../world/entity/monster/EntityCreeper.patch | 2 +- .../org/bukkit/craftbukkit/entity/CraftCreeper.java | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/nms-patches/net/minecraft/world/entity/monster/EntityCreeper.patch b/nms-patches/net/minecraft/world/entity/monster/EntityCreeper.patch index bd3f79b3e..a0cc7042c 100644 --- a/nms-patches/net/minecraft/world/entity/monster/EntityCreeper.patch +++ b/nms-patches/net/minecraft/world/entity/monster/EntityCreeper.patch @@ -18,7 +18,7 @@ public int maxSwell = 30; public int explosionRadius = 3; private int droppedSkulls; -+ private EntityHuman entityIgniter; // CraftBukkit ++ public Entity entityIgniter; // CraftBukkit public EntityCreeper(EntityTypes entitytypes, World world) { super(entitytypes, world); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftCreeper.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftCreeper.java index 1228c7b1c..fd3adff54 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftCreeper.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftCreeper.java @@ -4,6 +4,7 @@ import com.google.common.base.Preconditions; import net.minecraft.world.entity.monster.EntityCreeper; import org.bukkit.craftbukkit.CraftServer; import org.bukkit.entity.Creeper; +import org.bukkit.entity.Entity; import org.bukkit.event.entity.CreeperPowerEvent; public class CraftCreeper extends CraftMonster implements Creeper { @@ -75,11 +76,23 @@ public class CraftCreeper extends CraftMonster implements Creeper { getHandle().explodeCreeper(); } + @Override + public void ignite(Entity entity) { + Preconditions.checkNotNull(entity, "entity cannot be null"); + getHandle().entityIgniter = ((CraftEntity) entity).getHandle(); + getHandle().ignite(); + } + @Override public void ignite() { getHandle().ignite(); } + @Override + public Entity getIgniter() { + return (getHandle().entityIgniter != null) ? getHandle().entityIgniter.getBukkitEntity() : null; + } + @Override public EntityCreeper getHandle() { return (EntityCreeper) entity;