From 170d6febd5d4bfd89df2d323cef5732db37bf561 Mon Sep 17 00:00:00 2001 From: md_5 Date: Sun, 11 Apr 2021 17:32:26 +1000 Subject: [PATCH] SPIGOT-6417: Add Creeper fuse ticks API --- .../world/entity/monster/EntityCreeper.patch | 10 +++++++++- .../org/bukkit/craftbukkit/entity/CraftCreeper.java | 13 +++++++++++++ 2 files changed, 22 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 58d67c548..d51fcffdd 100644 --- a/nms-patches/net/minecraft/world/entity/monster/EntityCreeper.patch +++ b/nms-patches/net/minecraft/world/entity/monster/EntityCreeper.patch @@ -1,6 +1,6 @@ --- a/net/minecraft/world/entity/monster/EntityCreeper.java +++ b/net/minecraft/world/entity/monster/EntityCreeper.java -@@ -38,6 +38,12 @@ +@@ -38,13 +38,19 @@ import net.minecraft.world.level.IMaterial; import net.minecraft.world.level.World; @@ -13,6 +13,14 @@ public class EntityCreeper extends EntityMonster { private static final DataWatcherObject b = DataWatcher.a(EntityCreeper.class, DataWatcherRegistry.b); + private static final DataWatcherObject POWERED = DataWatcher.a(EntityCreeper.class, DataWatcherRegistry.i); + private static final DataWatcherObject d = DataWatcher.a(EntityCreeper.class, DataWatcherRegistry.i); + private int bo; +- private int fuseTicks; ++ public int fuseTicks; // PAIL + public int maxFuseTicks = 30; + public int explosionRadius = 3; + private int bs; @@ -200,9 +206,19 @@ @Override public void onLightningStrike(WorldServer worldserver, EntityLightning entitylightning) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftCreeper.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftCreeper.java index 013e0b1bc..167b8f0c7 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftCreeper.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftCreeper.java @@ -52,6 +52,19 @@ public class CraftCreeper extends CraftMonster implements Creeper { return getHandle().maxFuseTicks; } + @Override + public void setFuseTicks(int ticks) { + Preconditions.checkArgument(ticks >= 0, "ticks < 0"); + Preconditions.checkArgument(ticks <= getMaxFuseTicks(), "ticks > maxFuseTicks"); + + getHandle().fuseTicks = ticks; + } + + @Override + public int getFuseTicks() { + return getHandle().fuseTicks; + } + @Override public void setExplosionRadius(int radius) { Preconditions.checkArgument(radius >= 0, "radius < 0");