diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tweaks/phantomReducer/PhantomReducer.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tweaks/phantomReducer/PhantomReducer.java new file mode 100644 index 0000000..45701f7 --- /dev/null +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tweaks/phantomReducer/PhantomReducer.java @@ -0,0 +1,16 @@ +package eu.mhsl.craftattack.spawn.craftattack.appliances.tweaks.phantomReducer; + +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; +import org.bukkit.event.Listener; +import org.jetbrains.annotations.NotNull; + +import java.util.List; + +public class PhantomReducer extends Appliance { + @Override + protected @NotNull List listeners() { + return List.of( + new PhantomSpawnListener() + ); + } +} diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tweaks/phantomReducer/PhantomSpawnListener.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tweaks/phantomReducer/PhantomSpawnListener.java new file mode 100644 index 0000000..a1efb53 --- /dev/null +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tweaks/phantomReducer/PhantomSpawnListener.java @@ -0,0 +1,16 @@ +package eu.mhsl.craftattack.spawn.craftattack.appliances.tweaks.phantomReducer; + +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; +import org.bukkit.entity.Phantom; +import org.bukkit.event.EventHandler; +import org.bukkit.event.entity.CreatureSpawnEvent; + +import java.util.concurrent.ThreadLocalRandom; + +class PhantomSpawnListener extends ApplianceListener { + @EventHandler + public void onPhantomSpawn(CreatureSpawnEvent event) { + if(!(event.getEntity() instanceof Phantom)) return; + if(ThreadLocalRandom.current().nextDouble() > 0.8) event.setCancelled(true); + } +}