From 4d3dea55f24853e40aabcc76c2adcb9c33dc145d Mon Sep 17 00:00:00 2001 From: pikapower9080 Date: Mon, 15 Sep 2025 17:33:26 -0400 Subject: [PATCH] feat(ConfettiCreepers): charged creeper config Adds a config option to ConfettiCreepers that allows charged creepers to explode normally, restoring the ability to obtain mob heads in survival --- .../modules/experimental/confetticreepers/Config.java | 5 +++++ .../experimental/confetticreepers/ExplosionListener.java | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/src/main/java/me/machinemaker/papertweaks/modules/experimental/confetticreepers/Config.java b/src/main/java/me/machinemaker/papertweaks/modules/experimental/confetticreepers/Config.java index d0efc5b8..71f13b19 100644 --- a/src/main/java/me/machinemaker/papertweaks/modules/experimental/confetticreepers/Config.java +++ b/src/main/java/me/machinemaker/papertweaks/modules/experimental/confetticreepers/Config.java @@ -20,6 +20,7 @@ package me.machinemaker.papertweaks.modules.experimental.confetticreepers; import me.machinemaker.lectern.annotations.Description; +import me.machinemaker.lectern.annotations.Key; import me.machinemaker.papertweaks.config.PTConfig; import me.machinemaker.papertweaks.modules.ModuleConfig; @@ -28,4 +29,8 @@ class Config extends ModuleConfig { @Description("Value between 0 (inclusive) and 1.0 (inclusive) for the chance a creeper will be a confetti creeper") public double chance = 1D; + + @Key("allow-charged-creepers") + @Description("Allows charged creepers to explode normally, restoring the ability to obtain mob heads") + public boolean allowChargedCreepers = false; } diff --git a/src/main/java/me/machinemaker/papertweaks/modules/experimental/confetticreepers/ExplosionListener.java b/src/main/java/me/machinemaker/papertweaks/modules/experimental/confetticreepers/ExplosionListener.java index 44b79df0..e53e7f99 100644 --- a/src/main/java/me/machinemaker/papertweaks/modules/experimental/confetticreepers/ExplosionListener.java +++ b/src/main/java/me/machinemaker/papertweaks/modules/experimental/confetticreepers/ExplosionListener.java @@ -24,6 +24,7 @@ import me.machinemaker.papertweaks.modules.ModuleListener; import org.bukkit.Color; import org.bukkit.FireworkEffect; +import org.bukkit.entity.Creeper; import org.bukkit.entity.EntityType; import org.bukkit.entity.Firework; import org.bukkit.event.EventHandler; @@ -57,6 +58,10 @@ public ExplosionListener(final Config config) { @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) public void onExplosionPrime(final ExplosionPrimeEvent event) { if (event.getEntityType() != EntityType.CREEPER) return; + if (this.config.allowChargedCreepers) { + Creeper creeper = (Creeper) event.getEntity(); + if (creeper.isPowered()) return; + } if (ThreadLocalRandom.current().nextDouble() < this.config.chance) { event.setFire(false); event.setRadius(0);