diff --git a/docs/source/configuration.rst b/docs/source/configuration.rst index 8b820ed2b..f40cfcad3 100644 --- a/docs/source/configuration.rst +++ b/docs/source/configuration.rst @@ -153,6 +153,11 @@ mobs - **default**: 0 - **description**: Number of mushrooms to feed a cow to make it transform into a mooshroom. Value of 0 disables feature. +* creeper + * naturally-charged-chance + - **default:** 0.0 + - **description:** Chance creepers are charged (powered) when spawning + * ender-dragon * always-drop-egg-block - **default**: false diff --git a/patches/server/0084-Add-charged-creeper-spawn-chance.patch b/patches/server/0084-Add-charged-creeper-spawn-chance.patch new file mode 100644 index 000000000..3e65cf901 --- /dev/null +++ b/patches/server/0084-Add-charged-creeper-spawn-chance.patch @@ -0,0 +1,68 @@ +From 5a594c375f52e81252ca15d34e17a1fd8c37da34 Mon Sep 17 00:00:00 2001 +From: William Blake Galbreath +Date: Fri, 29 Nov 2019 22:37:44 -0600 +Subject: [PATCH] Add charged creeper spawn chance + +--- + .../java/net/minecraft/server/EntityCreeper.java | 16 ++++++++++++++++ + src/main/java/net/pl3x/purpur/PurpurConfig.java | 5 +++++ + 2 files changed, 21 insertions(+) + +diff --git a/src/main/java/net/minecraft/server/EntityCreeper.java b/src/main/java/net/minecraft/server/EntityCreeper.java +index 038ff1d93c..0c49828b3d 100644 +--- a/src/main/java/net/minecraft/server/EntityCreeper.java ++++ b/src/main/java/net/minecraft/server/EntityCreeper.java +@@ -1,11 +1,16 @@ + package net.minecraft.server; + ++import java.time.LocalDate; ++import java.time.temporal.ChronoField; + import java.util.Collection; + import java.util.Iterator; ++import java.util.List; + // CraftBukkit start + import org.bukkit.craftbukkit.event.CraftEventFactory; + import org.bukkit.event.entity.CreatureSpawnEvent; + import org.bukkit.event.entity.ExplosionPrimeEvent; ++ ++import javax.annotation.Nullable; + // CraftBukkit end + + public class EntityCreeper extends EntityMonster { +@@ -68,6 +73,17 @@ public class EntityCreeper extends EntityMonster { + this.datawatcher.register(EntityCreeper.d, false); + } + ++ // Purpur start ++ @Nullable ++ @Override ++ public GroupDataEntity prepare(GeneratorAccess generatoraccess, DifficultyDamageScaler difficultydamagescaler, EnumMobSpawn enummobspawn, @Nullable GroupDataEntity groupdataentity, @Nullable NBTTagCompound nbttagcompound) { ++ if (net.pl3x.purpur.PurpurConfig.chargedCreeperChance > 0D && net.pl3x.purpur.PurpurConfig.chargedCreeperChance > random.nextDouble()) { ++ setPowered(true); ++ } ++ return super.prepare(generatoraccess, difficultydamagescaler, enummobspawn, groupdataentity, nbttagcompound); ++ } ++ // Purpur end ++ + @Override + public void b(NBTTagCompound nbttagcompound) { + super.b(nbttagcompound); +diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java +index 4bf208b35c..b5f12373a9 100644 +--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java ++++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java +@@ -208,6 +208,11 @@ public class PurpurConfig { + feedMushroomsToCows = getInt("settings.mobs.cow.feed-mushrooms-for-mooshroom", feedMushroomsToCows); + } + ++ public static double chargedCreeperChance = 0.0D; ++ private static void creeperSettings() { ++ chargedCreeperChance = getDouble("settings.mobs.creeper.naturally-charged-chance", chargedCreeperChance); ++ } ++ + public static boolean enderDragonAlwaysDropsEggBlock = false; + public static boolean enderDragonAlwaysDropsFullExp = false; + private static void enderDragonSettings() { +-- +2.24.0.rc1 +