From 7ae2890175b843e954aa975f9a099f746bc16456 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sun, 23 Aug 2020 20:41:27 -0500 Subject: [PATCH] Customizable spawner name and lore --- patches/server/0028-Silk-touch-spawners.patch | 67 +++++++++++++++---- ...772-Fix-Add-turtle-egg-block-options.patch | 4 +- patches/server/0034-Giants-AI-settings.patch | 4 +- .../server/0035-Illusioners-AI-settings.patch | 4 +- .../0036-Zombie-horse-naturally-spawn.patch | 4 +- ...0037-Charged-creeper-naturally-spawn.patch | 4 +- ...bit-naturally-spawn-toast-and-killer.patch | 4 +- .../server/0040-Make-Iron-Golems-Swim.patch | 4 +- .../server/0042-Tulips-change-fox-type.patch | 4 +- .../server/0043-Breedable-Polar-Bears.patch | 4 +- .../server/0044-Chickens-can-retaliate.patch | 4 +- .../server/0046-Cat-spawning-options.patch | 4 +- patches/server/0048-Cows-eat-mushrooms.patch | 4 +- .../server/0050-Pigs-give-saddle-back.patch | 4 +- ...51-Snowman-drop-and-put-back-pumpkin.patch | 4 +- .../0052-Ender-dragon-always-drop-egg.patch | 4 +- ...53-Ender-dragon-always-drop-full-exp.patch | 4 +- .../0054-Signs-editable-on-right-click.patch | 4 +- .../server/0055-Signs-allow-color-codes.patch | 4 +- ...moisten-from-water-directly-under-it.patch | 4 +- ...-skeleton-takes-wither-damage-option.patch | 4 +- ...derman-and-creeper-griefing-controls.patch | 6 +- ...ing-can-bypass-mob-griefing-gamerule.patch | 4 +- ...0073-Villagers-follow-emerald-blocks.patch | 4 +- ...urable-search-radius-for-villagers-t.patch | 4 +- .../server/0076-Implement-infinite-lava.patch | 4 +- ...77-Make-lava-flow-speed-configurable.patch | 4 +- ...n-for-zombies-targetting-turtle-eggs.patch | 4 +- ...ispenser-curse-of-binding-protection.patch | 4 +- ...086-Implement-bamboo-growth-settings.patch | 4 +- .../0092-Configurable-jockey-options.patch | 8 +-- ...ed-to-crystals-and-crystals-shoot-ph.patch | 4 +- ...0094-Customizable-EnderDragon-Health.patch | 4 +- .../0095-Add-phantom-spawning-options.patch | 4 +- ...0096-Implement-bed-explosion-options.patch | 4 +- ...ent-respawn-anchor-explosion-options.patch | 4 +- ...leport-to-spawn-if-outside-world-bor.patch | 6 +- patches/server/0103-Squid-EAR-immunity.patch | 4 +- .../server/0106-Phantoms-burn-in-light.patch | 6 +- .../0107-Configurable-villager-breeding.patch | 6 +- .../0108-Redstone-deactivates-spawners.patch | 4 +- .../0109-Totems-work-in-inventory.patch | 6 +- .../0117-Dispensers-place-anvils-option.patch | 4 +- patches/server/0118-Allow-anvil-colors.patch | 4 +- ...o-disable-dolphin-treasure-searching.patch | 4 +- ...set-reputation-when-villager-is-cure.patch | 4 +- ...Stop-squids-floating-on-top-of-water.patch | 4 +- patches/server/0125-Ridables.patch | 16 ++--- ...izable-WitherBoss-Health-and-Healing.patch | 4 +- 49 files changed, 163 insertions(+), 122 deletions(-) diff --git a/patches/server/0028-Silk-touch-spawners.patch b/patches/server/0028-Silk-touch-spawners.patch index 4f78e2a8f..90d00c783 100644 --- a/patches/server/0028-Silk-touch-spawners.patch +++ b/patches/server/0028-Silk-touch-spawners.patch @@ -17,10 +17,25 @@ index a45ceff9f..d08b58473 100644 if (!world.isClientSide && !itemstack.isEmpty() && world.getGameRules().getBoolean(GameRules.DO_TILE_DROPS)) { float f = 0.5F; diff --git a/src/main/java/net/minecraft/server/BlockMobSpawner.java b/src/main/java/net/minecraft/server/BlockMobSpawner.java -index 81e145ff0..5929220b0 100644 +index 81e145ff0..91b92d95a 100644 --- a/src/main/java/net/minecraft/server/BlockMobSpawner.java +++ b/src/main/java/net/minecraft/server/BlockMobSpawner.java -@@ -11,6 +11,40 @@ public class BlockMobSpawner extends BlockTileEntity { +@@ -1,5 +1,14 @@ + package net.minecraft.server; + ++// Purpur start ++import net.md_5.bungee.api.ChatColor; ++import net.md_5.bungee.api.chat.BaseComponent; ++import net.md_5.bungee.api.chat.TextComponent; ++import net.md_5.bungee.chat.ComponentSerializer; ++ ++import java.util.List; ++// Purpur end ++ + public class BlockMobSpawner extends BlockTileEntity { + + protected BlockMobSpawner(BlockBase.Info blockbase_info) { +@@ -11,6 +20,59 @@ public class BlockMobSpawner extends BlockTileEntity { return new TileEntityMobSpawner(); } @@ -30,21 +45,40 @@ index 81e145ff0..5929220b0 100644 + if (world.purpurConfig.silkTouchEnabled && entityhuman.getBukkitEntity().hasPermission("purpur.drop.spawners") && isSilkTouch(world, itemstack)) { + MinecraftKey type = ((TileEntityMobSpawner) tileentity).getSpawner().getMobName(); + if (type != null) { -+ ItemStack item = new ItemStack(Blocks.SPAWNER.getItem()); -+ + String mobName = EntityTypes.getFromKey(type).getTranslatedName(); -+ ChatComponentText text = new ChatComponentText("Spawns a " + mobName); -+ -+ NBTTagList lore = new NBTTagList(); -+ lore.add(NBTTagString.a(IChatBaseComponent.ChatSerializer.a(text))); + + NBTTagCompound display = new NBTTagCompound(); -+ display.set("Lore", lore); ++ boolean customDisplay = false; ++ ++ String name = world.purpurConfig.silkTouchSpawnerName; ++ if (name != null && !name.isEmpty() && !name.equals("Spawner")) { ++ name = ChatColor.translateAlternateColorCodes('&', name ++ .replace("{mob}", mobName)); ++ BaseComponent[] comp = TextComponent.fromLegacyText(name); ++ display.set("Name", NBTTagString.create(ComponentSerializer.toString(comp))); ++ customDisplay = true; ++ } ++ ++ List lore = world.purpurConfig.silkTouchSpawnerLore; ++ if (lore != null && !lore.isEmpty()) { ++ NBTTagList list = new NBTTagList(); ++ for (String line : lore) { ++ line = ChatColor.translateAlternateColorCodes('&', line ++ .replace("{mob}", mobName)); ++ BaseComponent[] comp = TextComponent.fromLegacyText(line); ++ list.add(NBTTagString.create(ComponentSerializer.toString(comp))); ++ } ++ display.set("Lore", list); ++ customDisplay = true; ++ } + + NBTTagCompound tag = new NBTTagCompound(); -+ tag.set("display", display); ++ if (customDisplay) { ++ tag.set("display", display); ++ } + tag.setString("Purpur.mob_type", type.toString()); + ++ ItemStack item = new ItemStack(Blocks.SPAWNER.getItem()); + item.setTag(tag); + + dropItem(world, blockposition, item); @@ -61,7 +95,7 @@ index 81e145ff0..5929220b0 100644 @Override public void dropNaturally(IBlockData iblockdata, WorldServer worldserver, BlockPosition blockposition, ItemStack itemstack) { super.dropNaturally(iblockdata, worldserver, blockposition, itemstack); -@@ -23,6 +57,7 @@ public class BlockMobSpawner extends BlockTileEntity { +@@ -23,6 +85,7 @@ public class BlockMobSpawner extends BlockTileEntity { @Override public int getExpDrop(IBlockData iblockdata, WorldServer worldserver, BlockPosition blockposition, ItemStack itemstack) { @@ -112,7 +146,7 @@ index 1c861bccc..67ebcbe4d 100644 public static final Item cy = a(Blocks.CHEST, CreativeModeTab.c); public static final Item cz = a(Blocks.DIAMOND_ORE, CreativeModeTab.b); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index c7fb5a737..818c4da17 100644 +index c7fb5a737..ba89efb31 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -1,6 +1,12 @@ @@ -128,14 +162,21 @@ index c7fb5a737..818c4da17 100644 import java.util.List; import static net.pl3x.purpur.PurpurConfig.log; -@@ -75,6 +81,22 @@ public class PurpurWorldConfig { +@@ -75,6 +81,29 @@ public class PurpurWorldConfig { playerInvulnerableWhileAcceptingResourcePack = getBoolean("gameplay-mechanics.player.invulnerable-while-accepting-resource-pack", playerInvulnerableWhileAcceptingResourcePack); } + public boolean silkTouchEnabled = false; ++ public String silkTouchSpawnerName = "Spawner"; ++ public List silkTouchSpawnerLore = new ArrayList<>(); + public List silkTouchTools = new ArrayList<>(); + private void silkTouchSettings() { + silkTouchEnabled = getBoolean("gameplay-mechanics.silk-touch.enabled", silkTouchEnabled); ++ silkTouchSpawnerName = getString("gameplay-mechanics.silk-touch.spawner-name", silkTouchSpawnerName); ++ silkTouchSpawnerLore.clear(); ++ getList("gameplay-mechanics.silk-touch.spawner-lore", new ArrayList(){{ ++ add("Spawns a {mob}"); ++ }}).forEach(line -> silkTouchSpawnerLore.add(line.toString())); + silkTouchTools.clear(); + getList("gameplay-mechanics.silk-touch.tools", new ArrayList(){{ + add("minecraft:iron_pickaxe"); diff --git a/patches/server/0029-MC-168772-Fix-Add-turtle-egg-block-options.patch b/patches/server/0029-MC-168772-Fix-Add-turtle-egg-block-options.patch index 74d3c8ae9..6dc863e13 100644 --- a/patches/server/0029-MC-168772-Fix-Add-turtle-egg-block-options.patch +++ b/patches/server/0029-MC-168772-Fix-Add-turtle-egg-block-options.patch @@ -34,10 +34,10 @@ index 553c8affa..92cca6c44 100644 } } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 818c4da17..88e271574 100644 +index ba89efb31..f403f9dc6 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -97,6 +97,15 @@ public class PurpurWorldConfig { +@@ -104,6 +104,15 @@ public class PurpurWorldConfig { }); } diff --git a/patches/server/0034-Giants-AI-settings.patch b/patches/server/0034-Giants-AI-settings.patch index 2a7b924a6..ddd2d000c 100644 --- a/patches/server/0034-Giants-AI-settings.patch +++ b/patches/server/0034-Giants-AI-settings.patch @@ -159,10 +159,10 @@ index 17128d5aa..82cf853ab 100644 } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 88e271574..b1aca6526 100644 +index f403f9dc6..f5004f221 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -106,6 +106,23 @@ public class PurpurWorldConfig { +@@ -113,6 +113,23 @@ public class PurpurWorldConfig { turtleEggsBreakFromMinecarts = getBoolean("blocks.turtle_egg.break-from-minecarts", turtleEggsBreakFromMinecarts); } diff --git a/patches/server/0035-Illusioners-AI-settings.patch b/patches/server/0035-Illusioners-AI-settings.patch index 687cb9413..cc967ba14 100644 --- a/patches/server/0035-Illusioners-AI-settings.patch +++ b/patches/server/0035-Illusioners-AI-settings.patch @@ -27,10 +27,10 @@ index 1c8231620..7b2c459ad 100644 protected void initPathfinder() { super.initPathfinder(); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index b1aca6526..70f8feffb 100644 +index f5004f221..0073e3b85 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -123,6 +123,15 @@ public class PurpurWorldConfig { +@@ -130,6 +130,15 @@ public class PurpurWorldConfig { giantHaveHostileAI = getBoolean("mobs.giant.have-hostile-ai", giantHaveHostileAI); } diff --git a/patches/server/0036-Zombie-horse-naturally-spawn.patch b/patches/server/0036-Zombie-horse-naturally-spawn.patch index c99324243..87d11d8c9 100644 --- a/patches/server/0036-Zombie-horse-naturally-spawn.patch +++ b/patches/server/0036-Zombie-horse-naturally-spawn.patch @@ -34,10 +34,10 @@ index ebf78f2cc..646f9180f 100644 EntityLightning entitylightning = (EntityLightning) EntityTypes.LIGHTNING_BOLT.a((World) this); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 70f8feffb..d0fd8f9cd 100644 +index 0073e3b85..b652bfbdc 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -138,4 +138,9 @@ public class PurpurWorldConfig { +@@ -145,4 +145,9 @@ public class PurpurWorldConfig { villagerBrainTicks = getInt("mobs.villager.brain-ticks", villagerBrainTicks); villagerUseBrainTicksOnlyWhenLagging = getBoolean("mobs.villager.use-brain-ticks-only-when-lagging", villagerUseBrainTicksOnlyWhenLagging); } diff --git a/patches/server/0037-Charged-creeper-naturally-spawn.patch b/patches/server/0037-Charged-creeper-naturally-spawn.patch index 25f348b60..a293dc8c6 100644 --- a/patches/server/0037-Charged-creeper-naturally-spawn.patch +++ b/patches/server/0037-Charged-creeper-naturally-spawn.patch @@ -27,10 +27,10 @@ index ad422dfaf..8338afa7c 100644 protected void initPathfinder() { this.goalSelector.a(1, new PathfinderGoalFloat(this)); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index d0fd8f9cd..5004d6f77 100644 +index b652bfbdc..a1c0dc687 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -106,6 +106,11 @@ public class PurpurWorldConfig { +@@ -113,6 +113,11 @@ public class PurpurWorldConfig { turtleEggsBreakFromMinecarts = getBoolean("blocks.turtle_egg.break-from-minecarts", turtleEggsBreakFromMinecarts); } diff --git a/patches/server/0038-Rabbit-naturally-spawn-toast-and-killer.patch b/patches/server/0038-Rabbit-naturally-spawn-toast-and-killer.patch index 276ad71e8..6ff7f6d01 100644 --- a/patches/server/0038-Rabbit-naturally-spawn-toast-and-killer.patch +++ b/patches/server/0038-Rabbit-naturally-spawn-toast-and-killer.patch @@ -37,10 +37,10 @@ index a7456890e..98baf24bd 100644 int i = this.random.nextInt(100); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 5004d6f77..52e459002 100644 +index a1c0dc687..fe82dc392 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -137,6 +137,13 @@ public class PurpurWorldConfig { +@@ -144,6 +144,13 @@ public class PurpurWorldConfig { illusionerFollowRange = getDouble("mobs.illusioner.follow-range", illusionerFollowRange); } diff --git a/patches/server/0040-Make-Iron-Golems-Swim.patch b/patches/server/0040-Make-Iron-Golems-Swim.patch index 022343904..b6f60afb7 100644 --- a/patches/server/0040-Make-Iron-Golems-Swim.patch +++ b/patches/server/0040-Make-Iron-Golems-Swim.patch @@ -17,10 +17,10 @@ index 0a5c27e73..bdff23688 100644 this.goalSelector.a(2, new PathfinderGoalMoveTowardsTarget(this, 0.9D, 32.0F)); this.goalSelector.a(2, new PathfinderGoalStrollVillage(this, 0.6D, false)); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 52e459002..1bee83e61 100644 +index fe82dc392..fd552adb9 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -137,6 +137,11 @@ public class PurpurWorldConfig { +@@ -144,6 +144,11 @@ public class PurpurWorldConfig { illusionerFollowRange = getDouble("mobs.illusioner.follow-range", illusionerFollowRange); } diff --git a/patches/server/0042-Tulips-change-fox-type.patch b/patches/server/0042-Tulips-change-fox-type.patch index db8b0954d..e7b020008 100644 --- a/patches/server/0042-Tulips-change-fox-type.patch +++ b/patches/server/0042-Tulips-change-fox-type.patch @@ -85,10 +85,10 @@ index 67ebcbe4d..4c379916d 100644 public static final Item bq = a(Blocks.OXEYE_DAISY, CreativeModeTab.c); public static final Item br = a(Blocks.CORNFLOWER, CreativeModeTab.c); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 1bee83e61..a98dd59b8 100644 +index fd552adb9..40bc4cc77 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -111,6 +111,11 @@ public class PurpurWorldConfig { +@@ -118,6 +118,11 @@ public class PurpurWorldConfig { creeperChargedChance = getDouble("mobs.creeper.naturally-charged-chance", creeperChargedChance); } diff --git a/patches/server/0043-Breedable-Polar-Bears.patch b/patches/server/0043-Breedable-Polar-Bears.patch index 82d96fdeb..d93952128 100644 --- a/patches/server/0043-Breedable-Polar-Bears.patch +++ b/patches/server/0043-Breedable-Polar-Bears.patch @@ -75,10 +75,10 @@ index b59cbd70a..cd6d2e07e 100644 this.datawatcher.set(EntityPolarBear.bo, flag); } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index a98dd59b8..9b6bd8f41 100644 +index 40bc4cc77..882ac4c1f 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -147,6 +147,14 @@ public class PurpurWorldConfig { +@@ -154,6 +154,14 @@ public class PurpurWorldConfig { ironGolemCanSwim = getBoolean("mobs.iron_golem.can-swim", ironGolemCanSwim); } diff --git a/patches/server/0044-Chickens-can-retaliate.patch b/patches/server/0044-Chickens-can-retaliate.patch index 5fd0b7324..6f28d8843 100644 --- a/patches/server/0044-Chickens-can-retaliate.patch +++ b/patches/server/0044-Chickens-can-retaliate.patch @@ -55,10 +55,10 @@ index 45e989efd..26dee32bf 100644 @Override diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 9b6bd8f41..06d9d9ed4 100644 +index 882ac4c1f..95e801ce2 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -106,6 +106,11 @@ public class PurpurWorldConfig { +@@ -113,6 +113,11 @@ public class PurpurWorldConfig { turtleEggsBreakFromMinecarts = getBoolean("blocks.turtle_egg.break-from-minecarts", turtleEggsBreakFromMinecarts); } diff --git a/patches/server/0046-Cat-spawning-options.patch b/patches/server/0046-Cat-spawning-options.patch index b16768b9f..08cb569f4 100644 --- a/patches/server/0046-Cat-spawning-options.patch +++ b/patches/server/0046-Cat-spawning-options.patch @@ -107,10 +107,10 @@ index 646f9180f..53ab03a29 100644 return this.getChunkProvider().j(); } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index b41d4959c..55e609cc1 100644 +index f01c74a2e..b32f4d74a 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -111,6 +111,15 @@ public class PurpurWorldConfig { +@@ -118,6 +118,15 @@ public class PurpurWorldConfig { turtleEggsBreakFromMinecarts = getBoolean("blocks.turtle_egg.break-from-minecarts", turtleEggsBreakFromMinecarts); } diff --git a/patches/server/0048-Cows-eat-mushrooms.patch b/patches/server/0048-Cows-eat-mushrooms.patch index 0593cdb98..c111f7756 100644 --- a/patches/server/0048-Cows-eat-mushrooms.patch +++ b/patches/server/0048-Cows-eat-mushrooms.patch @@ -123,10 +123,10 @@ index 82cf853ab..5e9849a46 100644 public float aC; public float aD; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 55e609cc1..3d78ac90c 100644 +index b32f4d74a..d8bd7ffd5 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -125,6 +125,11 @@ public class PurpurWorldConfig { +@@ -132,6 +132,11 @@ public class PurpurWorldConfig { chickenRetaliate = getBoolean("mobs.chicken.retaliate", chickenRetaliate); } diff --git a/patches/server/0050-Pigs-give-saddle-back.patch b/patches/server/0050-Pigs-give-saddle-back.patch index 48006d9f2..6177f1fcb 100644 --- a/patches/server/0050-Pigs-give-saddle-back.patch +++ b/patches/server/0050-Pigs-give-saddle-back.patch @@ -28,10 +28,10 @@ index 684867010..87caac62b 100644 } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 3d78ac90c..12d2c8d10 100644 +index d8bd7ffd5..7d6c624ac 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -171,6 +171,11 @@ public class PurpurWorldConfig { +@@ -178,6 +178,11 @@ public class PurpurWorldConfig { ironGolemCanSwim = getBoolean("mobs.iron_golem.can-swim", ironGolemCanSwim); } diff --git a/patches/server/0051-Snowman-drop-and-put-back-pumpkin.patch b/patches/server/0051-Snowman-drop-and-put-back-pumpkin.patch index a8d7b2aa2..3eb2cfded 100644 --- a/patches/server/0051-Snowman-drop-and-put-back-pumpkin.patch +++ b/patches/server/0051-Snowman-drop-and-put-back-pumpkin.patch @@ -43,10 +43,10 @@ index 15b886d9b..dfe615814 100644 return EnumInteractionResult.PASS; } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 12d2c8d10..a6b048873 100644 +index 7d6c624ac..c91f00704 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -191,6 +191,13 @@ public class PurpurWorldConfig { +@@ -198,6 +198,13 @@ public class PurpurWorldConfig { rabbitNaturalKiller = getDouble("mobs.rabbit.spawn-killer-rabbit-chance", rabbitNaturalKiller); } diff --git a/patches/server/0052-Ender-dragon-always-drop-egg.patch b/patches/server/0052-Ender-dragon-always-drop-egg.patch index 6e84fe9c7..d8b4d1bf5 100644 --- a/patches/server/0052-Ender-dragon-always-drop-egg.patch +++ b/patches/server/0052-Ender-dragon-always-drop-egg.patch @@ -18,10 +18,10 @@ index 47182c500..4f3f7cb42 100644 } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index a6b048873..62b94bff3 100644 +index c91f00704..064c158a1 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -135,6 +135,11 @@ public class PurpurWorldConfig { +@@ -142,6 +142,11 @@ public class PurpurWorldConfig { creeperChargedChance = getDouble("mobs.creeper.naturally-charged-chance", creeperChargedChance); } diff --git a/patches/server/0053-Ender-dragon-always-drop-full-exp.patch b/patches/server/0053-Ender-dragon-always-drop-full-exp.patch index 496fe92d6..58d3e77d9 100644 --- a/patches/server/0053-Ender-dragon-always-drop-full-exp.patch +++ b/patches/server/0053-Ender-dragon-always-drop-full-exp.patch @@ -18,10 +18,10 @@ index 6b2c5e8d4..0e74794d3 100644 } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 62b94bff3..4f4996011 100644 +index 064c158a1..96b154bf2 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -136,8 +136,10 @@ public class PurpurWorldConfig { +@@ -143,8 +143,10 @@ public class PurpurWorldConfig { } public boolean enderDragonAlwaysDropsEggBlock = false; diff --git a/patches/server/0054-Signs-editable-on-right-click.patch b/patches/server/0054-Signs-editable-on-right-click.patch index a7b709c5d..3d95b1faf 100644 --- a/patches/server/0054-Signs-editable-on-right-click.patch +++ b/patches/server/0054-Signs-editable-on-right-click.patch @@ -39,10 +39,10 @@ index 2b9d5724c..316766970 100644 // Paper start //this.c = entityhuman; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 4f4996011..227436226 100644 +index 96b154bf2..f14e88313 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -102,6 +102,11 @@ public class PurpurWorldConfig { +@@ -109,6 +109,11 @@ public class PurpurWorldConfig { }); } diff --git a/patches/server/0055-Signs-allow-color-codes.patch b/patches/server/0055-Signs-allow-color-codes.patch index 262b7142c..a404471d7 100644 --- a/patches/server/0055-Signs-allow-color-codes.patch +++ b/patches/server/0055-Signs-allow-color-codes.patch @@ -59,10 +59,10 @@ index 316766970..852bb5db8 100644 @Override public PacketPlayOutTileEntityData getUpdatePacket() { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 227436226..21a2c0c43 100644 +index f14e88313..f21597743 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -102,9 +102,12 @@ public class PurpurWorldConfig { +@@ -109,9 +109,12 @@ public class PurpurWorldConfig { }); } diff --git a/patches/server/0056-Allow-soil-to-moisten-from-water-directly-under-it.patch b/patches/server/0056-Allow-soil-to-moisten-from-water-directly-under-it.patch index cb20584d3..4756ab477 100644 --- a/patches/server/0056-Allow-soil-to-moisten-from-water-directly-under-it.patch +++ b/patches/server/0056-Allow-soil-to-moisten-from-water-directly-under-it.patch @@ -36,10 +36,10 @@ index a315e2628..8dd48669c 100644 @Override diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 21a2c0c43..70e504ff3 100644 +index f21597743..2763cc943 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -102,6 +102,11 @@ public class PurpurWorldConfig { +@@ -109,6 +109,11 @@ public class PurpurWorldConfig { }); } diff --git a/patches/server/0067-Add-wither-skeleton-takes-wither-damage-option.patch b/patches/server/0067-Add-wither-skeleton-takes-wither-damage-option.patch index 4ac2b3ab3..e1e666425 100644 --- a/patches/server/0067-Add-wither-skeleton-takes-wither-damage-option.patch +++ b/patches/server/0067-Add-wither-skeleton-takes-wither-damage-option.patch @@ -17,10 +17,10 @@ index 1ae9910fe..c872be77a 100644 } } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 77e2dce3f..3e1e1d336 100644 +index 883614746..355df16d2 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -263,6 +263,11 @@ public class PurpurWorldConfig { +@@ -270,6 +270,11 @@ public class PurpurWorldConfig { villagerUseBrainTicksOnlyWhenLagging = getBoolean("mobs.villager.use-brain-ticks-only-when-lagging", villagerUseBrainTicksOnlyWhenLagging); } diff --git a/patches/server/0070-Add-enderman-and-creeper-griefing-controls.patch b/patches/server/0070-Add-enderman-and-creeper-griefing-controls.patch index a1b7b3359..d7610a003 100644 --- a/patches/server/0070-Add-enderman-and-creeper-griefing-controls.patch +++ b/patches/server/0070-Add-enderman-and-creeper-griefing-controls.patch @@ -47,10 +47,10 @@ index 03176e83a..b45a75a45 100644 } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 61094d4f7..e6a1d88a2 100644 +index ae7de565c..c1e511bad 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -183,8 +183,10 @@ public class PurpurWorldConfig { +@@ -190,8 +190,10 @@ public class PurpurWorldConfig { cowFeedMushrooms = getInt("mobs.cow.feed-mushrooms-for-mooshroom", cowFeedMushrooms); } @@ -61,7 +61,7 @@ index 61094d4f7..e6a1d88a2 100644 creeperChargedChance = getDouble("mobs.creeper.naturally-charged-chance", creeperChargedChance); } -@@ -195,6 +197,11 @@ public class PurpurWorldConfig { +@@ -202,6 +204,11 @@ public class PurpurWorldConfig { enderDragonAlwaysDropsFullExp = getBoolean("mobs.ender_dragon.always-drop-full-exp", enderDragonAlwaysDropsFullExp); } diff --git a/patches/server/0072-Villagers-farming-can-bypass-mob-griefing-gamerule.patch b/patches/server/0072-Villagers-farming-can-bypass-mob-griefing-gamerule.patch index 3dab81823..76063b99b 100644 --- a/patches/server/0072-Villagers-farming-can-bypass-mob-griefing-gamerule.patch +++ b/patches/server/0072-Villagers-farming-can-bypass-mob-griefing-gamerule.patch @@ -18,10 +18,10 @@ index 54a555509..0ff202c0d 100644 } else if (entityvillager.getVillagerData().getProfession() != VillagerProfession.FARMER) { return false; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 1a830b579..aa8398193 100644 +index 0008c4b12..a2f9ac730 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -269,9 +269,11 @@ public class PurpurWorldConfig { +@@ -276,9 +276,11 @@ public class PurpurWorldConfig { public int villagerBrainTicks = 1; public boolean villagerUseBrainTicksOnlyWhenLagging = true; diff --git a/patches/server/0073-Villagers-follow-emerald-blocks.patch b/patches/server/0073-Villagers-follow-emerald-blocks.patch index 8cb719b09..ed7098586 100644 --- a/patches/server/0073-Villagers-follow-emerald-blocks.patch +++ b/patches/server/0073-Villagers-follow-emerald-blocks.patch @@ -48,10 +48,10 @@ index f1a509063..74c2d89af 100644 this.goalSelector.a(8, new PathfinderGoalRandomStrollLand(this, 0.35D)); this.goalSelector.a(9, new PathfinderGoalInteract(this, EntityHuman.class, 3.0F, 1.0F)); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index aa8398193..26a760bc3 100644 +index a2f9ac730..5826c2985 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -270,10 +270,17 @@ public class PurpurWorldConfig { +@@ -277,10 +277,17 @@ public class PurpurWorldConfig { public int villagerBrainTicks = 1; public boolean villagerUseBrainTicksOnlyWhenLagging = true; public boolean villagerFarmingBypassMobGriefing = false; diff --git a/patches/server/0075-Implement-configurable-search-radius-for-villagers-t.patch b/patches/server/0075-Implement-configurable-search-radius-for-villagers-t.patch index 1967bcbbc..e839719b1 100644 --- a/patches/server/0075-Implement-configurable-search-radius-for-villagers-t.patch +++ b/patches/server/0075-Implement-configurable-search-radius-for-villagers-t.patch @@ -18,10 +18,10 @@ index ff23ca2a1..71644c3d9 100644 for (int i = 0; i < 10; ++i) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 665eac22f..e3904be3f 100644 +index 077860df8..11b4eac48 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -272,12 +272,16 @@ public class PurpurWorldConfig { +@@ -279,12 +279,16 @@ public class PurpurWorldConfig { public boolean villagerCanBeLeashed = false; public boolean villagerFarmingBypassMobGriefing = false; public boolean villagerFollowEmeraldBlock = false; diff --git a/patches/server/0076-Implement-infinite-lava.patch b/patches/server/0076-Implement-infinite-lava.patch index 72b026001..75b3ce65c 100644 --- a/patches/server/0076-Implement-infinite-lava.patch +++ b/patches/server/0076-Implement-infinite-lava.patch @@ -50,10 +50,10 @@ index 29930e801..9e543449c 100644 protected boolean f() { return false; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index e3904be3f..de71f617d 100644 +index 11b4eac48..3ca3de623 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -149,6 +149,11 @@ public class PurpurWorldConfig { +@@ -156,6 +156,11 @@ public class PurpurWorldConfig { farmlandGetsMoistFromBelow = getBoolean("blocks.farmland.gets-moist-from-below", farmlandGetsMoistFromBelow); } diff --git a/patches/server/0077-Make-lava-flow-speed-configurable.patch b/patches/server/0077-Make-lava-flow-speed-configurable.patch index 2c71849dd..e5b0b5f41 100644 --- a/patches/server/0077-Make-lava-flow-speed-configurable.patch +++ b/patches/server/0077-Make-lava-flow-speed-configurable.patch @@ -18,10 +18,10 @@ index 9e543449c..fb501a6c5 100644 @Override diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index de71f617d..58b21bc81 100644 +index 3ca3de623..7c27696eb 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -150,8 +150,12 @@ public class PurpurWorldConfig { +@@ -157,8 +157,12 @@ public class PurpurWorldConfig { } public boolean lavaInfinite = false; diff --git a/patches/server/0081-Add-option-for-zombies-targetting-turtle-eggs.patch b/patches/server/0081-Add-option-for-zombies-targetting-turtle-eggs.patch index f3277bc07..97cb6987d 100644 --- a/patches/server/0081-Add-option-for-zombies-targetting-turtle-eggs.patch +++ b/patches/server/0081-Add-option-for-zombies-targetting-turtle-eggs.patch @@ -18,10 +18,10 @@ index 039c5f438..cb7d61937 100644 this.goalSelector.a(8, new PathfinderGoalRandomLookaround(this)); this.m(); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index a071129db..7da85ba5a 100644 +index 4466f21ba..fe8411755 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -316,6 +316,11 @@ public class PurpurWorldConfig { +@@ -323,6 +323,11 @@ public class PurpurWorldConfig { witherSkeletonTakesWitherDamage = getBoolean("mobs.wither_skeleton.takes-wither-damage", witherSkeletonTakesWitherDamage); } diff --git a/patches/server/0082-Dispenser-curse-of-binding-protection.patch b/patches/server/0082-Dispenser-curse-of-binding-protection.patch index b5f10339a..99176a115 100644 --- a/patches/server/0082-Dispenser-curse-of-binding-protection.patch +++ b/patches/server/0082-Dispenser-curse-of-binding-protection.patch @@ -44,10 +44,10 @@ index 669a50411..7cd2e871b 100644 return this.b; } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 7da85ba5a..f741218df 100644 +index fe8411755..b16446527 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -155,6 +155,11 @@ public class PurpurWorldConfig { +@@ -162,6 +162,11 @@ public class PurpurWorldConfig { }); } diff --git a/patches/server/0086-Implement-bamboo-growth-settings.patch b/patches/server/0086-Implement-bamboo-growth-settings.patch index 0bb525396..2f41e1883 100644 --- a/patches/server/0086-Implement-bamboo-growth-settings.patch +++ b/patches/server/0086-Implement-bamboo-growth-settings.patch @@ -63,10 +63,10 @@ index f208ab509..ce56edb7c 100644 } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 993ad17ec..a9b1a130b 100644 +index d59e1475e..be2ebd73a 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -159,6 +159,13 @@ public class PurpurWorldConfig { +@@ -166,6 +166,13 @@ public class PurpurWorldConfig { }); } diff --git a/patches/server/0092-Configurable-jockey-options.patch b/patches/server/0092-Configurable-jockey-options.patch index f295e0edf..f78066857 100644 --- a/patches/server/0092-Configurable-jockey-options.patch +++ b/patches/server/0092-Configurable-jockey-options.patch @@ -193,10 +193,10 @@ index b52b8d0d8..69e98dceb 100644 protected void initDatawatcher() { super.initDatawatcher(); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 9de724686..3e067c832 100644 +index 2b945553e..c7bdbcecf 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -258,6 +258,15 @@ public class PurpurWorldConfig { +@@ -265,6 +265,15 @@ public class PurpurWorldConfig { creeperChargedChance = getDouble("mobs.creeper.naturally-charged-chance", creeperChargedChance); } @@ -212,7 +212,7 @@ index 9de724686..3e067c832 100644 public boolean enderDragonAlwaysDropsEggBlock = false; public boolean enderDragonAlwaysDropsFullExp = false; private void enderDragonSettings() { -@@ -292,6 +301,15 @@ public class PurpurWorldConfig { +@@ -299,6 +308,15 @@ public class PurpurWorldConfig { giantHaveHostileAI = getBoolean("mobs.giant.have-hostile-ai", giantHaveHostileAI); } @@ -228,7 +228,7 @@ index 9de724686..3e067c832 100644 public double illusionerMaxHealth = 32.0D; public double illusionerMovementSpeed = 0.5D; public double illusionerFollowRange = 18.0D; -@@ -363,12 +381,36 @@ public class PurpurWorldConfig { +@@ -370,12 +388,36 @@ public class PurpurWorldConfig { } public boolean zombieTargetTurtleEggs = true; diff --git a/patches/server/0093-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch b/patches/server/0093-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch index 1e2f15a08..ba9802e6f 100644 --- a/patches/server/0093-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch +++ b/patches/server/0093-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch @@ -329,10 +329,10 @@ index 550f80bfd..b3616185d 100644 return entityliving != null ? EntityPhantom.this.a(EntityPhantom.this.getGoalTarget(), PathfinderTargetCondition.a) : false; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 3e067c832..f2ca515c9 100644 +index c7bdbcecf..8ac088781 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -324,6 +324,15 @@ public class PurpurWorldConfig { +@@ -331,6 +331,15 @@ public class PurpurWorldConfig { ironGolemCanSwim = getBoolean("mobs.iron_golem.can-swim", ironGolemCanSwim); } diff --git a/patches/server/0094-Customizable-EnderDragon-Health.patch b/patches/server/0094-Customizable-EnderDragon-Health.patch index 5585f359e..dc56922ea 100644 --- a/patches/server/0094-Customizable-EnderDragon-Health.patch +++ b/patches/server/0094-Customizable-EnderDragon-Health.patch @@ -26,10 +26,10 @@ index 0e74794d3..d617b5345 100644 return EntityInsentient.p().a(GenericAttributes.MAX_HEALTH, 200.0D); } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index f2ca515c9..e6b41ab92 100644 +index 8ac088781..c9e18e50c 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -269,9 +269,11 @@ public class PurpurWorldConfig { +@@ -276,9 +276,11 @@ public class PurpurWorldConfig { public boolean enderDragonAlwaysDropsEggBlock = false; public boolean enderDragonAlwaysDropsFullExp = false; diff --git a/patches/server/0095-Add-phantom-spawning-options.patch b/patches/server/0095-Add-phantom-spawning-options.patch index 70ebf4daa..527bc7519 100644 --- a/patches/server/0095-Add-phantom-spawning-options.patch +++ b/patches/server/0095-Add-phantom-spawning-options.patch @@ -245,10 +245,10 @@ index e9e55c6f1..db372797a 100644 public int c() { return this.d; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index e6b41ab92..80d772e02 100644 +index c9e18e50c..14b5e7207 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -329,10 +329,34 @@ public class PurpurWorldConfig { +@@ -336,10 +336,34 @@ public class PurpurWorldConfig { public double phantomAttackedByCrystalRadius = 0.0D; public float phantomAttackedByCrystalDamage = 1.0F; public double phantomOrbitCrystalRadius = 0.0D; diff --git a/patches/server/0096-Implement-bed-explosion-options.patch b/patches/server/0096-Implement-bed-explosion-options.patch index fc5106449..b40e5966f 100644 --- a/patches/server/0096-Implement-bed-explosion-options.patch +++ b/patches/server/0096-Implement-bed-explosion-options.patch @@ -18,7 +18,7 @@ index d28c1a67e..c37225202 100644 } } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 80d772e02..56c4f9efd 100644 +index 14b5e7207..ad5904395 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -2,6 +2,7 @@ package net.pl3x.purpur; @@ -37,7 +37,7 @@ index 80d772e02..56c4f9efd 100644 import static net.pl3x.purpur.PurpurConfig.log; -@@ -196,6 +198,22 @@ public class PurpurWorldConfig { +@@ -203,6 +205,22 @@ public class PurpurWorldConfig { bambooSmallHeight = getInt("blocks.bamboo.small-height", bambooSmallHeight); } diff --git a/patches/server/0097-Implement-respawn-anchor-explosion-options.patch b/patches/server/0097-Implement-respawn-anchor-explosion-options.patch index 5e95142cf..0147492ad 100644 --- a/patches/server/0097-Implement-respawn-anchor-explosion-options.patch +++ b/patches/server/0097-Implement-respawn-anchor-explosion-options.patch @@ -30,10 +30,10 @@ index 21c5ad83a..521d161a3 100644 public static boolean a(World world) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 56c4f9efd..2f5bc77e0 100644 +index ad5904395..21d671cd9 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -233,6 +233,22 @@ public class PurpurWorldConfig { +@@ -240,6 +240,22 @@ public class PurpurWorldConfig { lavaSpeedNotNether = getInt("blocks.lava.speed.not-nether", lavaSpeedNotNether); } diff --git a/patches/server/0102-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch b/patches/server/0102-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch index c67d776a3..6e2d17826 100644 --- a/patches/server/0102-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch +++ b/patches/server/0102-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch @@ -23,7 +23,7 @@ index 2c90e7835..61a74e296 100644 } } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 4e8a6992a..19a4593e2 100644 +index 4a333b9bc..a91e8f8e5 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -180,6 +180,11 @@ public class PurpurWorldConfig { @@ -36,5 +36,5 @@ index 4e8a6992a..19a4593e2 100644 + } + public boolean silkTouchEnabled = false; - public List silkTouchTools = new ArrayList<>(); - private void silkTouchSettings() { + public String silkTouchSpawnerName = "Spawner"; + public List silkTouchSpawnerLore = new ArrayList<>(); diff --git a/patches/server/0103-Squid-EAR-immunity.patch b/patches/server/0103-Squid-EAR-immunity.patch index d824b3211..d6bd75b2c 100644 --- a/patches/server/0103-Squid-EAR-immunity.patch +++ b/patches/server/0103-Squid-EAR-immunity.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Squid EAR immunity diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 19a4593e2..dff09553b 100644 +index a91e8f8e5..737df8d11 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -430,6 +430,11 @@ public class PurpurWorldConfig { +@@ -437,6 +437,11 @@ public class PurpurWorldConfig { snowGolemPutPumpkinBack = getBoolean("mobs.snow_golem.pumpkin-can-be-added-back", snowGolemPutPumpkinBack); } diff --git a/patches/server/0106-Phantoms-burn-in-light.patch b/patches/server/0106-Phantoms-burn-in-light.patch index 488a9db1d..0fd86f762 100644 --- a/patches/server/0106-Phantoms-burn-in-light.patch +++ b/patches/server/0106-Phantoms-burn-in-light.patch @@ -70,10 +70,10 @@ index 4c379916d..ea6b61c9b 100644 public static final Item dr = a(Blocks.JACK_O_LANTERN, CreativeModeTab.b); public static final Item ds = a(Blocks.OAK_TRAPDOOR, CreativeModeTab.d); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index dff09553b..a96fd2abe 100644 +index 737df8d11..9369a8bad 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -385,6 +385,9 @@ public class PurpurWorldConfig { +@@ -392,6 +392,9 @@ public class PurpurWorldConfig { public int phantomSpawnOverheadRadius = 10; public int phantomSpawnMinPerAttempt = 1; public int phantomSpawnMaxPerAttempt = -1; @@ -83,7 +83,7 @@ index dff09553b..a96fd2abe 100644 private void phantomSettings() { phantomAttackedByCrystalRadius = getDouble("mobs.phantom.attacked-by-crystal-range", phantomAttackedByCrystalRadius); phantomAttackedByCrystalDamage = (float) getDouble("mobs.phantom.attacked-by-crystal-damage", phantomAttackedByCrystalDamage); -@@ -401,6 +404,9 @@ public class PurpurWorldConfig { +@@ -408,6 +411,9 @@ public class PurpurWorldConfig { phantomSpawnOverheadRadius = getInt("mobs.phantom.spawn.overhead.radius", phantomSpawnOverheadRadius); phantomSpawnMinPerAttempt = getInt("mobs.phantom.spawn.per-attempt.min", phantomSpawnMinPerAttempt); phantomSpawnMaxPerAttempt = getInt("mobs.phantom.spawn.per-attempt.max", phantomSpawnMaxPerAttempt); diff --git a/patches/server/0107-Configurable-villager-breeding.patch b/patches/server/0107-Configurable-villager-breeding.patch index 81f1c3c06..cd5fc6bfe 100644 --- a/patches/server/0107-Configurable-villager-breeding.patch +++ b/patches/server/0107-Configurable-villager-breeding.patch @@ -18,10 +18,10 @@ index 71644c3d9..0467020bb 100644 private boolean fr() { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index a96fd2abe..fb0059e27 100644 +index 9369a8bad..1fff97ae8 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -448,6 +448,7 @@ public class PurpurWorldConfig { +@@ -455,6 +455,7 @@ public class PurpurWorldConfig { public boolean villagerFollowEmeraldBlock = false; public int villagerSpawnIronGolemRadius = 0; public int villagerSpawnIronGolemLimit = 0; @@ -29,7 +29,7 @@ index a96fd2abe..fb0059e27 100644 private void villagerSettings() { villagerBrainTicks = getInt("mobs.villager.brain-ticks", villagerBrainTicks); villagerUseBrainTicksOnlyWhenLagging = getBoolean("mobs.villager.use-brain-ticks-only-when-lagging", villagerUseBrainTicksOnlyWhenLagging); -@@ -456,6 +457,7 @@ public class PurpurWorldConfig { +@@ -463,6 +464,7 @@ public class PurpurWorldConfig { villagerFollowEmeraldBlock = getBoolean("mobs.villager.follow-emerald-blocks", villagerFollowEmeraldBlock); villagerSpawnIronGolemRadius = getInt("mobs.villager.spawn-iron-golem.radius", villagerSpawnIronGolemRadius); villagerSpawnIronGolemLimit = getInt("mobs.villager.spawn-iron-golem.limit", villagerSpawnIronGolemLimit); diff --git a/patches/server/0108-Redstone-deactivates-spawners.patch b/patches/server/0108-Redstone-deactivates-spawners.patch index bb8af2457..248c65c3a 100644 --- a/patches/server/0108-Redstone-deactivates-spawners.patch +++ b/patches/server/0108-Redstone-deactivates-spawners.patch @@ -26,10 +26,10 @@ index c2e830db7..3b4cc9871 100644 public abstract BlockPosition b(); } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index fb0059e27..85d6d3fc3 100644 +index 1fff97ae8..db623250f 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -267,6 +267,11 @@ public class PurpurWorldConfig { +@@ -274,6 +274,11 @@ public class PurpurWorldConfig { } diff --git a/patches/server/0109-Totems-work-in-inventory.patch b/patches/server/0109-Totems-work-in-inventory.patch index 8f5d0b8f9..1713777b6 100644 --- a/patches/server/0109-Totems-work-in-inventory.patch +++ b/patches/server/0109-Totems-work-in-inventory.patch @@ -29,7 +29,7 @@ index 61a74e296..a90d3fa3e 100644 event.setCancelled(itemstack == null); this.world.getServer().getPluginManager().callEvent(event); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 85d6d3fc3..b2874758a 100644 +index db623250f..a9f8464b7 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -185,6 +185,11 @@ public class PurpurWorldConfig { @@ -42,5 +42,5 @@ index 85d6d3fc3..b2874758a 100644 + } + public boolean silkTouchEnabled = false; - public List silkTouchTools = new ArrayList<>(); - private void silkTouchSettings() { + public String silkTouchSpawnerName = "Spawner"; + public List silkTouchSpawnerLore = new ArrayList<>(); diff --git a/patches/server/0117-Dispensers-place-anvils-option.patch b/patches/server/0117-Dispensers-place-anvils-option.patch index 0ae345d19..6ec0ce115 100644 --- a/patches/server/0117-Dispensers-place-anvils-option.patch +++ b/patches/server/0117-Dispensers-place-anvils-option.patch @@ -61,10 +61,10 @@ index 7b8a470d9..d1f9d2884 100644 static void a(ISourceBlock isourceblock, Entity entity, EnumDirection enumdirection) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 54a0b8694..6a8f6cb8c 100644 +index 826d6b84e..13b50adc3 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -235,8 +235,10 @@ public class PurpurWorldConfig { +@@ -242,8 +242,10 @@ public class PurpurWorldConfig { } public boolean dispenserApplyCursedArmor = true; diff --git a/patches/server/0118-Allow-anvil-colors.patch b/patches/server/0118-Allow-anvil-colors.patch index fb8b6f4de..340b3a10b 100644 --- a/patches/server/0118-Allow-anvil-colors.patch +++ b/patches/server/0118-Allow-anvil-colors.patch @@ -35,10 +35,10 @@ index 4aa6b035a..5e4e59e5c 100644 } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 6a8f6cb8c..b19295cce 100644 +index 13b50adc3..df2fa3b71 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -211,6 +211,11 @@ public class PurpurWorldConfig { +@@ -218,6 +218,11 @@ public class PurpurWorldConfig { }); } diff --git a/patches/server/0120-Add-option-to-disable-dolphin-treasure-searching.patch b/patches/server/0120-Add-option-to-disable-dolphin-treasure-searching.patch index 5f7e0a941..cc917177e 100644 --- a/patches/server/0120-Add-option-to-disable-dolphin-treasure-searching.patch +++ b/patches/server/0120-Add-option-to-disable-dolphin-treasure-searching.patch @@ -17,10 +17,10 @@ index b5191eb0b..cde5c46fe 100644 } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 8f9f1a263..1f86580cf 100644 +index 3c44d7e13..d834f6be8 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -336,6 +336,11 @@ public class PurpurWorldConfig { +@@ -343,6 +343,11 @@ public class PurpurWorldConfig { creeperChargedChance = getDouble("mobs.creeper.naturally-charged-chance", creeperChargedChance); } diff --git a/patches/server/0121-Add-option-to-reset-reputation-when-villager-is-cure.patch b/patches/server/0121-Add-option-to-reset-reputation-when-villager-is-cure.patch index 89c884848..47c9bbf37 100644 --- a/patches/server/0121-Add-option-to-reset-reputation-when-villager-is-cure.patch +++ b/patches/server/0121-Add-option-to-reset-reputation-when-villager-is-cure.patch @@ -26,10 +26,10 @@ index 0467020bb..7add2fca1 100644 this.by.a(entity.getUniqueID(), ReputationType.MINOR_POSITIVE, 25); } else if (reputationevent == ReputationEvent.e) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 1f86580cf..6329b1c50 100644 +index d834f6be8..f705e6704 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -539,9 +539,11 @@ public class PurpurWorldConfig { +@@ -546,9 +546,11 @@ public class PurpurWorldConfig { public boolean zombieVillagerJockeyOnlyBaby = true; public double zombieVillagerJockeyChance = 0.05D; public boolean zombieVillagerJockeyTryExistingChickens = true; diff --git a/patches/server/0124-Stop-squids-floating-on-top-of-water.patch b/patches/server/0124-Stop-squids-floating-on-top-of-water.patch index d6a46cfff..9a5ac8bda 100644 --- a/patches/server/0124-Stop-squids-floating-on-top-of-water.patch +++ b/patches/server/0124-Stop-squids-floating-on-top-of-water.patch @@ -43,10 +43,10 @@ index 03d707ed0..028a7fe2c 100644 protected void initPathfinder() { this.goalSelector.a(0, new EntitySquid.PathfinderGoalSquid(this)); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 6329b1c50..421781136 100644 +index f705e6704..ed89642e8 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -476,8 +476,10 @@ public class PurpurWorldConfig { +@@ -483,8 +483,10 @@ public class PurpurWorldConfig { } public boolean squidImmuneToEAR = true; diff --git a/patches/server/0125-Ridables.patch b/patches/server/0125-Ridables.patch index c2fa2c37d..1b3906211 100644 --- a/patches/server/0125-Ridables.patch +++ b/patches/server/0125-Ridables.patch @@ -4950,7 +4950,7 @@ index 8714d1574..af3739c79 100644 public static int dungeonSeed = -1; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 421781136..aa2c41e4d 100644 +index ed89642e8..789fcc596 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -42,11 +42,6 @@ public class PurpurWorldConfig { @@ -4965,7 +4965,7 @@ index 421781136..aa2c41e4d 100644 private ConfigurationSection getConfigurationSection(String path) { ConfigurationSection section = PurpurConfig.config.getConfigurationSection("world-settings." + worldName + "." + path); return section != null ? section : PurpurConfig.config.getConfigurationSection("world-settings.default." + path); -@@ -310,65 +305,181 @@ public class PurpurWorldConfig { +@@ -317,65 +312,181 @@ public class PurpurWorldConfig { turtleEggsBreakFromMinecarts = getBoolean("blocks.turtle_egg.break-from-minecarts", turtleEggsBreakFromMinecarts); } @@ -5147,7 +5147,7 @@ index 421781136..aa2c41e4d 100644 public float giantStepHeight = 2.0F; public float giantJumpHeight = 1.0F; public double giantMaxHealth = 100.0D; -@@ -377,6 +488,8 @@ public class PurpurWorldConfig { +@@ -384,6 +495,8 @@ public class PurpurWorldConfig { public boolean giantHaveAI = false; public boolean giantHaveHostileAI = false; private void giantSettings() { @@ -5156,7 +5156,7 @@ index 421781136..aa2c41e4d 100644 giantStepHeight = (float) getDouble("mobs.giant.step-height", giantStepHeight); giantJumpHeight = (float) getDouble("mobs.giant.jump-height", giantJumpHeight); giantMaxHealth = getDouble("mobs.giant.max-health", giantMaxHealth); -@@ -386,29 +499,119 @@ public class PurpurWorldConfig { +@@ -393,29 +506,119 @@ public class PurpurWorldConfig { giantHaveHostileAI = getBoolean("mobs.giant.have-hostile-ai", giantHaveHostileAI); } @@ -5276,7 +5276,7 @@ index 421781136..aa2c41e4d 100644 public double phantomAttackedByCrystalRadius = 0.0D; public float phantomAttackedByCrystalDamage = 1.0F; public double phantomOrbitCrystalRadius = 0.0D; -@@ -428,6 +631,11 @@ public class PurpurWorldConfig { +@@ -435,6 +638,11 @@ public class PurpurWorldConfig { public boolean phantomIgnorePlayersWithTorch = false; public boolean phantomBurnInDaylight = true; private void phantomSettings() { @@ -5288,7 +5288,7 @@ index 421781136..aa2c41e4d 100644 phantomAttackedByCrystalRadius = getDouble("mobs.phantom.attacked-by-crystal-range", phantomAttackedByCrystalRadius); phantomAttackedByCrystalDamage = (float) getDouble("mobs.phantom.attacked-by-crystal-damage", phantomAttackedByCrystalDamage); phantomOrbitCrystalRadius = getDouble("mobs.phantom.orbit-crystal-radius", phantomOrbitCrystalRadius); -@@ -448,40 +656,184 @@ public class PurpurWorldConfig { +@@ -455,40 +663,184 @@ public class PurpurWorldConfig { phantomIgnorePlayersWithTorch = getBoolean("mobs.phantom.ignore-players-with-torch", phantomIgnorePlayersWithTorch); } @@ -5473,7 +5473,7 @@ index 421781136..aa2c41e4d 100644 public int villagerBrainTicks = 1; public boolean villagerUseBrainTicksOnlyWhenLagging = true; public boolean villagerCanBeLeashed = false; -@@ -491,6 +843,8 @@ public class PurpurWorldConfig { +@@ -498,6 +850,8 @@ public class PurpurWorldConfig { public int villagerSpawnIronGolemLimit = 0; public boolean villagerCanBreed = true; private void villagerSettings() { @@ -5482,7 +5482,7 @@ index 421781136..aa2c41e4d 100644 villagerBrainTicks = getInt("mobs.villager.brain-ticks", villagerBrainTicks); villagerUseBrainTicksOnlyWhenLagging = getBoolean("mobs.villager.use-brain-ticks-only-when-lagging", villagerUseBrainTicksOnlyWhenLagging); villagerCanBeLeashed = getBoolean("mobs.villager.can-be-leashed", villagerCanBeLeashed); -@@ -501,48 +855,111 @@ public class PurpurWorldConfig { +@@ -508,48 +862,111 @@ public class PurpurWorldConfig { villagerCanBreed = getBoolean("mobs.villager.can-breed", villagerCanBreed); } diff --git a/patches/server/0131-Customizable-WitherBoss-Health-and-Healing.patch b/patches/server/0131-Customizable-WitherBoss-Health-and-Healing.patch index 7090df8ff..3c4fa74a0 100644 --- a/patches/server/0131-Customizable-WitherBoss-Health-and-Healing.patch +++ b/patches/server/0131-Customizable-WitherBoss-Health-and-Healing.patch @@ -53,10 +53,10 @@ index 1054b492c..2a288d372 100644 @Override diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 66ac267f0..c7ccc896a 100644 +index e62fe108d..d6c29f0f2 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -887,10 +887,16 @@ public class PurpurWorldConfig { +@@ -894,10 +894,16 @@ public class PurpurWorldConfig { public boolean witherRidable = false; public boolean witherRidableInWater = false; public double witherMaxY = 256D;