From aa5e794e8786a46063442c916b66753f71766d4f Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Wed, 28 Sep 2022 17:52:06 -0500 Subject: [PATCH] move max-growth-age to global config --- patches/server/0004-Purpur-config-files.patch | 13 +- patches/server/0008-Ridables.patch | 4 +- .../0010-Barrels-and-enderchests-6-rows.patch | 6 +- patches/server/0012-AFK-API.patch | 4 +- .../0014-Configurable-server-mod-name.patch | 4 +- patches/server/0016-Lagging-threshold.patch | 4 +- .../0022-Alternative-Keepalive-Handling.patch | 4 +- ...-settings-suppressing-pointless-logs.patch | 4 +- .../0052-Configurable-TPS-Catchup.patch | 4 +- patches/server/0068-Add-ping-command.patch | 6 +- patches/server/0069-Add-demo-command.patch | 8 +- patches/server/0070-Add-credits-command.patch | 8 +- ...-Add-allow-water-in-end-world-option.patch | 4 +- ...ion-to-disable-certain-block-updates.patch | 4 +- .../server/0090-Short-enderman-height.patch | 6 +- ...ing-obsidian-valid-for-portal-frames.patch | 6 +- ...te-and-mending-enchantments-together.patch | 4 +- ...C-Configurable-disable-give-dropping.patch | 4 +- patches/server/0125-Implement-TPSBar.patch | 8 +- .../server/0140-Dont-run-with-scissors.patch | 10 +- .../0154-Allow-infinity-on-crossbows.patch | 6 +- ...-Config-to-allow-for-unsafe-enchants.patch | 4 +- ...-Config-to-change-max-number-of-bees.patch | 6 +- .../0167-Gamemode-extra-permissions.patch | 8 +- ...0170-Configurable-broadcast-settings.patch | 4 +- ...-hidden-players-from-entity-selector.patch | 6 +- ...nfig-for-unverified-username-message.patch | 8 +- ...e-anvil-cumulative-cost-configurable.patch | 6 +- ...ake-lightning-rod-range-configurable.patch | 6 +- patches/server/0199-Add-uptime-command.patch | 14 +- .../server/0200-Structure-seed-options.patch | 4 +- ...omizable-sleeping-actionbar-messages.patch | 6 +- patches/server/0210-Add-compass-command.patch | 6 +- .../server/0232-Config-for-grindstones.patch | 6 +- .../server/0233-UPnP-Port-Forwarding.patch | 4 +- ...g-and-twisting-vines-configurable-ma.patch | 159 +++++----- .../0240-Mobs-always-drop-experience.patch | 292 +++++++++--------- ...t-spiders-from-climbing-world-border.patch | 6 +- ...aring-jeb-produces-random-color-wool.patch | 6 +- ...Turtle-eggs-random-tick-crack-chance.patch | 6 +- .../0247-Mob-head-visibility-percent.patch | 16 +- ...rable-valid-characters-for-usernames.patch | 6 +- ...-Shears-can-have-looting-enchantment.patch | 6 +- ...-Stop-bees-from-dying-after-stinging.patch | 8 +- ...Configurable-farmland-trample-height.patch | 6 +- .../0256-Configurable-phantom-size.patch | 8 +- .../0257-Configurable-food-attributes.patch | 4 +- .../server/0258-Max-joins-per-second.patch | 6 +- ...nfigurable-minimum-demand-for-trades.patch | 6 +- .../0260-Lobotomize-stuck-villagers.patch | 6 +- ...tion-for-villager-display-trade-item.patch | 6 +- .../0262-Fill-command-max-area-option.patch | 6 +- ...awner-not-spawning-water-animals-cor.patch | 4 +- ...e-turtle-egg-trampling-with-feather-.patch | 6 +- ...dd-toggle-for-enchant-level-clamping.patch | 6 +- ...event-horses-from-standing-when-hurt.patch | 6 +- ...urable-search-radius-for-villagers-t.patch | 6 +- patches/server/0272-Stonecutter-damage.patch | 8 +- ...ble-damage-settings-for-magma-blocks.patch | 4 +- ...0274-Add-config-for-snow-on-blue-ice.patch | 6 +- ...og-suppression-for-sent-expired-chat.patch | 4 +- .../0276-Skeletons-eat-wither-roses.patch | 6 +- ...277-Enchantment-Table-Persists-Lapis.patch | 4 +- ...o-disable-kick-for-out-of-order-chat.patch | 4 +- ...-for-sculk-shrieker-can_summon-state.patch | 4 +- .../0281-Config-to-not-let-coral-die.patch | 6 +- ...296-Add-skeleton-bow-accuracy-option.patch | 6 +- .../server/0298-Allay-respect-item-NBT.patch | 4 +- ...00-Implement-ram-and-rambar-commands.patch | 10 +- 69 files changed, 428 insertions(+), 428 deletions(-) diff --git a/patches/server/0004-Purpur-config-files.patch b/patches/server/0004-Purpur-config-files.patch index bf37ef11f..d74e2e0f2 100644 --- a/patches/server/0004-Purpur-config-files.patch +++ b/patches/server/0004-Purpur-config-files.patch @@ -64,7 +64,7 @@ index dd0143f319d4adef8834c513af34b1cce7a94a84..40f6d9845d2405c6e54c5213618e1b21 if (this.source.acceptsSuccess() && !this.silent) { this.source.sendSystemMessage(message); diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 7c09182f465b66979e1981222d20fa4f574680d5..629024e5c3f480bd50ae2df9dadb72f06a62c3bf 100644 +index 01928849f9dd42a3ea8826b56d419e8c09450f47..a18abdcbc51f3b6fda96a4f6dd8674521338f37f 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -223,6 +223,15 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -84,7 +84,7 @@ index 7c09182f465b66979e1981222d20fa4f574680d5..629024e5c3f480bd50ae2df9dadb72f0 io.papermc.paper.brigadier.PaperBrigadierProviderImpl.INSTANCE.getClass(); // init PaperBrigadierProvider // Paper end diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 29a2ba6b84c01280f8c7f32e6a78e3dd6c53cb07..544f7ff70486c31e9caddf574265a42c07af3166 100644 +index 35d6a8fe168caa5b68b471bd78cc95b99758d1b0..0c397d4c1efc7a812ecc02119b9740cbac303a04 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -174,6 +174,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -105,7 +105,7 @@ index 29a2ba6b84c01280f8c7f32e6a78e3dd6c53cb07..544f7ff70486c31e9caddf574265a42c this.world = new CraftWorld((ServerLevel) this, gen, biomeProvider, env); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index f9b2b6f8bededc5d87fcaac59ff14bac7d76073b..27b423da045bbe840b81ccca1729eba047e24d3d 100644 +index 8fc70e7f75786ad10a97676a04bc0bc91f9526fe..37af56b657fa2d7e17c02f230b66a514b21cf344 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -966,6 +966,7 @@ public final class CraftServer implements Server { @@ -172,10 +172,10 @@ index f30621be24c6c3a4f173436fce1ad1c13507c84f..e859f1078a42de196a69818a34a8b2c2 .withRequiredArg() diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java new file mode 100644 -index 0000000000000000000000000000000000000000..6dbb2e10ed244845fe9f857b237589900ea3cf40 +index 0000000000000000000000000000000000000000..5907e78bb059bca4a63ea8043d0be730412d9c13 --- /dev/null +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -@@ -0,0 +1,170 @@ +@@ -0,0 +1,173 @@ +package org.purpurmc.purpur; + +import co.aikar.timings.TimingsManager; @@ -193,6 +193,7 @@ index 0000000000000000000000000000000000000000..6dbb2e10ed244845fe9f857b23758990 +import net.minecraft.world.food.FoodProperties; +import net.minecraft.world.food.Foods; +import net.minecraft.world.item.enchantment.Enchantment; ++import net.minecraft.world.level.block.Blocks; +import org.bukkit.Bukkit; +import org.bukkit.command.Command; +import org.bukkit.configuration.ConfigurationSection; @@ -254,6 +255,8 @@ index 0000000000000000000000000000000000000000..6dbb2e10ed244845fe9f857b23758990 + set("config-version", 30); + + readConfig(PurpurConfig.class, null); ++ ++ Blocks.rebuildCache(); + } + + protected static void log(String s) { diff --git a/patches/server/0008-Ridables.patch b/patches/server/0008-Ridables.patch index d3c9293cb..ef260e5d1 100644 --- a/patches/server/0008-Ridables.patch +++ b/patches/server/0008-Ridables.patch @@ -5222,10 +5222,10 @@ index 03d389f3458cd77166a0319fa38c7207e8714e6f..cc0f6a51e10c77928fccf372a45a56aa event = new EntityDamageEvent(damagee.getBukkitEntity(), cause, modifiers, modifierFunctions); } diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 6dbb2e10ed244845fe9f857b237589900ea3cf40..5aee512c0a5a0b5f5fac4214f682b398a1e85862 100644 +index 5907e78bb059bca4a63ea8043d0be730412d9c13..b5d8d9475e563a77c9a7923fc4e780e0fe980347 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -@@ -167,4 +167,9 @@ public class PurpurConfig { +@@ -170,4 +170,9 @@ public class PurpurConfig { } return builder.build(); } diff --git a/patches/server/0010-Barrels-and-enderchests-6-rows.patch b/patches/server/0010-Barrels-and-enderchests-6-rows.patch index 8d42bf97f..ae718fc14 100644 --- a/patches/server/0010-Barrels-and-enderchests-6-rows.patch +++ b/patches/server/0010-Barrels-and-enderchests-6-rows.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Barrels and enderchests 6 rows diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 263e61b655d0ec58b63da859df46f0962de45ec7..0c05466b1265a22009781d469f8d324e3d42e0d3 100644 +index 16154d89a1c67ebc9dc6ecaeb214799e75d16b6f..2da8186b5f34b5cce97512f50323bee091d380ab 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -1199,6 +1199,27 @@ public abstract class PlayerList { @@ -236,10 +236,10 @@ index 30ac442049088200e9ab77a561c59cbc58aaa28f..fb3c3c32b89e6a99b50bd04163d29892 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 5aee512c0a5a0b5f5fac4214f682b398a1e85862..8a7144a65594236a1ec7187348285174594d7a97 100644 +index b5d8d9475e563a77c9a7923fc4e780e0fe980347..492fb7fc8452bb214566e1ca1ebfd0f3ee5fde9e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -@@ -172,4 +172,39 @@ public class PurpurConfig { +@@ -175,4 +175,39 @@ public class PurpurConfig { private static void messages() { cannotRideMob = getString("settings.messages.cannot-ride-mob", cannotRideMob); } diff --git a/patches/server/0012-AFK-API.patch b/patches/server/0012-AFK-API.patch index dc8779d09..ffefbd8c7 100644 --- a/patches/server/0012-AFK-API.patch +++ b/patches/server/0012-AFK-API.patch @@ -255,10 +255,10 @@ index ea2c76116d8328d2ba6e5e7cc2ed1464f43a8c82..c272fc856113ca2399832b4af7f1e94a // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 8a7144a65594236a1ec7187348285174594d7a97..cf7925c5631815a53926543b79179c58e923402e 100644 +index 492fb7fc8452bb214566e1ca1ebfd0f3ee5fde9e..88b76a75623d306da3bb3d935e7598a94d882181 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -@@ -169,8 +169,16 @@ public class PurpurConfig { +@@ -172,8 +172,16 @@ public class PurpurConfig { } public static String cannotRideMob = "You cannot mount that mob"; diff --git a/patches/server/0014-Configurable-server-mod-name.patch b/patches/server/0014-Configurable-server-mod-name.patch index c75d70b22..aaa6f2bfa 100644 --- a/patches/server/0014-Configurable-server-mod-name.patch +++ b/patches/server/0014-Configurable-server-mod-name.patch @@ -18,10 +18,10 @@ index 7f0551e70c545f8e77d18b11e836233faeba9161..ffa6466c21ddc6a312a0a3aa400717a4 public SystemReport fillSystemReport(SystemReport details) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index cf7925c5631815a53926543b79179c58e923402e..290c1ac6e1e7bd485a6c63492d4f72b55af7b46b 100644 +index 88b76a75623d306da3bb3d935e7598a94d882181..fae76fe21abd4aa5911d9c2d6248c189104d3063 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -@@ -181,6 +181,11 @@ public class PurpurConfig { +@@ -184,6 +184,11 @@ public class PurpurConfig { afkTabListSuffix = getString("settings.messages.afk-tab-list-suffix", afkTabListSuffix); } diff --git a/patches/server/0016-Lagging-threshold.patch b/patches/server/0016-Lagging-threshold.patch index 9ef1359e5..68e6aab0f 100644 --- a/patches/server/0016-Lagging-threshold.patch +++ b/patches/server/0016-Lagging-threshold.patch @@ -40,10 +40,10 @@ index e25f6e051880327873ffbfbc81aaef924ac27b5b..e90a16c47de51752b7afb6cc7c320779 // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 290c1ac6e1e7bd485a6c63492d4f72b55af7b46b..c8e4ab0302c2cc4bac858169d68adc48c2047026 100644 +index fae76fe21abd4aa5911d9c2d6248c189104d3063..bbe9d16183bba54d6b2869ab23a9683497d15b8a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -@@ -186,6 +186,11 @@ public class PurpurConfig { +@@ -189,6 +189,11 @@ public class PurpurConfig { serverModName = getString("settings.server-mod-name", serverModName); } diff --git a/patches/server/0022-Alternative-Keepalive-Handling.patch b/patches/server/0022-Alternative-Keepalive-Handling.patch index b56e5633e..d7e3e3e91 100644 --- a/patches/server/0022-Alternative-Keepalive-Handling.patch +++ b/patches/server/0022-Alternative-Keepalive-Handling.patch @@ -56,10 +56,10 @@ index 3a2b67b459692a30feaec8362e44be5560741b55..c32ae28c75aaeb29a764f7791b47cb5f if (this.keepAlivePending && packet.getId() == this.keepAliveChallenge) { int i = (int) (Util.getMillis() - this.keepAliveTime); diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index c8e4ab0302c2cc4bac858169d68adc48c2047026..20b86de8b204df1636b76073c434f5e436f77379 100644 +index bbe9d16183bba54d6b2869ab23a9683497d15b8a..7f0cc9d6187babc7a1cb78557208cebf373ee75c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -@@ -191,6 +191,11 @@ public class PurpurConfig { +@@ -194,6 +194,11 @@ public class PurpurConfig { laggingThreshold = getDouble("settings.lagging-threshold", laggingThreshold); } diff --git a/patches/server/0026-Logger-settings-suppressing-pointless-logs.patch b/patches/server/0026-Logger-settings-suppressing-pointless-logs.patch index f83ae0134..b780553df 100644 --- a/patches/server/0026-Logger-settings-suppressing-pointless-logs.patch +++ b/patches/server/0026-Logger-settings-suppressing-pointless-logs.patch @@ -53,10 +53,10 @@ index b2a15c986c7500a0ce227a54cb61ec3f5378f6f3..14600a7bc01bf61e8ffb736816d23df6 if (MinecraftServer.getServer() != null && MinecraftServer.getServer().isDebugging()) { new Exception().printStackTrace(); diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 20b86de8b204df1636b76073c434f5e436f77379..918eee23167fb9b39bd19ba1a6d8776f83d56ea2 100644 +index 7f0cc9d6187babc7a1cb78557208cebf373ee75c..8e620bd5a3984a3cc3751a7bd1bc06b67fbda0f2 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -@@ -230,4 +230,15 @@ public class PurpurConfig { +@@ -233,4 +233,15 @@ public class PurpurConfig { org.bukkit.event.inventory.InventoryType.ENDER_CHEST.setDefaultSize(enderChestSixRows ? 54 : 27); enderChestPermissionRows = getBoolean("settings.blocks.ender_chest.use-permissions-for-rows", enderChestPermissionRows); } diff --git a/patches/server/0052-Configurable-TPS-Catchup.patch b/patches/server/0052-Configurable-TPS-Catchup.patch index f4783f47e..62a7bac83 100644 --- a/patches/server/0052-Configurable-TPS-Catchup.patch +++ b/patches/server/0052-Configurable-TPS-Catchup.patch @@ -24,10 +24,10 @@ index c1719af753e4efa8fcbd49a801ee86b307d27779..963a1998f808061c7e7fcd0d15725e38 this.profiler.pop(); this.endMetricsRecordingTick(); diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 918eee23167fb9b39bd19ba1a6d8776f83d56ea2..75570f6de691fb5dc95dd31d2255f3913a7100dd 100644 +index 8e620bd5a3984a3cc3751a7bd1bc06b67fbda0f2..520e266a1aea7240a0e56a1350f23ec28622d11c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -@@ -241,4 +241,9 @@ public class PurpurConfig { +@@ -244,4 +244,9 @@ public class PurpurConfig { loggerSuppressUnrecognizedRecipeErrors = getBoolean("settings.logger.suppress-unrecognized-recipe-errors", loggerSuppressUnrecognizedRecipeErrors); loggerSuppressSetBlockFarChunk = getBoolean("settings.logger.suppress-setblock-in-far-chunk-errors", loggerSuppressSetBlockFarChunk); } diff --git a/patches/server/0068-Add-ping-command.patch b/patches/server/0068-Add-ping-command.patch index 0447db747..1cb4e73d4 100644 --- a/patches/server/0068-Add-ping-command.patch +++ b/patches/server/0068-Add-ping-command.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add ping command diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index 18edc532315301abe2e0920da496aafd68627fe8..9ea2306939cb772f320469d2fdbef1b9eb170eee 100644 +index 98664c95331cee4139711c402dfaf406ee672c22..be38b98894cc24c9af55ba470dc8a03a24737782 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java @@ -207,6 +207,7 @@ public class Commands { @@ -17,10 +17,10 @@ index 18edc532315301abe2e0920da496aafd68627fe8..9ea2306939cb772f320469d2fdbef1b9 if (environment.includeIntegrated) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 75570f6de691fb5dc95dd31d2255f3913a7100dd..c9d303aeb32fe79bf84919a46981aaaa6eb77147 100644 +index 520e266a1aea7240a0e56a1350f23ec28622d11c..497e7ab73dffbc62e90249d0b7d44ea9b6d7e2d6 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -@@ -173,12 +173,14 @@ public class PurpurConfig { +@@ -176,12 +176,14 @@ public class PurpurConfig { public static String afkBroadcastBack = "%s is no longer AFK"; public static String afkTabListPrefix = "[AFK] "; public static String afkTabListSuffix = ""; diff --git a/patches/server/0069-Add-demo-command.patch b/patches/server/0069-Add-demo-command.patch index 075b1496d..460416d2e 100644 --- a/patches/server/0069-Add-demo-command.patch +++ b/patches/server/0069-Add-demo-command.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add demo command diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index 9ea2306939cb772f320469d2fdbef1b9eb170eee..4c37da34b8804e2b0f0ca4248b922ad0d8defea0 100644 +index be38b98894cc24c9af55ba470dc8a03a24737782..7ffe76f2054259c4e564184bf28be3fede1e7298 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java @@ -207,6 +207,7 @@ public class Commands { @@ -17,10 +17,10 @@ index 9ea2306939cb772f320469d2fdbef1b9eb170eee..4c37da34b8804e2b0f0ca4248b922ad0 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index c9d303aeb32fe79bf84919a46981aaaa6eb77147..d4a30745e6cde5012355744cb5e6f4a2bd021d13 100644 +index 497e7ab73dffbc62e90249d0b7d44ea9b6d7e2d6..665b9f9eeb469a1dc0b103577a4d67c914ec9b93 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -@@ -173,6 +173,7 @@ public class PurpurConfig { +@@ -176,6 +176,7 @@ public class PurpurConfig { public static String afkBroadcastBack = "%s is no longer AFK"; public static String afkTabListPrefix = "[AFK] "; public static String afkTabListSuffix = ""; @@ -28,7 +28,7 @@ index c9d303aeb32fe79bf84919a46981aaaa6eb77147..d4a30745e6cde5012355744cb5e6f4a2 public static String pingCommandOutput = "%s's ping is %sms"; private static void messages() { cannotRideMob = getString("settings.messages.cannot-ride-mob", cannotRideMob); -@@ -180,6 +181,7 @@ public class PurpurConfig { +@@ -183,6 +184,7 @@ public class PurpurConfig { afkBroadcastBack = getString("settings.messages.afk-broadcast-back", afkBroadcastBack); afkTabListPrefix = getString("settings.messages.afk-tab-list-prefix", afkTabListPrefix); afkTabListSuffix = getString("settings.messages.afk-tab-list-suffix", afkTabListSuffix); diff --git a/patches/server/0070-Add-credits-command.patch b/patches/server/0070-Add-credits-command.patch index 85661dfb2..34630b961 100644 --- a/patches/server/0070-Add-credits-command.patch +++ b/patches/server/0070-Add-credits-command.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add credits command diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index 4c37da34b8804e2b0f0ca4248b922ad0d8defea0..5e3d903da89ddebb7aae82347ff26e60de1905e8 100644 +index 7ffe76f2054259c4e564184bf28be3fede1e7298..ab0f00128f8c1b13c3eb5787df0c4e26372e0734 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java @@ -207,6 +207,7 @@ public class Commands { @@ -17,10 +17,10 @@ index 4c37da34b8804e2b0f0ca4248b922ad0d8defea0..5e3d903da89ddebb7aae82347ff26e60 org.purpurmc.purpur.command.PingCommand.register(this.dispatcher); // Purpur } diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index d4a30745e6cde5012355744cb5e6f4a2bd021d13..8514b53b94893c576fa814af58c756e16cf5c730 100644 +index 665b9f9eeb469a1dc0b103577a4d67c914ec9b93..779b52f7d59acefc0e2018be3de32b5ede57e9da 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -@@ -173,6 +173,7 @@ public class PurpurConfig { +@@ -176,6 +176,7 @@ public class PurpurConfig { public static String afkBroadcastBack = "%s is no longer AFK"; public static String afkTabListPrefix = "[AFK] "; public static String afkTabListSuffix = ""; @@ -28,7 +28,7 @@ index d4a30745e6cde5012355744cb5e6f4a2bd021d13..8514b53b94893c576fa814af58c756e1 public static String demoCommandOutput = "%s has been shown the demo screen"; public static String pingCommandOutput = "%s's ping is %sms"; private static void messages() { -@@ -181,6 +182,7 @@ public class PurpurConfig { +@@ -184,6 +185,7 @@ public class PurpurConfig { afkBroadcastBack = getString("settings.messages.afk-broadcast-back", afkBroadcastBack); afkTabListPrefix = getString("settings.messages.afk-tab-list-prefix", afkTabListPrefix); afkTabListSuffix = getString("settings.messages.afk-tab-list-suffix", afkTabListSuffix); diff --git a/patches/server/0076-Add-allow-water-in-end-world-option.patch b/patches/server/0076-Add-allow-water-in-end-world-option.patch index f3a7e092d..30371c330 100644 --- a/patches/server/0076-Add-allow-water-in-end-world-option.patch +++ b/patches/server/0076-Add-allow-water-in-end-world-option.patch @@ -68,10 +68,10 @@ index 0afadbc8515d448b0ef817f4f0f53b1bb0abde43..c9daa26ab987249f390c64c9e26cd9ce } else { world.setBlockAndUpdate(pos, Blocks.WATER.defaultBlockState()); diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 8514b53b94893c576fa814af58c756e16cf5c730..e3ad7c379e62c3b77c4e43f59ff8747044438b78 100644 +index 779b52f7d59acefc0e2018be3de32b5ede57e9da..fd975b2deed53c9feaecfa49e90bae5cfd42a195 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -@@ -237,6 +237,11 @@ public class PurpurConfig { +@@ -240,6 +240,11 @@ public class PurpurConfig { enderChestPermissionRows = getBoolean("settings.blocks.ender_chest.use-permissions-for-rows", enderChestPermissionRows); } diff --git a/patches/server/0086-Add-option-to-disable-certain-block-updates.patch b/patches/server/0086-Add-option-to-disable-certain-block-updates.patch index dff832a15..2b1d47b25 100644 --- a/patches/server/0086-Add-option-to-disable-certain-block-updates.patch +++ b/patches/server/0086-Add-option-to-disable-certain-block-updates.patch @@ -125,10 +125,10 @@ index c14eb4f7decdbcd6176d3bff95d595a947d4ec95..58e8905a4b98e2e1ee372b99bdc3de98 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index e3ad7c379e62c3b77c4e43f59ff8747044438b78..d75cce86458b50230caaf0c37c9a45f20f325500 100644 +index fd975b2deed53c9feaecfa49e90bae5cfd42a195..6bacd879eb67ff6c5387882c0f590a7a8bd48717 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -@@ -242,6 +242,15 @@ public class PurpurConfig { +@@ -245,6 +245,15 @@ public class PurpurConfig { allowWaterPlacementInTheEnd = getBoolean("settings.allow-water-placement-in-the-end", allowWaterPlacementInTheEnd); } diff --git a/patches/server/0090-Short-enderman-height.patch b/patches/server/0090-Short-enderman-height.patch index 15a07b731..a6e116d0c 100644 --- a/patches/server/0090-Short-enderman-height.patch +++ b/patches/server/0090-Short-enderman-height.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Short enderman height diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java -index 2c3c3071a3987b2175f26e08714e47bf13f20345..86fa3f03e72b0c656ed86cae9ee64feb3f77fb3d 100644 +index 11f057bd798ed03f02296b84b394fd0cbc9eaa16..ae3910f765f6fccf6045b2acb97083dbaedc297f 100644 --- a/src/main/java/net/minecraft/world/entity/EntityType.java +++ b/src/main/java/net/minecraft/world/entity/EntityType.java @@ -291,7 +291,8 @@ public class EntityType implements EntityTypeTest { @@ -31,10 +31,10 @@ index ad47267eb6797e1591841cb7a576fb65f6e81382..9458cab33d4ff468d3d009cc1c3b3736 Entity entity = source.getDirectEntity(); boolean flag; diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index d75cce86458b50230caaf0c37c9a45f20f325500..7e592e4598370f606c5402d74112b5ba144822a4 100644 +index 6bacd879eb67ff6c5387882c0f590a7a8bd48717..58e3ed111a17f6b5c093affc0c597c0b9aa27e9e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -@@ -237,6 +237,12 @@ public class PurpurConfig { +@@ -240,6 +240,12 @@ public class PurpurConfig { enderChestPermissionRows = getBoolean("settings.blocks.ender_chest.use-permissions-for-rows", enderChestPermissionRows); } diff --git a/patches/server/0092-Crying-obsidian-valid-for-portal-frames.patch b/patches/server/0092-Crying-obsidian-valid-for-portal-frames.patch index cd0ae2fc7..07982ec8c 100644 --- a/patches/server/0092-Crying-obsidian-valid-for-portal-frames.patch +++ b/patches/server/0092-Crying-obsidian-valid-for-portal-frames.patch @@ -18,10 +18,10 @@ index 3414f3190e1a760c602613e82e551e797c3aa575..5368376c126f3b629c0448f937c140ab private final LevelAccessor level; private final Direction.Axis axis; diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 7e592e4598370f606c5402d74112b5ba144822a4..3b6a3908067a7d357b4414030dee07de2379bee2 100644 +index 58e3ed111a17f6b5c093affc0c597c0b9aa27e9e..ce64d05f8a5c970e5fcdce8e134e661d2d1617c6 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -@@ -205,6 +205,7 @@ public class PurpurConfig { +@@ -208,6 +208,7 @@ public class PurpurConfig { public static int barrelRows = 3; public static boolean enderChestSixRows = false; public static boolean enderChestPermissionRows = false; @@ -29,7 +29,7 @@ index 7e592e4598370f606c5402d74112b5ba144822a4..3b6a3908067a7d357b4414030dee07de private static void blockSettings() { if (version < 3) { boolean oldValue = getBoolean("settings.barrel.packed-barrels", true); -@@ -235,6 +236,7 @@ public class PurpurConfig { +@@ -238,6 +239,7 @@ public class PurpurConfig { enderChestSixRows = getBoolean("settings.blocks.ender_chest.six-rows", enderChestSixRows); org.bukkit.event.inventory.InventoryType.ENDER_CHEST.setDefaultSize(enderChestSixRows ? 54 : 27); enderChestPermissionRows = getBoolean("settings.blocks.ender_chest.use-permissions-for-rows", enderChestPermissionRows); diff --git a/patches/server/0104-Allow-infinite-and-mending-enchantments-together.patch b/patches/server/0104-Allow-infinite-and-mending-enchantments-together.patch index cc37862bd..b8f4a2ec2 100644 --- a/patches/server/0104-Allow-infinite-and-mending-enchantments-together.patch +++ b/patches/server/0104-Allow-infinite-and-mending-enchantments-together.patch @@ -17,10 +17,10 @@ index 3aece8245060dd1ba269c08d226c84247a6f0a83..5cebd7c16b82eea9dbf39c51c671bacb } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 3b6a3908067a7d357b4414030dee07de2379bee2..867b1ff54e003277939f5fb55e322b52302ccc5b 100644 +index ce64d05f8a5c970e5fcdce8e134e661d2d1617c6..1ae4a6773af14a804fb144eda138dd0dd25e6f6b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -@@ -239,6 +239,16 @@ public class PurpurConfig { +@@ -242,6 +242,16 @@ public class PurpurConfig { cryingObsidianValidForPortalFrame = getBoolean("settings.blocks.crying_obsidian.valid-for-portal-frame", cryingObsidianValidForPortalFrame); } diff --git a/patches/server/0117-EMC-Configurable-disable-give-dropping.patch b/patches/server/0117-EMC-Configurable-disable-give-dropping.patch index 22bd581a8..a16c6f5f1 100644 --- a/patches/server/0117-EMC-Configurable-disable-give-dropping.patch +++ b/patches/server/0117-EMC-Configurable-disable-give-dropping.patch @@ -20,10 +20,10 @@ index 06e3a868e922f1b7a586d0ca28f64a67ae463b68..32beb045f990d4da6112da4fea295333 itemstack.setCount(1); entityitem = entityplayer.drop(itemstack, false, false, false); // SPIGOT-2942: Add boolean to call event diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 867b1ff54e003277939f5fb55e322b52302ccc5b..b2e456e83137f70ca21358d0da2f777a98a4e2be 100644 +index 1ae4a6773af14a804fb144eda138dd0dd25e6f6b..6a18c21653bb2146734cdbc552a31ce0c70545c7 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -@@ -202,6 +202,11 @@ public class PurpurConfig { +@@ -205,6 +205,11 @@ public class PurpurConfig { useAlternateKeepAlive = getBoolean("settings.use-alternate-keepalive", useAlternateKeepAlive); } diff --git a/patches/server/0125-Implement-TPSBar.patch b/patches/server/0125-Implement-TPSBar.patch index cd7a29328..dde2b4f9a 100644 --- a/patches/server/0125-Implement-TPSBar.patch +++ b/patches/server/0125-Implement-TPSBar.patch @@ -104,10 +104,10 @@ index d0db1623c8132eb4c9a51b6e452280c56f544bf5..8182e9d69083ade08ae0b9c0512b8b7b entityplayer.awardStat(Stats.LEAVE_GAME); diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index b2e456e83137f70ca21358d0da2f777a98a4e2be..27794670b54f1a96e4e82ed23ab0769a0506b52a 100644 +index 6a18c21653bb2146734cdbc552a31ce0c70545c7..cbe4d2d692edf29f9f6587871058fc1b3c53a731 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -@@ -176,6 +176,7 @@ public class PurpurConfig { +@@ -179,6 +179,7 @@ public class PurpurConfig { public static String creditsCommandOutput = "%s has been shown the end credits"; public static String demoCommandOutput = "%s has been shown the demo screen"; public static String pingCommandOutput = "%s's ping is %sms"; @@ -115,7 +115,7 @@ index b2e456e83137f70ca21358d0da2f777a98a4e2be..27794670b54f1a96e4e82ed23ab0769a private static void messages() { cannotRideMob = getString("settings.messages.cannot-ride-mob", cannotRideMob); afkBroadcastAway = getString("settings.messages.afk-broadcast-away", afkBroadcastAway); -@@ -185,6 +186,7 @@ public class PurpurConfig { +@@ -188,6 +189,7 @@ public class PurpurConfig { creditsCommandOutput = getString("settings.messages.credits-command-output", creditsCommandOutput); demoCommandOutput = getString("settings.messages.demo-command-output", demoCommandOutput); pingCommandOutput = getString("settings.messages.ping-command-output", pingCommandOutput); @@ -123,7 +123,7 @@ index b2e456e83137f70ca21358d0da2f777a98a4e2be..27794670b54f1a96e4e82ed23ab0769a } public static String serverModName = "Purpur"; -@@ -207,6 +209,29 @@ public class PurpurConfig { +@@ -210,6 +212,29 @@ public class PurpurConfig { disableGiveCommandDrops = getBoolean("settings.disable-give-dropping", disableGiveCommandDrops); } diff --git a/patches/server/0140-Dont-run-with-scissors.patch b/patches/server/0140-Dont-run-with-scissors.patch index 32397d48e..0423370bc 100644 --- a/patches/server/0140-Dont-run-with-scissors.patch +++ b/patches/server/0140-Dont-run-with-scissors.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Dont run with scissors! diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index a761a005001fede9e3db415753a4ead59d7dd6f8..0010a80db783d1b33af7751d0c2d85a97df85add 100644 +index 786030fd80a1a8de3e6bb89c444bc49895bcd7e3..9e08659c31269ff1d1cd44e98bbb773cf469d6f7 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1696,6 +1696,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @@ -70,10 +70,10 @@ index cc0f6a51e10c77928fccf372a45a56aa6f2b298a..f4ca0a9481533befc78cb18c1f981082 if (cause != null) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 27794670b54f1a96e4e82ed23ab0769a0506b52a..c2bfd97e11e887d7a112ba024be6048ac3d46bee 100644 +index cbe4d2d692edf29f9f6587871058fc1b3c53a731..bbc5d5af660b2aba16b02a9f8b33c8776f12ddba 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -@@ -177,6 +177,7 @@ public class PurpurConfig { +@@ -180,6 +180,7 @@ public class PurpurConfig { public static String demoCommandOutput = "%s has been shown the demo screen"; public static String pingCommandOutput = "%s's ping is %sms"; public static String tpsbarCommandOutput = "Tpsbar toggled for "; @@ -81,7 +81,7 @@ index 27794670b54f1a96e4e82ed23ab0769a0506b52a..c2bfd97e11e887d7a112ba024be6048a private static void messages() { cannotRideMob = getString("settings.messages.cannot-ride-mob", cannotRideMob); afkBroadcastAway = getString("settings.messages.afk-broadcast-away", afkBroadcastAway); -@@ -187,6 +188,12 @@ public class PurpurConfig { +@@ -190,6 +191,12 @@ public class PurpurConfig { demoCommandOutput = getString("settings.messages.demo-command-output", demoCommandOutput); pingCommandOutput = getString("settings.messages.ping-command-output", pingCommandOutput); tpsbarCommandOutput = getString("settings.messages.tpsbar-command-output", tpsbarCommandOutput); @@ -95,7 +95,7 @@ index 27794670b54f1a96e4e82ed23ab0769a0506b52a..c2bfd97e11e887d7a112ba024be6048a public static String serverModName = "Purpur"; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 3624304329d0a6728c0e4981bd9dcfb350edaab5..2e15e592bbc13f4aca99745dd068b12d5f8a253c 100644 +index 41a4abb7c676285435f9a744ae3f50b9c80c8cbd..46fbf50268f8531c11efccba0f971b19bdfd4a0e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -199,6 +199,8 @@ public class PurpurWorldConfig { diff --git a/patches/server/0154-Allow-infinity-on-crossbows.patch b/patches/server/0154-Allow-infinity-on-crossbows.patch index d221dfc42..c08a597be 100644 --- a/patches/server/0154-Allow-infinity-on-crossbows.patch +++ b/patches/server/0154-Allow-infinity-on-crossbows.patch @@ -77,10 +77,10 @@ index 873185fd4d4c994130f2e7c271b3e03cefb2278c..a371bbe337daf9abce320ce0d8c21fa3 return null; } diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index c2bfd97e11e887d7a112ba024be6048ac3d46bee..d4f66066dce1c6e4571ebefb68a4ef537718921c 100644 +index bbc5d5af660b2aba16b02a9f8b33c8776f12ddba..f1c2e2c05000ee80982c23e402f067feed0fcdca 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -@@ -277,6 +277,7 @@ public class PurpurConfig { +@@ -280,6 +280,7 @@ public class PurpurConfig { } public static boolean allowInfinityMending = false; @@ -88,7 +88,7 @@ index c2bfd97e11e887d7a112ba024be6048ac3d46bee..d4f66066dce1c6e4571ebefb68a4ef53 private static void enchantmentSettings() { if (version < 5) { boolean oldValue = getBoolean("settings.enchantment.allow-infinite-and-mending-together", false); -@@ -284,6 +285,7 @@ public class PurpurConfig { +@@ -287,6 +288,7 @@ public class PurpurConfig { set("settings.enchantment.allow-infinite-and-mending-together", null); } allowInfinityMending = getBoolean("settings.enchantment.allow-infinity-and-mending-together", allowInfinityMending); diff --git a/patches/server/0160-Config-to-allow-for-unsafe-enchants.patch b/patches/server/0160-Config-to-allow-for-unsafe-enchants.patch index 40fd621da..0c238732e 100644 --- a/patches/server/0160-Config-to-allow-for-unsafe-enchants.patch +++ b/patches/server/0160-Config-to-allow-for-unsafe-enchants.patch @@ -87,10 +87,10 @@ index 2b2115d218a279245f8be5e0c93a2b6200f81241..f7017c330ee2d8e17ab2be294865d7e3 this.getOrCreateTag().put(key, element); } diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index d4f66066dce1c6e4571ebefb68a4ef537718921c..79929c701983c1ac316c2623e3375175859cf068 100644 +index f1c2e2c05000ee80982c23e402f067feed0fcdca..24ec95be5f8bfe2a277ba74920063cc364972462 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -@@ -278,14 +278,32 @@ public class PurpurConfig { +@@ -281,14 +281,32 @@ public class PurpurConfig { public static boolean allowInfinityMending = false; public static boolean allowCrossbowInfinity = false; diff --git a/patches/server/0165-Config-to-change-max-number-of-bees.patch b/patches/server/0165-Config-to-change-max-number-of-bees.patch index ac8d01249..b221e5ef7 100644 --- a/patches/server/0165-Config-to-change-max-number-of-bees.patch +++ b/patches/server/0165-Config-to-change-max-number-of-bees.patch @@ -18,10 +18,10 @@ index 41c9f074203915c31c1ae7a160ce509c13383f84..a16a1df28258d605cf5908dbe19bda5d public BeehiveBlockEntity(BlockPos pos, BlockState state) { super(BlockEntityType.BEEHIVE, pos, state); diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 79929c701983c1ac316c2623e3375175859cf068..32da21aa0b00eab4a5bbfb1c42bcfb2c8e97b43d 100644 +index 24ec95be5f8bfe2a277ba74920063cc364972462..00ea97ba3e62c73237eefb74c1e72b2eb1849843 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -@@ -243,6 +243,7 @@ public class PurpurConfig { +@@ -246,6 +246,7 @@ public class PurpurConfig { public static boolean enderChestSixRows = false; public static boolean enderChestPermissionRows = false; public static boolean cryingObsidianValidForPortalFrame = false; @@ -29,7 +29,7 @@ index 79929c701983c1ac316c2623e3375175859cf068..32da21aa0b00eab4a5bbfb1c42bcfb2c private static void blockSettings() { if (version < 3) { boolean oldValue = getBoolean("settings.barrel.packed-barrels", true); -@@ -274,6 +275,7 @@ public class PurpurConfig { +@@ -277,6 +278,7 @@ public class PurpurConfig { org.bukkit.event.inventory.InventoryType.ENDER_CHEST.setDefaultSize(enderChestSixRows ? 54 : 27); enderChestPermissionRows = getBoolean("settings.blocks.ender_chest.use-permissions-for-rows", enderChestPermissionRows); cryingObsidianValidForPortalFrame = getBoolean("settings.blocks.crying_obsidian.valid-for-portal-frame", cryingObsidianValidForPortalFrame); diff --git a/patches/server/0167-Gamemode-extra-permissions.patch b/patches/server/0167-Gamemode-extra-permissions.patch index c93279900..b35b44c5c 100644 --- a/patches/server/0167-Gamemode-extra-permissions.patch +++ b/patches/server/0167-Gamemode-extra-permissions.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Gamemode extra permissions diff --git a/src/main/java/net/minecraft/commands/CommandSourceStack.java b/src/main/java/net/minecraft/commands/CommandSourceStack.java -index 3673697ac563263ef2dce013e136bc4c141f8783..a6b678e1fc63da11ddb504679e5a0ad30f611122 100644 +index 40f6d9845d2405c6e54c5213618e1b21016e3d3f..c2f32e65b44c60395661fb9f6eb8939ac7bea2ab 100644 --- a/src/main/java/net/minecraft/commands/CommandSourceStack.java +++ b/src/main/java/net/minecraft/commands/CommandSourceStack.java @@ -213,6 +213,21 @@ public class CommandSourceStack implements SharedSuggestionProvider, com.destroy @@ -75,10 +75,10 @@ index 0467419fc8a06c241a46216c8f8c32abeb9fbc26..bc178d7305f38b77393b827d7b71412d DefaultPermissions.registerPermission(CommandPermissions.PREFIX + "defaultgamemode", "Allows the user to change the default gamemode of the server", PermissionDefault.OP, commands); DefaultPermissions.registerPermission(CommandPermissions.PREFIX + "seed", "Allows the user to view the seed of the world", PermissionDefault.OP, commands); diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 32da21aa0b00eab4a5bbfb1c42bcfb2c8e97b43d..94a1c3035462f9934a425ff996510d7d7a236f19 100644 +index 00ea97ba3e62c73237eefb74c1e72b2eb1849843..52b9ee1c3a81986a591ab5c01a375ef7ca69973d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -@@ -226,6 +226,7 @@ public class PurpurConfig { +@@ -229,6 +229,7 @@ public class PurpurConfig { public static String commandTPSBarTextColorMedium = ""; public static String commandTPSBarTextColorLow = ""; public static int commandTPSBarTickInterval = 20; @@ -86,7 +86,7 @@ index 32da21aa0b00eab4a5bbfb1c42bcfb2c8e97b43d..94a1c3035462f9934a425ff996510d7d private static void commandSettings() { commandTPSBarTitle = getString("settings.command.tpsbar.title", commandTPSBarTitle); commandTPSBarProgressOverlay = BossBar.Overlay.valueOf(getString("settings.command.tpsbar.overlay", commandTPSBarProgressOverlay.name())); -@@ -237,6 +238,7 @@ public class PurpurConfig { +@@ -240,6 +241,7 @@ public class PurpurConfig { commandTPSBarTextColorMedium = getString("settings.command.tpsbar.text-color.medium", commandTPSBarTextColorMedium); commandTPSBarTextColorLow = getString("settings.command.tpsbar.text-color.low", commandTPSBarTextColorLow); commandTPSBarTickInterval = getInt("settings.command.tpsbar.tick-interval", commandTPSBarTickInterval); diff --git a/patches/server/0170-Configurable-broadcast-settings.patch b/patches/server/0170-Configurable-broadcast-settings.patch index 000c635dd..1611cc6ef 100644 --- a/patches/server/0170-Configurable-broadcast-settings.patch +++ b/patches/server/0170-Configurable-broadcast-settings.patch @@ -29,10 +29,10 @@ index 5d989ef08080bc6622b64b1eea8ae63ac59dfa4d..93afb1cb8c0980a2a66590a27de28fd7 if (scoreboardteambase.getDeathMessageVisibility() == Team.Visibility.HIDE_FOR_OTHER_TEAMS) { this.server.getPlayerList().broadcastSystemToTeam(this, ichatbasecomponent); diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 94a1c3035462f9934a425ff996510d7d7a236f19..9f55711de82cf06d444aaa1757b72f13cd44de88 100644 +index 52b9ee1c3a81986a591ab5c01a375ef7ca69973d..676980f83b7b0ca109f7887096e682bbc50dfe56 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -@@ -196,6 +196,18 @@ public class PurpurConfig { +@@ -199,6 +199,18 @@ public class PurpurConfig { deathMsgRunWithScissors = getString("settings.messages.death-message.run-with-scissors", deathMsgRunWithScissors); } diff --git a/patches/server/0172-Hide-hidden-players-from-entity-selector.patch b/patches/server/0172-Hide-hidden-players-from-entity-selector.patch index f4ed0b034..dd9c536a9 100644 --- a/patches/server/0172-Hide-hidden-players-from-entity-selector.patch +++ b/patches/server/0172-Hide-hidden-players-from-entity-selector.patch @@ -59,10 +59,10 @@ index 35cc3bba20afd4a47160cc674415ba6a3a0ec0ec..2cba35dcc479ed9ad3e698aa2e02b4aa + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 9f55711de82cf06d444aaa1757b72f13cd44de88..467a3c8b33bd8b9148ec95b831e11656269a01ec 100644 +index 676980f83b7b0ca109f7887096e682bbc50dfe56..184928f0309877898d476c857761aa02897b2fab 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -@@ -239,6 +239,7 @@ public class PurpurConfig { +@@ -242,6 +242,7 @@ public class PurpurConfig { public static String commandTPSBarTextColorLow = ""; public static int commandTPSBarTickInterval = 20; public static boolean commandGamemodeRequiresPermission = false; @@ -70,7 +70,7 @@ index 9f55711de82cf06d444aaa1757b72f13cd44de88..467a3c8b33bd8b9148ec95b831e11656 private static void commandSettings() { commandTPSBarTitle = getString("settings.command.tpsbar.title", commandTPSBarTitle); commandTPSBarProgressOverlay = BossBar.Overlay.valueOf(getString("settings.command.tpsbar.overlay", commandTPSBarProgressOverlay.name())); -@@ -251,6 +252,7 @@ public class PurpurConfig { +@@ -254,6 +255,7 @@ public class PurpurConfig { commandTPSBarTextColorLow = getString("settings.command.tpsbar.text-color.low", commandTPSBarTextColorLow); commandTPSBarTickInterval = getInt("settings.command.tpsbar.tick-interval", commandTPSBarTickInterval); commandGamemodeRequiresPermission = getBoolean("settings.command.gamemode.requires-specific-permission", commandGamemodeRequiresPermission); diff --git a/patches/server/0179-Config-for-unverified-username-message.patch b/patches/server/0179-Config-for-unverified-username-message.patch index 6ba0a0ce7..559a736b2 100644 --- a/patches/server/0179-Config-for-unverified-username-message.patch +++ b/patches/server/0179-Config-for-unverified-username-message.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Config for unverified username message diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -index 855eac5e6f3a99a2fc31ad0e02c496d4b5c60622..2872adc531ca333e60e87752f4cbea11c5f0937b 100644 +index b607f5ccbce10570f827dd21eb38504f42781d2f..a0f34f6b4df45367a4bc740409eb704531fe821a 100644 --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java @@ -379,7 +379,7 @@ public class ServerLoginPacketListenerImpl implements TickablePacketListener, Se @@ -18,10 +18,10 @@ index 855eac5e6f3a99a2fc31ad0e02c496d4b5c60622..2872adc531ca333e60e87752f4cbea11 } } catch (AuthenticationUnavailableException authenticationunavailableexception) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 467a3c8b33bd8b9148ec95b831e11656269a01ec..e7d13b084c0d47dc1bcb9932db9cea6ccbfa45cb 100644 +index 184928f0309877898d476c857761aa02897b2fab..d40e2d86a689bd429f91ec57150f3cdea2aa98f5 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -@@ -178,6 +178,7 @@ public class PurpurConfig { +@@ -181,6 +181,7 @@ public class PurpurConfig { public static String pingCommandOutput = "%s's ping is %sms"; public static String tpsbarCommandOutput = "Tpsbar toggled for "; public static String dontRunWithScissors = "Don't run with scissors!"; @@ -29,7 +29,7 @@ index 467a3c8b33bd8b9148ec95b831e11656269a01ec..e7d13b084c0d47dc1bcb9932db9cea6c private static void messages() { cannotRideMob = getString("settings.messages.cannot-ride-mob", cannotRideMob); afkBroadcastAway = getString("settings.messages.afk-broadcast-away", afkBroadcastAway); -@@ -189,6 +190,7 @@ public class PurpurConfig { +@@ -192,6 +193,7 @@ public class PurpurConfig { pingCommandOutput = getString("settings.messages.ping-command-output", pingCommandOutput); tpsbarCommandOutput = getString("settings.messages.tpsbar-command-output", tpsbarCommandOutput); dontRunWithScissors = getString("settings.messages.dont-run-with-scissors", dontRunWithScissors); diff --git a/patches/server/0180-Make-anvil-cumulative-cost-configurable.patch b/patches/server/0180-Make-anvil-cumulative-cost-configurable.patch index 5952a7cf2..a42b9a73a 100644 --- a/patches/server/0180-Make-anvil-cumulative-cost-configurable.patch +++ b/patches/server/0180-Make-anvil-cumulative-cost-configurable.patch @@ -18,10 +18,10 @@ index 33c33a953cdd47c30720225b10a5378f16daf225..0ecda463452a3f9205dfbd97f28ae7cf public void setItemName(String newItemName) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index e7d13b084c0d47dc1bcb9932db9cea6ccbfa45cb..1be1e15fb2a9e05fbbeb1d46ffae05afe204d4fb 100644 +index d40e2d86a689bd429f91ec57150f3cdea2aa98f5..3146653b274b17ba73ec66b254e15bf7f4fb81d2 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -@@ -262,6 +262,7 @@ public class PurpurConfig { +@@ -265,6 +265,7 @@ public class PurpurConfig { public static boolean enderChestPermissionRows = false; public static boolean cryingObsidianValidForPortalFrame = false; public static int beeInsideBeeHive = 3; @@ -29,7 +29,7 @@ index e7d13b084c0d47dc1bcb9932db9cea6ccbfa45cb..1be1e15fb2a9e05fbbeb1d46ffae05af private static void blockSettings() { if (version < 3) { boolean oldValue = getBoolean("settings.barrel.packed-barrels", true); -@@ -294,6 +295,7 @@ public class PurpurConfig { +@@ -297,6 +298,7 @@ public class PurpurConfig { enderChestPermissionRows = getBoolean("settings.blocks.ender_chest.use-permissions-for-rows", enderChestPermissionRows); cryingObsidianValidForPortalFrame = getBoolean("settings.blocks.crying_obsidian.valid-for-portal-frame", cryingObsidianValidForPortalFrame); beeInsideBeeHive = getInt("settings.blocks.beehive.max-bees-inside", beeInsideBeeHive); diff --git a/patches/server/0189-Make-lightning-rod-range-configurable.patch b/patches/server/0189-Make-lightning-rod-range-configurable.patch index fd22948a3..b755a57d6 100644 --- a/patches/server/0189-Make-lightning-rod-range-configurable.patch +++ b/patches/server/0189-Make-lightning-rod-range-configurable.patch @@ -18,10 +18,10 @@ index 9dc317d471ce6eab24e0ebec729cea1dbed8b2ec..a7820becea1e46154975f4cd7b8e8d24 return optional.map((blockposition1) -> { return blockposition1.above(1); diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 1be1e15fb2a9e05fbbeb1d46ffae05afe204d4fb..61d3055e0cd541c3e0197daed15c831ee7dbb7ff 100644 +index 3146653b274b17ba73ec66b254e15bf7f4fb81d2..9d6e1e62b4a2754826ab58c9eafe2d03e538a940 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -@@ -263,6 +263,7 @@ public class PurpurConfig { +@@ -266,6 +266,7 @@ public class PurpurConfig { public static boolean cryingObsidianValidForPortalFrame = false; public static int beeInsideBeeHive = 3; public static boolean anvilCumulativeCost = true; @@ -29,7 +29,7 @@ index 1be1e15fb2a9e05fbbeb1d46ffae05afe204d4fb..61d3055e0cd541c3e0197daed15c831e private static void blockSettings() { if (version < 3) { boolean oldValue = getBoolean("settings.barrel.packed-barrels", true); -@@ -296,6 +297,7 @@ public class PurpurConfig { +@@ -299,6 +300,7 @@ public class PurpurConfig { cryingObsidianValidForPortalFrame = getBoolean("settings.blocks.crying_obsidian.valid-for-portal-frame", cryingObsidianValidForPortalFrame); beeInsideBeeHive = getInt("settings.blocks.beehive.max-bees-inside", beeInsideBeeHive); anvilCumulativeCost = getBoolean("settings.blocks.anvil.cumulative-cost", anvilCumulativeCost); diff --git a/patches/server/0199-Add-uptime-command.patch b/patches/server/0199-Add-uptime-command.patch index e4b1add76..1befc2af7 100644 --- a/patches/server/0199-Add-uptime-command.patch +++ b/patches/server/0199-Add-uptime-command.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add uptime command diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index 2b61c6fb67141234708707eb07621681f7d8e9b2..dc76507dd19e263cc3a0d566c0ea237ad1203a63 100644 +index 14b12cb6967c1c2735cf6a0eafdf6e23889a528c..6a044a9c97db9bba75f8dbbaa8515e3167841855 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java @@ -210,6 +210,7 @@ public class Commands { @@ -17,7 +17,7 @@ index 2b61c6fb67141234708707eb07621681f7d8e9b2..dc76507dd19e263cc3a0d566c0ea237a } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 4fbc86086d085681918dc9e6ddfbcad647137948..6767bf0dfc55092144f2c24139ab65fcc274d045 100644 +index 03d0cc6c69164e196d5db2bf56a7136a9e4a5c79..fa2812d94045e5d49fdd9990eac918975c9fcee5 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -281,6 +281,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop= getMaxGrowthAge(); // Purpur + } + + protected BlockState updateBodyAfterConvertedFromHead(BlockState from, BlockState to) { +@@ -121,13 +121,13 @@ public abstract class GrowingPlantHeadBlock extends GrowingPlantBlock implements @Override public void performBonemeal(ServerLevel world, RandomSource random, BlockPos pos, BlockState state) { BlockPos blockposition1 = pos.relative(this.growthDirection); - int i = Math.min((Integer) state.getValue(GrowingPlantHeadBlock.AGE) + 1, 25); -+ int i = Math.min((Integer) state.getValue(GrowingPlantHeadBlock.AGE) + 1, getMaxGrowthAge(world)); ++ int i = Math.min((Integer) state.getValue(GrowingPlantHeadBlock.AGE) + 1, getMaxGrowthAge()); // Purpur int j = this.getBlocksToGrowWhenBonemealed(random); for (int k = 0; k < j && this.canGrowInto(world.getBlockState(blockposition1)); ++k) { world.setBlockAndUpdate(blockposition1, (BlockState) state.setValue(GrowingPlantHeadBlock.AGE, i)); blockposition1 = blockposition1.relative(this.growthDirection); - i = Math.min(i + 1, 25); -+ i = Math.min(i + 1, getMaxGrowthAge(world)); ++ i = Math.min(i + 1, getMaxGrowthAge()); // Purpur } } +@@ -140,4 +140,6 @@ public abstract class GrowingPlantHeadBlock extends GrowingPlantBlock implements + protected GrowingPlantHeadBlock getHeadBlock() { + return this; + } ++ ++ public abstract int getMaxGrowthAge(); // Purpur + } diff --git a/src/main/java/net/minecraft/world/level/block/KelpBlock.java b/src/main/java/net/minecraft/world/level/block/KelpBlock.java -index bc66fa91ec3e13431d5d9b6e17935cab73066be7..6776ca3340f710cea4bf90b610def9e51051cf75 100644 +index bc66fa91ec3e13431d5d9b6e17935cab73066be7..0f16b5ed2e249f3d8f583dc941e32066d354cf95 100644 --- a/src/main/java/net/minecraft/world/level/block/KelpBlock.java +++ b/src/main/java/net/minecraft/world/level/block/KelpBlock.java @@ -64,4 +64,11 @@ public class KelpBlock extends GrowingPlantHeadBlock implements LiquidBlockConta @@ -79,13 +97,13 @@ index bc66fa91ec3e13431d5d9b6e17935cab73066be7..6776ca3340f710cea4bf90b610def9e5 + + // Purpur start + @Override -+ public int getMaxGrowthAge(net.minecraft.server.level.ServerLevel world) { -+ return world.purpurConfig.kelpMaxGrowthAge; ++ public int getMaxGrowthAge() { ++ return org.purpurmc.purpur.PurpurConfig.kelpMaxGrowthAge; + } + // Purpur end } diff --git a/src/main/java/net/minecraft/world/level/block/TwistingVinesBlock.java b/src/main/java/net/minecraft/world/level/block/TwistingVinesBlock.java -index 6866605c7ef5361b21130a19a59c3fa3660dfb19..c3f42d587de584406ebb6a68d9529c0410a6554d 100644 +index 6866605c7ef5361b21130a19a59c3fa3660dfb19..dee5d76d29da13f8639ab5d392cd0143201e71ba 100644 --- a/src/main/java/net/minecraft/world/level/block/TwistingVinesBlock.java +++ b/src/main/java/net/minecraft/world/level/block/TwistingVinesBlock.java @@ -27,4 +27,11 @@ public class TwistingVinesBlock extends GrowingPlantHeadBlock { @@ -95,13 +113,13 @@ index 6866605c7ef5361b21130a19a59c3fa3660dfb19..c3f42d587de584406ebb6a68d9529c04 + + // Purpur start + @Override -+ public int getMaxGrowthAge(net.minecraft.server.level.ServerLevel world) { -+ return world.purpurConfig.twistingVinesMaxGrowthAge; ++ public int getMaxGrowthAge() { ++ return org.purpurmc.purpur.PurpurConfig.twistingVinesMaxGrowthAge; + } + // Purpur end } diff --git a/src/main/java/net/minecraft/world/level/block/WeepingVinesBlock.java b/src/main/java/net/minecraft/world/level/block/WeepingVinesBlock.java -index e5c135ec059746b75fe58516809584221285cdbe..0f4af88d7cd2c2dc69820078de40be544c8263be 100644 +index e5c135ec059746b75fe58516809584221285cdbe..713c7e6e31a3e1097b612c77a4fce147c9252e0b 100644 --- a/src/main/java/net/minecraft/world/level/block/WeepingVinesBlock.java +++ b/src/main/java/net/minecraft/world/level/block/WeepingVinesBlock.java @@ -27,4 +27,11 @@ public class WeepingVinesBlock extends GrowingPlantHeadBlock { @@ -111,75 +129,54 @@ index e5c135ec059746b75fe58516809584221285cdbe..0f4af88d7cd2c2dc69820078de40be54 + + // Purpur start + @Override -+ public int getMaxGrowthAge(net.minecraft.server.level.ServerLevel world) { -+ return world.purpurConfig.weepingVinesMaxGrowthAge; ++ public int getMaxGrowthAge() { ++ return org.purpurmc.purpur.PurpurConfig.weepingVinesMaxGrowthAge; + } + // Purpur end } -diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 407cdadb54eee58a415504c2219829054b40204a..c0c95fdc9b58c6df2c9bf5b43fc132f53336aa00 100644 ---- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -786,6 +786,11 @@ public class PurpurWorldConfig { - composterBulkProcess = getBoolean("blocks.composter.sneak-to-bulk-process", composterBulkProcess); - } - -+ public int caveVinesMaxGrowthAge = 25; -+ private void caveVinesSettings() { -+ caveVinesMaxGrowthAge = getInt("blocks.cave_vines.max-growth-age", caveVinesMaxGrowthAge); -+ } -+ - public boolean dispenserApplyCursedArmor = true; - public boolean dispenserPlaceAnvils = false; - private void dispenserSettings() { -@@ -880,6 +885,16 @@ public class PurpurWorldConfig { - mobsSpawnOnBlueIce = getBoolean("blocks.blue_ice.allow-mob-spawns", mobsSpawnOnBlueIce); - } - -+ public int kelpMaxGrowthAge = 25; -+ private void kelpSettings() { -+ kelpMaxGrowthAge = getInt("blocks.kelp.max-growth-age", kelpMaxGrowthAge); +diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java +index 94c9c6717e5e397243a5b735d15210b928957827..0d73e8a06a8b7ce1db080396c8c8e6fc2b3c1c52 100644 +--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java ++++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java +@@ -323,6 +323,10 @@ public class PurpurConfig { + public static Set grindstoneIgnoredEnchants = new HashSet<>(); + public static boolean grindstoneRemoveAttributes = false; + public static boolean grindstoneRemoveDisplay = false; ++ public static int caveVinesMaxGrowthAge = 25; ++ public static int kelpMaxGrowthAge = 25; ++ public static int twistingVinesMaxGrowthAge = 25; ++ public static int weepingVinesMaxGrowthAge = 25; + private static void blockSettings() { + if (version < 3) { + boolean oldValue = getBoolean("settings.barrel.packed-barrels", true); +@@ -370,6 +374,30 @@ public class PurpurConfig { + }); + grindstoneRemoveAttributes = getBoolean("settings.blocks.grindstone.remove-attributes", grindstoneRemoveAttributes); + grindstoneRemoveDisplay = getBoolean("settings.blocks.grindstone.remove-name-and-lore", grindstoneRemoveDisplay); ++ caveVinesMaxGrowthAge = getInt("settings.blocks.cave_vines.max-growth-age", caveVinesMaxGrowthAge); ++ if (caveVinesMaxGrowthAge > 25) { ++ caveVinesMaxGrowthAge = 25; ++ log(Level.WARNING, "blocks.cave_vines.max-growth-age is set to above maximum allowed value of 25"); ++ log(Level.WARNING, "Using value of 25 to prevent issues"); ++ } ++ kelpMaxGrowthAge = getInt("settings.blocks.kelp.max-growth-age", kelpMaxGrowthAge); + if (kelpMaxGrowthAge > 25) { + kelpMaxGrowthAge = 25; + log(Level.WARNING, "blocks.kelp.max-growth-age is set to above maximum allowed value of 25"); -+ log(Level.WARNING, "Using value of 25 anyway to prevent issues"); ++ log(Level.WARNING, "Using value of 25 to prevent issues"); + } -+ } -+ - public boolean lavaInfinite = false; - public int lavaInfiniteRequiredSources = 2; - public int lavaSpeedNether = 10; -@@ -969,6 +984,16 @@ public class PurpurWorldConfig { - turtleEggsBypassMobGriefing = getBoolean("blocks.turtle_egg.bypass-mob-griefing", turtleEggsBypassMobGriefing); - } - -+ public int twistingVinesMaxGrowthAge = 25; -+ private void twistingVinesSettings() { -+ twistingVinesMaxGrowthAge = getInt("blocks.twisting_vines.max-growth-age", twistingVinesMaxGrowthAge); ++ twistingVinesMaxGrowthAge = getInt("settings.blocks.twisting_vines.max-growth-age", twistingVinesMaxGrowthAge); + if (twistingVinesMaxGrowthAge > 25) { + twistingVinesMaxGrowthAge = 25; + log(Level.WARNING, "blocks.twisting_vines.max-growth-age is set to above maximum allowed value of 25"); -+ log(Level.WARNING, "Using value of 25 anyway to prevent issues"); ++ log(Level.WARNING, "Using value of 25 to prevent issues"); + } -+ } -+ - public boolean waterInfinite = true; - public int waterInfiniteRequiredSources = 2; - private void waterSources() { -@@ -976,6 +1001,16 @@ public class PurpurWorldConfig { - waterInfiniteRequiredSources = getInt("blocks.water.infinite-required-sources", waterInfiniteRequiredSources); - } - -+ public int weepingVinesMaxGrowthAge = 25; -+ private void weepingVinesSettings() { -+ weepingVinesMaxGrowthAge = getInt("blocks.weeping_vines.max-growth-age", weepingVinesMaxGrowthAge); ++ weepingVinesMaxGrowthAge = getInt("settings.blocks.weeping_vines.max-growth-age", weepingVinesMaxGrowthAge); + if (weepingVinesMaxGrowthAge > 25) { + weepingVinesMaxGrowthAge = 25; + log(Level.WARNING, "blocks.weeping_vines.max-growth-age is set to above maximum allowed value of 25"); -+ log(Level.WARNING, "Using value of 25 anyway to prevent issues"); ++ log(Level.WARNING, "Using value of 25 to prevent issues"); + } -+ } -+ - public boolean babiesAreRidable = true; - public boolean untamedTamablesAreRidable = true; - public boolean useNightVisionWhenRiding = false; + } + + public static boolean allowInfinityMending = false; diff --git a/patches/server/0240-Mobs-always-drop-experience.patch b/patches/server/0240-Mobs-always-drop-experience.patch index b389dca70..bd46275ff 100644 --- a/patches/server/0240-Mobs-always-drop-experience.patch +++ b/patches/server/0240-Mobs-always-drop-experience.patch @@ -37,7 +37,7 @@ index a851aaf84085c9bd79e933246bb2c79e435ab0f1..1436f9f62ce20b39c5ae2425c2fe47f5 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/Bee.java b/src/main/java/net/minecraft/world/entity/animal/Bee.java -index c9aed7036c9553ea06c9f8e18a0c153e6458efc7..8ce16fbd066d60718a638928b4fb654cada7aafc 100644 +index e4f5fb665c891af7ac0aa2ee08af59f60cc75495..f2410b90b892a0c9684bc1fb675c0cd35518ca19 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Bee.java +++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java @@ -229,6 +229,11 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { @@ -53,7 +53,7 @@ index c9aed7036c9553ea06c9f8e18a0c153e6458efc7..8ce16fbd066d60718a638928b4fb654c @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/Cat.java b/src/main/java/net/minecraft/world/entity/animal/Cat.java -index dca3b1b4099cab57c25c2df74e865c876709321d..ff3fe48b360784cf2fd63e7593487c6bc954fd09 100644 +index 97b5b9f63fc01b6945a5c61406a394cba80c10ec..25d81c2b27be5a441f375d67686fa98a6c434ead 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Cat.java +++ b/src/main/java/net/minecraft/world/entity/animal/Cat.java @@ -133,6 +133,11 @@ public class Cat extends TamableAnimal { @@ -405,7 +405,7 @@ index ed33573a96e96d557156fbe2f725e3d65c7d5ec4..22a66e59687ca889965536464b628f45 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java -index 83eef99d7f24634e301a51d2825370c9283b53ac..32870e6727d09fbf1c4913ffdf321a278b5b6f64 100644 +index 858a5beea8b038822789e6daec9561634c63447c..b543387da275a0b3675a968b6cebf05cc227af14 100644 --- a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java +++ b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java @@ -132,6 +132,11 @@ public class Axolotl extends Animal implements LerpingModel, Bucketable { @@ -469,7 +469,7 @@ index 704e08b1ad0601e9b7f3b355214a820858a421ce..d0b477c01386ce25bf4a93bda8561c7e @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java -index b7b8d7587018759fc418043694abd38fd043852b..9bbb756e5da3d0967e5beb026996775e272b10e4 100644 +index 06177b60406aa949c71277f75158f154e68ec0d8..ca40e73eb20095be9155938e9869a543fbf6006b 100644 --- a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java +++ b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java @@ -141,6 +141,11 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob { @@ -549,7 +549,7 @@ index 6d1938f1cbad394f218b36ec8958d5e7ba6623f7..215c2a75fc53e558a5d804055138ee0f public static AttributeSupplier.Builder createAttributes() { diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java -index 0dd31e45252d54b8bfa3645b25c984de30934a0e..f2dde5fadb829207bcd6167cb5da9b22a3917978 100644 +index 3f0b62c733c62b8d1a9fc6494d787c9865fefadb..aa21946668c083beb9ab55eaf084eb405be5d1ed 100644 --- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java @@ -249,6 +249,11 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob @@ -613,7 +613,7 @@ index 663232752b74fea95010510d237b439d217be9ca..fe26858b6d2f616fa34f4073ddfc1302 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Drowned.java b/src/main/java/net/minecraft/world/entity/monster/Drowned.java -index c9665576a658d0e996c788ceb12fd26ab786f9bc..3c841029197eeca960f033acf7d450145e72e0bd 100644 +index 6e0a575a95ac0bcbc9e3909178ea566a158dd561..68e31cf561f3d76bce6fa4324a75594c776f8964 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Drowned.java +++ b/src/main/java/net/minecraft/world/entity/monster/Drowned.java @@ -114,6 +114,11 @@ public class Drowned extends Zombie implements RangedAttackMob { @@ -645,7 +645,7 @@ index 64193dab104b735a9fa3b335774e662629110c79..3533414fcb112b75df7226d32b220bfc public static AttributeSupplier.Builder createAttributes() { diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java -index 372400d5ce38407b577e5ee403ce39fc60b399e4..6fc891e78b7a3839755a719ebc23f2ed2d714870 100644 +index a8367e8086fb1c075102f414a5c30ccb49be0720..4e00c2216142b52fb34be0e51d00fa20fded92c8 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java @@ -107,6 +107,11 @@ public class EnderMan extends Monster implements NeutralMob { @@ -789,7 +789,7 @@ index 5311b26e56eac2a854e615a3e694eadd9520cc1c..2111a99d23d86f5f2e2ce8101dbbf292 public static AttributeSupplier.Builder createAttributes() { diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java -index 836ca1a47524088c78c6c72a9479c7ffabfbee10..33b347474b7485633ca77bdff28e4b32580b51b8 100644 +index 67b940682dc84a8843119e1e990a69aa9dc9c0c4..1afe38e0d83040f4f5702ac3a14ac1e7963b9e5e 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java +++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java @@ -157,6 +157,11 @@ public class Phantom extends FlyingMob implements Enemy { @@ -1029,7 +1029,7 @@ index 0d8495a73df5b1b6cd2c7e5cf18cb3eb15bbb729..66b824ac3c24c46014d615b355a8a04e @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java -index 5b7a6fa9692933ceb40c36e2c684a98d2ba51d57..177bc2b03d2f103add8e8d8ff862c8fe48c4ef6b 100644 +index 38014afb40ac5781f6724a942d593aee1f060ad8..ef92a631f71a8d44741a46ef7f6b599b4c061c47 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java +++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java @@ -143,6 +143,11 @@ public class Zombie extends Monster { @@ -1157,10 +1157,10 @@ index 8d6930868a42b9fc98d7672bff433ec50d36999e..53bebecd30fee7613af73901b3aa9961 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd7fd261bc 100644 +index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b13bc4c63 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1034,12 +1034,14 @@ public class PurpurWorldConfig { +@@ -999,12 +999,14 @@ public class PurpurWorldConfig { public double axolotlMaxHealth = 14.0D; public int axolotlBreedingTicks = 6000; public boolean axolotlTakeDamageFromWater = false; @@ -1175,7 +1175,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean batRidable = false; -@@ -1055,6 +1057,7 @@ public class PurpurWorldConfig { +@@ -1020,6 +1022,7 @@ public class PurpurWorldConfig { public double batArmorToughness = 0.0D; public double batAttackKnockback = 0.0D; public boolean batTakeDamageFromWater = false; @@ -1183,7 +1183,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void batSettings() { batRidable = getBoolean("mobs.bat.ridable", batRidable); batRidableInWater = getBoolean("mobs.bat.ridable-in-water", batRidableInWater); -@@ -1067,6 +1070,7 @@ public class PurpurWorldConfig { +@@ -1032,6 +1035,7 @@ public class PurpurWorldConfig { } batMaxHealth = getDouble("mobs.bat.attributes.max_health", batMaxHealth); batTakeDamageFromWater = getBoolean("mobs.bat.takes-damage-from-water", batTakeDamageFromWater); @@ -1191,7 +1191,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean beeRidable = false; -@@ -1078,6 +1082,7 @@ public class PurpurWorldConfig { +@@ -1043,6 +1047,7 @@ public class PurpurWorldConfig { public boolean beeTakeDamageFromWater = false; public boolean beeCanWorkAtNight = false; public boolean beeCanWorkInRain = false; @@ -1199,7 +1199,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void beeSettings() { beeRidable = getBoolean("mobs.bee.ridable", beeRidable); beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater); -@@ -1093,6 +1098,7 @@ public class PurpurWorldConfig { +@@ -1058,6 +1063,7 @@ public class PurpurWorldConfig { beeTakeDamageFromWater = getBoolean("mobs.bee.takes-damage-from-water", beeTakeDamageFromWater); beeCanWorkAtNight = getBoolean("mobs.bee.can-work-at-night", beeCanWorkAtNight); beeCanWorkInRain = getBoolean("mobs.bee.can-work-in-rain", beeCanWorkInRain); @@ -1207,7 +1207,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean blazeRidable = false; -@@ -1101,6 +1107,7 @@ public class PurpurWorldConfig { +@@ -1066,6 +1072,7 @@ public class PurpurWorldConfig { public double blazeMaxY = 320D; public double blazeMaxHealth = 20.0D; public boolean blazeTakeDamageFromWater = true; @@ -1215,7 +1215,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void blazeSettings() { blazeRidable = getBoolean("mobs.blaze.ridable", blazeRidable); blazeRidableInWater = getBoolean("mobs.blaze.ridable-in-water", blazeRidableInWater); -@@ -1113,6 +1120,7 @@ public class PurpurWorldConfig { +@@ -1078,6 +1085,7 @@ public class PurpurWorldConfig { } blazeMaxHealth = getDouble("mobs.blaze.attributes.max_health", blazeMaxHealth); blazeTakeDamageFromWater = getBoolean("mobs.blaze.takes-damage-from-water", blazeTakeDamageFromWater); @@ -1223,7 +1223,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean catRidable = false; -@@ -1125,6 +1133,7 @@ public class PurpurWorldConfig { +@@ -1090,6 +1098,7 @@ public class PurpurWorldConfig { public int catBreedingTicks = 6000; public DyeColor catDefaultCollarColor = DyeColor.RED; public boolean catTakeDamageFromWater = false; @@ -1231,7 +1231,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void catSettings() { catRidable = getBoolean("mobs.cat.ridable", catRidable); catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater); -@@ -1145,6 +1154,7 @@ public class PurpurWorldConfig { +@@ -1110,6 +1119,7 @@ public class PurpurWorldConfig { catDefaultCollarColor = DyeColor.RED; } catTakeDamageFromWater = getBoolean("mobs.cat.takes-damage-from-water", catTakeDamageFromWater); @@ -1239,7 +1239,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean caveSpiderRidable = false; -@@ -1152,6 +1162,7 @@ public class PurpurWorldConfig { +@@ -1117,6 +1127,7 @@ public class PurpurWorldConfig { public boolean caveSpiderControllable = true; public double caveSpiderMaxHealth = 12.0D; public boolean caveSpiderTakeDamageFromWater = false; @@ -1247,7 +1247,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void caveSpiderSettings() { caveSpiderRidable = getBoolean("mobs.cave_spider.ridable", caveSpiderRidable); caveSpiderRidableInWater = getBoolean("mobs.cave_spider.ridable-in-water", caveSpiderRidableInWater); -@@ -1163,6 +1174,7 @@ public class PurpurWorldConfig { +@@ -1128,6 +1139,7 @@ public class PurpurWorldConfig { } caveSpiderMaxHealth = getDouble("mobs.cave_spider.attributes.max_health", caveSpiderMaxHealth); caveSpiderTakeDamageFromWater = getBoolean("mobs.cave_spider.takes-damage-from-water", caveSpiderTakeDamageFromWater); @@ -1255,7 +1255,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean chickenRidable = false; -@@ -1172,6 +1184,7 @@ public class PurpurWorldConfig { +@@ -1137,6 +1149,7 @@ public class PurpurWorldConfig { public boolean chickenRetaliate = false; public int chickenBreedingTicks = 6000; public boolean chickenTakeDamageFromWater = false; @@ -1263,7 +1263,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void chickenSettings() { chickenRidable = getBoolean("mobs.chicken.ridable", chickenRidable); chickenRidableInWater = getBoolean("mobs.chicken.ridable-in-water", chickenRidableInWater); -@@ -1185,12 +1198,14 @@ public class PurpurWorldConfig { +@@ -1150,12 +1163,14 @@ public class PurpurWorldConfig { chickenRetaliate = getBoolean("mobs.chicken.retaliate", chickenRetaliate); chickenBreedingTicks = getInt("mobs.chicken.breeding-delay-ticks", chickenBreedingTicks); chickenTakeDamageFromWater = getBoolean("mobs.chicken.takes-damage-from-water", chickenTakeDamageFromWater); @@ -1278,7 +1278,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void codSettings() { codRidable = getBoolean("mobs.cod.ridable", codRidable); codControllable = getBoolean("mobs.cod.controllable", codControllable); -@@ -1201,6 +1216,7 @@ public class PurpurWorldConfig { +@@ -1166,6 +1181,7 @@ public class PurpurWorldConfig { } codMaxHealth = getDouble("mobs.cod.attributes.max_health", codMaxHealth); codTakeDamageFromWater = getBoolean("mobs.cod.takes-damage-from-water", codTakeDamageFromWater); @@ -1286,7 +1286,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean cowRidable = false; -@@ -1212,6 +1228,7 @@ public class PurpurWorldConfig { +@@ -1177,6 +1193,7 @@ public class PurpurWorldConfig { public boolean cowTakeDamageFromWater = false; public double cowNaturallyAggressiveToPlayersChance = 0.0D; public double cowNaturallyAggressiveToPlayersDamage = 2.0D; @@ -1294,7 +1294,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void cowSettings() { if (PurpurConfig.version < 22) { double oldValue = getDouble("mobs.cow.naturally-aggressive-to-players-chance", cowNaturallyAggressiveToPlayersChance); -@@ -1232,6 +1249,7 @@ public class PurpurWorldConfig { +@@ -1197,6 +1214,7 @@ public class PurpurWorldConfig { cowTakeDamageFromWater = getBoolean("mobs.cow.takes-damage-from-water", cowTakeDamageFromWater); cowNaturallyAggressiveToPlayersChance = getDouble("mobs.cow.naturally-aggressive-to-players.chance", cowNaturallyAggressiveToPlayersChance); cowNaturallyAggressiveToPlayersDamage = getDouble("mobs.cow.naturally-aggressive-to-players.damage", cowNaturallyAggressiveToPlayersDamage); @@ -1302,7 +1302,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean creeperRidable = false; -@@ -1244,6 +1262,7 @@ public class PurpurWorldConfig { +@@ -1209,6 +1227,7 @@ public class PurpurWorldConfig { public boolean creeperTakeDamageFromWater = false; public boolean creeperExplodeWhenKilled = false; public boolean creeperHealthRadius = false; @@ -1310,7 +1310,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -1260,6 +1279,7 @@ public class PurpurWorldConfig { +@@ -1225,6 +1244,7 @@ public class PurpurWorldConfig { creeperTakeDamageFromWater = getBoolean("mobs.creeper.takes-damage-from-water", creeperTakeDamageFromWater); creeperExplodeWhenKilled = getBoolean("mobs.creeper.explode-when-killed", creeperExplodeWhenKilled); creeperHealthRadius = getBoolean("mobs.creeper.health-impacts-explosion", creeperHealthRadius); @@ -1318,7 +1318,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean dolphinRidable = false; -@@ -1271,6 +1291,7 @@ public class PurpurWorldConfig { +@@ -1236,6 +1256,7 @@ public class PurpurWorldConfig { public boolean dolphinDisableTreasureSearching = false; public boolean dolphinTakeDamageFromWater = false; public double dolphinNaturallyAggressiveToPlayersChance = 0.0D; @@ -1326,7 +1326,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void dolphinSettings() { dolphinRidable = getBoolean("mobs.dolphin.ridable", dolphinRidable); dolphinControllable = getBoolean("mobs.dolphin.controllable", dolphinControllable); -@@ -1286,6 +1307,7 @@ public class PurpurWorldConfig { +@@ -1251,6 +1272,7 @@ public class PurpurWorldConfig { dolphinDisableTreasureSearching = getBoolean("mobs.dolphin.disable-treasure-searching", dolphinDisableTreasureSearching); dolphinTakeDamageFromWater = getBoolean("mobs.dolphin.takes-damage-from-water", dolphinTakeDamageFromWater); dolphinNaturallyAggressiveToPlayersChance = getDouble("mobs.dolphin.naturally-aggressive-to-players-chance", dolphinNaturallyAggressiveToPlayersChance); @@ -1334,7 +1334,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean donkeyRidableInWater = false; -@@ -1297,6 +1319,7 @@ public class PurpurWorldConfig { +@@ -1262,6 +1284,7 @@ public class PurpurWorldConfig { public double donkeyMovementSpeedMax = 0.175D; public int donkeyBreedingTicks = 6000; public boolean donkeyTakeDamageFromWater = false; @@ -1342,7 +1342,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void donkeySettings() { donkeyRidableInWater = getBoolean("mobs.donkey.ridable-in-water", donkeyRidableInWater); if (PurpurConfig.version < 10) { -@@ -1314,6 +1337,7 @@ public class PurpurWorldConfig { +@@ -1279,6 +1302,7 @@ public class PurpurWorldConfig { donkeyMovementSpeedMax = getDouble("mobs.donkey.attributes.movement_speed.max", donkeyMovementSpeedMax); donkeyBreedingTicks = getInt("mobs.donkey.breeding-delay-ticks", donkeyBreedingTicks); donkeyTakeDamageFromWater = getBoolean("mobs.donkey.takes-damage-from-water", donkeyTakeDamageFromWater); @@ -1350,7 +1350,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean drownedRidable = false; -@@ -1326,6 +1350,7 @@ public class PurpurWorldConfig { +@@ -1291,6 +1315,7 @@ public class PurpurWorldConfig { public boolean drownedJockeyTryExistingChickens = true; public boolean drownedTakeDamageFromWater = false; public boolean drownedBreakDoors = false; @@ -1358,7 +1358,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void drownedSettings() { drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable); drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater); -@@ -1342,12 +1367,14 @@ public class PurpurWorldConfig { +@@ -1307,12 +1332,14 @@ public class PurpurWorldConfig { drownedJockeyTryExistingChickens = getBoolean("mobs.drowned.jockey.try-existing-chickens", drownedJockeyTryExistingChickens); drownedTakeDamageFromWater = getBoolean("mobs.drowned.takes-damage-from-water", drownedTakeDamageFromWater); drownedBreakDoors = getBoolean("mobs.drowned.can-break-doors", drownedBreakDoors); @@ -1373,7 +1373,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void elderGuardianSettings() { elderGuardianRidable = getBoolean("mobs.elder_guardian.ridable", elderGuardianRidable); elderGuardianControllable = getBoolean("mobs.elder_guardian.controllable", elderGuardianControllable); -@@ -1358,6 +1385,7 @@ public class PurpurWorldConfig { +@@ -1323,6 +1350,7 @@ public class PurpurWorldConfig { } elderGuardianMaxHealth = getDouble("mobs.elder_guardian.attributes.max_health", elderGuardianMaxHealth); elderGuardianTakeDamageFromWater = getBoolean("mobs.elder_guardian.takes-damage-from-water", elderGuardianTakeDamageFromWater); @@ -1381,7 +1381,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean enderDragonRidable = false; -@@ -1403,6 +1431,7 @@ public class PurpurWorldConfig { +@@ -1368,6 +1396,7 @@ public class PurpurWorldConfig { public boolean endermanIgnorePlayerDragonHead = false; public boolean endermanDisableStareAggro = false; public boolean endermanIgnoreProjectiles = false; @@ -1389,7 +1389,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -1426,6 +1455,7 @@ public class PurpurWorldConfig { +@@ -1391,6 +1420,7 @@ public class PurpurWorldConfig { endermanIgnorePlayerDragonHead = getBoolean("mobs.enderman.ignore-players-wearing-dragon-head", endermanIgnorePlayerDragonHead); endermanDisableStareAggro = getBoolean("mobs.enderman.disable-player-stare-aggression", endermanDisableStareAggro); endermanIgnoreProjectiles = getBoolean("mobs.enderman.ignore-projectiles", endermanIgnoreProjectiles); @@ -1397,7 +1397,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean endermiteRidable = false; -@@ -1433,6 +1463,7 @@ public class PurpurWorldConfig { +@@ -1398,6 +1428,7 @@ public class PurpurWorldConfig { public boolean endermiteControllable = true; public double endermiteMaxHealth = 8.0D; public boolean endermiteTakeDamageFromWater = false; @@ -1405,7 +1405,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void endermiteSettings() { endermiteRidable = getBoolean("mobs.endermite.ridable", endermiteRidable); endermiteRidableInWater = getBoolean("mobs.endermite.ridable-in-water", endermiteRidableInWater); -@@ -1444,6 +1475,7 @@ public class PurpurWorldConfig { +@@ -1409,6 +1440,7 @@ public class PurpurWorldConfig { } endermiteMaxHealth = getDouble("mobs.endermite.attributes.max_health", endermiteMaxHealth); endermiteTakeDamageFromWater = getBoolean("mobs.endermite.takes-damage-from-water", endermiteTakeDamageFromWater); @@ -1413,7 +1413,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean evokerRidable = false; -@@ -1452,6 +1484,7 @@ public class PurpurWorldConfig { +@@ -1417,6 +1449,7 @@ public class PurpurWorldConfig { public double evokerMaxHealth = 24.0D; public boolean evokerBypassMobGriefing = false; public boolean evokerTakeDamageFromWater = false; @@ -1421,7 +1421,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void evokerSettings() { evokerRidable = getBoolean("mobs.evoker.ridable", evokerRidable); evokerRidableInWater = getBoolean("mobs.evoker.ridable-in-water", evokerRidableInWater); -@@ -1464,6 +1497,7 @@ public class PurpurWorldConfig { +@@ -1429,6 +1462,7 @@ public class PurpurWorldConfig { evokerMaxHealth = getDouble("mobs.evoker.attributes.max_health", evokerMaxHealth); evokerBypassMobGriefing = getBoolean("mobs.evoker.bypass-mob-griefing", evokerBypassMobGriefing); evokerTakeDamageFromWater = getBoolean("mobs.evoker.takes-damage-from-water", evokerTakeDamageFromWater); @@ -1429,7 +1429,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean foxRidable = false; -@@ -1474,6 +1508,7 @@ public class PurpurWorldConfig { +@@ -1439,6 +1473,7 @@ public class PurpurWorldConfig { public int foxBreedingTicks = 6000; public boolean foxBypassMobGriefing = false; public boolean foxTakeDamageFromWater = false; @@ -1437,7 +1437,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void foxSettings() { foxRidable = getBoolean("mobs.fox.ridable", foxRidable); foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater); -@@ -1488,6 +1523,7 @@ public class PurpurWorldConfig { +@@ -1453,6 +1488,7 @@ public class PurpurWorldConfig { foxBreedingTicks = getInt("mobs.fox.breeding-delay-ticks", foxBreedingTicks); foxBypassMobGriefing = getBoolean("mobs.fox.bypass-mob-griefing", foxBypassMobGriefing); foxTakeDamageFromWater = getBoolean("mobs.fox.takes-damage-from-water", foxTakeDamageFromWater); @@ -1445,7 +1445,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean frogRidable = false; -@@ -1509,6 +1545,7 @@ public class PurpurWorldConfig { +@@ -1474,6 +1510,7 @@ public class PurpurWorldConfig { public double ghastMaxY = 320D; public double ghastMaxHealth = 10.0D; public boolean ghastTakeDamageFromWater = false; @@ -1453,7 +1453,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void ghastSettings() { ghastRidable = getBoolean("mobs.ghast.ridable", ghastRidable); ghastRidableInWater = getBoolean("mobs.ghast.ridable-in-water", ghastRidableInWater); -@@ -1521,6 +1558,7 @@ public class PurpurWorldConfig { +@@ -1486,6 +1523,7 @@ public class PurpurWorldConfig { } ghastMaxHealth = getDouble("mobs.ghast.attributes.max_health", ghastMaxHealth); ghastTakeDamageFromWater = getBoolean("mobs.ghast.takes-damage-from-water", ghastTakeDamageFromWater); @@ -1461,7 +1461,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean giantRidable = false; -@@ -1534,6 +1572,7 @@ public class PurpurWorldConfig { +@@ -1499,6 +1537,7 @@ public class PurpurWorldConfig { public boolean giantHaveAI = false; public boolean giantHaveHostileAI = false; public boolean giantTakeDamageFromWater = false; @@ -1469,7 +1469,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void giantSettings() { giantRidable = getBoolean("mobs.giant.ridable", giantRidable); giantRidableInWater = getBoolean("mobs.giant.ridable-in-water", giantRidableInWater); -@@ -1555,6 +1594,7 @@ public class PurpurWorldConfig { +@@ -1520,6 +1559,7 @@ public class PurpurWorldConfig { giantHaveAI = getBoolean("mobs.giant.have-ai", giantHaveAI); giantHaveHostileAI = getBoolean("mobs.giant.have-hostile-ai", giantHaveHostileAI); giantTakeDamageFromWater = getBoolean("mobs.giant.takes-damage-from-water", giantTakeDamageFromWater); @@ -1477,7 +1477,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean glowSquidRidable = false; -@@ -1562,12 +1602,14 @@ public class PurpurWorldConfig { +@@ -1527,12 +1567,14 @@ public class PurpurWorldConfig { public double glowSquidMaxHealth = 10.0D; public boolean glowSquidsCanFly = false; public boolean glowSquidTakeDamageFromWater = false; @@ -1492,7 +1492,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean goatRidable = false; -@@ -1576,6 +1618,7 @@ public class PurpurWorldConfig { +@@ -1541,6 +1583,7 @@ public class PurpurWorldConfig { public double goatMaxHealth = 10.0D; public int goatBreedingTicks = 6000; public boolean goatTakeDamageFromWater = false; @@ -1500,7 +1500,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void goatSettings() { goatRidable = getBoolean("mobs.goat.ridable", goatRidable); goatRidableInWater = getBoolean("mobs.goat.ridable-in-water", goatRidableInWater); -@@ -1583,12 +1626,14 @@ public class PurpurWorldConfig { +@@ -1548,12 +1591,14 @@ public class PurpurWorldConfig { goatMaxHealth = getDouble("mobs.goat.attributes.max_health", goatMaxHealth); goatBreedingTicks = getInt("mobs.goat.breeding-delay-ticks", goatBreedingTicks); goatTakeDamageFromWater = getBoolean("mobs.goat.takes-damage-from-water", goatTakeDamageFromWater); @@ -1515,7 +1515,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void guardianSettings() { guardianRidable = getBoolean("mobs.guardian.ridable", guardianRidable); guardianControllable = getBoolean("mobs.guardian.controllable", guardianControllable); -@@ -1599,6 +1644,7 @@ public class PurpurWorldConfig { +@@ -1564,6 +1609,7 @@ public class PurpurWorldConfig { } guardianMaxHealth = getDouble("mobs.guardian.attributes.max_health", guardianMaxHealth); guardianTakeDamageFromWater = getBoolean("mobs.guardian.takes-damage-from-water", guardianTakeDamageFromWater); @@ -1523,7 +1523,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean forceHalloweenSeason = false; -@@ -1614,6 +1660,7 @@ public class PurpurWorldConfig { +@@ -1579,6 +1625,7 @@ public class PurpurWorldConfig { public double hoglinMaxHealth = 40.0D; public int hoglinBreedingTicks = 6000; public boolean hoglinTakeDamageFromWater = false; @@ -1531,7 +1531,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void hoglinSettings() { hoglinRidable = getBoolean("mobs.hoglin.ridable", hoglinRidable); hoglinRidableInWater = getBoolean("mobs.hoglin.ridable-in-water", hoglinRidableInWater); -@@ -1626,6 +1673,7 @@ public class PurpurWorldConfig { +@@ -1591,6 +1638,7 @@ public class PurpurWorldConfig { hoglinMaxHealth = getDouble("mobs.hoglin.attributes.max_health", hoglinMaxHealth); hoglinBreedingTicks = getInt("mobs.hoglin.breeding-delay-ticks", hoglinBreedingTicks); hoglinTakeDamageFromWater = getBoolean("mobs.hoglin.takes-damage-from-water", hoglinTakeDamageFromWater); @@ -1539,7 +1539,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean horseRidableInWater = false; -@@ -1638,6 +1686,7 @@ public class PurpurWorldConfig { +@@ -1603,6 +1651,7 @@ public class PurpurWorldConfig { public int horseBreedingTicks = 6000; public boolean horseTakeDamageFromWater = false; public boolean horseStandWithRider = true; @@ -1547,7 +1547,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void horseSettings() { horseRidableInWater = getBoolean("mobs.horse.ridable-in-water", horseRidableInWater); if (PurpurConfig.version < 10) { -@@ -1656,6 +1705,7 @@ public class PurpurWorldConfig { +@@ -1621,6 +1670,7 @@ public class PurpurWorldConfig { horseBreedingTicks = getInt("mobs.horse.breeding-delay-ticks", horseBreedingTicks); horseTakeDamageFromWater = getBoolean("mobs.horse.takes-damage-from-water", horseTakeDamageFromWater); horseStandWithRider = getBoolean("mobs.horse.stand-with-rider", horseStandWithRider); @@ -1555,7 +1555,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean huskRidable = false; -@@ -1667,6 +1717,7 @@ public class PurpurWorldConfig { +@@ -1632,6 +1682,7 @@ public class PurpurWorldConfig { public double huskJockeyChance = 0.05D; public boolean huskJockeyTryExistingChickens = true; public boolean huskTakeDamageFromWater = false; @@ -1563,7 +1563,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void huskSettings() { huskRidable = getBoolean("mobs.husk.ridable", huskRidable); huskRidableInWater = getBoolean("mobs.husk.ridable-in-water", huskRidableInWater); -@@ -1682,6 +1733,7 @@ public class PurpurWorldConfig { +@@ -1647,6 +1698,7 @@ public class PurpurWorldConfig { huskJockeyChance = getDouble("mobs.husk.jockey.chance", huskJockeyChance); huskJockeyTryExistingChickens = getBoolean("mobs.husk.jockey.try-existing-chickens", huskJockeyTryExistingChickens); huskTakeDamageFromWater = getBoolean("mobs.husk.takes-damage-from-water", huskTakeDamageFromWater); @@ -1571,7 +1571,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean illusionerRidable = false; -@@ -1691,6 +1743,7 @@ public class PurpurWorldConfig { +@@ -1656,6 +1708,7 @@ public class PurpurWorldConfig { public double illusionerFollowRange = 18.0D; public double illusionerMaxHealth = 32.0D; public boolean illusionerTakeDamageFromWater = false; @@ -1579,7 +1579,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void illusionerSettings() { illusionerRidable = getBoolean("mobs.illusioner.ridable", illusionerRidable); illusionerRidableInWater = getBoolean("mobs.illusioner.ridable-in-water", illusionerRidableInWater); -@@ -1708,6 +1761,7 @@ public class PurpurWorldConfig { +@@ -1673,6 +1726,7 @@ public class PurpurWorldConfig { } illusionerMaxHealth = getDouble("mobs.illusioner.attributes.max_health", illusionerMaxHealth); illusionerTakeDamageFromWater = getBoolean("mobs.illusioner.takes-damage-from-water", illusionerTakeDamageFromWater); @@ -1587,7 +1587,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean ironGolemRidable = false; -@@ -1718,6 +1772,7 @@ public class PurpurWorldConfig { +@@ -1683,6 +1737,7 @@ public class PurpurWorldConfig { public boolean ironGolemTakeDamageFromWater = false; public boolean ironGolemPoppyCalm = false; public boolean ironGolemHealCalm = false; @@ -1595,7 +1595,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void ironGolemSettings() { ironGolemRidable = getBoolean("mobs.iron_golem.ridable", ironGolemRidable); ironGolemRidableInWater = getBoolean("mobs.iron_golem.ridable-in-water", ironGolemRidableInWater); -@@ -1732,6 +1787,7 @@ public class PurpurWorldConfig { +@@ -1697,6 +1752,7 @@ public class PurpurWorldConfig { ironGolemTakeDamageFromWater = getBoolean("mobs.iron_golem.takes-damage-from-water", ironGolemTakeDamageFromWater); ironGolemPoppyCalm = getBoolean("mobs.iron_golem.poppy-calms-anger", ironGolemPoppyCalm); ironGolemHealCalm = getBoolean("mobs.iron_golem.healing-calms-anger", ironGolemHealCalm); @@ -1603,7 +1603,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean llamaRidable = false; -@@ -1746,6 +1802,7 @@ public class PurpurWorldConfig { +@@ -1711,6 +1767,7 @@ public class PurpurWorldConfig { public int llamaBreedingTicks = 6000; public boolean llamaTakeDamageFromWater = false; public boolean llamaJoinCaravans = true; @@ -1611,7 +1611,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void llamaSettings() { llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable); llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater); -@@ -1766,6 +1823,7 @@ public class PurpurWorldConfig { +@@ -1731,6 +1788,7 @@ public class PurpurWorldConfig { llamaBreedingTicks = getInt("mobs.llama.breeding-delay-ticks", llamaBreedingTicks); llamaTakeDamageFromWater = getBoolean("mobs.llama.takes-damage-from-water", llamaTakeDamageFromWater); llamaJoinCaravans = getBoolean("mobs.llama.join-caravans", llamaJoinCaravans); @@ -1619,7 +1619,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean magmaCubeRidable = false; -@@ -1776,6 +1834,7 @@ public class PurpurWorldConfig { +@@ -1741,6 +1799,7 @@ public class PurpurWorldConfig { public Map magmaCubeMaxHealthCache = new HashMap<>(); public Map magmaCubeAttackDamageCache = new HashMap<>(); public boolean magmaCubeTakeDamageFromWater = false; @@ -1627,7 +1627,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void magmaCubeSettings() { magmaCubeRidable = getBoolean("mobs.magma_cube.ridable", magmaCubeRidable); magmaCubeRidableInWater = getBoolean("mobs.magma_cube.ridable-in-water", magmaCubeRidableInWater); -@@ -1790,6 +1849,7 @@ public class PurpurWorldConfig { +@@ -1755,6 +1814,7 @@ public class PurpurWorldConfig { magmaCubeMaxHealthCache.clear(); magmaCubeAttackDamageCache.clear(); magmaCubeTakeDamageFromWater = getBoolean("mobs.magma_cube.takes-damage-from-water", magmaCubeTakeDamageFromWater); @@ -1635,7 +1635,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean mooshroomRidable = false; -@@ -1798,6 +1858,7 @@ public class PurpurWorldConfig { +@@ -1763,6 +1823,7 @@ public class PurpurWorldConfig { public double mooshroomMaxHealth = 10.0D; public int mooshroomBreedingTicks = 6000; public boolean mooshroomTakeDamageFromWater = false; @@ -1643,7 +1643,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void mooshroomSettings() { mooshroomRidable = getBoolean("mobs.mooshroom.ridable", mooshroomRidable); mooshroomRidableInWater = getBoolean("mobs.mooshroom.ridable-in-water", mooshroomRidableInWater); -@@ -1810,6 +1871,7 @@ public class PurpurWorldConfig { +@@ -1775,6 +1836,7 @@ public class PurpurWorldConfig { mooshroomMaxHealth = getDouble("mobs.mooshroom.attributes.max_health", mooshroomMaxHealth); mooshroomBreedingTicks = getInt("mobs.mooshroom.breeding-delay-ticks", mooshroomBreedingTicks); mooshroomTakeDamageFromWater = getBoolean("mobs.mooshroom.takes-damage-from-water", mooshroomTakeDamageFromWater); @@ -1651,7 +1651,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean muleRidableInWater = false; -@@ -1821,6 +1883,7 @@ public class PurpurWorldConfig { +@@ -1786,6 +1848,7 @@ public class PurpurWorldConfig { public double muleMovementSpeedMax = 0.175D; public int muleBreedingTicks = 6000; public boolean muleTakeDamageFromWater = false; @@ -1659,7 +1659,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void muleSettings() { muleRidableInWater = getBoolean("mobs.mule.ridable-in-water", muleRidableInWater); if (PurpurConfig.version < 10) { -@@ -1838,6 +1901,7 @@ public class PurpurWorldConfig { +@@ -1803,6 +1866,7 @@ public class PurpurWorldConfig { muleMovementSpeedMax = getDouble("mobs.mule.attributes.movement_speed.max", muleMovementSpeedMax); muleBreedingTicks = getInt("mobs.mule.breeding-delay-ticks", muleBreedingTicks); muleTakeDamageFromWater = getBoolean("mobs.mule.takes-damage-from-water", muleTakeDamageFromWater); @@ -1667,7 +1667,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean ocelotRidable = false; -@@ -1846,6 +1910,7 @@ public class PurpurWorldConfig { +@@ -1811,6 +1875,7 @@ public class PurpurWorldConfig { public double ocelotMaxHealth = 10.0D; public int ocelotBreedingTicks = 6000; public boolean ocelotTakeDamageFromWater = false; @@ -1675,7 +1675,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void ocelotSettings() { ocelotRidable = getBoolean("mobs.ocelot.ridable", ocelotRidable); ocelotRidableInWater = getBoolean("mobs.ocelot.ridable-in-water", ocelotRidableInWater); -@@ -1858,6 +1923,7 @@ public class PurpurWorldConfig { +@@ -1823,6 +1888,7 @@ public class PurpurWorldConfig { ocelotMaxHealth = getDouble("mobs.ocelot.attributes.max_health", ocelotMaxHealth); ocelotBreedingTicks = getInt("mobs.ocelot.breeding-delay-ticks", ocelotBreedingTicks); ocelotTakeDamageFromWater = getBoolean("mobs.ocelot.takes-damage-from-water", ocelotTakeDamageFromWater); @@ -1683,7 +1683,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean pandaRidable = false; -@@ -1866,6 +1932,7 @@ public class PurpurWorldConfig { +@@ -1831,6 +1897,7 @@ public class PurpurWorldConfig { public double pandaMaxHealth = 20.0D; public int pandaBreedingTicks = 6000; public boolean pandaTakeDamageFromWater = false; @@ -1691,7 +1691,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void pandaSettings() { pandaRidable = getBoolean("mobs.panda.ridable", pandaRidable); pandaRidableInWater = getBoolean("mobs.panda.ridable-in-water", pandaRidableInWater); -@@ -1878,6 +1945,7 @@ public class PurpurWorldConfig { +@@ -1843,6 +1910,7 @@ public class PurpurWorldConfig { pandaMaxHealth = getDouble("mobs.panda.attributes.max_health", pandaMaxHealth); pandaBreedingTicks = getInt("mobs.panda.breeding-delay-ticks", pandaBreedingTicks); pandaTakeDamageFromWater = getBoolean("mobs.panda.takes-damage-from-water", pandaTakeDamageFromWater); @@ -1699,7 +1699,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean parrotRidable = false; -@@ -1887,6 +1955,7 @@ public class PurpurWorldConfig { +@@ -1852,6 +1920,7 @@ public class PurpurWorldConfig { public double parrotMaxHealth = 6.0D; public boolean parrotTakeDamageFromWater = false; public boolean parrotBreedable = false; @@ -1707,7 +1707,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void parrotSettings() { parrotRidable = getBoolean("mobs.parrot.ridable", parrotRidable); parrotRidableInWater = getBoolean("mobs.parrot.ridable-in-water", parrotRidableInWater); -@@ -1900,6 +1969,7 @@ public class PurpurWorldConfig { +@@ -1865,6 +1934,7 @@ public class PurpurWorldConfig { parrotMaxHealth = getDouble("mobs.parrot.attributes.max_health", parrotMaxHealth); parrotTakeDamageFromWater = getBoolean("mobs.parrot.takes-damage-from-water", parrotTakeDamageFromWater); parrotBreedable = getBoolean("mobs.parrot.can-breed", parrotBreedable); @@ -1715,7 +1715,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean phantomRidable = false; -@@ -1933,6 +2003,7 @@ public class PurpurWorldConfig { +@@ -1898,6 +1968,7 @@ public class PurpurWorldConfig { public boolean phantomBurnInDaylight = true; public boolean phantomFlamesOnSwoop = false; public boolean phantomTakeDamageFromWater = false; @@ -1723,7 +1723,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -1974,6 +2045,7 @@ public class PurpurWorldConfig { +@@ -1939,6 +2010,7 @@ public class PurpurWorldConfig { phantomIgnorePlayersWithTorch = getBoolean("mobs.phantom.ignore-players-with-torch", phantomIgnorePlayersWithTorch); phantomFlamesOnSwoop = getBoolean("mobs.phantom.flames-on-swoop", phantomFlamesOnSwoop); phantomTakeDamageFromWater = getBoolean("mobs.phantom.takes-damage-from-water", phantomTakeDamageFromWater); @@ -1731,7 +1731,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean pigRidable = false; -@@ -1983,6 +2055,7 @@ public class PurpurWorldConfig { +@@ -1948,6 +2020,7 @@ public class PurpurWorldConfig { public boolean pigGiveSaddleBack = false; public int pigBreedingTicks = 6000; public boolean pigTakeDamageFromWater = false; @@ -1739,7 +1739,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void pigSettings() { pigRidable = getBoolean("mobs.pig.ridable", pigRidable); pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater); -@@ -1996,6 +2069,7 @@ public class PurpurWorldConfig { +@@ -1961,6 +2034,7 @@ public class PurpurWorldConfig { pigGiveSaddleBack = getBoolean("mobs.pig.give-saddle-back", pigGiveSaddleBack); pigBreedingTicks = getInt("mobs.pig.breeding-delay-ticks", pigBreedingTicks); pigTakeDamageFromWater = getBoolean("mobs.pig.takes-damage-from-water", pigTakeDamageFromWater); @@ -1747,7 +1747,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean piglinRidable = false; -@@ -2005,6 +2079,7 @@ public class PurpurWorldConfig { +@@ -1970,6 +2044,7 @@ public class PurpurWorldConfig { public boolean piglinBypassMobGriefing = false; public boolean piglinTakeDamageFromWater = false; public int piglinPortalSpawnModifier = 2000; @@ -1755,7 +1755,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -2018,6 +2093,7 @@ public class PurpurWorldConfig { +@@ -1983,6 +2058,7 @@ public class PurpurWorldConfig { piglinBypassMobGriefing = getBoolean("mobs.piglin.bypass-mob-griefing", piglinBypassMobGriefing); piglinTakeDamageFromWater = getBoolean("mobs.piglin.takes-damage-from-water", piglinTakeDamageFromWater); piglinPortalSpawnModifier = getInt("mobs.piglin.portal-spawn-modifier", piglinPortalSpawnModifier); @@ -1763,7 +1763,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean piglinBruteRidable = false; -@@ -2025,6 +2101,7 @@ public class PurpurWorldConfig { +@@ -1990,6 +2066,7 @@ public class PurpurWorldConfig { public boolean piglinBruteControllable = true; public double piglinBruteMaxHealth = 50.0D; public boolean piglinBruteTakeDamageFromWater = false; @@ -1771,7 +1771,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void piglinBruteSettings() { piglinBruteRidable = getBoolean("mobs.piglin_brute.ridable", piglinBruteRidable); piglinBruteRidableInWater = getBoolean("mobs.piglin_brute.ridable-in-water", piglinBruteRidableInWater); -@@ -2036,6 +2113,7 @@ public class PurpurWorldConfig { +@@ -2001,6 +2078,7 @@ public class PurpurWorldConfig { } piglinBruteMaxHealth = getDouble("mobs.piglin_brute.attributes.max_health", piglinBruteMaxHealth); piglinBruteTakeDamageFromWater = getBoolean("mobs.piglin_brute.takes-damage-from-water", piglinBruteTakeDamageFromWater); @@ -1779,7 +1779,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean pillagerRidable = false; -@@ -2044,6 +2122,7 @@ public class PurpurWorldConfig { +@@ -2009,6 +2087,7 @@ public class PurpurWorldConfig { public double pillagerMaxHealth = 24.0D; public boolean pillagerBypassMobGriefing = false; public boolean pillagerTakeDamageFromWater = false; @@ -1787,7 +1787,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void pillagerSettings() { pillagerRidable = getBoolean("mobs.pillager.ridable", pillagerRidable); pillagerRidableInWater = getBoolean("mobs.pillager.ridable-in-water", pillagerRidableInWater); -@@ -2056,6 +2135,7 @@ public class PurpurWorldConfig { +@@ -2021,6 +2100,7 @@ public class PurpurWorldConfig { pillagerMaxHealth = getDouble("mobs.pillager.attributes.max_health", pillagerMaxHealth); pillagerBypassMobGriefing = getBoolean("mobs.pillager.bypass-mob-griefing", pillagerBypassMobGriefing); pillagerTakeDamageFromWater = getBoolean("mobs.pillager.takes-damage-from-water", pillagerTakeDamageFromWater); @@ -1795,7 +1795,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean polarBearRidable = false; -@@ -2066,6 +2146,7 @@ public class PurpurWorldConfig { +@@ -2031,6 +2111,7 @@ public class PurpurWorldConfig { public Item polarBearBreedableItem = null; public int polarBearBreedingTicks = 6000; public boolean polarBearTakeDamageFromWater = false; @@ -1803,7 +1803,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void polarBearSettings() { polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable); polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater); -@@ -2081,12 +2162,14 @@ public class PurpurWorldConfig { +@@ -2046,12 +2127,14 @@ public class PurpurWorldConfig { if (item != Items.AIR) polarBearBreedableItem = item; polarBearBreedingTicks = getInt("mobs.polar_bear.breeding-delay-ticks", polarBearBreedingTicks); polarBearTakeDamageFromWater = getBoolean("mobs.polar_bear.takes-damage-from-water", polarBearTakeDamageFromWater); @@ -1818,7 +1818,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void pufferfishSettings() { pufferfishRidable = getBoolean("mobs.pufferfish.ridable", pufferfishRidable); pufferfishControllable = getBoolean("mobs.pufferfish.controllable", pufferfishControllable); -@@ -2097,6 +2180,7 @@ public class PurpurWorldConfig { +@@ -2062,6 +2145,7 @@ public class PurpurWorldConfig { } pufferfishMaxHealth = getDouble("mobs.pufferfish.attributes.max_health", pufferfishMaxHealth); pufferfishTakeDamageFromWater = getBoolean("mobs.pufferfish.takes-damage-from-water", pufferfishTakeDamageFromWater); @@ -1826,7 +1826,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean rabbitRidable = false; -@@ -2108,6 +2192,7 @@ public class PurpurWorldConfig { +@@ -2073,6 +2157,7 @@ public class PurpurWorldConfig { public int rabbitBreedingTicks = 6000; public boolean rabbitBypassMobGriefing = false; public boolean rabbitTakeDamageFromWater = false; @@ -1834,7 +1834,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void rabbitSettings() { rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable); rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater); -@@ -2123,6 +2208,7 @@ public class PurpurWorldConfig { +@@ -2088,6 +2173,7 @@ public class PurpurWorldConfig { rabbitBreedingTicks = getInt("mobs.rabbit.breeding-delay-ticks", rabbitBreedingTicks); rabbitBypassMobGriefing = getBoolean("mobs.rabbit.bypass-mob-griefing", rabbitBypassMobGriefing); rabbitTakeDamageFromWater = getBoolean("mobs.rabbit.takes-damage-from-water", rabbitTakeDamageFromWater); @@ -1842,7 +1842,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean ravagerRidable = false; -@@ -2132,6 +2218,7 @@ public class PurpurWorldConfig { +@@ -2097,6 +2183,7 @@ public class PurpurWorldConfig { public boolean ravagerBypassMobGriefing = false; public boolean ravagerTakeDamageFromWater = false; public List ravagerGriefableBlocks = new ArrayList<>(); @@ -1850,7 +1850,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void ravagerSettings() { ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable); ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater); -@@ -2161,12 +2248,14 @@ public class PurpurWorldConfig { +@@ -2126,12 +2213,14 @@ public class PurpurWorldConfig { ravagerGriefableBlocks.add(block); } }); @@ -1865,7 +1865,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void salmonSettings() { salmonRidable = getBoolean("mobs.salmon.ridable", salmonRidable); salmonControllable = getBoolean("mobs.salmon.controllable", salmonControllable); -@@ -2177,6 +2266,7 @@ public class PurpurWorldConfig { +@@ -2142,6 +2231,7 @@ public class PurpurWorldConfig { } salmonMaxHealth = getDouble("mobs.salmon.attributes.max_health", salmonMaxHealth); salmonTakeDamageFromWater = getBoolean("mobs.salmon.takes-damage-from-water", salmonTakeDamageFromWater); @@ -1873,7 +1873,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean sheepRidable = false; -@@ -2186,6 +2276,7 @@ public class PurpurWorldConfig { +@@ -2151,6 +2241,7 @@ public class PurpurWorldConfig { public int sheepBreedingTicks = 6000; public boolean sheepBypassMobGriefing = false; public boolean sheepTakeDamageFromWater = false; @@ -1881,7 +1881,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void sheepSettings() { sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable); sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater); -@@ -2199,6 +2290,7 @@ public class PurpurWorldConfig { +@@ -2164,6 +2255,7 @@ public class PurpurWorldConfig { sheepBreedingTicks = getInt("mobs.sheep.breeding-delay-ticks", sheepBreedingTicks); sheepBypassMobGriefing = getBoolean("mobs.sheep.bypass-mob-griefing", sheepBypassMobGriefing); sheepTakeDamageFromWater = getBoolean("mobs.sheep.takes-damage-from-water", sheepTakeDamageFromWater); @@ -1889,7 +1889,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean shulkerRidable = false; -@@ -2212,6 +2304,7 @@ public class PurpurWorldConfig { +@@ -2177,6 +2269,7 @@ public class PurpurWorldConfig { public String shulkerSpawnFromBulletNearbyEquation = "(nearby - 1) / 5.0"; public boolean shulkerSpawnFromBulletRandomColor = false; public boolean shulkerChangeColorWithDye = false; @@ -1897,7 +1897,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void shulkerSettings() { shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable); shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater); -@@ -2229,6 +2322,7 @@ public class PurpurWorldConfig { +@@ -2194,6 +2287,7 @@ public class PurpurWorldConfig { shulkerSpawnFromBulletNearbyEquation = getString("mobs.shulker.spawn-from-bullet.nearby-equation", shulkerSpawnFromBulletNearbyEquation); shulkerSpawnFromBulletRandomColor = getBoolean("mobs.shulker.spawn-from-bullet.random-color", shulkerSpawnFromBulletRandomColor); shulkerChangeColorWithDye = getBoolean("mobs.shulker.change-color-with-dye", shulkerChangeColorWithDye); @@ -1905,7 +1905,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean silverfishRidable = false; -@@ -2237,6 +2331,7 @@ public class PurpurWorldConfig { +@@ -2202,6 +2296,7 @@ public class PurpurWorldConfig { public double silverfishMaxHealth = 8.0D; public boolean silverfishBypassMobGriefing = false; public boolean silverfishTakeDamageFromWater = false; @@ -1913,7 +1913,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void silverfishSettings() { silverfishRidable = getBoolean("mobs.silverfish.ridable", silverfishRidable); silverfishRidableInWater = getBoolean("mobs.silverfish.ridable-in-water", silverfishRidableInWater); -@@ -2249,6 +2344,7 @@ public class PurpurWorldConfig { +@@ -2214,6 +2309,7 @@ public class PurpurWorldConfig { silverfishMaxHealth = getDouble("mobs.silverfish.attributes.max_health", silverfishMaxHealth); silverfishBypassMobGriefing = getBoolean("mobs.silverfish.bypass-mob-griefing", silverfishBypassMobGriefing); silverfishTakeDamageFromWater = getBoolean("mobs.silverfish.takes-damage-from-water", silverfishTakeDamageFromWater); @@ -1921,7 +1921,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean skeletonRidable = false; -@@ -2256,6 +2352,7 @@ public class PurpurWorldConfig { +@@ -2221,6 +2317,7 @@ public class PurpurWorldConfig { public boolean skeletonControllable = true; public double skeletonMaxHealth = 20.0D; public boolean skeletonTakeDamageFromWater = false; @@ -1929,7 +1929,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -2267,6 +2364,7 @@ public class PurpurWorldConfig { +@@ -2232,6 +2329,7 @@ public class PurpurWorldConfig { } skeletonMaxHealth = getDouble("mobs.skeleton.attributes.max_health", skeletonMaxHealth); skeletonTakeDamageFromWater = getBoolean("mobs.skeleton.takes-damage-from-water", skeletonTakeDamageFromWater); @@ -1937,7 +1937,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean skeletonHorseRidableInWater = true; -@@ -2278,6 +2376,7 @@ public class PurpurWorldConfig { +@@ -2243,6 +2341,7 @@ public class PurpurWorldConfig { public double skeletonHorseMovementSpeedMin = 0.2D; public double skeletonHorseMovementSpeedMax = 0.2D; public boolean skeletonHorseTakeDamageFromWater = false; @@ -1945,7 +1945,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void skeletonHorseSettings() { skeletonHorseRidableInWater = getBoolean("mobs.skeleton_horse.ridable-in-water", skeletonHorseRidableInWater); skeletonHorseCanSwim = getBoolean("mobs.skeleton_horse.can-swim", skeletonHorseCanSwim); -@@ -2294,6 +2393,7 @@ public class PurpurWorldConfig { +@@ -2259,6 +2358,7 @@ public class PurpurWorldConfig { skeletonHorseMovementSpeedMin = getDouble("mobs.skeleton_horse.attributes.movement_speed.min", skeletonHorseMovementSpeedMin); skeletonHorseMovementSpeedMax = getDouble("mobs.skeleton_horse.attributes.movement_speed.max", skeletonHorseMovementSpeedMax); skeletonHorseTakeDamageFromWater = getBoolean("mobs.skeleton_horse.takes-damage-from-water", skeletonHorseTakeDamageFromWater); @@ -1953,7 +1953,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean slimeRidable = false; -@@ -2304,6 +2404,7 @@ public class PurpurWorldConfig { +@@ -2269,6 +2369,7 @@ public class PurpurWorldConfig { public Map slimeMaxHealthCache = new HashMap<>(); public Map slimeAttackDamageCache = new HashMap<>(); public boolean slimeTakeDamageFromWater = false; @@ -1961,7 +1961,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void slimeSettings() { slimeRidable = getBoolean("mobs.slime.ridable", slimeRidable); slimeRidableInWater = getBoolean("mobs.slime.ridable-in-water", slimeRidableInWater); -@@ -2318,6 +2419,7 @@ public class PurpurWorldConfig { +@@ -2283,6 +2384,7 @@ public class PurpurWorldConfig { slimeMaxHealthCache.clear(); slimeAttackDamageCache.clear(); slimeTakeDamageFromWater = getBoolean("mobs.slime.takes-damage-from-water", slimeTakeDamageFromWater); @@ -1969,7 +1969,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean snowGolemRidable = false; -@@ -2333,6 +2435,7 @@ public class PurpurWorldConfig { +@@ -2298,6 +2400,7 @@ public class PurpurWorldConfig { public double snowGolemAttackDistance = 1.25D; public boolean snowGolemBypassMobGriefing = false; public boolean snowGolemTakeDamageFromWater = true; @@ -1977,7 +1977,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -2352,6 +2455,7 @@ public class PurpurWorldConfig { +@@ -2317,6 +2420,7 @@ public class PurpurWorldConfig { snowGolemAttackDistance = getDouble("mobs.snow_golem.attack-distance", snowGolemAttackDistance); snowGolemBypassMobGriefing = getBoolean("mobs.snow_golem.bypass-mob-griefing", snowGolemBypassMobGriefing); snowGolemTakeDamageFromWater = getBoolean("mobs.snow_golem.takes-damage-from-water", snowGolemTakeDamageFromWater); @@ -1985,7 +1985,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean squidRidable = false; -@@ -2361,6 +2465,7 @@ public class PurpurWorldConfig { +@@ -2326,6 +2430,7 @@ public class PurpurWorldConfig { public double squidOffsetWaterCheck = 0.0D; public boolean squidsCanFly = false; public boolean squidTakeDamageFromWater = false; @@ -1993,7 +1993,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); squidControllable = getBoolean("mobs.squid.controllable", squidControllable); -@@ -2374,6 +2479,7 @@ public class PurpurWorldConfig { +@@ -2339,6 +2444,7 @@ public class PurpurWorldConfig { squidOffsetWaterCheck = getDouble("mobs.squid.water-offset-check", squidOffsetWaterCheck); squidsCanFly = getBoolean("mobs.squid.can-fly", squidsCanFly); squidTakeDamageFromWater = getBoolean("mobs.squid.takes-damage-from-water", squidTakeDamageFromWater); @@ -2001,7 +2001,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean spiderRidable = false; -@@ -2381,6 +2487,7 @@ public class PurpurWorldConfig { +@@ -2346,6 +2452,7 @@ public class PurpurWorldConfig { public boolean spiderControllable = true; public double spiderMaxHealth = 16.0D; public boolean spiderTakeDamageFromWater = false; @@ -2009,7 +2009,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void spiderSettings() { spiderRidable = getBoolean("mobs.spider.ridable", spiderRidable); spiderRidableInWater = getBoolean("mobs.spider.ridable-in-water", spiderRidableInWater); -@@ -2392,6 +2499,7 @@ public class PurpurWorldConfig { +@@ -2357,6 +2464,7 @@ public class PurpurWorldConfig { } spiderMaxHealth = getDouble("mobs.spider.attributes.max_health", spiderMaxHealth); spiderTakeDamageFromWater = getBoolean("mobs.spider.takes-damage-from-water", spiderTakeDamageFromWater); @@ -2017,7 +2017,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean strayRidable = false; -@@ -2399,6 +2507,7 @@ public class PurpurWorldConfig { +@@ -2364,6 +2472,7 @@ public class PurpurWorldConfig { public boolean strayControllable = true; public double strayMaxHealth = 20.0D; public boolean strayTakeDamageFromWater = false; @@ -2025,7 +2025,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void straySettings() { strayRidable = getBoolean("mobs.stray.ridable", strayRidable); strayRidableInWater = getBoolean("mobs.stray.ridable-in-water", strayRidableInWater); -@@ -2410,6 +2519,7 @@ public class PurpurWorldConfig { +@@ -2375,6 +2484,7 @@ public class PurpurWorldConfig { } strayMaxHealth = getDouble("mobs.stray.attributes.max_health", strayMaxHealth); strayTakeDamageFromWater = getBoolean("mobs.stray.takes-damage-from-water", strayTakeDamageFromWater); @@ -2033,7 +2033,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean striderRidable = false; -@@ -2419,6 +2529,7 @@ public class PurpurWorldConfig { +@@ -2384,6 +2494,7 @@ public class PurpurWorldConfig { public int striderBreedingTicks = 6000; public boolean striderGiveSaddleBack = false; public boolean striderTakeDamageFromWater = true; @@ -2041,7 +2041,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -2432,6 +2543,7 @@ public class PurpurWorldConfig { +@@ -2397,6 +2508,7 @@ public class PurpurWorldConfig { striderBreedingTicks = getInt("mobs.strider.breeding-delay-ticks", striderBreedingTicks); striderGiveSaddleBack = getBoolean("mobs.strider.give-saddle-back", striderGiveSaddleBack); striderTakeDamageFromWater = getBoolean("mobs.strider.takes-damage-from-water", striderTakeDamageFromWater); @@ -2049,7 +2049,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean tadpoleRidable = false; -@@ -2454,6 +2566,7 @@ public class PurpurWorldConfig { +@@ -2419,6 +2531,7 @@ public class PurpurWorldConfig { public double traderLlamaMovementSpeedMax = 0.175D; public int traderLlamaBreedingTicks = 6000; public boolean traderLlamaTakeDamageFromWater = false; @@ -2057,7 +2057,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void traderLlamaSettings() { traderLlamaRidable = getBoolean("mobs.trader_llama.ridable", traderLlamaRidable); traderLlamaRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", traderLlamaRidableInWater); -@@ -2473,12 +2586,14 @@ public class PurpurWorldConfig { +@@ -2438,12 +2551,14 @@ public class PurpurWorldConfig { traderLlamaMovementSpeedMax = getDouble("mobs.trader_llama.attributes.movement_speed.max", traderLlamaMovementSpeedMax); traderLlamaBreedingTicks = getInt("mobs.trader_llama.breeding-delay-ticks", traderLlamaBreedingTicks); traderLlamaTakeDamageFromWater = getBoolean("mobs.trader_llama.takes-damage-from-water", traderLlamaTakeDamageFromWater); @@ -2072,7 +2072,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void tropicalFishSettings() { tropicalFishRidable = getBoolean("mobs.tropical_fish.ridable", tropicalFishRidable); tropicalFishControllable = getBoolean("mobs.tropical_fish.controllable", tropicalFishControllable); -@@ -2489,6 +2604,7 @@ public class PurpurWorldConfig { +@@ -2454,6 +2569,7 @@ public class PurpurWorldConfig { } tropicalFishMaxHealth = getDouble("mobs.tropical_fish.attributes.max_health", tropicalFishMaxHealth); tropicalFishTakeDamageFromWater = getBoolean("mobs.tropical_fish.takes-damage-from-water", tropicalFishTakeDamageFromWater); @@ -2080,7 +2080,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean turtleRidable = false; -@@ -2497,6 +2613,7 @@ public class PurpurWorldConfig { +@@ -2462,6 +2578,7 @@ public class PurpurWorldConfig { public double turtleMaxHealth = 30.0D; public int turtleBreedingTicks = 6000; public boolean turtleTakeDamageFromWater = false; @@ -2088,7 +2088,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void turtleSettings() { turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable); turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater); -@@ -2509,6 +2626,7 @@ public class PurpurWorldConfig { +@@ -2474,6 +2591,7 @@ public class PurpurWorldConfig { turtleMaxHealth = getDouble("mobs.turtle.attributes.max_health", turtleMaxHealth); turtleBreedingTicks = getInt("mobs.turtle.breeding-delay-ticks", turtleBreedingTicks); turtleTakeDamageFromWater = getBoolean("mobs.turtle.takes-damage-from-water", turtleTakeDamageFromWater); @@ -2096,7 +2096,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean vexRidable = false; -@@ -2517,6 +2635,7 @@ public class PurpurWorldConfig { +@@ -2482,6 +2600,7 @@ public class PurpurWorldConfig { public double vexMaxY = 320D; public double vexMaxHealth = 14.0D; public boolean vexTakeDamageFromWater = false; @@ -2104,7 +2104,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void vexSettings() { vexRidable = getBoolean("mobs.vex.ridable", vexRidable); vexRidableInWater = getBoolean("mobs.vex.ridable-in-water", vexRidableInWater); -@@ -2529,6 +2648,7 @@ public class PurpurWorldConfig { +@@ -2494,6 +2613,7 @@ public class PurpurWorldConfig { } vexMaxHealth = getDouble("mobs.vex.attributes.max_health", vexMaxHealth); vexTakeDamageFromWater = getBoolean("mobs.vex.takes-damage-from-water", vexTakeDamageFromWater); @@ -2112,7 +2112,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean villagerRidable = false; -@@ -2546,6 +2666,7 @@ public class PurpurWorldConfig { +@@ -2511,6 +2631,7 @@ public class PurpurWorldConfig { public boolean villagerBypassMobGriefing = false; public boolean villagerTakeDamageFromWater = false; public boolean villagerAllowTrading = true; @@ -2120,7 +2120,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2567,6 +2688,7 @@ public class PurpurWorldConfig { +@@ -2532,6 +2653,7 @@ public class PurpurWorldConfig { villagerBypassMobGriefing = getBoolean("mobs.villager.bypass-mob-griefing", villagerBypassMobGriefing); villagerTakeDamageFromWater = getBoolean("mobs.villager.takes-damage-from-water", villagerTakeDamageFromWater); villagerAllowTrading = getBoolean("mobs.villager.allow-trading", villagerAllowTrading); @@ -2128,7 +2128,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean vindicatorRidable = false; -@@ -2575,6 +2697,7 @@ public class PurpurWorldConfig { +@@ -2540,6 +2662,7 @@ public class PurpurWorldConfig { public double vindicatorMaxHealth = 24.0D; public double vindicatorJohnnySpawnChance = 0D; public boolean vindicatorTakeDamageFromWater = false; @@ -2136,7 +2136,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void vindicatorSettings() { vindicatorRidable = getBoolean("mobs.vindicator.ridable", vindicatorRidable); vindicatorRidableInWater = getBoolean("mobs.vindicator.ridable-in-water", vindicatorRidableInWater); -@@ -2587,6 +2710,7 @@ public class PurpurWorldConfig { +@@ -2552,6 +2675,7 @@ public class PurpurWorldConfig { vindicatorMaxHealth = getDouble("mobs.vindicator.attributes.max_health", vindicatorMaxHealth); vindicatorJohnnySpawnChance = getDouble("mobs.vindicator.johnny.spawn-chance", vindicatorJohnnySpawnChance); vindicatorTakeDamageFromWater = getBoolean("mobs.vindicator.takes-damage-from-water", vindicatorTakeDamageFromWater); @@ -2144,7 +2144,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean wanderingTraderRidable = false; -@@ -2597,6 +2721,7 @@ public class PurpurWorldConfig { +@@ -2562,6 +2686,7 @@ public class PurpurWorldConfig { public boolean wanderingTraderCanBeLeashed = false; public boolean wanderingTraderTakeDamageFromWater = false; public boolean wanderingTraderAllowTrading = true; @@ -2152,7 +2152,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -2611,6 +2736,7 @@ public class PurpurWorldConfig { +@@ -2576,6 +2701,7 @@ public class PurpurWorldConfig { wanderingTraderCanBeLeashed = getBoolean("mobs.wandering_trader.can-be-leashed", wanderingTraderCanBeLeashed); wanderingTraderTakeDamageFromWater = getBoolean("mobs.wandering_trader.takes-damage-from-water", wanderingTraderTakeDamageFromWater); wanderingTraderAllowTrading = getBoolean("mobs.wandering_trader.allow-trading", wanderingTraderAllowTrading); @@ -2160,7 +2160,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean wardenRidable = false; -@@ -2627,6 +2753,7 @@ public class PurpurWorldConfig { +@@ -2592,6 +2718,7 @@ public class PurpurWorldConfig { public boolean witchControllable = true; public double witchMaxHealth = 26.0D; public boolean witchTakeDamageFromWater = false; @@ -2168,7 +2168,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void witchSettings() { witchRidable = getBoolean("mobs.witch.ridable", witchRidable); witchRidableInWater = getBoolean("mobs.witch.ridable-in-water", witchRidableInWater); -@@ -2638,6 +2765,7 @@ public class PurpurWorldConfig { +@@ -2603,6 +2730,7 @@ public class PurpurWorldConfig { } witchMaxHealth = getDouble("mobs.witch.attributes.max_health", witchMaxHealth); witchTakeDamageFromWater = getBoolean("mobs.witch.takes-damage-from-water", witchTakeDamageFromWater); @@ -2176,7 +2176,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean witherRidable = false; -@@ -2652,6 +2780,7 @@ public class PurpurWorldConfig { +@@ -2617,6 +2745,7 @@ public class PurpurWorldConfig { public boolean witherCanRideVehicles = false; public float witherExplosionRadius = 1.0F; public boolean witherPlaySpawnSound = true; @@ -2184,7 +2184,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -2674,6 +2803,7 @@ public class PurpurWorldConfig { +@@ -2639,6 +2768,7 @@ public class PurpurWorldConfig { witherCanRideVehicles = getBoolean("mobs.wither.can-ride-vehicles", witherCanRideVehicles); witherExplosionRadius = (float) getDouble("mobs.wither.explosion-radius", witherExplosionRadius); witherPlaySpawnSound = getBoolean("mobs.wither.play-spawn-sound", witherPlaySpawnSound); @@ -2192,7 +2192,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean witherSkeletonRidable = false; -@@ -2681,6 +2811,7 @@ public class PurpurWorldConfig { +@@ -2646,6 +2776,7 @@ public class PurpurWorldConfig { public boolean witherSkeletonControllable = true; public double witherSkeletonMaxHealth = 20.0D; public boolean witherSkeletonTakeDamageFromWater = false; @@ -2200,7 +2200,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void witherSkeletonSettings() { witherSkeletonRidable = getBoolean("mobs.wither_skeleton.ridable", witherSkeletonRidable); witherSkeletonRidableInWater = getBoolean("mobs.wither_skeleton.ridable-in-water", witherSkeletonRidableInWater); -@@ -2692,6 +2823,7 @@ public class PurpurWorldConfig { +@@ -2657,6 +2788,7 @@ public class PurpurWorldConfig { } witherSkeletonMaxHealth = getDouble("mobs.wither_skeleton.attributes.max_health", witherSkeletonMaxHealth); witherSkeletonTakeDamageFromWater = getBoolean("mobs.wither_skeleton.takes-damage-from-water", witherSkeletonTakeDamageFromWater); @@ -2208,7 +2208,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean wolfRidable = false; -@@ -2703,6 +2835,7 @@ public class PurpurWorldConfig { +@@ -2668,6 +2800,7 @@ public class PurpurWorldConfig { public double wolfNaturalRabid = 0.0D; public int wolfBreedingTicks = 6000; public boolean wolfTakeDamageFromWater = false; @@ -2216,7 +2216,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void wolfSettings() { wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater); -@@ -2722,6 +2855,7 @@ public class PurpurWorldConfig { +@@ -2687,6 +2820,7 @@ public class PurpurWorldConfig { wolfNaturalRabid = getDouble("mobs.wolf.spawn-rabid-chance", wolfNaturalRabid); wolfBreedingTicks = getInt("mobs.wolf.breeding-delay-ticks", wolfBreedingTicks); wolfTakeDamageFromWater = getBoolean("mobs.wolf.takes-damage-from-water", wolfTakeDamageFromWater); @@ -2224,7 +2224,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean zoglinRidable = false; -@@ -2729,6 +2863,7 @@ public class PurpurWorldConfig { +@@ -2694,6 +2828,7 @@ public class PurpurWorldConfig { public boolean zoglinControllable = true; public double zoglinMaxHealth = 40.0D; public boolean zoglinTakeDamageFromWater = false; @@ -2232,7 +2232,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void zoglinSettings() { zoglinRidable = getBoolean("mobs.zoglin.ridable", zoglinRidable); zoglinRidableInWater = getBoolean("mobs.zoglin.ridable-in-water", zoglinRidableInWater); -@@ -2740,6 +2875,7 @@ public class PurpurWorldConfig { +@@ -2705,6 +2840,7 @@ public class PurpurWorldConfig { } zoglinMaxHealth = getDouble("mobs.zoglin.attributes.max_health", zoglinMaxHealth); zoglinTakeDamageFromWater = getBoolean("mobs.zoglin.takes-damage-from-water", zoglinTakeDamageFromWater); @@ -2240,7 +2240,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean zombieRidable = false; -@@ -2753,6 +2889,7 @@ public class PurpurWorldConfig { +@@ -2718,6 +2854,7 @@ public class PurpurWorldConfig { public boolean zombieAggressiveTowardsVillagerWhenLagging = true; public boolean zombieBypassMobGriefing = false; public boolean zombieTakeDamageFromWater = false; @@ -2248,7 +2248,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -2770,6 +2907,7 @@ public class PurpurWorldConfig { +@@ -2735,6 +2872,7 @@ public class PurpurWorldConfig { zombieAggressiveTowardsVillagerWhenLagging = getBoolean("mobs.zombie.aggressive-towards-villager-when-lagging", zombieAggressiveTowardsVillagerWhenLagging); zombieBypassMobGriefing = getBoolean("mobs.zombie.bypass-mob-griefing", zombieBypassMobGriefing); zombieTakeDamageFromWater = getBoolean("mobs.zombie.takes-damage-from-water", zombieTakeDamageFromWater); @@ -2256,7 +2256,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean zombieHorseRidableInWater = false; -@@ -2782,6 +2920,7 @@ public class PurpurWorldConfig { +@@ -2747,6 +2885,7 @@ public class PurpurWorldConfig { public double zombieHorseMovementSpeedMax = 0.2D; public double zombieHorseSpawnChance = 0.0D; public boolean zombieHorseTakeDamageFromWater = false; @@ -2264,7 +2264,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void zombieHorseSettings() { zombieHorseRidableInWater = getBoolean("mobs.zombie_horse.ridable-in-water", zombieHorseRidableInWater); zombieHorseCanSwim = getBoolean("mobs.zombie_horse.can-swim", zombieHorseCanSwim); -@@ -2799,6 +2938,7 @@ public class PurpurWorldConfig { +@@ -2764,6 +2903,7 @@ public class PurpurWorldConfig { zombieHorseMovementSpeedMax = getDouble("mobs.zombie_horse.attributes.movement_speed.max", zombieHorseMovementSpeedMax); zombieHorseSpawnChance = getDouble("mobs.zombie_horse.spawn-chance", zombieHorseSpawnChance); zombieHorseTakeDamageFromWater = getBoolean("mobs.zombie_horse.takes-damage-from-water", zombieHorseTakeDamageFromWater); @@ -2272,7 +2272,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean zombieVillagerRidable = false; -@@ -2813,6 +2953,7 @@ public class PurpurWorldConfig { +@@ -2778,6 +2918,7 @@ public class PurpurWorldConfig { public int zombieVillagerCuringTimeMin = 3600; public int zombieVillagerCuringTimeMax = 6000; public boolean zombieVillagerCureEnabled = true; @@ -2280,7 +2280,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -2831,6 +2972,7 @@ public class PurpurWorldConfig { +@@ -2796,6 +2937,7 @@ public class PurpurWorldConfig { zombieVillagerCuringTimeMin = getInt("mobs.zombie_villager.curing_time.min", zombieVillagerCuringTimeMin); zombieVillagerCuringTimeMax = getInt("mobs.zombie_villager.curing_time.max", zombieVillagerCuringTimeMax); zombieVillagerCureEnabled = getBoolean("mobs.zombie_villager.cure.enabled", zombieVillagerCureEnabled); @@ -2288,7 +2288,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd } public boolean zombifiedPiglinRidable = false; -@@ -2843,6 +2985,7 @@ public class PurpurWorldConfig { +@@ -2808,6 +2950,7 @@ public class PurpurWorldConfig { public boolean zombifiedPiglinJockeyTryExistingChickens = true; public boolean zombifiedPiglinCountAsPlayerKillWhenAngry = true; public boolean zombifiedPiglinTakeDamageFromWater = false; @@ -2296,7 +2296,7 @@ index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd private void zombifiedPiglinSettings() { zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); -@@ -2859,6 +3002,7 @@ public class PurpurWorldConfig { +@@ -2824,6 +2967,7 @@ public class PurpurWorldConfig { zombifiedPiglinJockeyTryExistingChickens = getBoolean("mobs.zombified_piglin.jockey.try-existing-chickens", zombifiedPiglinJockeyTryExistingChickens); zombifiedPiglinCountAsPlayerKillWhenAngry = getBoolean("mobs.zombified_piglin.count-as-player-kill-when-angry", zombifiedPiglinCountAsPlayerKillWhenAngry); zombifiedPiglinTakeDamageFromWater = getBoolean("mobs.zombified_piglin.takes-damage-from-water", zombifiedPiglinTakeDamageFromWater); diff --git a/patches/server/0243-Option-to-prevent-spiders-from-climbing-world-border.patch b/patches/server/0243-Option-to-prevent-spiders-from-climbing-world-border.patch index d6a7acbcc..b445f5aa4 100644 --- a/patches/server/0243-Option-to-prevent-spiders-from-climbing-world-border.patch +++ b/patches/server/0243-Option-to-prevent-spiders-from-climbing-world-border.patch @@ -39,10 +39,10 @@ index bdd4fc3072f7a5ea504ba35f6a08ae971e83b69f..b9ac8cefefe1f47548166330b7c889df } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index a3ae2516fd7b7828fcd5bf927ee7c6ec17aea8a3..603889d0d34f8c9142832b563a22a213629d01c2 100644 +index 5fe9895e019facfa353f5013ce7c0f2b13bc4c63..e270d7703996444bf21fd0a74c26d759401addcc 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2488,6 +2488,7 @@ public class PurpurWorldConfig { +@@ -2453,6 +2453,7 @@ public class PurpurWorldConfig { public double spiderMaxHealth = 16.0D; public boolean spiderTakeDamageFromWater = false; public boolean spiderAlwaysDropExp = false; @@ -50,7 +50,7 @@ index a3ae2516fd7b7828fcd5bf927ee7c6ec17aea8a3..603889d0d34f8c9142832b563a22a213 private void spiderSettings() { spiderRidable = getBoolean("mobs.spider.ridable", spiderRidable); spiderRidableInWater = getBoolean("mobs.spider.ridable-in-water", spiderRidableInWater); -@@ -2500,6 +2501,7 @@ public class PurpurWorldConfig { +@@ -2465,6 +2466,7 @@ public class PurpurWorldConfig { spiderMaxHealth = getDouble("mobs.spider.attributes.max_health", spiderMaxHealth); spiderTakeDamageFromWater = getBoolean("mobs.spider.takes-damage-from-water", spiderTakeDamageFromWater); spiderAlwaysDropExp = getBoolean("mobs.spider.always-drop-exp", spiderAlwaysDropExp); diff --git a/patches/server/0245-Shearing-jeb-produces-random-color-wool.patch b/patches/server/0245-Shearing-jeb-produces-random-color-wool.patch index 509ffba39..cfe2329d2 100644 --- a/patches/server/0245-Shearing-jeb-produces-random-color-wool.patch +++ b/patches/server/0245-Shearing-jeb-produces-random-color-wool.patch @@ -18,10 +18,10 @@ index 63aeab7204ac954b2908207dc6e743d17aa27f2e..aa6f6e252f6f2933825b97bf1b9679fe if (entityitem != null) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index c8fd074ab4c176c6cc722143879f912edc1880cb..6b40e6abbff31cd7af7c1d484f1043881e097d72 100644 +index baff83502b1a576eea7cdec8571259d1d1a1d60a..99d96064ca64075031b70fb78c770d9f8f3607fb 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2281,6 +2281,7 @@ public class PurpurWorldConfig { +@@ -2246,6 +2246,7 @@ public class PurpurWorldConfig { public boolean sheepBypassMobGriefing = false; public boolean sheepTakeDamageFromWater = false; public boolean sheepAlwaysDropExp = false; @@ -29,7 +29,7 @@ index c8fd074ab4c176c6cc722143879f912edc1880cb..6b40e6abbff31cd7af7c1d484f104388 private void sheepSettings() { sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable); sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater); -@@ -2295,6 +2296,7 @@ public class PurpurWorldConfig { +@@ -2260,6 +2261,7 @@ public class PurpurWorldConfig { sheepBypassMobGriefing = getBoolean("mobs.sheep.bypass-mob-griefing", sheepBypassMobGriefing); sheepTakeDamageFromWater = getBoolean("mobs.sheep.takes-damage-from-water", sheepTakeDamageFromWater); sheepAlwaysDropExp = getBoolean("mobs.sheep.always-drop-exp", sheepAlwaysDropExp); diff --git a/patches/server/0246-Turtle-eggs-random-tick-crack-chance.patch b/patches/server/0246-Turtle-eggs-random-tick-crack-chance.patch index 0ea1c869d..60c066b9b 100644 --- a/patches/server/0246-Turtle-eggs-random-tick-crack-chance.patch +++ b/patches/server/0246-Turtle-eggs-random-tick-crack-chance.patch @@ -32,10 +32,10 @@ index 4907e0acb7d01b7f57b75579e58ce743e3e000bb..5e6df1d6cbaecb986d1b8d382fe673a2 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 6b40e6abbff31cd7af7c1d484f1043881e097d72..95ff1d59f4195c1d3815e36c7640aeca4b7a41e6 100644 +index 99d96064ca64075031b70fb78c770d9f8f3607fb..24ac9a497f690fadf26e4b20560d35ec0e79d886 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -981,11 +981,13 @@ public class PurpurWorldConfig { +@@ -966,11 +966,13 @@ public class PurpurWorldConfig { public boolean turtleEggsBreakFromItems = true; public boolean turtleEggsBreakFromMinecarts = true; public boolean turtleEggsBypassMobGriefing = false; @@ -48,4 +48,4 @@ index 6b40e6abbff31cd7af7c1d484f1043881e097d72..95ff1d59f4195c1d3815e36c7640aeca + turtleEggsRandomTickCrackChance = getInt("blocks.turtle_egg.random-tick-crack-chance", turtleEggsRandomTickCrackChance); } - public int twistingVinesMaxGrowthAge = 25; + public boolean waterInfinite = true; diff --git a/patches/server/0247-Mob-head-visibility-percent.patch b/patches/server/0247-Mob-head-visibility-percent.patch index 23d9bf1ea..fb31b4812 100644 --- a/patches/server/0247-Mob-head-visibility-percent.patch +++ b/patches/server/0247-Mob-head-visibility-percent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Mob head visibility percent diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 8ea3c957c6e6f75b04ea5758d2a8fae48abfc7d8..dff56b5dffaa291edd3bf55c3077c117ed02f626 100644 +index 89a0878d77548d1e0e414903b04d5868c0b8c0b1..f04ce887e314110a136b4bff91d55d2ef35366b4 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1015,9 +1015,17 @@ public abstract class LivingEntity extends Entity { @@ -29,10 +29,10 @@ index 8ea3c957c6e6f75b04ea5758d2a8fae48abfc7d8..dff56b5dffaa291edd3bf55c3077c117 // Purpur start if (entity instanceof LivingEntity entityliving) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 95ff1d59f4195c1d3815e36c7640aeca4b7a41e6..6f081554311a50678efb05e02bb4409cebe2a897 100644 +index 24ac9a497f690fadf26e4b20560d35ec0e79d886..bb7e4e505b8389a8be4973ab6abce793d2ba1b1c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1269,6 +1269,7 @@ public class PurpurWorldConfig { +@@ -1234,6 +1234,7 @@ public class PurpurWorldConfig { public boolean creeperExplodeWhenKilled = false; public boolean creeperHealthRadius = false; public boolean creeperAlwaysDropExp = false; @@ -40,7 +40,7 @@ index 95ff1d59f4195c1d3815e36c7640aeca4b7a41e6..6f081554311a50678efb05e02bb4409c private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -1286,6 +1287,7 @@ public class PurpurWorldConfig { +@@ -1251,6 +1252,7 @@ public class PurpurWorldConfig { creeperExplodeWhenKilled = getBoolean("mobs.creeper.explode-when-killed", creeperExplodeWhenKilled); creeperHealthRadius = getBoolean("mobs.creeper.health-impacts-explosion", creeperHealthRadius); creeperAlwaysDropExp = getBoolean("mobs.creeper.always-drop-exp", creeperAlwaysDropExp); @@ -48,7 +48,7 @@ index 95ff1d59f4195c1d3815e36c7640aeca4b7a41e6..6f081554311a50678efb05e02bb4409c } public boolean dolphinRidable = false; -@@ -2361,6 +2363,7 @@ public class PurpurWorldConfig { +@@ -2326,6 +2328,7 @@ public class PurpurWorldConfig { public double skeletonMaxHealth = 20.0D; public boolean skeletonTakeDamageFromWater = false; public boolean skeletonAlwaysDropExp = false; @@ -56,7 +56,7 @@ index 95ff1d59f4195c1d3815e36c7640aeca4b7a41e6..6f081554311a50678efb05e02bb4409c private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -2373,6 +2376,7 @@ public class PurpurWorldConfig { +@@ -2338,6 +2341,7 @@ public class PurpurWorldConfig { skeletonMaxHealth = getDouble("mobs.skeleton.attributes.max_health", skeletonMaxHealth); skeletonTakeDamageFromWater = getBoolean("mobs.skeleton.takes-damage-from-water", skeletonTakeDamageFromWater); skeletonAlwaysDropExp = getBoolean("mobs.skeleton.always-drop-exp", skeletonAlwaysDropExp); @@ -64,7 +64,7 @@ index 95ff1d59f4195c1d3815e36c7640aeca4b7a41e6..6f081554311a50678efb05e02bb4409c } public boolean skeletonHorseRidableInWater = true; -@@ -2900,6 +2904,7 @@ public class PurpurWorldConfig { +@@ -2865,6 +2869,7 @@ public class PurpurWorldConfig { public boolean zombieBypassMobGriefing = false; public boolean zombieTakeDamageFromWater = false; public boolean zombieAlwaysDropExp = false; @@ -72,7 +72,7 @@ index 95ff1d59f4195c1d3815e36c7640aeca4b7a41e6..6f081554311a50678efb05e02bb4409c private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -2918,6 +2923,7 @@ public class PurpurWorldConfig { +@@ -2883,6 +2888,7 @@ public class PurpurWorldConfig { zombieBypassMobGriefing = getBoolean("mobs.zombie.bypass-mob-griefing", zombieBypassMobGriefing); zombieTakeDamageFromWater = getBoolean("mobs.zombie.takes-damage-from-water", zombieTakeDamageFromWater); zombieAlwaysDropExp = getBoolean("mobs.zombie.always-drop-exp", zombieAlwaysDropExp); diff --git a/patches/server/0248-Configurable-valid-characters-for-usernames.patch b/patches/server/0248-Configurable-valid-characters-for-usernames.patch index 0fdbdfe04..eca3eaa8d 100644 --- a/patches/server/0248-Configurable-valid-characters-for-usernames.patch +++ b/patches/server/0248-Configurable-valid-characters-for-usernames.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configurable valid characters for usernames diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -index 2872adc531ca333e60e87752f4cbea11c5f0937b..13939c839faaeb29c00d6eadfb581e22bfe41a89 100644 +index a0f34f6b4df45367a4bc740409eb704531fe821a..68903862b8b9485f29d2e0da282505742f01dc3b 100644 --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java @@ -253,6 +253,8 @@ public class ServerLoginPacketListenerImpl implements TickablePacketListener, Se @@ -18,10 +18,10 @@ index 2872adc531ca333e60e87752f4cbea11c5f0937b..13939c839faaeb29c00d6eadfb581e22 char c = in.charAt(i); diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index a3b931a9d1f02a8e73e37d4651ff433098842d61..c56ad2a4ba4c46eb8bd6f0d9967600b4d552d555 100644 +index 0d73e8a06a8b7ce1db080396c8c8e6fc2b3c1c52..fd529c1cecb63fb9de855d6cd35835112bb5cd42 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -@@ -439,4 +439,11 @@ public class PurpurConfig { +@@ -470,4 +470,11 @@ public class PurpurConfig { private static void networkSettings() { useUPnP = getBoolean("settings.network.upnp-port-forwarding", useUPnP); } diff --git a/patches/server/0249-Shears-can-have-looting-enchantment.patch b/patches/server/0249-Shears-can-have-looting-enchantment.patch index 89125f772..b3a94fe36 100644 --- a/patches/server/0249-Shears-can-have-looting-enchantment.patch +++ b/patches/server/0249-Shears-can-have-looting-enchantment.patch @@ -158,10 +158,10 @@ index 6b8a1535086aae7e4e3229d05615fb903188f507..60af917083de1b790b1d93d61835a669 public int getMinCost(int level) { return 15 + (level - 1) * 9; diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index c56ad2a4ba4c46eb8bd6f0d9967600b4d552d555..352a530736ec9f43a28b077d28137553a3283819 100644 +index fd529c1cecb63fb9de855d6cd35835112bb5cd42..aa01a500483daf175054f90def45a45cdacc856f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -@@ -371,6 +371,7 @@ public class PurpurConfig { +@@ -402,6 +402,7 @@ public class PurpurConfig { public static boolean allowInfinityMending = false; public static boolean allowCrossbowInfinity = false; @@ -169,7 +169,7 @@ index c56ad2a4ba4c46eb8bd6f0d9967600b4d552d555..352a530736ec9f43a28b077d28137553 public static boolean allowUnsafeEnchants = false; public static boolean allowInapplicableEnchants = true; public static boolean allowIncompatibleEnchants = true; -@@ -392,6 +393,7 @@ public class PurpurConfig { +@@ -423,6 +424,7 @@ public class PurpurConfig { } allowInfinityMending = getBoolean("settings.enchantment.allow-infinity-and-mending-together", allowInfinityMending); allowCrossbowInfinity = getBoolean("settings.enchantment.allow-infinity-on-crossbow", allowCrossbowInfinity); diff --git a/patches/server/0250-Stop-bees-from-dying-after-stinging.patch b/patches/server/0250-Stop-bees-from-dying-after-stinging.patch index cadd68faa..76288739e 100644 --- a/patches/server/0250-Stop-bees-from-dying-after-stinging.patch +++ b/patches/server/0250-Stop-bees-from-dying-after-stinging.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Stop bees from dying after stinging diff --git a/src/main/java/net/minecraft/world/entity/animal/Bee.java b/src/main/java/net/minecraft/world/entity/animal/Bee.java -index 8ce16fbd066d60718a638928b4fb654cada7aafc..fb14d13e2812c5a2841b43dadea782536bd3c94f 100644 +index f2410b90b892a0c9684bc1fb675c0cd35518ca19..353e3aae979181547e5efc9c944ea1c69c65adc6 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Bee.java +++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java @@ -455,6 +455,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { @@ -17,10 +17,10 @@ index 8ce16fbd066d60718a638928b4fb654cada7aafc..fb14d13e2812c5a2841b43dadea78253 ++this.timeSinceSting; if (this.timeSinceSting % 5 == 0 && this.random.nextInt(Mth.clamp(1200 - this.timeSinceSting, (int) 1, (int) 1200)) == 0) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 6f081554311a50678efb05e02bb4409cebe2a897..49bd14bb82b3db30b7a45c6ca88d983a3bd8af91 100644 +index bb7e4e505b8389a8be4973ab6abce793d2ba1b1c..f8109b5d045aaedb3f3b6b1c99d0e88802b5b692 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1089,6 +1089,7 @@ public class PurpurWorldConfig { +@@ -1054,6 +1054,7 @@ public class PurpurWorldConfig { public boolean beeCanWorkAtNight = false; public boolean beeCanWorkInRain = false; public boolean beeAlwaysDropExp = false; @@ -28,7 +28,7 @@ index 6f081554311a50678efb05e02bb4409cebe2a897..49bd14bb82b3db30b7a45c6ca88d983a private void beeSettings() { beeRidable = getBoolean("mobs.bee.ridable", beeRidable); beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater); -@@ -1105,6 +1106,7 @@ public class PurpurWorldConfig { +@@ -1070,6 +1071,7 @@ public class PurpurWorldConfig { beeCanWorkAtNight = getBoolean("mobs.bee.can-work-at-night", beeCanWorkAtNight); beeCanWorkInRain = getBoolean("mobs.bee.can-work-in-rain", beeCanWorkInRain); beeAlwaysDropExp = getBoolean("mobs.bee.always-drop-exp", beeAlwaysDropExp); diff --git a/patches/server/0252-Configurable-farmland-trample-height.patch b/patches/server/0252-Configurable-farmland-trample-height.patch index ee104a8d5..38ed0c071 100644 --- a/patches/server/0252-Configurable-farmland-trample-height.patch +++ b/patches/server/0252-Configurable-farmland-trample-height.patch @@ -35,10 +35,10 @@ index e5a3e3a4367dfb924624a913b816b3fd56e3fefd..7068cb39ab264fa0c65febff01236b8d org.bukkit.event.Cancellable cancellable; if (entity instanceof Player) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 49bd14bb82b3db30b7a45c6ca88d983a3bd8af91..6944b5fb1f4d01866212012b3c9d8b126e85bf25 100644 +index f8109b5d045aaedb3f3b6b1c99d0e88802b5b692..40b6ffc27ceb9cb253f2141505e3f2827e9e2833 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -852,6 +852,7 @@ public class PurpurWorldConfig { +@@ -847,6 +847,7 @@ public class PurpurWorldConfig { public boolean farmlandTramplingDisabled = false; public boolean farmlandTramplingOnlyPlayers = false; public boolean farmlandTramplingFeatherFalling = false; @@ -46,7 +46,7 @@ index 49bd14bb82b3db30b7a45c6ca88d983a3bd8af91..6944b5fb1f4d01866212012b3c9d8b12 private void farmlandSettings() { farmlandBypassMobGriefing = getBoolean("blocks.farmland.bypass-mob-griefing", farmlandBypassMobGriefing); farmlandGetsMoistFromBelow = getBoolean("blocks.farmland.gets-moist-from-below", farmlandGetsMoistFromBelow); -@@ -859,6 +860,7 @@ public class PurpurWorldConfig { +@@ -854,6 +855,7 @@ public class PurpurWorldConfig { farmlandTramplingDisabled = getBoolean("blocks.farmland.disable-trampling", farmlandTramplingDisabled); farmlandTramplingOnlyPlayers = getBoolean("blocks.farmland.only-players-trample", farmlandTramplingOnlyPlayers); farmlandTramplingFeatherFalling = getBoolean("blocks.farmland.feather-fall-distance-affects-trampling", farmlandTramplingFeatherFalling); diff --git a/patches/server/0256-Configurable-phantom-size.patch b/patches/server/0256-Configurable-phantom-size.patch index 918313dfe..bf5982383 100644 --- a/patches/server/0256-Configurable-phantom-size.patch +++ b/patches/server/0256-Configurable-phantom-size.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configurable phantom size diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java -index 33b347474b7485633ca77bdff28e4b32580b51b8..bfca1101025e473c97cd4804e74bed04725a7792 100644 +index 1afe38e0d83040f4f5702ac3a14ac1e7963b9e5e..08ef919c5e7edfa8f565ecef8f57b5494f8415bf 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java +++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java @@ -272,7 +272,11 @@ public class Phantom extends FlyingMob implements Enemy { @@ -22,10 +22,10 @@ index 33b347474b7485633ca77bdff28e4b32580b51b8..bfca1101025e473c97cd4804e74bed04 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index a9769af473aed648b9fe7505d19dd065ff1c5d64..0574b279bde0237cd3318c9274e1281f305045b5 100644 +index ca8e402f8b103bba91ebca99e7b22c8f5b5ed1a9..8a5032807426caabfd46001d6b7f572d4713a896 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2020,6 +2020,8 @@ public class PurpurWorldConfig { +@@ -1985,6 +1985,8 @@ public class PurpurWorldConfig { public boolean phantomFlamesOnSwoop = false; public boolean phantomTakeDamageFromWater = false; public boolean phantomAlwaysDropExp = false; @@ -34,7 +34,7 @@ index a9769af473aed648b9fe7505d19dd065ff1c5d64..0574b279bde0237cd3318c9274e1281f private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -2062,6 +2064,13 @@ public class PurpurWorldConfig { +@@ -2027,6 +2029,13 @@ public class PurpurWorldConfig { phantomFlamesOnSwoop = getBoolean("mobs.phantom.flames-on-swoop", phantomFlamesOnSwoop); phantomTakeDamageFromWater = getBoolean("mobs.phantom.takes-damage-from-water", phantomTakeDamageFromWater); phantomAlwaysDropExp = getBoolean("mobs.phantom.always-drop-exp", phantomAlwaysDropExp); diff --git a/patches/server/0257-Configurable-food-attributes.patch b/patches/server/0257-Configurable-food-attributes.patch index f758efc11..a90f783c1 100644 --- a/patches/server/0257-Configurable-food-attributes.patch +++ b/patches/server/0257-Configurable-food-attributes.patch @@ -69,10 +69,10 @@ index fcdd30f38bc57cc382a47d99e3c31f9348ca12c3..e0b5af2d83a0ee5a04e10dd54936a173 } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 352a530736ec9f43a28b077d28137553a3283819..c9d571d141fa64e37c7936a72ddbe844c83466a1 100644 +index aa01a500483daf175054f90def45a45cdacc856f..668066e2298eed6de118ff059ea469fa240e9ba9 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -@@ -448,4 +448,56 @@ public class PurpurConfig { +@@ -479,4 +479,56 @@ public class PurpurConfig { String setPattern = getString("settings.username-valid-characters", defaultPattern); usernameValidCharactersPattern = java.util.regex.Pattern.compile(setPattern == null || setPattern.isBlank() ? defaultPattern : setPattern); } diff --git a/patches/server/0258-Max-joins-per-second.patch b/patches/server/0258-Max-joins-per-second.patch index 1843d1a13..b51f19470 100644 --- a/patches/server/0258-Max-joins-per-second.patch +++ b/patches/server/0258-Max-joins-per-second.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Max joins per second When this option is set to true the `max-joins-per-tick` setting in paper.yml will be used per second instead of per tick diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java -index 868d4913f63b3f4752f7f1cdcd81e118e482c474..9f6e626bf4027734849083274acac3f6464569a4 100644 +index 6967c90c50ea75fb9dd5da808b2c8c8ea046ecec..e1563410e0711de5cf9363978125e637929392da 100644 --- a/src/main/java/net/minecraft/network/Connection.java +++ b/src/main/java/net/minecraft/network/Connection.java @@ -554,11 +554,20 @@ public class Connection extends SimpleChannelInboundHandler> { @@ -31,10 +31,10 @@ index 868d4913f63b3f4752f7f1cdcd81e118e482c474..9f6e626bf4027734849083274acac3f6 } // Paper end diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index c9d571d141fa64e37c7936a72ddbe844c83466a1..322c411af5d5dea4401dc0a41abe415990c2ed56 100644 +index 668066e2298eed6de118ff059ea469fa240e9ba9..48cdfb5e6b63bdcaeebeef87a25e3331d45a62cc 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -@@ -438,8 +438,10 @@ public class PurpurConfig { +@@ -469,8 +469,10 @@ public class PurpurConfig { } public static boolean useUPnP = false; diff --git a/patches/server/0259-Configurable-minimum-demand-for-trades.patch b/patches/server/0259-Configurable-minimum-demand-for-trades.patch index 4e88be88c..f2760c34b 100644 --- a/patches/server/0259-Configurable-minimum-demand-for-trades.patch +++ b/patches/server/0259-Configurable-minimum-demand-for-trades.patch @@ -40,10 +40,10 @@ index 8a9a701baabdaf066cd9b28c05430f673fcafb4e..17cc3237c7fc8ceda136b2371fabf6f0 public ItemStack assemble() { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 0574b279bde0237cd3318c9274e1281f305045b5..e66f169b4355ef537dbde2c3aaf85e7b58cfe523 100644 +index 8a5032807426caabfd46001d6b7f572d4713a896..8fedc9a56ec59ab5f3fab6bbe9951a8dec2136f7 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2698,6 +2698,7 @@ public class PurpurWorldConfig { +@@ -2663,6 +2663,7 @@ public class PurpurWorldConfig { public boolean villagerTakeDamageFromWater = false; public boolean villagerAllowTrading = true; public boolean villagerAlwaysDropExp = false; @@ -51,7 +51,7 @@ index 0574b279bde0237cd3318c9274e1281f305045b5..e66f169b4355ef537dbde2c3aaf85e7b private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2720,6 +2721,7 @@ public class PurpurWorldConfig { +@@ -2685,6 +2686,7 @@ public class PurpurWorldConfig { villagerTakeDamageFromWater = getBoolean("mobs.villager.takes-damage-from-water", villagerTakeDamageFromWater); villagerAllowTrading = getBoolean("mobs.villager.allow-trading", villagerAllowTrading); villagerAlwaysDropExp = getBoolean("mobs.villager.always-drop-exp", villagerAlwaysDropExp); diff --git a/patches/server/0260-Lobotomize-stuck-villagers.patch b/patches/server/0260-Lobotomize-stuck-villagers.patch index d1006bcc6..5a3a0e214 100644 --- a/patches/server/0260-Lobotomize-stuck-villagers.patch +++ b/patches/server/0260-Lobotomize-stuck-villagers.patch @@ -111,10 +111,10 @@ index f0b910df1ee471b4d72d97c6197ab14f2854976e..6ce32a52d621a0c2629568ea07e445f5 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index e66f169b4355ef537dbde2c3aaf85e7b58cfe523..53903df5f2fd434b4abc7b66c97046ef850a6e8a 100644 +index 8fedc9a56ec59ab5f3fab6bbe9951a8dec2136f7..f9c12924531dfb06d3ef83e27ae2f08b56961847 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2699,6 +2699,8 @@ public class PurpurWorldConfig { +@@ -2664,6 +2664,8 @@ public class PurpurWorldConfig { public boolean villagerAllowTrading = true; public boolean villagerAlwaysDropExp = false; public int villagerMinimumDemand = 0; @@ -123,7 +123,7 @@ index e66f169b4355ef537dbde2c3aaf85e7b58cfe523..53903df5f2fd434b4abc7b66c97046ef private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2722,6 +2724,17 @@ public class PurpurWorldConfig { +@@ -2687,6 +2689,17 @@ public class PurpurWorldConfig { villagerAllowTrading = getBoolean("mobs.villager.allow-trading", villagerAllowTrading); villagerAlwaysDropExp = getBoolean("mobs.villager.always-drop-exp", villagerAlwaysDropExp); villagerMinimumDemand = getInt("mobs.villager.minimum-demand", villagerMinimumDemand); diff --git a/patches/server/0261-Option-for-villager-display-trade-item.patch b/patches/server/0261-Option-for-villager-display-trade-item.patch index eb443c832..714cbcb87 100644 --- a/patches/server/0261-Option-for-villager-display-trade-item.patch +++ b/patches/server/0261-Option-for-villager-display-trade-item.patch @@ -17,10 +17,10 @@ index 385f3df7044e3f03f17c3ec7484b268004a3def9..90ba6a3abf62e4b272fada96b554ca31 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 53903df5f2fd434b4abc7b66c97046ef850a6e8a..4c05e766ce5eeec876193b564c8eec9676ae6205 100644 +index f9c12924531dfb06d3ef83e27ae2f08b56961847..649672e611e4f611b6e4dfab5b29512cc1ea7fa6 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2701,6 +2701,7 @@ public class PurpurWorldConfig { +@@ -2666,6 +2666,7 @@ public class PurpurWorldConfig { public int villagerMinimumDemand = 0; public boolean villagerLobotomizeEnabled = false; public int villagerLobotomizeCheckInterval = 100; @@ -28,7 +28,7 @@ index 53903df5f2fd434b4abc7b66c97046ef850a6e8a..4c05e766ce5eeec876193b564c8eec96 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2735,6 +2736,7 @@ public class PurpurWorldConfig { +@@ -2700,6 +2701,7 @@ public class PurpurWorldConfig { } villagerLobotomizeEnabled = getBoolean("mobs.villager.lobotomize.enabled", villagerLobotomizeEnabled); villagerLobotomizeCheckInterval = getInt("mobs.villager.lobotomize.check-interval", villagerLobotomizeCheckInterval); diff --git a/patches/server/0262-Fill-command-max-area-option.patch b/patches/server/0262-Fill-command-max-area-option.patch index 3e7523549..7fc6661f0 100644 --- a/patches/server/0262-Fill-command-max-area-option.patch +++ b/patches/server/0262-Fill-command-max-area-option.patch @@ -22,10 +22,10 @@ index 99fbb24dabe867ed4956a2996543107f58a57193..5c81c64540579fbacc335a3fadf4bf59 List list = Lists.newArrayList(); ServerLevel serverLevel = source.getLevel(); diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 322c411af5d5dea4401dc0a41abe415990c2ed56..5e69e2626c2e85c8ef8b29b556ebd81e27042122 100644 +index 48cdfb5e6b63bdcaeebeef87a25e3331d45a62cc..4e80eca63546a8bb7bee9564e068b29cf13146db 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -@@ -269,6 +269,7 @@ public class PurpurConfig { +@@ -272,6 +272,7 @@ public class PurpurConfig { public static float commandCompassBarProgressPercent = 1.0F; public static int commandCompassBarTickInterval = 5; public static boolean commandGamemodeRequiresPermission = false; @@ -33,7 +33,7 @@ index 322c411af5d5dea4401dc0a41abe415990c2ed56..5e69e2626c2e85c8ef8b29b556ebd81e public static boolean hideHiddenPlayersFromEntitySelector = false; public static String uptimeFormat = ""; public static String uptimeDay = "%02d day, "; -@@ -298,6 +299,7 @@ public class PurpurConfig { +@@ -301,6 +302,7 @@ public class PurpurConfig { commandCompassBarTickInterval = getInt("settings.command.compass.tick-interval", commandCompassBarTickInterval); commandGamemodeRequiresPermission = getBoolean("settings.command.gamemode.requires-specific-permission", commandGamemodeRequiresPermission); diff --git a/patches/server/0263-MC-238526-Fix-spawner-not-spawning-water-animals-cor.patch b/patches/server/0263-MC-238526-Fix-spawner-not-spawning-water-animals-cor.patch index 91bfccdaf..678979b99 100644 --- a/patches/server/0263-MC-238526-Fix-spawner-not-spawning-water-animals-cor.patch +++ b/patches/server/0263-MC-238526-Fix-spawner-not-spawning-water-animals-cor.patch @@ -17,10 +17,10 @@ index 18389f46902bb9879ac6d734723e9a720724dc48..b2b8663a9cff08bacdab91c7bb014ba6 } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 4c05e766ce5eeec876193b564c8eec9676ae6205..378b2d00193c69f020e4ac6f39dd62ba4dc918c5 100644 +index 649672e611e4f611b6e4dfab5b29512cc1ea7fa6..6164eaf88e7ad804c595f4b842923b3951a35130 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -970,8 +970,10 @@ public class PurpurWorldConfig { +@@ -955,8 +955,10 @@ public class PurpurWorldConfig { } public boolean spawnerDeactivateByRedstone = false; diff --git a/patches/server/0267-Option-to-disable-turtle-egg-trampling-with-feather-.patch b/patches/server/0267-Option-to-disable-turtle-egg-trampling-with-feather-.patch index d13c3db0e..5c376457a 100644 --- a/patches/server/0267-Option-to-disable-turtle-egg-trampling-with-feather-.patch +++ b/patches/server/0267-Option-to-disable-turtle-egg-trampling-with-feather-.patch @@ -20,10 +20,10 @@ index 5e6df1d6cbaecb986d1b8d382fe673a2cbb76115..6151226a88a9ca44955821521641e788 // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index bd7295f82c963b95b32e9115bc9f4b380852f001..0e5002f3dee2aff00c3e848ecd9429417ea88669 100644 +index 62ca4bf71d0bb4da7d1e02340bd6178187fafcd1..8627d0a762fc483d6452f922dcf76b1d89736664 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -996,12 +996,14 @@ public class PurpurWorldConfig { +@@ -981,12 +981,14 @@ public class PurpurWorldConfig { public boolean turtleEggsBreakFromMinecarts = true; public boolean turtleEggsBypassMobGriefing = false; public int turtleEggsRandomTickCrackChance = 500; @@ -37,4 +37,4 @@ index bd7295f82c963b95b32e9115bc9f4b380852f001..0e5002f3dee2aff00c3e848ecd942941 + turtleEggsTramplingFeatherFalling = getBoolean("blocks.turtle_egg.feather-fall-distance-affects-trampling", turtleEggsTramplingFeatherFalling); } - public int twistingVinesMaxGrowthAge = 25; + public boolean waterInfinite = true; diff --git a/patches/server/0268-Add-toggle-for-enchant-level-clamping.patch b/patches/server/0268-Add-toggle-for-enchant-level-clamping.patch index f9bcfd31a..4cf43f4b2 100644 --- a/patches/server/0268-Add-toggle-for-enchant-level-clamping.patch +++ b/patches/server/0268-Add-toggle-for-enchant-level-clamping.patch @@ -31,10 +31,10 @@ index 4afa30753a90d9bbd3c71b21cb4a8deadf9ccb3b..1d79da7f8405f7dff3b2e10022a564a9 @Nullable diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 5e69e2626c2e85c8ef8b29b556ebd81e27042122..ac6e4936b0ad1cef84eae68ebccb5279060d884b 100644 +index 4e80eca63546a8bb7bee9564e068b29cf13146db..46b6a8d0e833f6e92076752f7af8f8dc597292bf 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -@@ -379,6 +379,7 @@ public class PurpurConfig { +@@ -410,6 +410,7 @@ public class PurpurConfig { public static boolean allowIncompatibleEnchants = true; public static boolean allowHigherEnchantsLevels = true; public static boolean allowUnsafeEnchantCommand = false; @@ -42,7 +42,7 @@ index 5e69e2626c2e85c8ef8b29b556ebd81e27042122..ac6e4936b0ad1cef84eae68ebccb5279 private static void enchantmentSettings() { if (version < 5) { boolean oldValue = getBoolean("settings.enchantment.allow-infinite-and-mending-together", false); -@@ -401,6 +402,7 @@ public class PurpurConfig { +@@ -432,6 +433,7 @@ public class PurpurConfig { allowIncompatibleEnchants = getBoolean("settings.enchantment.anvil.allow-incompatible-enchants", allowIncompatibleEnchants); allowHigherEnchantsLevels = getBoolean("settings.enchantment.anvil.allow-higher-enchants-levels", allowHigherEnchantsLevels); allowUnsafeEnchantCommand = getBoolean("settings.enchantment.allow-unsafe-enchant-command", allowUnsafeEnchants); // allowUnsafeEnchants as default for backwards compatability diff --git a/patches/server/0269-Config-to-prevent-horses-from-standing-when-hurt.patch b/patches/server/0269-Config-to-prevent-horses-from-standing-when-hurt.patch index ae0b7bfe4..8b3889dee 100644 --- a/patches/server/0269-Config-to-prevent-horses-from-standing-when-hurt.patch +++ b/patches/server/0269-Config-to-prevent-horses-from-standing-when-hurt.patch @@ -21,10 +21,10 @@ index 7466c437b2e996f16a08aaefc5c2b7cba216a14c..205ce2bd91a98a0c67d3c5dd640eb88c } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 0e5002f3dee2aff00c3e848ecd9429417ea88669..4a7caa3ac7d47647dd8b771dad30af487b143bde 100644 +index 8627d0a762fc483d6452f922dcf76b1d89736664..20c13ac8e3001e7dde0b33ec5292f4bffc54cf24 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1712,6 +1712,7 @@ public class PurpurWorldConfig { +@@ -1677,6 +1677,7 @@ public class PurpurWorldConfig { public int horseBreedingTicks = 6000; public boolean horseTakeDamageFromWater = false; public boolean horseStandWithRider = true; @@ -32,7 +32,7 @@ index 0e5002f3dee2aff00c3e848ecd9429417ea88669..4a7caa3ac7d47647dd8b771dad30af48 public boolean horseAlwaysDropExp = false; private void horseSettings() { horseRidableInWater = getBoolean("mobs.horse.ridable-in-water", horseRidableInWater); -@@ -1731,6 +1732,7 @@ public class PurpurWorldConfig { +@@ -1696,6 +1697,7 @@ public class PurpurWorldConfig { horseBreedingTicks = getInt("mobs.horse.breeding-delay-ticks", horseBreedingTicks); horseTakeDamageFromWater = getBoolean("mobs.horse.takes-damage-from-water", horseTakeDamageFromWater); horseStandWithRider = getBoolean("mobs.horse.stand-with-rider", horseStandWithRider); diff --git a/patches/server/0271-Implement-configurable-search-radius-for-villagers-t.patch b/patches/server/0271-Implement-configurable-search-radius-for-villagers-t.patch index 0c67834f0..6ba5cc53f 100644 --- a/patches/server/0271-Implement-configurable-search-radius-for-villagers-t.patch +++ b/patches/server/0271-Implement-configurable-search-radius-for-villagers-t.patch @@ -18,10 +18,10 @@ index ace39b0585c67b2764d75ff9e64d132347157a51..20668d53625ec88ba3eb2a655ad3f6bc AABB axisalignedbb = this.getBoundingBox().inflate(10.0D, 10.0D, 10.0D); List list = world.getEntitiesOfClass(Villager.class, axisalignedbb); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 4a7caa3ac7d47647dd8b771dad30af487b143bde..1a5d5db4cf3a9b5c84d4da46a103afe6461179b4 100644 +index 20c13ac8e3001e7dde0b33ec5292f4bffc54cf24..0790f610a00ce78fb03910eaa0d30dac5abc7ecd 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2714,6 +2714,8 @@ public class PurpurWorldConfig { +@@ -2679,6 +2679,8 @@ public class PurpurWorldConfig { public boolean villagerLobotomizeEnabled = false; public int villagerLobotomizeCheckInterval = 100; public boolean villagerDisplayTradeItem = true; @@ -30,7 +30,7 @@ index 4a7caa3ac7d47647dd8b771dad30af487b143bde..1a5d5db4cf3a9b5c84d4da46a103afe6 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2749,6 +2751,8 @@ public class PurpurWorldConfig { +@@ -2714,6 +2716,8 @@ public class PurpurWorldConfig { villagerLobotomizeEnabled = getBoolean("mobs.villager.lobotomize.enabled", villagerLobotomizeEnabled); villagerLobotomizeCheckInterval = getInt("mobs.villager.lobotomize.check-interval", villagerLobotomizeCheckInterval); villagerDisplayTradeItem = getBoolean("mobs.villager.display-trade-item", villagerDisplayTradeItem); diff --git a/patches/server/0272-Stonecutter-damage.patch b/patches/server/0272-Stonecutter-damage.patch index 02b3e966f..c291f78ac 100644 --- a/patches/server/0272-Stonecutter-damage.patch +++ b/patches/server/0272-Stonecutter-damage.patch @@ -80,10 +80,10 @@ index f4ca0a9481533befc78cb18c1f9810826f57562c..902e420d19288df124da2292a60f95e9 throw new IllegalStateException(String.format("Unhandled damage of %s by %s from %s", entity, damager, source.msgId)); } diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index ac6e4936b0ad1cef84eae68ebccb5279060d884b..8caf0861433263086dbae6f13b5fa6a36de68843 100644 +index 46b6a8d0e833f6e92076752f7af8f8dc597292bf..a682e1852ec6ae82e15ed62ae19172e477e94ca6 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -@@ -200,8 +200,10 @@ public class PurpurConfig { +@@ -203,8 +203,10 @@ public class PurpurConfig { } public static String deathMsgRunWithScissors = " slipped and fell on their shears"; @@ -95,10 +95,10 @@ index ac6e4936b0ad1cef84eae68ebccb5279060d884b..8caf0861433263086dbae6f13b5fa6a3 public static boolean advancementOnlyBroadcastToAffectedPlayer = false; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 1a5d5db4cf3a9b5c84d4da46a103afe6461179b4..b3228abefb9dab924324a5aceda4fa0d7a904b3e 100644 +index 0790f610a00ce78fb03910eaa0d30dac5abc7ecd..059c76b596619ee8465538c984c9db05e618e15b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -991,6 +991,11 @@ public class PurpurWorldConfig { +@@ -976,6 +976,11 @@ public class PurpurWorldConfig { spongeAbsorbsLava = getBoolean("blocks.sponge.absorbs-lava", spongeAbsorbsLava); } diff --git a/patches/server/0273-Configurable-damage-settings-for-magma-blocks.patch b/patches/server/0273-Configurable-damage-settings-for-magma-blocks.patch index 4f0214d68..c21bdaf33 100644 --- a/patches/server/0273-Configurable-damage-settings-for-magma-blocks.patch +++ b/patches/server/0273-Configurable-damage-settings-for-magma-blocks.patch @@ -18,10 +18,10 @@ index d3540a4daaa8021ae009bfd4d9ef4f1172ab4c56..2b250439f263f64db7920536ed6eaf64 entity.hurt(DamageSource.HOT_FLOOR, 1.0F); org.bukkit.craftbukkit.event.CraftEventFactory.blockDamage = null; // CraftBukkit diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index b3228abefb9dab924324a5aceda4fa0d7a904b3e..74cac857c8ecc60b333d355258c78db96ca468a2 100644 +index 059c76b596619ee8465538c984c9db05e618e15b..8e832cb130e80ab6ed444e22d34aa1bd87cb1eef 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -927,6 +927,13 @@ public class PurpurWorldConfig { +@@ -912,6 +912,13 @@ public class PurpurWorldConfig { pistonBlockPushLimit = getInt("blocks.piston.block-push-limit", pistonBlockPushLimit); } diff --git a/patches/server/0274-Add-config-for-snow-on-blue-ice.patch b/patches/server/0274-Add-config-for-snow-on-blue-ice.patch index f78f57d8a..da9f71a68 100644 --- a/patches/server/0274-Add-config-for-snow-on-blue-ice.patch +++ b/patches/server/0274-Add-config-for-snow-on-blue-ice.patch @@ -22,10 +22,10 @@ index 14e00c7feb1c051d56a3d27cd00dcef072dd771a..4952fb1aaaafb55baa0fddb389f966a1 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 74cac857c8ecc60b333d355258c78db96ca468a2..bb012e35d9a5df7638950c72c03364f8d1f9f1b7 100644 +index 8e832cb130e80ab6ed444e22d34aa1bd87cb1eef..35282087bc8a492ac0142cf1ff66b81626c998ee 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -896,9 +896,11 @@ public class PurpurWorldConfig { +@@ -891,9 +891,11 @@ public class PurpurWorldConfig { public boolean mobsSpawnOnPackedIce = true; public boolean mobsSpawnOnBlueIce = true; @@ -36,4 +36,4 @@ index 74cac857c8ecc60b333d355258c78db96ca468a2..bb012e35d9a5df7638950c72c03364f8 + snowOnBlueIce = getBoolean("blocks.blue_ice.allow-snow-formation", snowOnBlueIce); } - public int kelpMaxGrowthAge = 25; + public boolean lavaInfinite = false; diff --git a/patches/server/0275-Add-log-suppression-for-sent-expired-chat.patch b/patches/server/0275-Add-log-suppression-for-sent-expired-chat.patch index 23d837148..30149eb9a 100644 --- a/patches/server/0275-Add-log-suppression-for-sent-expired-chat.patch +++ b/patches/server/0275-Add-log-suppression-for-sent-expired-chat.patch @@ -18,10 +18,10 @@ index 597ea30c360a0cc44ef83cfff118d477fa3d0b0a..628a3788c60c9644043ee78736e03570 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 8caf0861433263086dbae6f13b5fa6a36de68843..d0b4ea0212b6a5ccba029c124be1ca3ffafd5d26 100644 +index a682e1852ec6ae82e15ed62ae19172e477e94ca6..0b3bc6e8e13ebdbdb568bc6a222c32e470113560 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -@@ -431,11 +431,13 @@ public class PurpurConfig { +@@ -462,11 +462,13 @@ public class PurpurConfig { public static boolean loggerSuppressIgnoredAdvancementWarnings = false; public static boolean loggerSuppressUnrecognizedRecipeErrors = false; public static boolean loggerSuppressSetBlockFarChunk = false; diff --git a/patches/server/0276-Skeletons-eat-wither-roses.patch b/patches/server/0276-Skeletons-eat-wither-roses.patch index 16df53e66..9d2d84143 100644 --- a/patches/server/0276-Skeletons-eat-wither-roses.patch +++ b/patches/server/0276-Skeletons-eat-wither-roses.patch @@ -94,10 +94,10 @@ index 51c548cd84bd83624fbff3f853a8050dc1e71ecd..a5ab36fdd0751cb3b96525d53bbaec33 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index bb012e35d9a5df7638950c72c03364f8d1f9f1b7..137dd05616eba132f5a418dc361adcc22c89d0ca 100644 +index 35282087bc8a492ac0142cf1ff66b81626c998ee..a207a5420b0ab6e1fbdff1c2c6ac58cfc0f47edb 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2407,6 +2407,7 @@ public class PurpurWorldConfig { +@@ -2372,6 +2372,7 @@ public class PurpurWorldConfig { public boolean skeletonTakeDamageFromWater = false; public boolean skeletonAlwaysDropExp = false; public double skeletonHeadVisibilityPercent = 0.5D; @@ -105,7 +105,7 @@ index bb012e35d9a5df7638950c72c03364f8d1f9f1b7..137dd05616eba132f5a418dc361adcc2 private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -2420,6 +2421,7 @@ public class PurpurWorldConfig { +@@ -2385,6 +2386,7 @@ public class PurpurWorldConfig { skeletonTakeDamageFromWater = getBoolean("mobs.skeleton.takes-damage-from-water", skeletonTakeDamageFromWater); skeletonAlwaysDropExp = getBoolean("mobs.skeleton.always-drop-exp", skeletonAlwaysDropExp); skeletonHeadVisibilityPercent = getDouble("mobs.skeleton.head-visibility-percent", skeletonHeadVisibilityPercent); diff --git a/patches/server/0277-Enchantment-Table-Persists-Lapis.patch b/patches/server/0277-Enchantment-Table-Persists-Lapis.patch index 596e132e7..2bafd3957 100644 --- a/patches/server/0277-Enchantment-Table-Persists-Lapis.patch +++ b/patches/server/0277-Enchantment-Table-Persists-Lapis.patch @@ -146,10 +146,10 @@ index 2341a5a249d455628165fc6ba508fc6d70c3dbfb..4ccb8a7dc4201a7cffa59e4195765001 + // Purpur } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 137dd05616eba132f5a418dc361adcc22c89d0ca..07c6a2deac19f7edf25258337981f1e74702b2a9 100644 +index a207a5420b0ab6e1fbdff1c2c6ac58cfc0f47edb..bbe803fd901c8642ac49696a0ba10f98662865c6 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1428,6 +1428,11 @@ public class PurpurWorldConfig { +@@ -1393,6 +1393,11 @@ public class PurpurWorldConfig { elderGuardianAlwaysDropExp = getBoolean("mobs.elder_guardian.always-drop-exp", elderGuardianAlwaysDropExp); } diff --git a/patches/server/0279-Option-to-disable-kick-for-out-of-order-chat.patch b/patches/server/0279-Option-to-disable-kick-for-out-of-order-chat.patch index b941471f7..093a3c645 100644 --- a/patches/server/0279-Option-to-disable-kick-for-out-of-order-chat.patch +++ b/patches/server/0279-Option-to-disable-kick-for-out-of-order-chat.patch @@ -18,10 +18,10 @@ index 628a3788c60c9644043ee78736e035707a9d4044..9519e11fef244eb1b286b43b857d3f41 } while (!this.lastChatTimeStamp.compareAndSet(instant1, timestamp)); diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index d0b4ea0212b6a5ccba029c124be1ca3ffafd5d26..d44b8ce90db7c6c27f71aa841d6fb64b159b7b42 100644 +index 0b3bc6e8e13ebdbdb568bc6a222c32e470113560..3e1a8de7d2f23a8e9218bf56e3fd18c48ffe14df 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -@@ -447,9 +447,11 @@ public class PurpurConfig { +@@ -478,9 +478,11 @@ public class PurpurConfig { public static boolean useUPnP = false; public static boolean maxJoinsPerSecond = false; diff --git a/patches/server/0280-Config-for-sculk-shrieker-can_summon-state.patch b/patches/server/0280-Config-for-sculk-shrieker-can_summon-state.patch index 834fbe786..58046c453 100644 --- a/patches/server/0280-Config-for-sculk-shrieker-can_summon-state.patch +++ b/patches/server/0280-Config-for-sculk-shrieker-can_summon-state.patch @@ -18,10 +18,10 @@ index e0998215841e500e5982a242e9f4e646402e1521..11038ba560439dab04c54c31a32d63be @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 07c6a2deac19f7edf25258337981f1e74702b2a9..17f01ba3a6d824ea5ab2d6ec445ce17ab85aad87 100644 +index bbe803fd901c8642ac49696a0ba10f98662865c6..7cd470919e4ecc25190d03161f1943b499951864 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -967,6 +967,11 @@ public class PurpurWorldConfig { +@@ -952,6 +952,11 @@ public class PurpurWorldConfig { fixSandDuping = getBoolean("blocks.sand.fix-duping", fixSandDuping); } diff --git a/patches/server/0281-Config-to-not-let-coral-die.patch b/patches/server/0281-Config-to-not-let-coral-die.patch index d4071fec3..665704f19 100644 --- a/patches/server/0281-Config-to-not-let-coral-die.patch +++ b/patches/server/0281-Config-to-not-let-coral-die.patch @@ -29,11 +29,11 @@ index 88faea00be60a519f56f975a5311df5e1eb3e6b8..cbb726ac367be81e27d3a86643baf7c4 int i = aenumdirection.length; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 17f01ba3a6d824ea5ab2d6ec445ce17ab85aad87..a0e3323d35291b3d7980fe83ec5f27193b4fa79a 100644 +index 7cd470919e4ecc25190d03161f1943b499951864..6f108e0a7d35c35ff5b0842534c62a277e0aae36 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -805,6 +805,11 @@ public class PurpurWorldConfig { - caveVinesMaxGrowthAge = getInt("blocks.cave_vines.max-growth-age", caveVinesMaxGrowthAge); +@@ -800,6 +800,11 @@ public class PurpurWorldConfig { + composterBulkProcess = getBoolean("blocks.composter.sneak-to-bulk-process", composterBulkProcess); } + public boolean coralDieOutsideWater = true; diff --git a/patches/server/0296-Add-skeleton-bow-accuracy-option.patch b/patches/server/0296-Add-skeleton-bow-accuracy-option.patch index 2de9cd511..1235c91a6 100644 --- a/patches/server/0296-Add-skeleton-bow-accuracy-option.patch +++ b/patches/server/0296-Add-skeleton-bow-accuracy-option.patch @@ -18,10 +18,10 @@ index e542407894f58fb8c0339a7a6d2e7b2cb5891eb4..0cfe5cb3ce0ac8554bbdb68c66583693 org.bukkit.event.entity.EntityShootBowEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callEntityShootBowEvent(this, this.getMainHandItem(), entityarrow.getPickupItem(), entityarrow, net.minecraft.world.InteractionHand.MAIN_HAND, 0.8F, true); // Paper if (event.isCancelled()) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 86bd220bea97b13dedb8f9808aa4397f5253f981..3cf1451569128640fe5d6d9fc0fdc550de75c091 100644 +index b382227dd6ab8bdfefabcb2f154b2644b51521fa..76187e610e5bd4506d7c6f15d711a2e10f2c7b6e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2427,6 +2427,8 @@ public class PurpurWorldConfig { +@@ -2392,6 +2392,8 @@ public class PurpurWorldConfig { public boolean skeletonAlwaysDropExp = false; public double skeletonHeadVisibilityPercent = 0.5D; public int skeletonFeedWitherRoses = 0; @@ -30,7 +30,7 @@ index 86bd220bea97b13dedb8f9808aa4397f5253f981..3cf1451569128640fe5d6d9fc0fdc550 private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -2441,6 +2443,18 @@ public class PurpurWorldConfig { +@@ -2406,6 +2408,18 @@ public class PurpurWorldConfig { skeletonAlwaysDropExp = getBoolean("mobs.skeleton.always-drop-exp", skeletonAlwaysDropExp); skeletonHeadVisibilityPercent = getDouble("mobs.skeleton.head-visibility-percent", skeletonHeadVisibilityPercent); skeletonFeedWitherRoses = getInt("mobs.skeleton.feed-wither-roses", skeletonFeedWitherRoses); diff --git a/patches/server/0298-Allay-respect-item-NBT.patch b/patches/server/0298-Allay-respect-item-NBT.patch index 377e675fe..ec241afce 100644 --- a/patches/server/0298-Allay-respect-item-NBT.patch +++ b/patches/server/0298-Allay-respect-item-NBT.patch @@ -52,10 +52,10 @@ index c233533fdacb4f5e635267b5fc9fe21bc8b3c51a..4e77bb2be5a35bc6b002e2eae4af4193 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 3cf1451569128640fe5d6d9fc0fdc550de75c091..c622cbe7104d0d107116d711de06b3653e3bfd1a 100644 +index 76187e610e5bd4506d7c6f15d711a2e10f2c7b6e..14e25acc82c51afe491584aef2cd95d2480213ed 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1073,10 +1073,13 @@ public class PurpurWorldConfig { +@@ -1038,10 +1038,13 @@ public class PurpurWorldConfig { public boolean allayRidable = false; public boolean allayRidableInWater = false; public boolean allayControllable = true; diff --git a/patches/server/0300-Implement-ram-and-rambar-commands.patch b/patches/server/0300-Implement-ram-and-rambar-commands.patch index d783be509..2192b40c7 100644 --- a/patches/server/0300-Implement-ram-and-rambar-commands.patch +++ b/patches/server/0300-Implement-ram-and-rambar-commands.patch @@ -61,10 +61,10 @@ index 6979305279996be59756d0424e5bc16a19fde6b0..12637019da44019475042e4cf88d3e0e return this.tpsBar; } diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index d44b8ce90db7c6c27f71aa841d6fb64b159b7b42..f45b0002efd30b45633b31cf9995cfcbdf0f7504 100644 +index 3e1a8de7d2f23a8e9218bf56e3fd18c48ffe14df..8d12ba33da62b58f6390a812fd025ede6032ed88 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -@@ -176,6 +176,8 @@ public class PurpurConfig { +@@ -179,6 +179,8 @@ public class PurpurConfig { public static String creditsCommandOutput = "%s has been shown the end credits"; public static String demoCommandOutput = "%s has been shown the demo screen"; public static String pingCommandOutput = "%s's ping is %sms"; @@ -73,7 +73,7 @@ index d44b8ce90db7c6c27f71aa841d6fb64b159b7b42..f45b0002efd30b45633b31cf9995cfcb public static String tpsbarCommandOutput = "Tpsbar toggled for "; public static String dontRunWithScissors = "Don't run with scissors!"; public static String uptimeCommandOutput = "Server uptime is "; -@@ -191,6 +193,8 @@ public class PurpurConfig { +@@ -194,6 +196,8 @@ public class PurpurConfig { creditsCommandOutput = getString("settings.messages.credits-command-output", creditsCommandOutput); demoCommandOutput = getString("settings.messages.demo-command-output", demoCommandOutput); pingCommandOutput = getString("settings.messages.ping-command-output", pingCommandOutput); @@ -82,7 +82,7 @@ index d44b8ce90db7c6c27f71aa841d6fb64b159b7b42..f45b0002efd30b45633b31cf9995cfcb tpsbarCommandOutput = getString("settings.messages.tpsbar-command-output", tpsbarCommandOutput); dontRunWithScissors = getString("settings.messages.dont-run-with-scissors", dontRunWithScissors); uptimeCommandOutput = getString("settings.messages.uptime-command-output", uptimeCommandOutput); -@@ -255,6 +259,15 @@ public class PurpurConfig { +@@ -258,6 +262,15 @@ public class PurpurConfig { disableGiveCommandDrops = getBoolean("settings.disable-give-dropping", disableGiveCommandDrops); } @@ -98,7 +98,7 @@ index d44b8ce90db7c6c27f71aa841d6fb64b159b7b42..f45b0002efd30b45633b31cf9995cfcb public static String commandTPSBarTitle = "TPS: MSPT: Ping: ms"; public static BossBar.Overlay commandTPSBarProgressOverlay = BossBar.Overlay.NOTCHED_20; public static TPSBarTask.FillMode commandTPSBarProgressFillMode = TPSBarTask.FillMode.MSPT; -@@ -283,6 +296,16 @@ public class PurpurConfig { +@@ -286,6 +299,16 @@ public class PurpurConfig { public static String uptimeSecond = "%02d second"; public static String uptimeSeconds = "%02d seconds"; private static void commandSettings() {