From bd820d931b43c8464744f7113000951d4cd33bc8 Mon Sep 17 00:00:00 2001 From: Ben Kerllenevich Date: Thu, 25 Nov 2021 08:13:15 -0500 Subject: [PATCH] i love doing more patches --- .../0130-Phantom-flames-on-swoop.patch} | 10 +- ...-to-open-even-with-a-solid-block-on.patch} | 6 +- .../0132-Implement-TPSBar.patch} | 30 +- .../0133-Striders-give-saddle-back.patch} | 8 +- .../0134-PlayerBookTooLargeEvent.patch} | 6 +- ...herite-armor-grants-fire-resistance.patch} | 6 +- ...136-Fix-rotating-UP-DOWN-CW-and-CCW.patch} | 14 +- ...efing-bypass-to-everything-affected.patch} | 172 ++++---- ...llow-Note-Block-sounds-when-blocked.patch} | 14 +- ...139-Add-EntityTeleportHinderedEvent.patch} | 24 +- .../0140-Add-StructureGenerateEvent.patch} | 10 +- .../0141-Farmland-trampling-changes.patch} | 6 +- ...2-Movement-options-for-armor-stands.patch} | 14 +- .../0143-Fix-stuck-in-portals.patch} | 10 +- ...ggle-for-water-sensitive-mob-damage.patch} | 400 +++++++++--------- ...5-Config-to-always-tame-in-Creative.patch} | 18 +- .../0146-End-crystal-explosion-options.patch} | 10 +- ...ther-Ender-Dragon-can-ride-vehicles.patch} | 16 +- 18 files changed, 386 insertions(+), 388 deletions(-) rename patches/{unapplied/server/0133-Phantom-flames-on-swoop.patch => server/0130-Phantom-flames-on-swoop.patch} (84%) rename patches/{unapplied/server/0134-Option-for-chests-to-open-even-with-a-solid-block-on.patch => server/0131-Option-for-chests-to-open-even-with-a-solid-block-on.patch} (87%) rename patches/{unapplied/server/0135-Implement-TPSBar.patch => server/0132-Implement-TPSBar.patch} (93%) rename patches/{unapplied/server/0136-Striders-give-saddle-back.patch => server/0133-Striders-give-saddle-back.patch} (88%) rename patches/{unapplied/server/0137-PlayerBookTooLargeEvent.patch => server/0134-PlayerBookTooLargeEvent.patch} (91%) rename patches/{unapplied/server/0138-Full-netherite-armor-grants-fire-resistance.patch => server/0135-Full-netherite-armor-grants-fire-resistance.patch} (93%) rename patches/{unapplied/server/0139-Fix-rotating-UP-DOWN-CW-and-CCW.patch => server/0136-Fix-rotating-UP-DOWN-CW-and-CCW.patch} (75%) rename patches/{unapplied/server/0140-Add-mobGriefing-bypass-to-everything-affected.patch => server/0137-Add-mobGriefing-bypass-to-everything-affected.patch} (87%) rename patches/{unapplied/server/0141-Config-to-allow-Note-Block-sounds-when-blocked.patch => server/0138-Config-to-allow-Note-Block-sounds-when-blocked.patch} (81%) rename patches/{unapplied/server/0142-Add-EntityTeleportHinderedEvent.patch => server/0139-Add-EntityTeleportHinderedEvent.patch} (88%) rename patches/{unapplied/server/0143-Add-StructureGenerateEvent.patch => server/0140-Add-StructureGenerateEvent.patch} (68%) rename patches/{unapplied/server/0144-Farmland-trampling-changes.patch => server/0141-Farmland-trampling-changes.patch} (93%) rename patches/{unapplied/server/0145-Movement-options-for-armor-stands.patch => server/0142-Movement-options-for-armor-stands.patch} (87%) rename patches/{unapplied/server/0146-Fix-stuck-in-portals.patch => server/0143-Fix-stuck-in-portals.patch} (87%) rename patches/{unapplied/server/0147-Toggle-for-water-sensitive-mob-damage.patch => server/0144-Toggle-for-water-sensitive-mob-damage.patch} (88%) rename patches/{unapplied/server/0148-Config-to-always-tame-in-Creative.patch => server/0145-Config-to-always-tame-in-Creative.patch} (88%) rename patches/{unapplied/server/0149-End-crystal-explosion-options.patch => server/0146-End-crystal-explosion-options.patch} (93%) rename patches/{unapplied/server/0150-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch => server/0147-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch} (86%) diff --git a/patches/unapplied/server/0133-Phantom-flames-on-swoop.patch b/patches/server/0130-Phantom-flames-on-swoop.patch similarity index 84% rename from patches/unapplied/server/0133-Phantom-flames-on-swoop.patch rename to patches/server/0130-Phantom-flames-on-swoop.patch index 59a089f59..aa2dbc154 100644 --- a/patches/unapplied/server/0133-Phantom-flames-on-swoop.patch +++ b/patches/server/0130-Phantom-flames-on-swoop.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Phantom flames on swoop 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 789224c6285cde2009e000d98e190c36459f04e8..26ef372ddeb707ad0962297ce736c245f713d9f2 100644 +index edb28f9424af0d1973231729785b6ec67b599dbd..c3fde22e1cf98881da66e70870ced65f0ce0abc3 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java +++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java -@@ -227,6 +227,7 @@ public class Phantom extends FlyingMob implements Enemy { +@@ -226,6 +226,7 @@ public class Phantom extends FlyingMob implements Enemy { this.level.addParticle(ParticleTypes.MYCELIUM, this.getX() - (double) f2, this.getY() + (double) f4, this.getZ() - (double) f3, 0.0D, 0.0D, 0.0D); } @@ -17,10 +17,10 @@ index 789224c6285cde2009e000d98e190c36459f04e8..26ef372ddeb707ad0962297ce736c245 @Override diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 0bf9306bb31e975101dccc3df4c776f16af84391..c9218a478d5955b5add90cf21e2d8df77a0c6e08 100644 +index f690607739f7f040d633dc64632ecd514c5b601e..4f0ae9c4fa903b476e2a6c47632daf52bb0202f5 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1204,6 +1204,7 @@ public class PurpurWorldConfig { +@@ -1180,6 +1180,7 @@ public class PurpurWorldConfig { public float phantomFlameDamage = 1.0F; public int phantomFlameFireTime = 8; public boolean phantomAllowGriefing = false; @@ -28,7 +28,7 @@ index 0bf9306bb31e975101dccc3df4c776f16af84391..c9218a478d5955b5add90cf21e2d8df7 public double phantomMaxHealth = 20.0D; public double phantomAttackedByCrystalRadius = 0.0D; public float phantomAttackedByCrystalDamage = 1.0F; -@@ -1230,6 +1231,7 @@ public class PurpurWorldConfig { +@@ -1206,6 +1207,7 @@ public class PurpurWorldConfig { phantomFlameDamage = (float) getDouble("mobs.phantom.flames.damage", phantomFlameDamage); phantomFlameFireTime = getInt("mobs.phantom.flames.fire-time", phantomFlameFireTime); phantomAllowGriefing = getBoolean("mobs.phantom.allow-griefing", phantomAllowGriefing); diff --git a/patches/unapplied/server/0134-Option-for-chests-to-open-even-with-a-solid-block-on.patch b/patches/server/0131-Option-for-chests-to-open-even-with-a-solid-block-on.patch similarity index 87% rename from patches/unapplied/server/0134-Option-for-chests-to-open-even-with-a-solid-block-on.patch rename to patches/server/0131-Option-for-chests-to-open-even-with-a-solid-block-on.patch index d64c4ee0c..5accd833f 100644 --- a/patches/unapplied/server/0134-Option-for-chests-to-open-even-with-a-solid-block-on.patch +++ b/patches/server/0131-Option-for-chests-to-open-even-with-a-solid-block-on.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Option for chests to open even with a solid block on top diff --git a/src/main/java/net/minecraft/world/level/block/ChestBlock.java b/src/main/java/net/minecraft/world/level/block/ChestBlock.java -index 1891cfb8f7ebae5a95a55f706bb04f8206121d32..5d4c26ca9db5f36626f64ba4b0965a43823c81d3 100644 +index db726697b00afdee6078849fd224263483349912..c808664a67a9604e40ab388c6d0e6ac3c13f57ac 100644 --- a/src/main/java/net/minecraft/world/level/block/ChestBlock.java +++ b/src/main/java/net/minecraft/world/level/block/ChestBlock.java @@ -356,6 +356,7 @@ public class ChestBlock extends AbstractChestBlock implements @@ -17,10 +17,10 @@ index 1891cfb8f7ebae5a95a55f706bb04f8206121d32..5d4c26ca9db5f36626f64ba4b0965a43 return world.getBlockState(blockposition1).isRedstoneConductor(world, blockposition1); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index c9218a478d5955b5add90cf21e2d8df77a0c6e08..27f37620f3eda28bc3a8834fd335aeeac38ccbf5 100644 +index 4f0ae9c4fa903b476e2a6c47632daf52bb0202f5..d887e7db69a7d57ebfe8bfe79d032e83ab70259a 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -442,6 +442,11 @@ public class PurpurWorldConfig { +@@ -418,6 +418,11 @@ public class PurpurWorldConfig { caveVinesMaxGrowthAge = getInt("blocks.cave_vines.max-growth-age", caveVinesMaxGrowthAge); } diff --git a/patches/unapplied/server/0135-Implement-TPSBar.patch b/patches/server/0132-Implement-TPSBar.patch similarity index 93% rename from patches/unapplied/server/0135-Implement-TPSBar.patch rename to patches/server/0132-Implement-TPSBar.patch index 0d269739f..692aa92e9 100644 --- a/patches/unapplied/server/0135-Implement-TPSBar.patch +++ b/patches/server/0132-Implement-TPSBar.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Implement TPSBar diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index 4308cf798c7f97532ee56369a11afe4dbf7a898f..d734addd622f6d429a79df08310bce562db3425e 100644 +index d054bee8c7c6f6bf608252f21b2f5192b59c086c..12f5e8b11fad04a1fec717b68fbbf80efa3705bc 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java -@@ -201,6 +201,7 @@ public class Commands { +@@ -208,6 +208,7 @@ public class Commands { net.pl3x.purpur.command.CreditsCommand.register(this.dispatcher); // Purpur net.pl3x.purpur.command.DemoCommand.register(this.dispatcher); // Purpur net.pl3x.purpur.command.PingCommand.register(this.dispatcher); // Purpur @@ -17,10 +17,10 @@ index 4308cf798c7f97532ee56369a11afe4dbf7a898f..d734addd622f6d429a79df08310bce56 if (environment.includeIntegrated) { diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 688a80485ae28361b993a4de4019ae9794989982..63476c39ca2f78e0e53729325220196be5932dde 100644 +index 5c1d9e9af0efe1b83edf2c47574c67ae8d3c064e..e35b469133dc8bdac02e97f8d0792690e568e31c 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1142,6 +1142,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop cachedSingleHashSet; // Paper -@@ -481,6 +482,7 @@ public class ServerPlayer extends Player { +@@ -477,6 +478,7 @@ public class ServerPlayer extends Player { } } @@ -61,7 +61,7 @@ index d6bea7c9e925bd211b2de4b596dab77fe10d12ac..7fd4daf0382d7a80ca6961dc55f67ba7 } @Override -@@ -541,6 +543,7 @@ public class ServerPlayer extends Player { +@@ -537,6 +539,7 @@ public class ServerPlayer extends Player { } this.getBukkitEntity().setExtraData(nbt); // CraftBukkit @@ -69,7 +69,7 @@ index d6bea7c9e925bd211b2de4b596dab77fe10d12ac..7fd4daf0382d7a80ca6961dc55f67ba7 } // CraftBukkit start - World fallback code, either respawn location or global spawn -@@ -2548,5 +2551,13 @@ public class ServerPlayer extends Player { +@@ -2567,5 +2570,13 @@ public class ServerPlayer extends Player { this.server.getPlayerList().moveToWorld(this, toLevel, true, to, !toLevel.paperConfig.disableTeleportationSuffocationCheck); } } @@ -84,10 +84,10 @@ index d6bea7c9e925bd211b2de4b596dab77fe10d12ac..7fd4daf0382d7a80ca6961dc55f67ba7 // Purpur end } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 5655282578018c00a60d7ddc3fb48393da9cc2ee..4baeaf922b8529e7fb4a44fff9428a77e2ea78de 100644 +index 122b6f4fd8334483d32dbe353c273dbec14086aa..e4e7049e9e9739b5f5035319640eb04642adcb05 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -483,6 +483,7 @@ public abstract class PlayerList { +@@ -482,6 +482,7 @@ public abstract class PlayerList { scoreboard.addPlayerToTeam(player.getScoreboardName(), collideRuleTeam); } // Paper end @@ -95,9 +95,9 @@ index 5655282578018c00a60d7ddc3fb48393da9cc2ee..4baeaf922b8529e7fb4a44fff9428a77 // CraftBukkit - Moved from above, added world PlayerList.LOGGER.info("{}[{}] logged in with entity id {} at ([{}]{}, {}, {})", player.getName().getString(), s1, player.getId(), worldserver1.serverLevelData.getLevelName(), player.getX(), player.getY(), player.getZ()); } -@@ -593,6 +594,8 @@ public abstract class PlayerList { +@@ -592,6 +593,8 @@ public abstract class PlayerList { } - public net.kyori.adventure.text.Component disconnect(ServerPlayer entityplayer, net.kyori.adventure.text.Component leaveMessage) { + public net.kyori.adventure.text.Component remove(ServerPlayer entityplayer, net.kyori.adventure.text.Component leaveMessage) { // Paper end + net.pl3x.purpur.task.BossBarTask.removeFromAll(entityplayer.getBukkitEntity()); // Purpur + diff --git a/patches/unapplied/server/0136-Striders-give-saddle-back.patch b/patches/server/0133-Striders-give-saddle-back.patch similarity index 88% rename from patches/unapplied/server/0136-Striders-give-saddle-back.patch rename to patches/server/0133-Striders-give-saddle-back.patch index 0857c97e9..54f1ba378 100644 --- a/patches/unapplied/server/0136-Striders-give-saddle-back.patch +++ b/patches/server/0133-Striders-give-saddle-back.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Striders give saddle back diff --git a/src/main/java/net/minecraft/world/entity/monster/Strider.java b/src/main/java/net/minecraft/world/entity/monster/Strider.java -index 22ce93fd265d3fa9967e6467301e8128635f2391..762542252e59da20f284dde2545889da3340454e 100644 +index 672801ab77a10917147f12b2117a3390885b39b0..b4f7d6f4b7e6f6d5fe9e472f1723430c3301378b 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Strider.java +++ b/src/main/java/net/minecraft/world/entity/monster/Strider.java @@ -451,6 +451,18 @@ public class Strider extends Animal implements ItemSteerable, Saddleable { @@ -28,10 +28,10 @@ index 22ce93fd265d3fa9967e6467301e8128635f2391..762542252e59da20f284dde2545889da } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 27f37620f3eda28bc3a8834fd335aeeac38ccbf5..af48e54639b412feb8dee36705d0aa8980b7ea53 100644 +index d887e7db69a7d57ebfe8bfe79d032e83ab70259a..cd850ceadc6fa6c9fd1747925ecedebf1c482067 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1579,6 +1579,7 @@ public class PurpurWorldConfig { +@@ -1555,6 +1555,7 @@ public class PurpurWorldConfig { public boolean striderRidableInWater = false; public double striderMaxHealth = 20.0D; public int striderBreedingTicks = 6000; @@ -39,7 +39,7 @@ index 27f37620f3eda28bc3a8834fd335aeeac38ccbf5..af48e54639b412feb8dee36705d0aa89 private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -1589,6 +1590,7 @@ public class PurpurWorldConfig { +@@ -1565,6 +1566,7 @@ public class PurpurWorldConfig { } striderMaxHealth = getDouble("mobs.strider.attributes.max_health", striderMaxHealth); striderBreedingTicks = getInt("mobs.strider.breeding-delay-ticks", striderBreedingTicks); diff --git a/patches/unapplied/server/0137-PlayerBookTooLargeEvent.patch b/patches/server/0134-PlayerBookTooLargeEvent.patch similarity index 91% rename from patches/unapplied/server/0137-PlayerBookTooLargeEvent.patch rename to patches/server/0134-PlayerBookTooLargeEvent.patch index 7f9b86159..594402ad3 100644 --- a/patches/unapplied/server/0137-PlayerBookTooLargeEvent.patch +++ b/patches/server/0134-PlayerBookTooLargeEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] PlayerBookTooLargeEvent diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index ba6a674c2b18108390c7b9d2bb313a603d9909b4..2b323d2b59853c738f482c7025b1a026e1f8e1d2 100644 +index 3e5bb0075766c826995807b4b16cf12f3b06a755..def90885f40df7a7d3487dc7bca18de951875cba 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1141,10 +1141,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -1107,10 +1107,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser int maxBookPageSize = com.destroystokyo.paper.PaperConfig.maxBookPageSize; double multiplier = Math.max(0.3D, Math.min(1D, com.destroystokyo.paper.PaperConfig.maxBookTotalSizeMultiplier)); long byteAllowed = maxBookPageSize; @@ -21,7 +21,7 @@ index ba6a674c2b18108390c7b9d2bb313a603d9909b4..2b323d2b59853c738f482c7025b1a026 server.scheduleOnMain(() -> this.disconnect("Book too large!", org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION)); // Paper - kick event cause return; } -@@ -1168,6 +1170,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -1134,6 +1136,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser if (byteTotal > byteAllowed) { ServerGamePacketListenerImpl.LOGGER.warn(this.player.getScoreboardName() + " tried to send too large of a book. Book Size: " + byteTotal + " - Allowed: "+ byteAllowed + " - Pages: " + pageList.size()); diff --git a/patches/unapplied/server/0138-Full-netherite-armor-grants-fire-resistance.patch b/patches/server/0135-Full-netherite-armor-grants-fire-resistance.patch similarity index 93% rename from patches/unapplied/server/0138-Full-netherite-armor-grants-fire-resistance.patch rename to patches/server/0135-Full-netherite-armor-grants-fire-resistance.patch index 00af72486..a9f3db3ba 100644 --- a/patches/unapplied/server/0138-Full-netherite-armor-grants-fire-resistance.patch +++ b/patches/server/0135-Full-netherite-armor-grants-fire-resistance.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Full netherite armor grants fire resistance diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index f991ed65d27d15a6eb32533f32da0bb9b69f331d..6423f422d4eca56cd8cbdd9c23925ce703b426f5 100644 +index 42becbb21eee4e1b0a14e2fc3e226f0de26c96b1..0a8c8a24af17262be3e656042dc5c8bce9364e8a 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -359,6 +359,16 @@ public abstract class Player extends LivingEntity { +@@ -357,6 +357,16 @@ public abstract class Player extends LivingEntity { this.addEffect(new MobEffectInstance(MobEffects.WATER_BREATHING, 200, 0, false, false, true), org.bukkit.event.entity.EntityPotionEffectEvent.Cause.TURTLE_HELMET); // CraftBukkit } @@ -26,7 +26,7 @@ index f991ed65d27d15a6eb32533f32da0bb9b69f331d..6423f422d4eca56cd8cbdd9c23925ce7 protected ItemCooldowns createItemCooldowns() { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index af48e54639b412feb8dee36705d0aa8980b7ea53..ae252c66d4319fa4a581f1da9ec926de646a5aa0 100644 +index cd850ceadc6fa6c9fd1747925ecedebf1c482067..6b5c8fd51c4fd991362c4f97e42e1370b146786c 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -267,6 +267,19 @@ public class PurpurWorldConfig { diff --git a/patches/unapplied/server/0139-Fix-rotating-UP-DOWN-CW-and-CCW.patch b/patches/server/0136-Fix-rotating-UP-DOWN-CW-and-CCW.patch similarity index 75% rename from patches/unapplied/server/0139-Fix-rotating-UP-DOWN-CW-and-CCW.patch rename to patches/server/0136-Fix-rotating-UP-DOWN-CW-and-CCW.patch index 4f6572695..b962566bc 100644 --- a/patches/unapplied/server/0139-Fix-rotating-UP-DOWN-CW-and-CCW.patch +++ b/patches/server/0136-Fix-rotating-UP-DOWN-CW-and-CCW.patch @@ -5,13 +5,13 @@ Subject: [PATCH] Fix rotating UP/DOWN CW and CCW diff --git a/src/main/java/net/minecraft/core/Direction.java b/src/main/java/net/minecraft/core/Direction.java -index 593d6251c75ec337175d08b85000239ba7da1af2..c040c9ce886f9970a70867344fd0e0b226d3ff9f 100644 +index 6d883db5c04cbcf454952c0f361029ecbfe4f037..8aeec2132138bf4b19a9042340c8784df4afda65 100644 --- a/src/main/java/net/minecraft/core/Direction.java +++ b/src/main/java/net/minecraft/core/Direction.java -@@ -235,6 +235,12 @@ public enum Direction implements StringRepresentable { - return NORTH; +@@ -247,6 +247,12 @@ public enum Direction implements StringRepresentable { case EAST: - return SOUTH; + var10000 = SOUTH; + break; + // Purpur start + case UP: + return UP; @@ -21,10 +21,10 @@ index 593d6251c75ec337175d08b85000239ba7da1af2..c040c9ce886f9970a70867344fd0e0b2 default: throw new IllegalStateException("Unable to get Y-rotated facing of " + this); } -@@ -314,6 +320,12 @@ public enum Direction implements StringRepresentable { - return SOUTH; +@@ -359,6 +365,12 @@ public enum Direction implements StringRepresentable { case EAST: - return NORTH; + var10000 = NORTH; + break; + // Purpur start + case UP: + return UP; diff --git a/patches/unapplied/server/0140-Add-mobGriefing-bypass-to-everything-affected.patch b/patches/server/0137-Add-mobGriefing-bypass-to-everything-affected.patch similarity index 87% rename from patches/unapplied/server/0140-Add-mobGriefing-bypass-to-everything-affected.patch rename to patches/server/0137-Add-mobGriefing-bypass-to-everything-affected.patch index b7800242f..6a7d12b8c 100644 --- a/patches/unapplied/server/0140-Add-mobGriefing-bypass-to-everything-affected.patch +++ b/patches/server/0137-Add-mobGriefing-bypass-to-everything-affected.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add mobGriefing bypass to everything affected diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index f23b12206e762a52879ba800353638b536e3a2f1..2cb9c2f03139ba79014eed078967d74845fd0fb8 100644 +index 4904abec73580eee50c12a8edcb6e743805b018e..e0c5947610ab711024c0ef6346f2ca9a87701139 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -1682,7 +1682,7 @@ public abstract class LivingEntity extends Entity { +@@ -1677,7 +1677,7 @@ public abstract class LivingEntity extends Entity { boolean flag = false; if (this.dead && adversary instanceof WitherBoss) { // Paper @@ -18,10 +18,10 @@ index f23b12206e762a52879ba800353638b536e3a2f1..2cb9c2f03139ba79014eed078967d748 BlockState iblockdata = Blocks.WITHER_ROSE.defaultBlockState(); diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 48fae807359382fd178bad91fc9cab9bba858dec..aa962aa9a390eb22aaac684278d9a5cdec43e767 100644 +index 6a8347ceefd663066de5887fef8ebc82b30a1b93..95c765ce622da83cfdff655ca746468fce37a491 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java -@@ -661,7 +661,7 @@ public abstract class Mob extends LivingEntity { +@@ -664,7 +664,7 @@ public abstract class Mob extends LivingEntity { public void aiStep() { super.aiStep(); this.level.getProfiler().push("looting"); @@ -31,7 +31,7 @@ index 48fae807359382fd178bad91fc9cab9bba858dec..aa962aa9a390eb22aaac684278d9a5cd Iterator iterator = list.iterator(); diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java b/src/main/java/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java -index 8d6d47456ce6f9870f1a682665780a301b92fec5..b67b877e3fa9c00a0b88dbe3e8b0f0e9702537ed 100644 +index 7d4457da2fe82ebe91b99cf91ae5e70b491d34e7..f4c1b7ad19cb7c9c81ab9f277751024c21bcb573 100644 --- a/src/main/java/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java +++ b/src/main/java/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java @@ -41,7 +41,7 @@ public class HarvestFarmland extends Behavior { @@ -57,7 +57,7 @@ index fe045f8e35fe2aac51032a67ce52b27a53a8eff0..56d2849276b322436544512521e3b4ea @Override diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/EatBlockGoal.java b/src/main/java/net/minecraft/world/entity/ai/goal/EatBlockGoal.java -index 0b745cdb751530794bf9d988c37aff17e2999114..044b2d63cbe95ac47dd1e2aa0786017dfbf3e831 100644 +index 14ed3f0524773e22a792efb8b41a9217bad50f27..8a4080a77bd5b73ac812e3ae67c6f21dcd270215 100644 --- a/src/main/java/net/minecraft/world/entity/ai/goal/EatBlockGoal.java +++ b/src/main/java/net/minecraft/world/entity/ai/goal/EatBlockGoal.java @@ -70,7 +70,7 @@ public class EatBlockGoal extends Goal { @@ -73,13 +73,13 @@ index 0b745cdb751530794bf9d988c37aff17e2999114..044b2d63cbe95ac47dd1e2aa0786017d if (this.level.getBlockState(blockposition1).is(Blocks.GRASS_BLOCK)) { // CraftBukkit -- if (!CraftEventFactory.callEntityChangeBlockEvent(this.mob, blockposition, Blocks.AIR.defaultBlockState(), !this.level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING)).isCancelled()) { -+ if (!CraftEventFactory.callEntityChangeBlockEvent(this.mob, blockposition, Blocks.AIR.defaultBlockState(), !this.level.purpurConfig.sheepBypassMobGriefing && !this.level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING)).isCancelled()) { // Purpur +- if (!CraftEventFactory.callEntityChangeBlockEvent(this.mob, blockposition1, Blocks.AIR.defaultBlockState(), !this.level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING)).isCancelled()) { ++ if (!CraftEventFactory.callEntityChangeBlockEvent(this.mob, blockposition1, Blocks.AIR.defaultBlockState(), !this.level.purpurConfig.sheepBypassMobGriefing && !this.level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING)).isCancelled()) { // Purpur this.level.levelEvent(2001, blockposition1, Block.getId(Blocks.GRASS_BLOCK.defaultBlockState())); this.level.setBlock(blockposition1, Blocks.DIRT.defaultBlockState(), 2); } diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/RemoveBlockGoal.java b/src/main/java/net/minecraft/world/entity/ai/goal/RemoveBlockGoal.java -index ac5779319081a6894373877067edf958da8a9cf5..24227a18ea1d0c06e2049542c8ca9c82ec7ce046 100644 +index a618b50ac8448528ac6ac64b400fa3d0882dbaf9..7ca4e20ec53408573921bed07dd81849abd62227 100644 --- a/src/main/java/net/minecraft/world/entity/ai/goal/RemoveBlockGoal.java +++ b/src/main/java/net/minecraft/world/entity/ai/goal/RemoveBlockGoal.java @@ -40,7 +40,7 @@ public class RemoveBlockGoal extends MoveToBlockGoal { @@ -92,10 +92,10 @@ index ac5779319081a6894373877067edf958da8a9cf5..24227a18ea1d0c06e2049542c8ca9c82 } else if (this.nextStartTick > 0) { --this.nextStartTick; diff --git a/src/main/java/net/minecraft/world/entity/animal/Fox.java b/src/main/java/net/minecraft/world/entity/animal/Fox.java -index 03e75add762b19170e95d1b280f92e79f2f8f9bf..091177ac2a5995b9f6f0b5245e8eabefd4ed86d6 100644 +index 856e348b45fcaf8fc1710cd7382eb6ac10424fb8..1daccbc51b6ec635130932995350eb0de8abe0a3 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Fox.java +++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java -@@ -1346,7 +1346,7 @@ public class Fox extends Animal { +@@ -1356,7 +1356,7 @@ public class Fox extends Animal { } protected void onReachedTarget() { @@ -105,7 +105,7 @@ index 03e75add762b19170e95d1b280f92e79f2f8f9bf..091177ac2a5995b9f6f0b5245e8eabef if (iblockdata.is(Blocks.SWEET_BERRY_BUSH)) { diff --git a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java -index e7adecb2324efaedd6aad3aa1213d53765b09b7e..74ee531befc67495e18d4b97a4e4b14e51830de5 100644 +index b4314eb2b69dd56176bb33972181fe75c03b90bd..d7fbe9322ae22274c37e8b36500d993eab5bf397 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java +++ b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java @@ -611,7 +611,7 @@ public class Rabbit extends Animal { @@ -118,10 +118,10 @@ index e7adecb2324efaedd6aad3aa1213d53765b09b7e..74ee531befc67495e18d4b97a4e4b14e } diff --git a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java -index 3ea3085d9b4256c1a37c99e79550f9773e8c0f71..c931bf7ec3c58eae012bbadb9d3e9fef69b3fc79 100644 +index 093211be0d86cc114cbb109d7ba01f491d7954b1..af4db007807d94888fa945d9d43785b74bee2b67 100644 --- a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java +++ b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java -@@ -125,7 +125,7 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM +@@ -128,7 +128,7 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM this.hurt(CraftEventFactory.MELTING, 1.0F); // CraftBukkit - DamageSource.BURN -> CraftEventFactory.MELTING } @@ -131,7 +131,7 @@ index 3ea3085d9b4256c1a37c99e79550f9773e8c0f71..c931bf7ec3c58eae012bbadb9d3e9fef } diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java -index f637cd740ec3801ce1c387473b5c4ff6080e76ec..3247f3f3c9d53953f8268c8f9575275126cf33a3 100644 +index e29fe6939d59a58093ddfbdf9b274469c5e25756..6ba83c938456dc79c8cd948ae981c6f2e93702ae 100644 --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java @@ -560,7 +560,7 @@ public class EnderDragon extends Mob implements Enemy { @@ -141,22 +141,22 @@ index f637cd740ec3801ce1c387473b5c4ff6080e76ec..3247f3f3c9d53953f8268c8f95752751 - if (this.level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING) && !iblockdata.is((Tag) BlockTags.DRAGON_IMMUNE)) { + if ((this.level.purpurConfig.enderDragonBypassMobGriefing || this.level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING)) && !iblockdata.is((Tag) BlockTags.DRAGON_IMMUNE)) { // Purpur // CraftBukkit start - Add blocks to list rather than destroying them - // flag1 = this.level.a(blockposition, false) || flag1; + // flag1 = this.level.removeBlock(blockposition, false) || flag1; flag1 = true; 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 ff71f78497681805246d7b3e4ac59288db9af997..4407c9f25e88a3685c6e9f8c7775d3011b38fff2 100644 +index 10883671cb28e579445f17c7ed729a0edb987bac..c935177150c8270329dbf7cc43da31c603555c52 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 -@@ -375,7 +375,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob +@@ -386,7 +386,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob i = this.getInvulnerableTicks() - 1; this.bossEvent.setProgress(1.0F - (float) i / 220.0F); if (i <= 0) { - Explosion.BlockInteraction explosion_effect = this.level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING) ? Explosion.BlockInteraction.DESTROY : Explosion.BlockInteraction.NONE; + Explosion.BlockInteraction explosion_effect = (this.level.purpurConfig.witherBypassMobGriefing || this.level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING)) ? Explosion.BlockInteraction.DESTROY : Explosion.BlockInteraction.NONE; // Purpur // CraftBukkit start - // this.world.createExplosion(this, this.locX(), this.getHeadY(), this.locZ(), 7.0F, false, explosion_effect); + // this.level.explode(this, this.getX(), this.getEyeY(), this.getZ(), 7.0F, false, explosion_effect); ExplosionPrimeEvent event = new ExplosionPrimeEvent(this.getBukkitEntity(), 7.0F, false); -@@ -471,7 +471,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob +@@ -482,7 +482,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob if (this.destroyBlocksTick > 0) { --this.destroyBlocksTick; @@ -166,7 +166,7 @@ index ff71f78497681805246d7b3e4ac59288db9af997..4407c9f25e88a3685c6e9f8c7775d301 j = Mth.floor(this.getX()); int i1 = Mth.floor(this.getZ()); diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java -index 96858c10ad219a47187d3008387355f1bcfdc789..aea8de335294320e3734bea4fbc4bab91d1de59a 100644 +index f7b1d2cb0ba544aa4aec7d87d21335e9fcca6127..d06bba26db491950588d8b7ef356156663972e4f 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java +++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java @@ -344,7 +344,7 @@ public class Creeper extends Monster implements PowerableMob { @@ -179,32 +179,32 @@ index 96858c10ad219a47187d3008387355f1bcfdc789..aea8de335294320e3734bea4fbc4bab9 // CraftBukkit start 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 9003af124953bf6fb12e8bff8e10d5aa0a7f9fc1..2aa05aa9e7a12eea582c05c141f08fc6e2b82053 100644 +index 28d2ccc6b29b17a99a2828d044259adafa10922c..be620f9f305aad756bb5b932764aaf24baebda55 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java -@@ -476,7 +476,7 @@ public class EnderMan extends Monster implements NeutralMob { +@@ -501,7 +501,7 @@ public class EnderMan extends Monster implements NeutralMob { @Override public boolean canUse() { if (!enderman.level.purpurConfig.endermanAllowGriefing) return false; // Purpur -- return this.enderman.getCarriedBlock() == null ? false : (!this.enderman.level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING) ? false : this.enderman.getRandom().nextInt(2000) == 0); -+ return this.enderman.getCarriedBlock() != null ? false : (!this.enderman.level.purpurConfig.endermanBypassMobGriefing && !this.enderman.level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING) ? false : this.enderman.getRandom().nextInt(2000) == 0); // Purpur +- return this.enderman.getCarriedBlock() == null ? false : (!this.enderman.level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING) ? false : this.enderman.getRandom().nextInt(reducedTickDelay(2000)) == 0); ++ return this.enderman.getCarriedBlock() != null ? false : (!this.enderman.level.purpurConfig.endermanBypassMobGriefing && !this.enderman.level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING) ? false : this.enderman.getRandom().nextInt(reducedTickDelay(2000)) == 0); // Purpur } @Override -@@ -524,7 +524,7 @@ public class EnderMan extends Monster implements NeutralMob { +@@ -549,7 +549,7 @@ public class EnderMan extends Monster implements NeutralMob { @Override public boolean canUse() { if (!enderman.level.purpurConfig.endermanAllowGriefing) return false; // Purpur -- return this.enderman.getCarriedBlock() != null ? false : (!this.enderman.level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING) ? false : this.enderman.getRandom().nextInt(20) == 0); -+ return this.enderman.getCarriedBlock() == null ? false : (!this.enderman.level.purpurConfig.endermanBypassMobGriefing && !this.enderman.level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING) ? false : this.enderman.getRandom().nextInt(2000) == 0); // Purpur +- return this.enderman.getCarriedBlock() != null ? false : (!this.enderman.level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING) ? false : this.enderman.getRandom().nextInt(reducedTickDelay(20)) == 0); ++ return this.enderman.getCarriedBlock() == null ? false : (!this.enderman.level.purpurConfig.endermanBypassMobGriefing && !this.enderman.level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING) ? false : this.enderman.getRandom().nextInt(reducedTickDelay(2000)) == 0); // Purpur } @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Evoker.java b/src/main/java/net/minecraft/world/entity/monster/Evoker.java -index 9e50cf5d5b48718b1f8ff74c4de891172970ac12..78b2350a09eef0537742af429cfa5f022fc92ad3 100644 +index f879bfa65b266728b570725e1ff9403f1732244d..e55cc17687247de4817939cd2d73ef667d946ca3 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Evoker.java +++ b/src/main/java/net/minecraft/world/entity/monster/Evoker.java -@@ -316,7 +316,7 @@ public class Evoker extends SpellcasterIllager { +@@ -317,7 +317,7 @@ public class Evoker extends SpellcasterIllager { return false; } else if (Evoker.this.tickCount < this.nextAttackTickCount) { return false; @@ -214,10 +214,10 @@ index 9e50cf5d5b48718b1f8ff74c4de891172970ac12..78b2350a09eef0537742af429cfa5f02 } else { List list = Evoker.this.level.getNearbyEntities(Sheep.class, this.wololoTargeting, Evoker.this, Evoker.this.getBoundingBox().inflate(16.0D, 4.0D, 16.0D)); diff --git a/src/main/java/net/minecraft/world/entity/monster/Ravager.java b/src/main/java/net/minecraft/world/entity/monster/Ravager.java -index 13f4b6d17312dd7379875eb56049c87c10deae88..1148cd343f9931848b5119d8bddc9b5218d67490 100644 +index c1eea7e71aa364789a544e6491b2201bcb6a37c8..5eb9e19531c5c996dd669f6e430b0dfb3d94928a 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Ravager.java +++ b/src/main/java/net/minecraft/world/entity/monster/Ravager.java -@@ -184,7 +184,7 @@ public class Ravager extends Raider { +@@ -185,7 +185,7 @@ public class Ravager extends Raider { this.getAttribute(Attributes.MOVEMENT_SPEED).setBaseValue(Mth.lerp(0.1D, d1, d0)); } @@ -227,10 +227,10 @@ index 13f4b6d17312dd7379875eb56049c87c10deae88..1148cd343f9931848b5119d8bddc9b52 AABB axisalignedbb = this.getBoundingBox().inflate(0.2D); Iterator iterator = BlockPos.betweenClosed(Mth.floor(axisalignedbb.minX), Mth.floor(axisalignedbb.minY), Mth.floor(axisalignedbb.minZ), Mth.floor(axisalignedbb.maxX), Mth.floor(axisalignedbb.maxY), Mth.floor(axisalignedbb.maxZ)).iterator(); diff --git a/src/main/java/net/minecraft/world/entity/monster/Silverfish.java b/src/main/java/net/minecraft/world/entity/monster/Silverfish.java -index 1c523c384668b483ba0211c413ade7b87c7ca16a..9caf164f1b68034dd36671e94c9b60e225bde691 100644 +index 3481a2e178e5c101b6038e6506933d50861c3f9d..d215d8eff468c8bab9db160ea2b3fa1e6749d1a3 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Silverfish.java +++ b/src/main/java/net/minecraft/world/entity/monster/Silverfish.java -@@ -195,7 +195,7 @@ public class Silverfish extends Monster { +@@ -197,7 +197,7 @@ public class Silverfish extends Monster { continue; } // CraftBukkit end @@ -239,20 +239,20 @@ index 1c523c384668b483ba0211c413ade7b87c7ca16a..9caf164f1b68034dd36671e94c9b60e2 world.destroyBlock(blockposition1, true, this.silverfish); } else { world.setBlock(blockposition1, ((InfestedBlock) block).hostStateByInfested(world.getBlockState(blockposition1)), 3); -@@ -232,7 +232,7 @@ public class Silverfish extends Monster { +@@ -235,7 +235,7 @@ public class Silverfish extends Monster { } else { Random random = this.mob.getRandom(); -- if (this.mob.level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING) && random.nextInt(10) == 0) { -+ if ((this.mob.level.purpurConfig.silverfishBypassMobGriefing || this.mob.level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING)) && random.nextInt(10) == 0) { // Purpur +- if (this.mob.level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING) && random.nextInt(reducedTickDelay(10)) == 0) { ++ if ((this.mob.level.purpurConfig.silverfishBypassMobGriefing || this.mob.level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING)) && random.nextInt(reducedTickDelay(10)) == 0) { // Purpur this.selectedDirection = Direction.getRandom(random); BlockPos blockposition = (new BlockPos(this.mob.getX(), this.mob.getY() + 0.5D, this.mob.getZ())).relative(this.selectedDirection); BlockState iblockdata = this.mob.level.getBlockState(blockposition); diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java -index 89a72027efd11ce261d365db037fd1b856d08184..4be9326344893256cbc01fdb599f859aaf86a0a4 100644 +index 86a9800276648c094c688d6dbedd51657e642df5..6beb798df62223fe653afa0f34e4a43d6cff11b7 100644 --- a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java -@@ -407,7 +407,7 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento +@@ -406,7 +406,7 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento @Override public boolean wantsToPickUp(ItemStack stack) { @@ -290,7 +290,7 @@ index e69213b43c8aa5a7c04add7a87482d531fbf52d2..f51ea103238b4a50439f5162a248cd9a // CraftBukkit start - fire ExplosionPrimeEvent ExplosionPrimeEvent event = new ExplosionPrimeEvent((org.bukkit.entity.Explosive) this.getBukkitEntity()); diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java -index 343f186136abba95cb36876969f9492b5994f802..50901b7a80c26b87be18d0a337d2a8ad95d4d7d5 100644 +index edc4fc597d60e6125d44023085e993db2e96c4ef..2771e600d46195e8170b2bde57c523c2bcbadf5a 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java +++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java @@ -290,6 +290,6 @@ public abstract class Projectile extends Entity { @@ -302,10 +302,10 @@ index 343f186136abba95cb36876969f9492b5994f802..50901b7a80c26b87be18d0a337d2a8ad } } diff --git a/src/main/java/net/minecraft/world/entity/projectile/SmallFireball.java b/src/main/java/net/minecraft/world/entity/projectile/SmallFireball.java -index a6d75f20d6b7679d53c3c081c6632e9c303e2d74..af130b70b073939ceef70fa1b72841c511203dfc 100644 +index 226b33921c90ca3904a7397a68dc8169948f8faa..e2a652277f2a63e0f0501db4137d7813e2d603c4 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/SmallFireball.java +++ b/src/main/java/net/minecraft/world/entity/projectile/SmallFireball.java -@@ -25,7 +25,7 @@ public class SmallFireball extends Fireball { +@@ -24,7 +24,7 @@ public class SmallFireball extends Fireball { super(EntityType.SMALL_FIREBALL, owner, velocityX, velocityY, velocityZ, world); // CraftBukkit start if (this.getOwner() != null && this.getOwner() instanceof Mob) { @@ -315,7 +315,7 @@ index a6d75f20d6b7679d53c3c081c6632e9c303e2d74..af130b70b073939ceef70fa1b72841c5 // CraftBukkit end } diff --git a/src/main/java/net/minecraft/world/entity/projectile/WitherSkull.java b/src/main/java/net/minecraft/world/entity/projectile/WitherSkull.java -index 46b74271ce5f614f07754db14d2a552c36f73226..430aa10101d9f21561155941ff24441fd0c4103a 100644 +index 8613008090a9d7cf5cd7c2a598f2c725b5b0cdc6..a66e9826b8283366cec5adb54f79efee47d9df22 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/WitherSkull.java +++ b/src/main/java/net/minecraft/world/entity/projectile/WitherSkull.java @@ -93,7 +93,7 @@ public class WitherSkull extends AbstractHurtingProjectile { @@ -328,10 +328,10 @@ index 46b74271ce5f614f07754db14d2a552c36f73226..430aa10101d9f21561155941ff24441f // CraftBukkit start // this.level.createExplosion(this, this.locX(), this.locY(), this.locZ(), 1.0F, false, explosion_effect); diff --git a/src/main/java/net/minecraft/world/entity/raid/Raider.java b/src/main/java/net/minecraft/world/entity/raid/Raider.java -index 54b5cfa35e5fe9138d39a73f2085f594f1987cda..4efc0870fadc291260491b9cc4e048916633185f 100644 +index 039544609aa4fd2f5ab5075792a2e51ef315dc37..eeeef593d0dc075ded76d7d30b76fcfc8ffcb294 100644 --- a/src/main/java/net/minecraft/world/entity/raid/Raider.java +++ b/src/main/java/net/minecraft/world/entity/raid/Raider.java -@@ -314,7 +314,7 @@ public abstract class Raider extends PatrollingMonster { +@@ -313,7 +313,7 @@ public abstract class Raider extends PatrollingMonster { @Override public boolean canUse() { @@ -341,7 +341,7 @@ index 54b5cfa35e5fe9138d39a73f2085f594f1987cda..4efc0870fadc291260491b9cc4e04891 if (this.mob.hasActiveRaid() && !this.mob.getCurrentRaid().isOver() && this.mob.canBeLeader() && !ItemStack.matches(this.mob.getItemBySlot(EquipmentSlot.HEAD), Raid.getLeaderBannerInstance())) { diff --git a/src/main/java/net/minecraft/world/level/block/CropBlock.java b/src/main/java/net/minecraft/world/level/block/CropBlock.java -index 6dda5eeca4e310eceb2598322803bfafc184e9c7..3c51e6d419a244b9270119590aa299527163c331 100644 +index b4fd9af8805f451c87a91f319c15fa132b91faf7..e9087a46e401bc99b73c2cf2731fdac3e68719f8 100644 --- a/src/main/java/net/minecraft/world/level/block/CropBlock.java +++ b/src/main/java/net/minecraft/world/level/block/CropBlock.java @@ -164,7 +164,7 @@ public class CropBlock extends BushBlock implements BonemealableBlock { @@ -354,7 +354,7 @@ index 6dda5eeca4e310eceb2598322803bfafc184e9c7..3c51e6d419a244b9270119590aa29952 } diff --git a/src/main/java/net/minecraft/world/level/block/FarmBlock.java b/src/main/java/net/minecraft/world/level/block/FarmBlock.java -index e0ef42c2613374bedc8eb114aef7dd2aaeebb7b7..e06a8a68ccb9c9a77df061264e58fd850cf1f794 100644 +index 56233465693943e0fdb998e44a34f8029e3928cb..caf40e3df0896492be959f9e0bcfb1fad0bfa2ef 100644 --- a/src/main/java/net/minecraft/world/level/block/FarmBlock.java +++ b/src/main/java/net/minecraft/world/level/block/FarmBlock.java @@ -99,7 +99,7 @@ public class FarmBlock extends Block { @@ -367,10 +367,10 @@ index e0ef42c2613374bedc8eb114aef7dd2aaeebb7b7..e06a8a68ccb9c9a77df061264e58fd85 org.bukkit.event.Cancellable cancellable; if (entity instanceof Player) { diff --git a/src/main/java/net/minecraft/world/level/block/PowderSnowBlock.java b/src/main/java/net/minecraft/world/level/block/PowderSnowBlock.java -index 1187a7382b8849524f99bbd8d12b43677f1053cd..ddce552c4374715e9652cfda3622b70d9be854f9 100644 +index 5e22a1cd1a0902d63f091bbfb8ae518b12c66f09..8fad9dfd25794c4f202e2104e4ae32b0c436f438 100644 --- a/src/main/java/net/minecraft/world/level/block/PowderSnowBlock.java +++ b/src/main/java/net/minecraft/world/level/block/PowderSnowBlock.java -@@ -71,7 +71,7 @@ public class PowderSnowBlock extends Block implements BucketPickup { +@@ -72,7 +72,7 @@ public class PowderSnowBlock extends Block implements BucketPickup { if (!world.isClientSide) { // CraftBukkit start if (entity.isOnFire() && entity.mayInteract(world, pos)) { @@ -380,7 +380,7 @@ index 1187a7382b8849524f99bbd8d12b43677f1053cd..ddce552c4374715e9652cfda3622b70d } // CraftBukkit end diff --git a/src/main/java/net/minecraft/world/level/block/TurtleEggBlock.java b/src/main/java/net/minecraft/world/level/block/TurtleEggBlock.java -index e98fc3c235f9160f1928a8afb0d7991a6d3430cb..db35f756b7adb6b113659ae13b08ab8921944c21 100644 +index b942e7c85e6c8f9a7664d9e5bf93bcd79e0651f1..5b29f3fced5435e172dd69f6f4eb265e760b6454 100644 --- a/src/main/java/net/minecraft/world/level/block/TurtleEggBlock.java +++ b/src/main/java/net/minecraft/world/level/block/TurtleEggBlock.java @@ -205,7 +205,7 @@ public class TurtleEggBlock extends Block { @@ -393,36 +393,34 @@ index e98fc3c235f9160f1928a8afb0d7991a6d3430cb..db35f756b7adb6b113659ae13b08ab89 return true; // Purpur end diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index ae252c66d4319fa4a581f1da9ec926de646a5aa0..c73c77a22317631da7f8f52037103744bf9b8024 100644 +index 6b5c8fd51c4fd991362c4f97e42e1370b146786c..f38b05448019805fd07f462e910c805cdffed219 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -381,9 +381,12 @@ public class PurpurWorldConfig { +@@ -381,8 +381,11 @@ public class PurpurWorldConfig { public boolean boatsDoFallDamage = true; public boolean disableDropsOnCrammingDeath = false; public boolean entitiesCanUsePortals = true; + public boolean entitiesPickUpLootBypassMobGriefing = false; + public boolean fireballsBypassMobGriefing = false; public boolean milkCuresBadOmen = true; - public boolean persistentTileEntityDisplayNames = false; public boolean persistentDroppableEntityDisplayNames = false; + public boolean projectilesBypassMobGriefing = false; public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; public double voidDamageDealt = 4.0D; -@@ -395,9 +398,12 @@ public class PurpurWorldConfig { +@@ -394,8 +397,11 @@ public class PurpurWorldConfig { boatsDoFallDamage = getBoolean("gameplay-mechanics.boat.do-fall-damage", boatsDoFallDamage); disableDropsOnCrammingDeath = getBoolean("gameplay-mechanics.disable-drops-on-cramming-death", disableDropsOnCrammingDeath); entitiesCanUsePortals = getBoolean("gameplay-mechanics.entities-can-use-portals", entitiesCanUsePortals); + entitiesPickUpLootBypassMobGriefing = getBoolean("gameplay-mechanics.entities-pick-up-loot-bypass-mob-griefing", entitiesPickUpLootBypassMobGriefing); + fireballsBypassMobGriefing = getBoolean("gameplay-mechanics.fireballs-bypass-mob-griefing", fireballsBypassMobGriefing); milkCuresBadOmen = getBoolean("gameplay-mechanics.milk-cures-bad-omen", milkCuresBadOmen); - persistentTileEntityDisplayNames = getBoolean("gameplay-mechanics.persistent-tileentity-display-names-and-lore", persistentTileEntityDisplayNames); persistentDroppableEntityDisplayNames = getBoolean("gameplay-mechanics.persistent-droppable-entity-display-names", persistentDroppableEntityDisplayNames); + projectilesBypassMobGriefing = getBoolean("gameplay-mechanics.projectiles-bypass-mob-griefing", projectilesBypassMobGriefing); tridentLoyaltyVoidReturnHeight = getDouble("gameplay-mechanics.trident-loyalty-void-return-height", tridentLoyaltyVoidReturnHeight); voidDamageHeight = getDouble("gameplay-mechanics.void-damage-height", voidDamageHeight); voidDamageDealt = getDouble("gameplay-mechanics.void-damage-dealt", voidDamageDealt); -@@ -467,9 +473,11 @@ public class PurpurWorldConfig { +@@ -443,9 +449,11 @@ public class PurpurWorldConfig { dispenserPlaceAnvils = getBoolean("blocks.dispenser.place-anvils", dispenserPlaceAnvils); } @@ -434,7 +432,7 @@ index ae252c66d4319fa4a581f1da9ec926de646a5aa0..c73c77a22317631da7f8f52037103744 farmlandGetsMoistFromBelow = getBoolean("blocks.farmland.gets-moist-from-below", farmlandGetsMoistFromBelow); farmlandAlpha = getBoolean("blocks.farmland.use-alpha-farmland", farmlandAlpha); } -@@ -508,6 +516,11 @@ public class PurpurWorldConfig { +@@ -484,6 +492,11 @@ public class PurpurWorldConfig { kelpMaxGrowthAge = getInt("blocks.kelp.max-growth-age", kelpMaxGrowthAge); } @@ -446,7 +444,7 @@ index ae252c66d4319fa4a581f1da9ec926de646a5aa0..c73c77a22317631da7f8f52037103744 public boolean respawnAnchorExplode = true; public double respawnAnchorExplosionPower = 5.0D; public boolean respawnAnchorExplosionFire = true; -@@ -541,6 +554,11 @@ public class PurpurWorldConfig { +@@ -517,6 +530,11 @@ public class PurpurWorldConfig { stonecutterDamage = (float) getDouble("blocks.stonecutter.damage", stonecutterDamage); } @@ -458,7 +456,7 @@ index ae252c66d4319fa4a581f1da9ec926de646a5aa0..c73c77a22317631da7f8f52037103744 public double twistingVinesGrowthModifier = 0.10D; public int twistingVinesMaxGrowthAge = 25; private void twistingVinesSettings() { -@@ -725,6 +743,7 @@ public class PurpurWorldConfig { +@@ -701,6 +719,7 @@ public class PurpurWorldConfig { public double creeperMaxHealth = 20.0D; public double creeperChargedChance = 0.0D; public boolean creeperAllowGriefing = true; @@ -466,7 +464,7 @@ index ae252c66d4319fa4a581f1da9ec926de646a5aa0..c73c77a22317631da7f8f52037103744 private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -736,6 +755,7 @@ public class PurpurWorldConfig { +@@ -712,6 +731,7 @@ public class PurpurWorldConfig { creeperMaxHealth = getDouble("mobs.creeper.attributes.max_health", creeperMaxHealth); creeperChargedChance = getDouble("mobs.creeper.naturally-charged-chance", creeperChargedChance); creeperAllowGriefing = getBoolean("mobs.creeper.allow-griefing", creeperAllowGriefing); @@ -474,7 +472,7 @@ index ae252c66d4319fa4a581f1da9ec926de646a5aa0..c73c77a22317631da7f8f52037103744 } public boolean dolphinRidable = false; -@@ -823,6 +843,7 @@ public class PurpurWorldConfig { +@@ -799,6 +819,7 @@ public class PurpurWorldConfig { public double enderDragonMaxY = 256D; public double enderDragonMaxHealth = 200.0D; public boolean enderDragonAlwaysDropsFullExp = false; @@ -482,7 +480,7 @@ index ae252c66d4319fa4a581f1da9ec926de646a5aa0..c73c77a22317631da7f8f52037103744 private void enderDragonSettings() { enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable); enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater); -@@ -838,6 +859,7 @@ public class PurpurWorldConfig { +@@ -814,6 +835,7 @@ public class PurpurWorldConfig { } enderDragonMaxHealth = getDouble("mobs.ender_dragon.attributes.max_health", enderDragonMaxHealth); enderDragonAlwaysDropsFullExp = getBoolean("mobs.ender_dragon.always-drop-full-exp", enderDragonAlwaysDropsFullExp); @@ -490,7 +488,7 @@ index ae252c66d4319fa4a581f1da9ec926de646a5aa0..c73c77a22317631da7f8f52037103744 } public boolean endermanRidable = false; -@@ -845,6 +867,7 @@ public class PurpurWorldConfig { +@@ -821,6 +843,7 @@ public class PurpurWorldConfig { public double endermanMaxHealth = 40.0D; public boolean endermanAllowGriefing = true; public boolean endermanDespawnEvenWithBlock = false; @@ -498,7 +496,7 @@ index ae252c66d4319fa4a581f1da9ec926de646a5aa0..c73c77a22317631da7f8f52037103744 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -856,6 +879,7 @@ public class PurpurWorldConfig { +@@ -832,6 +855,7 @@ public class PurpurWorldConfig { endermanMaxHealth = getDouble("mobs.enderman.attributes.max_health", endermanMaxHealth); endermanAllowGriefing = getBoolean("mobs.enderman.allow-griefing", endermanAllowGriefing); endermanDespawnEvenWithBlock = getBoolean("mobs.enderman.can-despawn-with-held-block", endermanDespawnEvenWithBlock); @@ -506,7 +504,7 @@ index ae252c66d4319fa4a581f1da9ec926de646a5aa0..c73c77a22317631da7f8f52037103744 } public boolean endermiteRidable = false; -@@ -875,6 +899,7 @@ public class PurpurWorldConfig { +@@ -851,6 +875,7 @@ public class PurpurWorldConfig { public boolean evokerRidable = false; public boolean evokerRidableInWater = false; public double evokerMaxHealth = 24.0D; @@ -514,7 +512,7 @@ index ae252c66d4319fa4a581f1da9ec926de646a5aa0..c73c77a22317631da7f8f52037103744 private void evokerSettings() { evokerRidable = getBoolean("mobs.evoker.ridable", evokerRidable); evokerRidableInWater = getBoolean("mobs.evoker.ridable-in-water", evokerRidableInWater); -@@ -884,6 +909,7 @@ public class PurpurWorldConfig { +@@ -860,6 +885,7 @@ public class PurpurWorldConfig { set("mobs.evoker.attributes.max_health", oldValue); } evokerMaxHealth = getDouble("mobs.evoker.attributes.max_health", evokerMaxHealth); @@ -522,7 +520,7 @@ index ae252c66d4319fa4a581f1da9ec926de646a5aa0..c73c77a22317631da7f8f52037103744 } public boolean foxRidable = false; -@@ -891,6 +917,7 @@ public class PurpurWorldConfig { +@@ -867,6 +893,7 @@ public class PurpurWorldConfig { public double foxMaxHealth = 10.0D; public boolean foxTypeChangesWithTulips = false; public int foxBreedingTicks = 6000; @@ -530,7 +528,7 @@ index ae252c66d4319fa4a581f1da9ec926de646a5aa0..c73c77a22317631da7f8f52037103744 private void foxSettings() { foxRidable = getBoolean("mobs.fox.ridable", foxRidable); foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater); -@@ -902,6 +929,7 @@ public class PurpurWorldConfig { +@@ -878,6 +905,7 @@ public class PurpurWorldConfig { foxMaxHealth = getDouble("mobs.fox.attributes.max_health", foxMaxHealth); foxTypeChangesWithTulips = getBoolean("mobs.fox.tulips-change-type", foxTypeChangesWithTulips); foxBreedingTicks = getInt("mobs.fox.breeding-delay-ticks", foxBreedingTicks); @@ -538,7 +536,7 @@ index ae252c66d4319fa4a581f1da9ec926de646a5aa0..c73c77a22317631da7f8f52037103744 } public boolean ghastRidable = false; -@@ -1297,6 +1325,7 @@ public class PurpurWorldConfig { +@@ -1273,6 +1301,7 @@ public class PurpurWorldConfig { public boolean piglinRidable = false; public boolean piglinRidableInWater = false; public double piglinMaxHealth = 16.0D; @@ -546,7 +544,7 @@ index ae252c66d4319fa4a581f1da9ec926de646a5aa0..c73c77a22317631da7f8f52037103744 private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -1306,6 +1335,7 @@ public class PurpurWorldConfig { +@@ -1282,6 +1311,7 @@ public class PurpurWorldConfig { set("mobs.piglin.attributes.max_health", oldValue); } piglinMaxHealth = getDouble("mobs.piglin.attributes.max_health", piglinMaxHealth); @@ -554,7 +552,7 @@ index ae252c66d4319fa4a581f1da9ec926de646a5aa0..c73c77a22317631da7f8f52037103744 } public boolean piglinBruteRidable = false; -@@ -1325,6 +1355,7 @@ public class PurpurWorldConfig { +@@ -1301,6 +1331,7 @@ public class PurpurWorldConfig { public boolean pillagerRidable = false; public boolean pillagerRidableInWater = false; public double pillagerMaxHealth = 24.0D; @@ -562,7 +560,7 @@ index ae252c66d4319fa4a581f1da9ec926de646a5aa0..c73c77a22317631da7f8f52037103744 private void pillagerSettings() { pillagerRidable = getBoolean("mobs.pillager.ridable", pillagerRidable); pillagerRidableInWater = getBoolean("mobs.pillager.ridable-in-water", pillagerRidableInWater); -@@ -1334,6 +1365,7 @@ public class PurpurWorldConfig { +@@ -1310,6 +1341,7 @@ public class PurpurWorldConfig { set("mobs.pillager.attributes.max_health", oldValue); } pillagerMaxHealth = getDouble("mobs.pillager.attributes.max_health", pillagerMaxHealth); @@ -570,7 +568,7 @@ index ae252c66d4319fa4a581f1da9ec926de646a5aa0..c73c77a22317631da7f8f52037103744 } public boolean polarBearRidable = false; -@@ -1375,6 +1407,7 @@ public class PurpurWorldConfig { +@@ -1351,6 +1383,7 @@ public class PurpurWorldConfig { public double rabbitNaturalToast = 0.0D; public double rabbitNaturalKiller = 0.0D; public int rabbitBreedingTicks = 6000; @@ -578,7 +576,7 @@ index ae252c66d4319fa4a581f1da9ec926de646a5aa0..c73c77a22317631da7f8f52037103744 private void rabbitSettings() { rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable); rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater); -@@ -1387,11 +1420,13 @@ public class PurpurWorldConfig { +@@ -1363,11 +1396,13 @@ public class PurpurWorldConfig { rabbitNaturalToast = getDouble("mobs.rabbit.spawn-toast-chance", rabbitNaturalToast); rabbitNaturalKiller = getDouble("mobs.rabbit.spawn-killer-rabbit-chance", rabbitNaturalKiller); rabbitBreedingTicks = getInt("mobs.rabbit.breeding-delay-ticks", rabbitBreedingTicks); @@ -592,7 +590,7 @@ index ae252c66d4319fa4a581f1da9ec926de646a5aa0..c73c77a22317631da7f8f52037103744 private void ravagerSettings() { ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable); ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater); -@@ -1401,6 +1436,7 @@ public class PurpurWorldConfig { +@@ -1377,6 +1412,7 @@ public class PurpurWorldConfig { set("mobs.ravager.attributes.max_health", oldValue); } ravagerMaxHealth = getDouble("mobs.ravager.attributes.max_health", ravagerMaxHealth); @@ -600,7 +598,7 @@ index ae252c66d4319fa4a581f1da9ec926de646a5aa0..c73c77a22317631da7f8f52037103744 } public boolean salmonRidable = false; -@@ -1419,6 +1455,7 @@ public class PurpurWorldConfig { +@@ -1395,6 +1431,7 @@ public class PurpurWorldConfig { public boolean sheepRidableInWater = false; public double sheepMaxHealth = 8.0D; public int sheepBreedingTicks = 6000; @@ -608,7 +606,7 @@ index ae252c66d4319fa4a581f1da9ec926de646a5aa0..c73c77a22317631da7f8f52037103744 private void sheepSettings() { sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable); sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater); -@@ -1429,6 +1466,7 @@ public class PurpurWorldConfig { +@@ -1405,6 +1442,7 @@ public class PurpurWorldConfig { } sheepMaxHealth = getDouble("mobs.sheep.attributes.max_health", sheepMaxHealth); sheepBreedingTicks = getInt("mobs.sheep.breeding-delay-ticks", sheepBreedingTicks); @@ -616,7 +614,7 @@ index ae252c66d4319fa4a581f1da9ec926de646a5aa0..c73c77a22317631da7f8f52037103744 } public boolean shulkerRidable = false; -@@ -1448,6 +1486,7 @@ public class PurpurWorldConfig { +@@ -1424,6 +1462,7 @@ public class PurpurWorldConfig { public boolean silverfishRidable = false; public boolean silverfishRidableInWater = false; public double silverfishMaxHealth = 8.0D; @@ -624,7 +622,7 @@ index ae252c66d4319fa4a581f1da9ec926de646a5aa0..c73c77a22317631da7f8f52037103744 private void silverfishSettings() { silverfishRidable = getBoolean("mobs.silverfish.ridable", silverfishRidable); silverfishRidableInWater = getBoolean("mobs.silverfish.ridable-in-water", silverfishRidableInWater); -@@ -1457,6 +1496,7 @@ public class PurpurWorldConfig { +@@ -1433,6 +1472,7 @@ public class PurpurWorldConfig { set("mobs.silverfish.attributes.max_health", oldValue); } silverfishMaxHealth = getDouble("mobs.silverfish.attributes.max_health", silverfishMaxHealth); @@ -632,7 +630,7 @@ index ae252c66d4319fa4a581f1da9ec926de646a5aa0..c73c77a22317631da7f8f52037103744 } public boolean skeletonRidable = false; -@@ -1524,6 +1564,7 @@ public class PurpurWorldConfig { +@@ -1500,6 +1540,7 @@ public class PurpurWorldConfig { public int snowGolemSnowBallMax = 20; public float snowGolemSnowBallModifier = 10.0F; public double snowGolemAttackDistance = 1.25D; @@ -640,7 +638,7 @@ index ae252c66d4319fa4a581f1da9ec926de646a5aa0..c73c77a22317631da7f8f52037103744 private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -1540,6 +1581,7 @@ public class PurpurWorldConfig { +@@ -1516,6 +1557,7 @@ public class PurpurWorldConfig { snowGolemSnowBallMax = getInt("mobs.snow_golem.max-shoot-interval-ticks", snowGolemSnowBallMax); snowGolemSnowBallModifier = (float) getDouble("mobs.snow_golem.snow-ball-modifier", snowGolemSnowBallModifier); snowGolemAttackDistance = getDouble("mobs.snow_golem.attack-distance", snowGolemAttackDistance); @@ -648,7 +646,7 @@ index ae252c66d4319fa4a581f1da9ec926de646a5aa0..c73c77a22317631da7f8f52037103744 } public boolean squidRidable = false; -@@ -1699,6 +1741,7 @@ public class PurpurWorldConfig { +@@ -1675,6 +1717,7 @@ public class PurpurWorldConfig { public int villagerLobotomizeCheck = 60; public boolean villagerClericsFarmWarts = false; public boolean villagerClericFarmersThrowWarts = true; @@ -656,7 +654,7 @@ index ae252c66d4319fa4a581f1da9ec926de646a5aa0..c73c77a22317631da7f8f52037103744 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1725,6 +1768,7 @@ public class PurpurWorldConfig { +@@ -1701,6 +1744,7 @@ public class PurpurWorldConfig { villagerLobotomizeCheck = getInt("mobs.villager.lobotomize.check-interval", villagerLobotomizeCheck); villagerClericsFarmWarts = getBoolean("mobs.villager.clerics-farm-warts", villagerClericsFarmWarts); villagerClericFarmersThrowWarts = getBoolean("mobs.villager.cleric-wart-farmers-throw-warts-at-villagers", villagerClericFarmersThrowWarts); @@ -664,7 +662,7 @@ index ae252c66d4319fa4a581f1da9ec926de646a5aa0..c73c77a22317631da7f8f52037103744 } public boolean vindicatorRidable = false; -@@ -1781,6 +1825,7 @@ public class PurpurWorldConfig { +@@ -1757,6 +1801,7 @@ public class PurpurWorldConfig { public double witherMaxHealth = 300.0D; public float witherHealthRegenAmount = 1.0f; public int witherHealthRegenDelay = 20; @@ -672,7 +670,7 @@ index ae252c66d4319fa4a581f1da9ec926de646a5aa0..c73c77a22317631da7f8f52037103744 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -1797,6 +1842,7 @@ public class PurpurWorldConfig { +@@ -1773,6 +1818,7 @@ public class PurpurWorldConfig { witherMaxHealth = getDouble("mobs.wither.attributes.max_health", witherMaxHealth); witherHealthRegenAmount = (float) getDouble("mobs.wither.health-regen-amount", witherHealthRegenAmount); witherHealthRegenDelay = getInt("mobs.wither.health-regen-delay", witherHealthRegenDelay); @@ -680,7 +678,7 @@ index ae252c66d4319fa4a581f1da9ec926de646a5aa0..c73c77a22317631da7f8f52037103744 } public boolean witherSkeletonRidable = false; -@@ -1861,6 +1907,7 @@ public class PurpurWorldConfig { +@@ -1837,6 +1883,7 @@ public class PurpurWorldConfig { public double zombieJockeyChance = 0.05D; public boolean zombieJockeyTryExistingChickens = true; public boolean zombieAggressiveTowardsVillagerWhenLagging = true; @@ -688,7 +686,7 @@ index ae252c66d4319fa4a581f1da9ec926de646a5aa0..c73c77a22317631da7f8f52037103744 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -1875,6 +1922,7 @@ public class PurpurWorldConfig { +@@ -1851,6 +1898,7 @@ public class PurpurWorldConfig { zombieJockeyChance = getDouble("mobs.zombie.jockey.chance", zombieJockeyChance); zombieJockeyTryExistingChickens = getBoolean("mobs.zombie.jockey.try-existing-chickens", zombieJockeyTryExistingChickens); zombieAggressiveTowardsVillagerWhenLagging = getBoolean("mobs.zombie.aggressive-towards-villager-when-lagging", zombieAggressiveTowardsVillagerWhenLagging); diff --git a/patches/unapplied/server/0141-Config-to-allow-Note-Block-sounds-when-blocked.patch b/patches/server/0138-Config-to-allow-Note-Block-sounds-when-blocked.patch similarity index 81% rename from patches/unapplied/server/0141-Config-to-allow-Note-Block-sounds-when-blocked.patch rename to patches/server/0138-Config-to-allow-Note-Block-sounds-when-blocked.patch index e1a353d84..751a68962 100644 --- a/patches/unapplied/server/0141-Config-to-allow-Note-Block-sounds-when-blocked.patch +++ b/patches/server/0138-Config-to-allow-Note-Block-sounds-when-blocked.patch @@ -9,20 +9,20 @@ Normally, the sounds will only play when the block directly above is air. With this patch enabled, players can place any block above the Note Block and it will still work. diff --git a/src/main/java/net/minecraft/world/level/block/NoteBlock.java b/src/main/java/net/minecraft/world/level/block/NoteBlock.java -index 59ae3bb34678cdb5241f691915c96d6568363d3b..f6c0c9fca005f72c3764a4a4f8df05825796e950 100644 +index 0512b3701a3bf33891ab6281355c07af6be5b9c1..d79cf8df4be544c4402a2419cd9238bde6620fbb 100644 --- a/src/main/java/net/minecraft/world/level/block/NoteBlock.java +++ b/src/main/java/net/minecraft/world/level/block/NoteBlock.java -@@ -62,7 +62,7 @@ public class NoteBlock extends Block { +@@ -61,7 +61,7 @@ public class NoteBlock extends Block { } - private void play(Level world, BlockPos blockposition, BlockState data) { // CraftBukkit + private void playNote(Level world, BlockPos blockposition, BlockState data) { // CraftBukkit - if (world.getBlockState(blockposition.above()).isAir()) { + if (world.purpurConfig.noteBlockIgnoreAbove || world.getBlockState(blockposition.above()).isAir()) { // Purpur // CraftBukkit start org.bukkit.event.block.NotePlayEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callNotePlayEvent(world, blockposition, data.getValue(NoteBlock.INSTRUMENT), data.getValue(NoteBlock.NOTE)); if (!event.isCancelled()) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index c73c77a22317631da7f8f52037103744bf9b8024..c70a804b8b7a30411f6cfa72bb2f36d411e0af30 100644 +index f38b05448019805fd07f462e910c805cdffed219..4b885756730850fd7b5db52f74eb2e3d0be749f6 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -384,6 +384,7 @@ public class PurpurWorldConfig { @@ -30,14 +30,14 @@ index c73c77a22317631da7f8f52037103744bf9b8024..c70a804b8b7a30411f6cfa72bb2f36d4 public boolean fireballsBypassMobGriefing = false; public boolean milkCuresBadOmen = true; + public boolean noteBlockIgnoreAbove = false; - public boolean persistentTileEntityDisplayNames = false; public boolean persistentDroppableEntityDisplayNames = false; public boolean projectilesBypassMobGriefing = false; -@@ -401,6 +402,7 @@ public class PurpurWorldConfig { + public double tridentLoyaltyVoidReturnHeight = 0.0D; +@@ -400,6 +401,7 @@ public class PurpurWorldConfig { entitiesPickUpLootBypassMobGriefing = getBoolean("gameplay-mechanics.entities-pick-up-loot-bypass-mob-griefing", entitiesPickUpLootBypassMobGriefing); fireballsBypassMobGriefing = getBoolean("gameplay-mechanics.fireballs-bypass-mob-griefing", fireballsBypassMobGriefing); milkCuresBadOmen = getBoolean("gameplay-mechanics.milk-cures-bad-omen", milkCuresBadOmen); + noteBlockIgnoreAbove = getBoolean("gameplay-mechanics.note-block-ignore-above", noteBlockIgnoreAbove); - persistentTileEntityDisplayNames = getBoolean("gameplay-mechanics.persistent-tileentity-display-names-and-lore", persistentTileEntityDisplayNames); persistentDroppableEntityDisplayNames = getBoolean("gameplay-mechanics.persistent-droppable-entity-display-names", persistentDroppableEntityDisplayNames); projectilesBypassMobGriefing = getBoolean("gameplay-mechanics.projectiles-bypass-mob-griefing", projectilesBypassMobGriefing); + tridentLoyaltyVoidReturnHeight = getDouble("gameplay-mechanics.trident-loyalty-void-return-height", tridentLoyaltyVoidReturnHeight); diff --git a/patches/unapplied/server/0142-Add-EntityTeleportHinderedEvent.patch b/patches/server/0139-Add-EntityTeleportHinderedEvent.patch similarity index 88% rename from patches/unapplied/server/0142-Add-EntityTeleportHinderedEvent.patch rename to patches/server/0139-Add-EntityTeleportHinderedEvent.patch index de01f1b69..5da2660a3 100644 --- a/patches/unapplied/server/0142-Add-EntityTeleportHinderedEvent.patch +++ b/patches/server/0139-Add-EntityTeleportHinderedEvent.patch @@ -17,7 +17,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java b/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java -index 62c2f947a77570228dfdf4dae16c64eb97ee2f40..197482e1ace23c3de002242097a68c6cc297cd3f 100644 +index 19892cb3cb290add4f094dc87bb22106e4f07a24..46fdaf744080ac01498ca693068616659a79b9ea 100644 --- a/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java +++ b/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java @@ -45,7 +45,15 @@ public class EndPortalBlock extends BaseEntityBlock { @@ -34,11 +34,11 @@ index 62c2f947a77570228dfdf4dae16c64eb97ee2f40..197482e1ace23c3de002242097a68c6c + return; + } + // Purpur end - ResourceKey resourcekey = world.getTypeKey() == DimensionType.END_LOCATION ? Level.OVERWORLD : Level.END; // CraftBukkit - SPIGOT-6152: send back to main overworld in custom ends + ResourceKey resourcekey = world.getTypeKey() == LevelStem.END ? Level.OVERWORLD : Level.END; // CraftBukkit - SPIGOT-6152: send back to main overworld in custom ends ServerLevel worldserver = ((ServerLevel) world).getServer().getLevel(resourcekey); diff --git a/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java b/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java -index bc2f2c69d437e99cb965cede7dfd42228151b26c..fef1027829c44957e23c0a121033bfb7640d06f0 100644 +index 82c132bc90381aab6a29d50319ff40e7383eb7f2..b99a9f76d6e400a053c57a96c9586fe09a4a5a26 100644 --- a/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java +++ b/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java @@ -86,7 +86,15 @@ public class NetherPortalBlock extends Block { @@ -59,10 +59,10 @@ index bc2f2c69d437e99cb965cede7dfd42228151b26c..fef1027829c44957e23c0a121033bfb7 EntityPortalEnterEvent event = new EntityPortalEnterEvent(entity.getBukkitEntity(), new org.bukkit.Location(world.getWorld(), pos.getX(), pos.getY(), pos.getZ())); world.getCraftServer().getPluginManager().callEvent(event); diff --git a/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java -index b2c098a02008b860b2fb17323831ab8af27751ae..1405083cb3e9e01d9dd99a9e42b2b56f3a104a60 100644 +index 500a4013ce525c0474fe3991457d4c2a50ceb7ed..e0beee6bd772792fbd3bc6a856230311e9ed6c42 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java -@@ -179,6 +179,14 @@ public class TheEndGatewayBlockEntity extends TheEndPortalBlockEntity { +@@ -177,6 +177,14 @@ public class TheEndGatewayBlockEntity extends TheEndPortalBlockEntity { public static void teleportEntity(Level world, BlockPos pos, BlockState state, Entity entity, TheEndGatewayBlockEntity blockEntity) { if (world instanceof ServerLevel && !blockEntity.isCoolingDown()) { if (!entity.canChangeDimensions()) return; // Purpur @@ -78,7 +78,7 @@ index b2c098a02008b860b2fb17323831ab8af27751ae..1405083cb3e9e01d9dd99a9e42b2b56f blockEntity.teleportCooldown = 100; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index c70a804b8b7a30411f6cfa72bb2f36d411e0af30..4432330c936e060b1bb5005ebe70cf575249e5d9 100644 +index 4b885756730850fd7b5db52f74eb2e3d0be749f6..079cf41c91cd75c0f720af1e208e0c8ec40a1691 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -383,6 +383,7 @@ public class PurpurWorldConfig { @@ -88,17 +88,17 @@ index c70a804b8b7a30411f6cfa72bb2f36d411e0af30..4432330c936e060b1bb5005ebe70cf57 + public boolean imposeTeleportRestrictionsOnGateways = false; public boolean milkCuresBadOmen = true; public boolean noteBlockIgnoreAbove = false; - public boolean persistentTileEntityDisplayNames = false; -@@ -401,6 +402,7 @@ public class PurpurWorldConfig { + public boolean persistentDroppableEntityDisplayNames = false; +@@ -400,6 +401,7 @@ public class PurpurWorldConfig { entitiesCanUsePortals = getBoolean("gameplay-mechanics.entities-can-use-portals", entitiesCanUsePortals); entitiesPickUpLootBypassMobGriefing = getBoolean("gameplay-mechanics.entities-pick-up-loot-bypass-mob-griefing", entitiesPickUpLootBypassMobGriefing); fireballsBypassMobGriefing = getBoolean("gameplay-mechanics.fireballs-bypass-mob-griefing", fireballsBypassMobGriefing); + imposeTeleportRestrictionsOnGateways = getBoolean("gameplay-mechanics.impose-teleport-restrictions-on-gateways", imposeTeleportRestrictionsOnGateways); milkCuresBadOmen = getBoolean("gameplay-mechanics.milk-cures-bad-omen", milkCuresBadOmen); noteBlockIgnoreAbove = getBoolean("gameplay-mechanics.note-block-ignore-above", noteBlockIgnoreAbove); - persistentTileEntityDisplayNames = getBoolean("gameplay-mechanics.persistent-tileentity-display-names-and-lore", persistentTileEntityDisplayNames); + persistentDroppableEntityDisplayNames = getBoolean("gameplay-mechanics.persistent-droppable-entity-display-names", persistentDroppableEntityDisplayNames); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index ac89af911596955ac87882069b7010b66ed05adf..b8fb34df77ffd1f4ef2db63717e3acf2ab592fb6 100644 +index 1ba59900ddf403453aeb4f82b097feaab3dae3ff..30302c1cfdff65a5f1d0adde4c831f0a74f15851 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -562,6 +562,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { @@ -113,10 +113,10 @@ index ac89af911596955ac87882069b7010b66ed05adf..b8fb34df77ffd1f4ef2db63717e3acf2 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 303de40046ac0e5802a0061a1118ee95897b6bfc..2fe84d9d7b0a829baefdb9fad7ba02d336ba5254 100644 +index 2fc276e0fc43d21ce9dd590991b564c65f6b249b..b3e1e8d225282216df0fb88335415cdf9ffa781d 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1016,6 +1016,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -965,6 +965,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } if (entity.isVehicle()) { diff --git a/patches/unapplied/server/0143-Add-StructureGenerateEvent.patch b/patches/server/0140-Add-StructureGenerateEvent.patch similarity index 68% rename from patches/unapplied/server/0143-Add-StructureGenerateEvent.patch rename to patches/server/0140-Add-StructureGenerateEvent.patch index 0cd0bb02a..c8f6f3000 100644 --- a/patches/unapplied/server/0143-Add-StructureGenerateEvent.patch +++ b/patches/server/0140-Add-StructureGenerateEvent.patch @@ -19,13 +19,13 @@ along with this program. If not, see . Co-authored-by: Mariell Hoversholm diff --git a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java -index fde436065aeeb47cd177656a7c9fe8dc34178e87..6a1cb38de5733e384546984a0eadd4bab53c0122 100644 +index e2b7da265e9616ac47e6be72cc6e6d2c75cfec44..1ba06b5835dbf57168444c92a5317bd32a86bdff 100644 --- a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java +++ b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java -@@ -346,7 +346,14 @@ public abstract class ChunkGenerator { +@@ -446,7 +446,14 @@ public abstract class ChunkGenerator implements BiomeManager.NoiseBiomeSource { if (structuresettingsfeature != null) { - StructureStart structurestart1 = feature.generate(registryManager, this, this.biomeSource, structureManager, worldSeed, chunkcoordintpair, biome, j, structuresettingsfeature, chunk); + StructureStart structurestart = structureAccessor.getStartForFeature(sectionposition, StructureFeature.STRONGHOLD, chunk); - + // Purpur start + if (new net.pl3x.purpur.event.world.StructureGenerateEvent( @@ -35,6 +35,6 @@ index fde436065aeeb47cd177656a7c9fe8dc34178e87..6a1cb38de5733e384546984a0eadd4ba + chunkcoordintpair.z + ).callEvent()) + // Purpur end - accessor.setStartForFeature(sectionposition, feature.feature, structurestart1, chunk); - } + if (structurestart == null || !structurestart.isValid()) { + StructureStart structurestart1 = StructureFeatures.STRONGHOLD.generate(registryManager, this, this.biomeSource, structureManager, worldSeed, chunkcoordintpair, ChunkGenerator.fetchReferences(structureAccessor, chunk, sectionposition, StructureFeature.STRONGHOLD), structuresettingsfeature, chunk, ChunkGenerator::validStrongholdBiome); diff --git a/patches/unapplied/server/0144-Farmland-trampling-changes.patch b/patches/server/0141-Farmland-trampling-changes.patch similarity index 93% rename from patches/unapplied/server/0144-Farmland-trampling-changes.patch rename to patches/server/0141-Farmland-trampling-changes.patch index 62557b68a..ad4cdadb6 100644 --- a/patches/unapplied/server/0144-Farmland-trampling-changes.patch +++ b/patches/server/0141-Farmland-trampling-changes.patch @@ -12,7 +12,7 @@ necessary to trample in the first place. Feather Falling 1 requires you to fall over 3+ blocks to trample. FF 2 requires 4+, etc. diff --git a/src/main/java/net/minecraft/world/level/block/FarmBlock.java b/src/main/java/net/minecraft/world/level/block/FarmBlock.java -index e06a8a68ccb9c9a77df061264e58fd850cf1f794..010da2b44fa3a4f033e4f86e9a0917b5c94b6ab5 100644 +index caf40e3df0896492be959f9e0bcfb1fad0bfa2ef..10f1e3d9c35ee80587865cf0035416aed6155c0e 100644 --- a/src/main/java/net/minecraft/world/level/block/FarmBlock.java +++ b/src/main/java/net/minecraft/world/level/block/FarmBlock.java @@ -114,12 +114,20 @@ public class FarmBlock extends Block { @@ -37,10 +37,10 @@ index e06a8a68ccb9c9a77df061264e58fd850cf1f794..010da2b44fa3a4f033e4f86e9a0917b5 if (CraftEventFactory.callEntityChangeBlockEvent(entity, pos, Blocks.DIRT.defaultBlockState()).isCancelled()) { return; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 4432330c936e060b1bb5005ebe70cf575249e5d9..7a3b246cd6254b7806b54f4f4d23fd22a2cba8a8 100644 +index 079cf41c91cd75c0f720af1e208e0c8ec40a1691..76d5e8932e583d84469353468b158f77738d315c 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -480,10 +480,16 @@ public class PurpurWorldConfig { +@@ -456,10 +456,16 @@ public class PurpurWorldConfig { public boolean farmlandBypassMobGriefing = false; public boolean farmlandGetsMoistFromBelow = false; public boolean farmlandAlpha = false; diff --git a/patches/unapplied/server/0145-Movement-options-for-armor-stands.patch b/patches/server/0142-Movement-options-for-armor-stands.patch similarity index 87% rename from patches/unapplied/server/0145-Movement-options-for-armor-stands.patch rename to patches/server/0142-Movement-options-for-armor-stands.patch index 90a0ca4aa..d3988c342 100644 --- a/patches/unapplied/server/0145-Movement-options-for-armor-stands.patch +++ b/patches/server/0142-Movement-options-for-armor-stands.patch @@ -17,10 +17,10 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index cd4717041d74832b7517c303f58c8692d54f9588..56fefcfdecf3ed4b747e1bab8bc24e5275d71e2e 100644 +index 8766be89f7bc2f3ce427d4ec428d1fa65a10d995..47067ff24923002f9083022cbec4a90896ce3012 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1595,7 +1595,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n +@@ -1502,7 +1502,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i return this.isInWater() || flag; } @@ -28,12 +28,12 @@ index cd4717041d74832b7517c303f58c8692d54f9588..56fefcfdecf3ed4b747e1bab8bc24e52 + public void updateInWaterStateAndDoWaterCurrentPushing() { // Purpur - package-private -> public if (this.getVehicle() instanceof Boat) { this.wasTouchingWater = false; - } else if (this.updateFluidHeightAndDoFluidPushing((Tag) FluidTags.WATER, 0.014D)) { + } else if (this.updateFluidHeightAndDoFluidPushing(FluidTags.WATER, 0.014D)) { diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java -index bb710e62477df3048d5219f1edfa9ffdefacb41d..aee5db3cdbc49de995780d0b0e219d0878a5f304 100644 +index 50370dc8697569a4e5cf8ec3714d227a59357d64..e9e24435057cff9c0af758ca2aa822c3b1c3593d 100644 --- a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java +++ b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java -@@ -99,10 +99,12 @@ public class ArmorStand extends LivingEntity { +@@ -98,10 +98,12 @@ public class ArmorStand extends LivingEntity { private boolean noTickPoseDirty = false; private boolean noTickEquipmentDirty = false; // Paper end @@ -46,7 +46,7 @@ index bb710e62477df3048d5219f1edfa9ffdefacb41d..aee5db3cdbc49de995780d0b0e219d08 this.handItems = NonNullList.withSize(2, ItemStack.EMPTY); this.armorItems = NonNullList.withSize(4, ItemStack.EMPTY); this.headPose = ArmorStand.DEFAULT_HEAD_POSE; -@@ -996,4 +998,18 @@ public class ArmorStand extends LivingEntity { +@@ -995,4 +997,18 @@ public class ArmorStand extends LivingEntity { } // Paper end // Paper end @@ -66,7 +66,7 @@ index bb710e62477df3048d5219f1edfa9ffdefacb41d..aee5db3cdbc49de995780d0b0e219d08 + // Purpur end } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 7a3b246cd6254b7806b54f4f4d23fd22a2cba8a8..7b0ec253d7ed4e6207d4f82e84b7c6383fae2821 100644 +index 76d5e8932e583d84469353468b158f77738d315c..1924f81335d239ffd60af0211038cb23ff9caf6c 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -103,10 +103,16 @@ public class PurpurWorldConfig { diff --git a/patches/unapplied/server/0146-Fix-stuck-in-portals.patch b/patches/server/0143-Fix-stuck-in-portals.patch similarity index 87% rename from patches/unapplied/server/0146-Fix-stuck-in-portals.patch rename to patches/server/0143-Fix-stuck-in-portals.patch index 75ba54d0b..9df6f62e1 100644 --- a/patches/unapplied/server/0146-Fix-stuck-in-portals.patch +++ b/patches/server/0143-Fix-stuck-in-portals.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix stuck in portals diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 7fd4daf0382d7a80ca6961dc55f67ba714114a60..878654d5e65d4318aaad27b00a6df1662b5946de 100644 +index c02609448326d76f30a1add7d50980230dfa2f06..3032157924962e2c5fa5c696fdc3de4bad74d538 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -1142,6 +1142,7 @@ public class ServerPlayer extends Player { +@@ -1171,6 +1171,7 @@ public class ServerPlayer extends Player { playerlist.sendPlayerPermissionLevel(this); worldserver1.removePlayerImmediately(this, Entity.RemovalReason.CHANGED_DIMENSION); this.unsetRemoved(); @@ -17,10 +17,10 @@ index 7fd4daf0382d7a80ca6961dc55f67ba714114a60..878654d5e65d4318aaad27b00a6df166 // CraftBukkit end this.setLevel(worldserver); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 56fefcfdecf3ed4b747e1bab8bc24e5275d71e2e..74df92f69454ec78036dc58ea9155b26ccd3db19 100644 +index 47067ff24923002f9083022cbec4a90896ce3012..a3420d0a30fbb3f837c863ef559f66ddaa6dc6bd 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2716,12 +2716,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n +@@ -2626,12 +2626,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i return Vec3.directionFromRotation(this.getRotationVector()); } @@ -37,7 +37,7 @@ index 56fefcfdecf3ed4b747e1bab8bc24e5275d71e2e..74df92f69454ec78036dc58ea9155b26 this.isInsidePortal = true; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 7b0ec253d7ed4e6207d4f82e84b7c6383fae2821..087bf58786d6a1e1f812319be615a53c02f6bfda 100644 +index 1924f81335d239ffd60af0211038cb23ff9caf6c..724bce388bf69f9ca7e8e2bf01c17b86f7814b36 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -297,6 +297,7 @@ public class PurpurWorldConfig { diff --git a/patches/unapplied/server/0147-Toggle-for-water-sensitive-mob-damage.patch b/patches/server/0144-Toggle-for-water-sensitive-mob-damage.patch similarity index 88% rename from patches/unapplied/server/0147-Toggle-for-water-sensitive-mob-damage.patch rename to patches/server/0144-Toggle-for-water-sensitive-mob-damage.patch index bd964645d..1a6e6ed50 100644 --- a/patches/unapplied/server/0147-Toggle-for-water-sensitive-mob-damage.patch +++ b/patches/server/0144-Toggle-for-water-sensitive-mob-damage.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Toggle for water sensitive mob damage diff --git a/src/main/java/net/minecraft/world/entity/GlowSquid.java b/src/main/java/net/minecraft/world/entity/GlowSquid.java -index a2343002ec47df867537d42dcf374df448b591aa..42b04ef7c0bb7b0058d984f102ad5ca666a7ce41 100644 +index ca2bf36120ba09ed27ad7b1064431f9feffa3420..2feec97ffe62cfe063085e3767937e8af122ee95 100644 --- a/src/main/java/net/minecraft/world/entity/GlowSquid.java +++ b/src/main/java/net/minecraft/world/entity/GlowSquid.java -@@ -39,6 +39,11 @@ public class GlowSquid extends Squid { +@@ -43,6 +43,11 @@ public class GlowSquid extends Squid { public boolean canFly() { return this.level.purpurConfig.glowSquidsCanFly; } @@ -21,10 +21,10 @@ index a2343002ec47df867537d42dcf374df448b591aa..42b04ef7c0bb7b0058d984f102ad5ca6 @Override diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index aa962aa9a390eb22aaac684278d9a5cdec43e767..4a06034b95bef13c848717fd7910242cacd6dfba 100644 +index 95c765ce622da83cfdff655ca746468fce37a491..d1fba8937127d40df87b3e243697cc83936610d8 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java -@@ -865,7 +865,7 @@ public abstract class Mob extends LivingEntity { +@@ -868,7 +868,7 @@ public abstract class Mob extends LivingEntity { if (goalFloat.canUse()) goalFloat.tick(); this.getJumpControl().tick(); } @@ -34,7 +34,7 @@ index aa962aa9a390eb22aaac684278d9a5cdec43e767..4a06034b95bef13c848717fd7910242c } return; diff --git a/src/main/java/net/minecraft/world/entity/ambient/Bat.java b/src/main/java/net/minecraft/world/entity/ambient/Bat.java -index cfe3e33138a6d3531aca3483e979c5df1b88895b..48ef026a0bc49be0284749777cf4a6b447447665 100644 +index 3e957f4f983e337219b4eed31134f08357b4cb05..518080c1ebb5847081036dbf32d994cea0d95bb3 100644 --- a/src/main/java/net/minecraft/world/entity/ambient/Bat.java +++ b/src/main/java/net/minecraft/world/entity/ambient/Bat.java @@ -95,6 +95,11 @@ public class Bat extends AmbientCreature { @@ -50,10 +50,10 @@ index cfe3e33138a6d3531aca3483e979c5df1b88895b..48ef026a0bc49be0284749777cf4a6b4 @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 c21f67dac92bb6143d301f3a2cb250b2144cb27c..d2de13c6a39af3dc779b508b41498d4bd6422490 100644 +index 5fafd26e77f100cf94bf16f05fa09276bdd56136..69511e218f9e1fa0c334023aed13337907cee875 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Bee.java +++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java -@@ -219,6 +219,11 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { +@@ -220,6 +220,11 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { public int getPurpurBreedTime() { return this.level.purpurConfig.beeBreedingTicks; } @@ -66,10 +66,10 @@ index c21f67dac92bb6143d301f3a2cb250b2144cb27c..d2de13c6a39af3dc779b508b41498d4b @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 8355aa65b6f8be5027370fada8758510b774b4b2..9c89ae4f5f0ff8841040d43315db9fcf6d32f89e 100644 +index bc088e237e6f1f2a4cde766b7586a621f1cb54e2..d6f50d524cd00fb54dd987cc9a9c560766a12553 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Cat.java +++ b/src/main/java/net/minecraft/world/entity/animal/Cat.java -@@ -149,6 +149,11 @@ public class Cat extends TamableAnimal { +@@ -150,6 +150,11 @@ public class Cat extends TamableAnimal { public int getPurpurBreedTime() { return this.level.purpurConfig.catBreedingTicks; } @@ -82,7 +82,7 @@ index 8355aa65b6f8be5027370fada8758510b774b4b2..9c89ae4f5f0ff8841040d43315db9fcf public ResourceLocation getResourceLocation() { diff --git a/src/main/java/net/minecraft/world/entity/animal/Chicken.java b/src/main/java/net/minecraft/world/entity/animal/Chicken.java -index c1a5650bd2df0fd89d0799346bddb8f15a587d10..9f65dbc6214de4074469611b42e469cdfc91c96f 100644 +index 249e01f0be9aeeed764bd102b7a9fa4ca9e7b473..c57fef58dc33c8568047114a3486e4a9fe9523d0 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Chicken.java +++ b/src/main/java/net/minecraft/world/entity/animal/Chicken.java @@ -75,6 +75,11 @@ public class Chicken extends Animal { @@ -114,7 +114,7 @@ index f772c60ab5b4ac5468483d9765386b9b72ad8d0f..82fdce04fe3867016d1b5e24df52a550 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/Cow.java b/src/main/java/net/minecraft/world/entity/animal/Cow.java -index c98ac7f1a3476b159299eb1e26505f1dcaec51b4..36c06895e270be41ac37a012c9c2444f5968d4c5 100644 +index 95ef459c804e9aff02c80cd31612185096413cd0..fa3bbdd27de6382904588213022191a52d9758a0 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Cow.java +++ b/src/main/java/net/minecraft/world/entity/animal/Cow.java @@ -62,6 +62,11 @@ public class Cow extends Animal { @@ -130,10 +130,10 @@ index c98ac7f1a3476b159299eb1e26505f1dcaec51b4..36c06895e270be41ac37a012c9c2444f @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/Dolphin.java b/src/main/java/net/minecraft/world/entity/animal/Dolphin.java -index cc20ed6e1746f47351eb9b40f7b3c1a11daebd4f..cff66ff55b5741d58cecf331444fac87798de4c9 100644 +index 27747e712a5964b43a7fe1d11165740b38e58dd6..591573926eb1358ef82e9e5418be0f1d4ba663cb 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Dolphin.java +++ b/src/main/java/net/minecraft/world/entity/animal/Dolphin.java -@@ -163,6 +163,11 @@ public class Dolphin extends WaterAnimal { +@@ -153,6 +153,11 @@ public class Dolphin extends WaterAnimal { public void initAttributes() { this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.dolphinMaxHealth); } @@ -146,10 +146,10 @@ index cc20ed6e1746f47351eb9b40f7b3c1a11daebd4f..cff66ff55b5741d58cecf331444fac87 @Nullable diff --git a/src/main/java/net/minecraft/world/entity/animal/Fox.java b/src/main/java/net/minecraft/world/entity/animal/Fox.java -index 091177ac2a5995b9f6f0b5245e8eabefd4ed86d6..1fc025cd7bfde1f4d648b0807b8b170646d2c86e 100644 +index 1daccbc51b6ec635130932995350eb0de8abe0a3..eb4bdf6f77c8427527c06843982da5159711973c 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Fox.java +++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java -@@ -181,6 +181,11 @@ public class Fox extends Animal { +@@ -182,6 +182,11 @@ public class Fox extends Animal { public int getPurpurBreedTime() { return this.level.purpurConfig.foxBreedingTicks; } @@ -162,7 +162,7 @@ index 091177ac2a5995b9f6f0b5245e8eabefd4ed86d6..1fc025cd7bfde1f4d648b0807b8b1706 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java -index 8026f2a7bb5fab1762c2fb473bb8a33079df2f87..e327e00506f1b96fe924e52de6c45034ba56ac7a 100644 +index 6d1c077066dfe910b56b4882fd0b5005b56b9bd2..c96289cc4bf5731862849f491a2049a41c768eed 100644 --- a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java +++ b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java @@ -85,6 +85,11 @@ public class IronGolem extends AbstractGolem implements NeutralMob { @@ -178,10 +178,10 @@ index 8026f2a7bb5fab1762c2fb473bb8a33079df2f87..e327e00506f1b96fe924e52de6c45034 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java -index 417640879f17081591b1ed23c6704a8b68069942..1f1ff6edd8eab61d474e547d7d125f29aec7f244 100644 +index 8fb2f77571370c80dbafdf5c9a3c57c83a9fbd42..467e5bc4e9262fc331bb88f02e3b26f9f6bec72d 100644 --- a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java +++ b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java -@@ -81,6 +81,11 @@ public class MushroomCow extends Cow implements Shearable { +@@ -85,6 +85,11 @@ public class MushroomCow extends Cow implements Shearable { public int getPurpurBreedTime() { return this.level.purpurConfig.mooshroomBreedingTicks; } @@ -194,10 +194,10 @@ index 417640879f17081591b1ed23c6704a8b68069942..1f1ff6edd8eab61d474e547d7d125f29 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/Ocelot.java b/src/main/java/net/minecraft/world/entity/animal/Ocelot.java -index 8b8dbc97ff069356ff471a6edc05cd3ddb21dca5..247883dc9f9cff00a164a0f779b7bc414ef28a7b 100644 +index e5ad9c33f21920f434647e4f632adbaa29182efa..e0a930e059f9551be786277449cdcd9241580b2a 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Ocelot.java +++ b/src/main/java/net/minecraft/world/entity/animal/Ocelot.java -@@ -88,6 +88,11 @@ public class Ocelot extends Animal { +@@ -89,6 +89,11 @@ public class Ocelot extends Animal { public int getPurpurBreedTime() { return this.level.purpurConfig.ocelotBreedingTicks; } @@ -210,10 +210,10 @@ index 8b8dbc97ff069356ff471a6edc05cd3ddb21dca5..247883dc9f9cff00a164a0f779b7bc41 public boolean isTrusting() { diff --git a/src/main/java/net/minecraft/world/entity/animal/Panda.java b/src/main/java/net/minecraft/world/entity/animal/Panda.java -index 785f2b3deb32f0f7eb5c5a78313ba92710659868..5c3344c69c9e37b0e559e4df1eead330efaaebbb 100644 +index a02562550d9392eb9105ad8b63d7adfc7a6234ea..8a8a6fad2eeed14deb18138b66f68276cf1884bd 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Panda.java +++ b/src/main/java/net/minecraft/world/entity/animal/Panda.java -@@ -138,6 +138,11 @@ public class Panda extends Animal { +@@ -137,6 +137,11 @@ public class Panda extends Animal { public int getPurpurBreedTime() { return this.level.purpurConfig.pandaBreedingTicks; } @@ -226,10 +226,10 @@ index 785f2b3deb32f0f7eb5c5a78313ba92710659868..5c3344c69c9e37b0e559e4df1eead330 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/Parrot.java b/src/main/java/net/minecraft/world/entity/animal/Parrot.java -index 749f8bf4719923fe0cb4b09e1673c42709660da3..f2226bd6753a50c0d96e07a50cb8785b50cae1ca 100644 +index 7441dbdc630a4ea80aed18a622bc061eb91579a5..5064673a78a6bc5cb8b8973d451946239cd995a0 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Parrot.java +++ b/src/main/java/net/minecraft/world/entity/animal/Parrot.java -@@ -186,6 +186,11 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal { +@@ -191,6 +191,11 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal { public int getPurpurBreedTime() { return 6000; } @@ -242,10 +242,10 @@ index 749f8bf4719923fe0cb4b09e1673c42709660da3..f2226bd6753a50c0d96e07a50cb8785b @Nullable diff --git a/src/main/java/net/minecraft/world/entity/animal/Pig.java b/src/main/java/net/minecraft/world/entity/animal/Pig.java -index ff768992544bc9c7661c698ba8fad6b49a08e437..80e3972f0b7e64f3e044ebdded63ee93d46050fe 100644 +index 454f683bc339f65605b212ba9a64fcc123c0ca67..ebe769f29a03776bffc655fe7b29598eee891eee 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Pig.java +++ b/src/main/java/net/minecraft/world/entity/animal/Pig.java -@@ -85,6 +85,11 @@ public class Pig extends Animal implements ItemSteerable, Saddleable { +@@ -84,6 +84,11 @@ public class Pig extends Animal implements ItemSteerable, Saddleable { public int getPurpurBreedTime() { return this.level.purpurConfig.pigBreedingTicks; } @@ -258,10 +258,10 @@ index ff768992544bc9c7661c698ba8fad6b49a08e437..80e3972f0b7e64f3e044ebdded63ee93 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/PolarBear.java b/src/main/java/net/minecraft/world/entity/animal/PolarBear.java -index d9d8d1085c4ab1d000110b227807631b6849a4ce..ae143662b24908ac7bc202e82b48cfb7219192b7 100644 +index 00ea9461c1ce55d3219b3829990b0a77434c83e1..e1dbd1acb5e62281190fe2ce20f35ac88e6d24db 100644 --- a/src/main/java/net/minecraft/world/entity/animal/PolarBear.java +++ b/src/main/java/net/minecraft/world/entity/animal/PolarBear.java -@@ -119,6 +119,11 @@ public class PolarBear extends Animal implements NeutralMob { +@@ -120,6 +120,11 @@ public class PolarBear extends Animal implements NeutralMob { public int getPurpurBreedTime() { return this.level.purpurConfig.polarBearBreedingTicks; } @@ -290,10 +290,10 @@ index 654ad8cd11bc11432811ed7408c0ce9b473a3245..5d8a01df7b86f1a23b30ed67b27ebde7 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java -index 74ee531befc67495e18d4b97a4e4b14e51830de5..ad4872a1116e966f85411705cc30a85ccc5fd7b7 100644 +index d7fbe9322ae22274c37e8b36500d993eab5bf397..2a6fa3435995a72d0241d5339b4fcc3dbff3b544 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java +++ b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java -@@ -138,6 +138,11 @@ public class Rabbit extends Animal { +@@ -140,6 +140,11 @@ public class Rabbit extends Animal { public int getPurpurBreedTime() { return this.level.purpurConfig.rabbitBreedingTicks; } @@ -322,7 +322,7 @@ index e42bdde7947e532a3a5517c874411a39132bb73e..04bf6f321e39821bae2d1871c54e304c @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/Sheep.java b/src/main/java/net/minecraft/world/entity/animal/Sheep.java -index af800fb4b789e28c112a6f351d128719a8a767e9..fd2784cd4ed4f79fa465179ae4a90e83fa1635dc 100644 +index 7d3a8324eabe65c7ca89be0ad954a6fad5983b84..1ab9c27a7bc6879e011d3a4e05f19a48fe7c0a9f 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Sheep.java +++ b/src/main/java/net/minecraft/world/entity/animal/Sheep.java @@ -136,6 +136,11 @@ public class Sheep extends Animal implements Shearable { @@ -338,10 +338,10 @@ index af800fb4b789e28c112a6f351d128719a8a767e9..fd2784cd4ed4f79fa465179ae4a90e83 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java -index c931bf7ec3c58eae012bbadb9d3e9fef69b3fc79..cbb09b62b0bf10b191e8e7fbe98885736807ea40 100644 +index af4db007807d94888fa945d9d43785b74bee2b67..d457978c0345aa51c03880cf87a08494b2e117c5 100644 --- a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java +++ b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java -@@ -110,7 +110,7 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM +@@ -111,7 +111,7 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM @Override public boolean isSensitiveToWater() { @@ -351,10 +351,10 @@ index c931bf7ec3c58eae012bbadb9d3e9fef69b3fc79..cbb09b62b0bf10b191e8e7fbe9888573 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/Squid.java b/src/main/java/net/minecraft/world/entity/animal/Squid.java -index bde5ee9f4a307608db5f58f24a0c8da736e96d20..427f61d472be2fcc11dd8f66d0b5681de3644a9d 100644 +index 9a99904bd761df5861f68533279ebde39644b4f8..0d64c2de83ff0e6d874adb7698ca439202bf2c0f 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Squid.java +++ b/src/main/java/net/minecraft/world/entity/animal/Squid.java -@@ -94,6 +94,11 @@ public class Squid extends WaterAnimal { +@@ -91,6 +91,11 @@ public class Squid extends WaterAnimal { public boolean isInWater() { return this.wasTouchingWater || canFly(); } @@ -367,10 +367,10 @@ index bde5ee9f4a307608db5f58f24a0c8da736e96d20..427f61d472be2fcc11dd8f66d0b5681d @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/TropicalFish.java b/src/main/java/net/minecraft/world/entity/animal/TropicalFish.java -index 2cb3d5d7dc31ff1f23dc2ac5c189172b900c7bf1..bd5128b051e5f2f817a38e64f717643465d9aacf 100644 +index 2de2dc96b7f5960d4cef3184c14409e0868158cd..cbe50aacc9279d147d25775b3855c3a8caff2b9c 100644 --- a/src/main/java/net/minecraft/world/entity/animal/TropicalFish.java +++ b/src/main/java/net/minecraft/world/entity/animal/TropicalFish.java -@@ -58,6 +58,11 @@ public class TropicalFish extends AbstractSchoolingFish { +@@ -65,6 +65,11 @@ public class TropicalFish extends AbstractSchoolingFish { public void initAttributes() { this.getAttribute(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.tropicalFishMaxHealth); } @@ -383,10 +383,10 @@ index 2cb3d5d7dc31ff1f23dc2ac5c189172b900c7bf1..bd5128b051e5f2f817a38e64f7176434 public static String getPredefinedName(int variant) { diff --git a/src/main/java/net/minecraft/world/entity/animal/Turtle.java b/src/main/java/net/minecraft/world/entity/animal/Turtle.java -index 1d1157c9a9af89df653bc4f85fa4e6f80ca3a638..ab1f0b026d207cf9e919723acc3b62fb5e6ccdc8 100644 +index 76657c68577030f65ce87036c12149c4eccf4908..5fb58a80ac5a6f6ec7779ccad4cff7356cae087c 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Turtle.java +++ b/src/main/java/net/minecraft/world/entity/animal/Turtle.java -@@ -110,6 +110,11 @@ public class Turtle extends Animal { +@@ -106,6 +106,11 @@ public class Turtle extends Animal { public int getPurpurBreedTime() { return this.level.purpurConfig.turtleBreedingTicks; } @@ -399,10 +399,10 @@ index 1d1157c9a9af89df653bc4f85fa4e6f80ca3a638..ab1f0b026d207cf9e919723acc3b62fb public void setHomePos(BlockPos pos) { diff --git a/src/main/java/net/minecraft/world/entity/animal/Wolf.java b/src/main/java/net/minecraft/world/entity/animal/Wolf.java -index bad3b1e32a8c8035542243a69028b3a8622019b8..1193f711442fc8d0d3631cbb7fe4a31bf7639f1b 100644 +index a669a00d68807ed451a1b0def7a92e17ffb7bee1..b039cbbcc33a6b1925d1cf4339018219ceb6c2ad 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java +++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java -@@ -194,6 +194,11 @@ public class Wolf extends TamableAnimal implements NeutralMob { +@@ -199,6 +199,11 @@ public class Wolf extends TamableAnimal implements NeutralMob { setCollarColor(level.purpurConfig.wolfDefaultCollarColor); super.tame(player); } @@ -415,10 +415,10 @@ index bad3b1e32a8c8035542243a69028b3a8622019b8..1193f711442fc8d0d3631cbb7fe4a31b @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 51e36a24d6f7dce1ae488e7f9c288b1ce21a82e9..305095b82d9189c63ab557688374ad49e397b3b3 100644 +index 7afe0e3a91b3b88da2b5ab034a45163880ff12bf..476973760b8ef18332cde3e878c28ff4c3b72058 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 -@@ -115,6 +115,11 @@ public class Axolotl extends Animal implements LerpingModel, Bucketable { +@@ -116,6 +116,11 @@ public class Axolotl extends Animal implements LerpingModel, Bucketable { public int getPurpurBreedTime() { return this.level.purpurConfig.axolotlBreedingTicks; } @@ -431,10 +431,10 @@ index 51e36a24d6f7dce1ae488e7f9c288b1ce21a82e9..305095b82d9189c63ab557688374ad49 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java -index 2fe3ce8f24f46aa4f3c6363a37e4a045e109018a..9abb9dd6dcccd8437cba0e70aaea00ee1de1953b 100644 +index b72756afc34afa3f4f8ad838eba3a24faf7e46d0..d8bd81f1c8069f81983ccf0aee8200bd67c913de 100644 --- a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java +++ b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java -@@ -92,6 +92,11 @@ public class Goat extends Animal { +@@ -94,6 +94,11 @@ public class Goat extends Animal { public int getPurpurBreedTime() { return this.level.purpurConfig.goatBreedingTicks; } @@ -479,10 +479,10 @@ index 2c5cb1b759a0b6e0233345da5a968288ec338837..16755249c4700fa59f704b7c88e3490d @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 8c615c5955ff3bd9e08cb629dc3732e04fc76394..088bfe0df138ff77ba09aa47e262542b8aaa404b 100644 +index 4108202537f9f150e2a65427f3d71765783f835c..d0016761c124a4d593b18006efa18757ad385ab0 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 -@@ -128,6 +128,11 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob { +@@ -129,6 +129,11 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob { public int getPurpurBreedTime() { return this.level.purpurConfig.llamaBreedingTicks; } @@ -527,7 +527,7 @@ index 9c6c7d3bdf6dad329bca4a64dc6ea1cf8db345c6..75b85b5a6ff38f32d0344a76d9f626c2 public static AttributeSupplier.Builder createAttributes() { diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/TraderLlama.java b/src/main/java/net/minecraft/world/entity/animal/horse/TraderLlama.java -index dbeed04103ee42bd16e7b785d7024214b6335679..092da10b0cbc4d37697f875190646c184d186cb6 100644 +index a58153ad203a91c6ebb014febdaab167b8e694c4..201944f01609ad4e386504cab4b36bd57d298aac 100644 --- a/src/main/java/net/minecraft/world/entity/animal/horse/TraderLlama.java +++ b/src/main/java/net/minecraft/world/entity/animal/horse/TraderLlama.java @@ -62,6 +62,11 @@ public class TraderLlama extends Llama { @@ -559,7 +559,7 @@ index b6d9ba8dd5694952ca2eba54726ac5e587175250..88da7a365c28e2d097d0a7bff30ea1ac public static AttributeSupplier.Builder createAttributes() { diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java -index 3247f3f3c9d53953f8268c8f9575275126cf33a3..2f0654d4e8eba44880392d140ee52234b79e9503 100644 +index 6ba83c938456dc79c8cd948ae981c6f2e93702ae..ed1c473ef80202b3aa4996b5acb9728857eaec8c 100644 --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java @@ -159,6 +159,11 @@ public class EnderDragon extends Mob implements Enemy { @@ -575,10 +575,10 @@ index 3247f3f3c9d53953f8268c8f9575275126cf33a3..2f0654d4e8eba44880392d140ee52234 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 4407c9f25e88a3685c6e9f8c7775d3011b38fff2..3de45a7a54643109fc6a8287879cf6dae87e72ec 100644 +index c935177150c8270329dbf7cc43da31c603555c52..580af65dd27616cd6c17f3b8e39abbb1c4549ef4 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 -@@ -206,6 +206,11 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob +@@ -218,6 +218,11 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob public void initAttributes() { this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.witherMaxHealth); } @@ -591,7 +591,7 @@ index 4407c9f25e88a3685c6e9f8c7775d3011b38fff2..3de45a7a54643109fc6a8287879cf6da @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Blaze.java b/src/main/java/net/minecraft/world/entity/monster/Blaze.java -index 476bcac41d569a9734aa4e97fc11e4776b454ffc..d58654a700b5cf1d8a6370a83cfea2d486aec6f1 100644 +index b1f82e0ce34081ac9d928f42d9ffbbfd507b4ca9..1f0dee90f706cad373286c185af3a8234edacf4a 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Blaze.java +++ b/src/main/java/net/minecraft/world/entity/monster/Blaze.java @@ -138,7 +138,7 @@ public class Blaze extends Monster { @@ -620,7 +620,7 @@ index 45b53f11b52cc161775fcaa18567e4a74c5e71b8..58d11054bd62338a8b6959663420d286 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java -index aea8de335294320e3734bea4fbc4bab91d1de59a..10095acd7b5b0b6e4e74192bb3d74ae2091aa75f 100644 +index d06bba26db491950588d8b7ef356156663972e4f..f6a8d026c2380b9d7ec3121c7e144c6f19f5323c 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java +++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java @@ -146,6 +146,11 @@ public class Creeper extends Monster implements PowerableMob { @@ -636,7 +636,7 @@ index aea8de335294320e3734bea4fbc4bab91d1de59a..10095acd7b5b0b6e4e74192bb3d74ae2 @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 838feecb8fb58ab951c16d67cce49ff12eccd1ba..729b4a414918b1f74c225e15b5c41dc0db2a9f5b 100644 +index c4eeeec1ff1963263459d29b7a7babd2ea8293e4..bd209089f0730674f811d96bdbe7915d6a857729 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Drowned.java +++ b/src/main/java/net/minecraft/world/entity/monster/Drowned.java @@ -104,6 +104,11 @@ public class Drowned extends Zombie implements RangedAttackMob { @@ -668,10 +668,10 @@ index e25374b06e3babd93cd5bbdd58ea401a92dbb001..0aa4d8e506462cfe6fb69414a30cc5eb 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 2aa05aa9e7a12eea582c05c141f08fc6e2b82053..b1900c21e791e7edf82345c508fd108c9d88b6ed 100644 +index be620f9f305aad756bb5b932764aaf24baebda55..a0b347f9daf5e8cf28ec3e308b639d5200c276dd 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java -@@ -287,7 +287,7 @@ public class EnderMan extends Monster implements NeutralMob { +@@ -293,7 +293,7 @@ public class EnderMan extends Monster implements NeutralMob { @Override public boolean isSensitiveToWater() { @@ -697,10 +697,10 @@ index d5c8cba1c443681e8bf81db1298ea24c954b1136..680a9cfc79c7b9d012f68142980ff32b @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Evoker.java b/src/main/java/net/minecraft/world/entity/monster/Evoker.java -index 78b2350a09eef0537742af429cfa5f022fc92ad3..e5183748f8c41798c7eb599476a457aaa9da350f 100644 +index e55cc17687247de4817939cd2d73ef667d946ca3..a38c2b27d2d0f5a8cef8e9ff0a914f2e88aaad87 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Evoker.java +++ b/src/main/java/net/minecraft/world/entity/monster/Evoker.java -@@ -61,6 +61,11 @@ public class Evoker extends SpellcasterIllager { +@@ -62,6 +62,11 @@ public class Evoker extends SpellcasterIllager { public void initAttributes() { this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.evokerMaxHealth); } @@ -713,7 +713,7 @@ index 78b2350a09eef0537742af429cfa5f022fc92ad3..e5183748f8c41798c7eb599476a457aa @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Ghast.java b/src/main/java/net/minecraft/world/entity/monster/Ghast.java -index 748eea45acb62cb6180bcf3409c608db2471d164..2f952a4ca4cd6a2d65ba6904f4cbbe162469adda 100644 +index 93bd5c9fa3356d8d8575e109130fffb2fa4334c5..d8bc592ea8265411dbb19f18cd99920e866ef187 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Ghast.java +++ b/src/main/java/net/minecraft/world/entity/monster/Ghast.java @@ -76,6 +76,11 @@ public class Ghast extends FlyingMob implements Enemy { @@ -745,7 +745,7 @@ index 91e28c414545d2bbb4e2f22c516d0f683e8b04ec..10a351c5efd5cf8f73078dcb268468e7 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Guardian.java b/src/main/java/net/minecraft/world/entity/monster/Guardian.java -index add17a3a1766172cfbcec9651c93cb89e020c31d..d83301e45ffb005626481f0f0a73554894b07353 100644 +index 170b5b4e3d023950c1c0a8e5d383ab5e5e888424..ddbbc4118079b88f5e4f804f52fa903633bda9b1 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Guardian.java +++ b/src/main/java/net/minecraft/world/entity/monster/Guardian.java @@ -92,6 +92,11 @@ public class Guardian extends Monster { @@ -777,7 +777,7 @@ index 7bb8ef0bb2de9a0b0d5048f8a4089835c41de568..5458ac83fa555e22ca858f4f596ebb8f public static boolean checkHuskSpawnRules(EntityType type, ServerLevelAccessor world, MobSpawnType spawnReason, BlockPos pos, Random random) { diff --git a/src/main/java/net/minecraft/world/entity/monster/Illusioner.java b/src/main/java/net/minecraft/world/entity/monster/Illusioner.java -index 23074f7dd2e670e884ac5f6386c16e853bb0144f..a7acf4902d78a435737cb8dee736670e9bf30df2 100644 +index dfcaad2d90abd2ce6f4a3a340ac205ce70c061e1..c9bfed1721e0b933e13f1d4c7a61215230bb18c9 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Illusioner.java +++ b/src/main/java/net/minecraft/world/entity/monster/Illusioner.java @@ -76,6 +76,11 @@ public class Illusioner extends SpellcasterIllager implements RangedAttackMob { @@ -809,10 +809,10 @@ index 68abf045f0510abc45bdc2fd8c147f27c2fa784d..cd6b136960b2c37c6e6d56c4e5f7fd30 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 26ef372ddeb707ad0962297ce736c245f713d9f2..59548f2a7683d4990c8fff668b462d7a1cdf969a 100644 +index c3fde22e1cf98881da66e70870ced65f0ce0abc3..5cf1d412c248a558b53b99ffede96ead5579f51c 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java +++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java -@@ -137,6 +137,11 @@ public class Phantom extends FlyingMob implements Enemy { +@@ -136,6 +136,11 @@ public class Phantom extends FlyingMob implements Enemy { public boolean isCirclingCrystal() { return crystalPosition != null; } @@ -825,10 +825,10 @@ index 26ef372ddeb707ad0962297ce736c245f713d9f2..59548f2a7683d4990c8fff668b462d7a @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Pillager.java b/src/main/java/net/minecraft/world/entity/monster/Pillager.java -index 4276c33261995dba3fb71c7b700e550824fcd123..056cde4bc05f1768e00ca81ed7018f953ed5e82c 100644 +index 466c3e33d48223f6a94c018036b992d7aa57dc6c..a089ccc5312bf3b2d78d701c1d9b2b42f8a87e7b 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Pillager.java +++ b/src/main/java/net/minecraft/world/entity/monster/Pillager.java -@@ -81,6 +81,11 @@ public class Pillager extends AbstractIllager implements CrossbowAttackMob, Inve +@@ -78,6 +78,11 @@ public class Pillager extends AbstractIllager implements CrossbowAttackMob, Inve public void initAttributes() { this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.pillagerMaxHealth); } @@ -841,10 +841,10 @@ index 4276c33261995dba3fb71c7b700e550824fcd123..056cde4bc05f1768e00ca81ed7018f95 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Ravager.java b/src/main/java/net/minecraft/world/entity/monster/Ravager.java -index 1148cd343f9931848b5119d8bddc9b5218d67490..780dae83e07339722e0fed962f2e6fa782d4a30e 100644 +index 5eb9e19531c5c996dd669f6e430b0dfb3d94928a..d3df45f7dbb688b56f03a4174e6311f83b437e18 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Ravager.java +++ b/src/main/java/net/minecraft/world/entity/monster/Ravager.java -@@ -91,6 +91,11 @@ public class Ravager extends Raider { +@@ -90,6 +90,11 @@ public class Ravager extends Raider { public void initAttributes() { this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.ravagerMaxHealth); } @@ -857,7 +857,7 @@ index 1148cd343f9931848b5119d8bddc9b5218d67490..780dae83e07339722e0fed962f2e6fa7 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Shulker.java b/src/main/java/net/minecraft/world/entity/monster/Shulker.java -index 6a0a82498360d1721f8cdb5801552379943a76b6..23b038d4cca101313303299779ca50be7a596d27 100644 +index 30eafae391ff5447cd9f61212798a54b026956c4..e463a4b40dbaed9c2d4e29d18cba98e47af3df3c 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Shulker.java +++ b/src/main/java/net/minecraft/world/entity/monster/Shulker.java @@ -107,6 +107,11 @@ public class Shulker extends AbstractGolem implements Enemy { @@ -873,10 +873,10 @@ index 6a0a82498360d1721f8cdb5801552379943a76b6..23b038d4cca101313303299779ca50be @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Silverfish.java b/src/main/java/net/minecraft/world/entity/monster/Silverfish.java -index 9caf164f1b68034dd36671e94c9b60e225bde691..67f1fa1ff33fb66b896621328f9c169dec5b4a16 100644 +index d215d8eff468c8bab9db160ea2b3fa1e6749d1a3..b0ae595d946057b7f6120717d079b13eea9ebec1 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Silverfish.java +++ b/src/main/java/net/minecraft/world/entity/monster/Silverfish.java -@@ -54,6 +54,11 @@ public class Silverfish extends Monster { +@@ -56,6 +56,11 @@ public class Silverfish extends Monster { public void initAttributes() { this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.silverfishMaxHealth); } @@ -905,7 +905,7 @@ index f3d73b9cf3d3cd0d69ea2f8152a1ced4289ee417..2cf7a67e5294099154f8acaa897f12e8 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Slime.java b/src/main/java/net/minecraft/world/entity/monster/Slime.java -index 7f3b89aa8bd92f821baa31b3fe47a02c43b6a3ca..da4a465cb6875b3efb8e3bda79665a443d5fba92 100644 +index f8e25df1b84296962b85b09e94bc42b57588607a..a560da0d50e37ced5a4d9b79378a9e4a331efadf 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Slime.java +++ b/src/main/java/net/minecraft/world/entity/monster/Slime.java @@ -125,6 +125,11 @@ public class Slime extends Mob implements Enemy { @@ -921,7 +921,7 @@ index 7f3b89aa8bd92f821baa31b3fe47a02c43b6a3ca..da4a465cb6875b3efb8e3bda79665a44 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Spider.java b/src/main/java/net/minecraft/world/entity/monster/Spider.java -index 20100770115430c100ab73a341ae7f613e50f4f0..4a5141abf8c67485b521ce64c3b485bda340b6a4 100644 +index 3f61e97cadd1c94d55093a7771b241029aee99f3..86c96558279fe31622da2eaba64e3cc4f487ab19 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Spider.java +++ b/src/main/java/net/minecraft/world/entity/monster/Spider.java @@ -66,6 +66,11 @@ public class Spider extends Monster { @@ -953,7 +953,7 @@ index 86b1c7a1ddd33249ce3d1ff25030d4218058af2c..9c556ee62a0eb09629d80dc5fc703476 public static boolean checkStraySpawnRules(EntityType type, ServerLevelAccessor world, MobSpawnType spawnReason, BlockPos pos, Random random) { diff --git a/src/main/java/net/minecraft/world/entity/monster/Strider.java b/src/main/java/net/minecraft/world/entity/monster/Strider.java -index 762542252e59da20f284dde2545889da3340454e..0440c2dc2e92df51163988b48535f1fe2e670284 100644 +index b4f7d6f4b7e6f6d5fe9e472f1723430c3301378b..167b40048bafa4c7a1993823a62f34b6d5758d90 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Strider.java +++ b/src/main/java/net/minecraft/world/entity/monster/Strider.java @@ -408,7 +408,7 @@ public class Strider extends Animal implements ItemSteerable, Saddleable { @@ -966,10 +966,10 @@ index 762542252e59da20f284dde2545889da3340454e..0440c2dc2e92df51163988b48535f1fe @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Vex.java b/src/main/java/net/minecraft/world/entity/monster/Vex.java -index 620b1692bda9c69ba39547b0bdcfd408a62bc5e6..2dbfe68decc653995f408bcc21cb59ff407d20d0 100644 +index 08f744680a07a877d6e235c0d9e4f108ddc46b78..1c540f1e562a8da6990a3c36138721b0963d9324 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Vex.java +++ b/src/main/java/net/minecraft/world/entity/monster/Vex.java -@@ -99,6 +99,11 @@ public class Vex extends Monster { +@@ -100,6 +100,11 @@ public class Vex extends Monster { public void initAttributes() { this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.vexMaxHealth); } @@ -982,7 +982,7 @@ index 620b1692bda9c69ba39547b0bdcfd408a62bc5e6..2dbfe68decc653995f408bcc21cb59ff @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Vindicator.java b/src/main/java/net/minecraft/world/entity/monster/Vindicator.java -index f65a997db7ee0d8e06dfe7cf41dd2231e67b1a2f..5f4dbad8c0c3d9163828b70d05721dc87d33f744 100644 +index c611dd58a7697093087c6d2c3b47cf85a1400722..1aa5c9affe53e86c8a3230932f05c1cea08ee8c7 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Vindicator.java +++ b/src/main/java/net/minecraft/world/entity/monster/Vindicator.java @@ -73,6 +73,11 @@ public class Vindicator extends AbstractIllager { @@ -998,10 +998,10 @@ index f65a997db7ee0d8e06dfe7cf41dd2231e67b1a2f..5f4dbad8c0c3d9163828b70d05721dc8 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Witch.java b/src/main/java/net/minecraft/world/entity/monster/Witch.java -index 9e0f91d4aa1c52d865e9f27ff876590740d6f650..1f67ad4bec59e797bbc07dfaa05bc48963c70b26 100644 +index 2eac41d27610a33adc6c2ef442cc687f0ddbdc5b..8792d8d3847f360663b0f3ed71f20a2e4f750321 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Witch.java +++ b/src/main/java/net/minecraft/world/entity/monster/Witch.java -@@ -75,6 +75,11 @@ public class Witch extends Raider implements RangedAttackMob { +@@ -74,6 +74,11 @@ public class Witch extends Raider implements RangedAttackMob { public void initAttributes() { this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.witchMaxHealth); } @@ -1030,10 +1030,10 @@ index 5f01beb931546a8bfc714754a65c1c9dbd2ebf8b..2aa2d0cd277be59a99c3cd52f5265409 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Zoglin.java b/src/main/java/net/minecraft/world/entity/monster/Zoglin.java -index 1d5726b5ae153cb51fb0e4d343ed999335098869..ae8f4d69e439e95505455531829850d015fb0cf2 100644 +index fe315ebb69773d243feb2fbda369fc6ff23d93c8..f96d891eeae384a210a7399a605d5d9cb0e3e591 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Zoglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/Zoglin.java -@@ -82,6 +82,11 @@ public class Zoglin extends Monster implements Enemy, HoglinBase { +@@ -83,6 +83,11 @@ public class Zoglin extends Monster implements Enemy, HoglinBase { public void initAttributes() { this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.zoglinMaxHealth); } @@ -1046,10 +1046,10 @@ index 1d5726b5ae153cb51fb0e4d343ed999335098869..ae8f4d69e439e95505455531829850d0 @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 40c1fe6853d0fbda603113cb508ad2ea313d7ddb..673e6e91290b3e7840d00d06c15906a014d72b42 100644 +index 6f636ddea90e89fa17fa76d25b93ab5079cda88b..be8182a2063fefa2c8f986c629eb629ef9dc1fee 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java +++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java -@@ -134,6 +134,11 @@ public class Zombie extends Monster { +@@ -131,6 +131,11 @@ public class Zombie extends Monster { public boolean jockeyTryExistingChickens() { return level.purpurConfig.zombieJockeyTryExistingChickens; } @@ -1062,10 +1062,10 @@ index 40c1fe6853d0fbda603113cb508ad2ea313d7ddb..673e6e91290b3e7840d00d06c15906a0 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java -index 7fda07f5fa756077dab59de95f15b9197e09581a..cea87c026130334503ad0d4753f4a8e46669e86c 100644 +index eb8dc173468f205c7b47915942890fe711e10650..96e5d1210e27b0bca7a354366e5c805709ae4fec 100644 --- a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java +++ b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java -@@ -109,6 +109,11 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder { +@@ -110,6 +110,11 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder { public boolean jockeyTryExistingChickens() { return level.purpurConfig.zombieVillagerJockeyTryExistingChickens; } @@ -1078,10 +1078,10 @@ index 7fda07f5fa756077dab59de95f15b9197e09581a..cea87c026130334503ad0d4753f4a8e4 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java b/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java -index 50553ab4ea1e7c8ae58988ce959188408cb03913..e2f3b46013de4417ccd3a1dc6d71c37a5b0b78a0 100644 +index f8b742ee8e637edd8e8b05aff2fcc7a75afe959a..fd2828469badbc7936ea68c0bdd8d689c86146b6 100644 --- a/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java -@@ -88,6 +88,11 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob { +@@ -89,6 +89,11 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob { public boolean jockeyTryExistingChickens() { return level.purpurConfig.zombifiedPiglinJockeyTryExistingChickens; } @@ -1110,10 +1110,10 @@ index c536b0f0d0ebe5b6b6409972eb711f84fc42afb7..866665186e7dd20a00a635d4675da2e7 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java -index 4be9326344893256cbc01fdb599f859aaf86a0a4..43a7220f44c7b21c7faa240364999c3cd5ea8de7 100644 +index 6beb798df62223fe653afa0f34e4a43d6cff11b7..9410c57b4999915ccff9588895fd9bec307499bd 100644 --- a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java -@@ -112,6 +112,11 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento +@@ -111,6 +111,11 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento public void initAttributes() { this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.piglinMaxHealth); } @@ -1142,10 +1142,10 @@ index f6734f2eb44af7b2389de5079831e0e4f8a1c742..d3a298734e4434d29b66e94fc6c299d3 public static AttributeSupplier.Builder createAttributes() { diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java -index 678d11c2941026fa0bf9ca50ba0ff4d6b0ac078e..622a1a5f06d19c4593e98247e4a9ab8747a2a68f 100644 +index 41ee7ebbe9689ee9d8d66463bb53eaf79b76117f..b14c2801021bc006bee94abdea83bab1d70791eb 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java -@@ -200,6 +200,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler +@@ -196,6 +196,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler net.minecraft.world.level.pathfinder.Path to = navigation.createPath(pos, 0); return to != null && to.nodes.size() > 0; } @@ -1174,10 +1174,10 @@ index c5dbb1c8210b71f7d9d91089cb139f65605573a8..e5b78c9d6fb326771d65ea9afd9da38c @Override diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd759fb429b5 100644 +index 724bce388bf69f9ca7e8e2bf01c17b86f7814b36..b7982c468d03f969d4809b66c34ed63ba35c48ef 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -600,6 +600,7 @@ public class PurpurWorldConfig { +@@ -576,6 +576,7 @@ public class PurpurWorldConfig { useNightVisionWhenRiding = getBoolean("ridable-settings.use-night-vision", useNightVisionWhenRiding); } @@ -1185,7 +1185,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 public boolean axolotlRidable = false; public double axolotlMaxHealth = 14.0D; public int axolotlBreedingTicks = 6000; -@@ -607,6 +608,7 @@ public class PurpurWorldConfig { +@@ -583,6 +584,7 @@ public class PurpurWorldConfig { axolotlRidable = getBoolean("mobs.axolotl.ridable", axolotlRidable); axolotlMaxHealth = getDouble("mobs.axolotl.attributes.max_health", axolotlMaxHealth); axolotlBreedingTicks = getInt("mobs.axolotl.breeding-delay-ticks", axolotlBreedingTicks); @@ -1193,7 +1193,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 } public boolean batRidable = false; -@@ -620,6 +622,7 @@ public class PurpurWorldConfig { +@@ -596,6 +598,7 @@ public class PurpurWorldConfig { public double batArmor = 0.0D; public double batArmorToughness = 0.0D; public double batAttackKnockback = 0.0D; @@ -1201,7 +1201,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void batSettings() { batRidable = getBoolean("mobs.bat.ridable", batRidable); batRidableInWater = getBoolean("mobs.bat.ridable-in-water", batRidableInWater); -@@ -630,6 +633,7 @@ public class PurpurWorldConfig { +@@ -606,6 +609,7 @@ public class PurpurWorldConfig { set("mobs.bat.attributes.max_health", oldValue); } batMaxHealth = getDouble("mobs.bat.attributes.max_health", batMaxHealth); @@ -1209,7 +1209,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 } public boolean beeRidable = false; -@@ -637,6 +641,7 @@ public class PurpurWorldConfig { +@@ -613,6 +617,7 @@ public class PurpurWorldConfig { public double beeMaxY = 256D; public double beeMaxHealth = 10.0D; public int beeBreedingTicks = 6000; @@ -1217,7 +1217,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void beeSettings() { beeRidable = getBoolean("mobs.bee.ridable", beeRidable); beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater); -@@ -648,12 +653,14 @@ public class PurpurWorldConfig { +@@ -624,12 +629,14 @@ public class PurpurWorldConfig { } beeMaxHealth = getDouble("mobs.bee.attributes.max_health", beeMaxHealth); beeBreedingTicks = getInt("mobs.bee.breeding-delay-ticks", beeBreedingTicks); @@ -1232,7 +1232,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void blazeSettings() { blazeRidable = getBoolean("mobs.blaze.ridable", blazeRidable); blazeRidableInWater = getBoolean("mobs.blaze.ridable-in-water", blazeRidableInWater); -@@ -664,6 +671,7 @@ public class PurpurWorldConfig { +@@ -640,6 +647,7 @@ public class PurpurWorldConfig { set("mobs.blaze.attributes.max_health", oldValue); } blazeMaxHealth = getDouble("mobs.blaze.attributes.max_health", blazeMaxHealth); @@ -1240,7 +1240,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 } public boolean catRidable = false; -@@ -674,6 +682,7 @@ public class PurpurWorldConfig { +@@ -650,6 +658,7 @@ public class PurpurWorldConfig { public int catSpawnSwampHutScanRange = 16; public int catSpawnVillageScanRange = 48; public int catBreedingTicks = 6000; @@ -1248,7 +1248,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void catSettings() { catRidable = getBoolean("mobs.cat.ridable", catRidable); catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater); -@@ -692,11 +701,13 @@ public class PurpurWorldConfig { +@@ -668,11 +677,13 @@ public class PurpurWorldConfig { catSpawnSwampHutScanRange = getInt("mobs.cat.scan-range-for-other-cats.swamp-hut", catSpawnSwampHutScanRange); catSpawnVillageScanRange = getInt("mobs.cat.scan-range-for-other-cats.village", catSpawnVillageScanRange); catBreedingTicks = getInt("mobs.cat.breeding-delay-ticks", catBreedingTicks); @@ -1262,7 +1262,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void caveSpiderSettings() { caveSpiderRidable = getBoolean("mobs.cave_spider.ridable", caveSpiderRidable); caveSpiderRidableInWater = getBoolean("mobs.cave_spider.ridable-in-water", caveSpiderRidableInWater); -@@ -706,6 +717,7 @@ public class PurpurWorldConfig { +@@ -682,6 +693,7 @@ public class PurpurWorldConfig { set("mobs.cave_spider.attributes.max_health", oldValue); } caveSpiderMaxHealth = getDouble("mobs.cave_spider.attributes.max_health", caveSpiderMaxHealth); @@ -1270,7 +1270,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 } public boolean chickenRidable = false; -@@ -713,6 +725,7 @@ public class PurpurWorldConfig { +@@ -689,6 +701,7 @@ public class PurpurWorldConfig { public double chickenMaxHealth = 4.0D; public boolean chickenRetaliate = false; public int chickenBreedingTicks = 6000; @@ -1278,7 +1278,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void chickenSettings() { chickenRidable = getBoolean("mobs.chicken.ridable", chickenRidable); chickenRidableInWater = getBoolean("mobs.chicken.ridable-in-water", chickenRidableInWater); -@@ -724,10 +737,12 @@ public class PurpurWorldConfig { +@@ -700,10 +713,12 @@ public class PurpurWorldConfig { chickenMaxHealth = getDouble("mobs.chicken.attributes.max_health", chickenMaxHealth); chickenRetaliate = getBoolean("mobs.chicken.retaliate", chickenRetaliate); chickenBreedingTicks = getInt("mobs.chicken.breeding-delay-ticks", chickenBreedingTicks); @@ -1291,7 +1291,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void codSettings() { codRidable = getBoolean("mobs.cod.ridable", codRidable); if (PurpurConfig.version < 10) { -@@ -736,6 +751,7 @@ public class PurpurWorldConfig { +@@ -712,6 +727,7 @@ public class PurpurWorldConfig { set("mobs.cod.attributes.max_health", oldValue); } codMaxHealth = getDouble("mobs.cod.attributes.max_health", codMaxHealth); @@ -1299,7 +1299,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 } public boolean cowRidable = false; -@@ -743,6 +759,7 @@ public class PurpurWorldConfig { +@@ -719,6 +735,7 @@ public class PurpurWorldConfig { public double cowMaxHealth = 10.0D; public int cowFeedMushrooms = 0; public int cowBreedingTicks = 6000; @@ -1307,7 +1307,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void cowSettings() { cowRidable = getBoolean("mobs.cow.ridable", cowRidable); cowRidableInWater = getBoolean("mobs.cow.ridable-in-water", cowRidableInWater); -@@ -754,6 +771,7 @@ public class PurpurWorldConfig { +@@ -730,6 +747,7 @@ public class PurpurWorldConfig { cowMaxHealth = getDouble("mobs.cow.attributes.max_health", cowMaxHealth); cowFeedMushrooms = getInt("mobs.cow.feed-mushrooms-for-mooshroom", cowFeedMushrooms); cowBreedingTicks = getInt("mobs.cow.breeding-delay-ticks", cowBreedingTicks); @@ -1315,7 +1315,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 } public boolean creeperRidable = false; -@@ -762,6 +780,7 @@ public class PurpurWorldConfig { +@@ -738,6 +756,7 @@ public class PurpurWorldConfig { public double creeperChargedChance = 0.0D; public boolean creeperAllowGriefing = true; public boolean creeperBypassMobGriefing = false; @@ -1323,7 +1323,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -774,6 +793,7 @@ public class PurpurWorldConfig { +@@ -750,6 +769,7 @@ public class PurpurWorldConfig { creeperChargedChance = getDouble("mobs.creeper.naturally-charged-chance", creeperChargedChance); creeperAllowGriefing = getBoolean("mobs.creeper.allow-griefing", creeperAllowGriefing); creeperBypassMobGriefing = getBoolean("mobs.creeper.bypass-mob-griefing", creeperBypassMobGriefing); @@ -1331,7 +1331,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 } public boolean dolphinRidable = false; -@@ -782,6 +802,7 @@ public class PurpurWorldConfig { +@@ -758,6 +778,7 @@ public class PurpurWorldConfig { public float dolphinSpitDamage = 2.0F; public double dolphinMaxHealth = 10.0D; public boolean dolphinDisableTreasureSearching = false; @@ -1339,7 +1339,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void dolphinSettings() { dolphinRidable = getBoolean("mobs.dolphin.ridable", dolphinRidable); dolphinSpitCooldown = getInt("mobs.dolphin.spit.cooldown", dolphinSpitCooldown); -@@ -794,6 +815,7 @@ public class PurpurWorldConfig { +@@ -770,6 +791,7 @@ public class PurpurWorldConfig { } dolphinMaxHealth = getDouble("mobs.dolphin.attributes.max_health", dolphinMaxHealth); dolphinDisableTreasureSearching = getBoolean("mobs.dolphin.disable-treasure-searching", dolphinDisableTreasureSearching); @@ -1347,7 +1347,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 } public boolean donkeyRidableInWater = false; -@@ -804,6 +826,7 @@ public class PurpurWorldConfig { +@@ -780,6 +802,7 @@ public class PurpurWorldConfig { public double donkeyMovementSpeedMin = 0.175D; public double donkeyMovementSpeedMax = 0.175D; public int donkeyBreedingTicks = 6000; @@ -1355,7 +1355,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void donkeySettings() { donkeyRidableInWater = getBoolean("mobs.donkey.ridable-in-water", donkeyRidableInWater); if (PurpurConfig.version < 10) { -@@ -820,6 +843,7 @@ public class PurpurWorldConfig { +@@ -796,6 +819,7 @@ public class PurpurWorldConfig { donkeyMovementSpeedMin = getDouble("mobs.donkey.attributes.movement_speed.min", donkeyMovementSpeedMin); donkeyMovementSpeedMax = getDouble("mobs.donkey.attributes.movement_speed.max", donkeyMovementSpeedMax); donkeyBreedingTicks = getInt("mobs.donkey.breeding-delay-ticks", donkeyBreedingTicks); @@ -1363,7 +1363,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 } public boolean drownedRidable = false; -@@ -829,6 +853,7 @@ public class PurpurWorldConfig { +@@ -805,6 +829,7 @@ public class PurpurWorldConfig { public boolean drownedJockeyOnlyBaby = true; public double drownedJockeyChance = 0.05D; public boolean drownedJockeyTryExistingChickens = true; @@ -1371,7 +1371,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void drownedSettings() { drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable); drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater); -@@ -842,10 +867,12 @@ public class PurpurWorldConfig { +@@ -818,10 +843,12 @@ public class PurpurWorldConfig { drownedJockeyOnlyBaby = getBoolean("mobs.drowned.jockey.only-babies", drownedJockeyOnlyBaby); drownedJockeyChance = getDouble("mobs.drowned.jockey.chance", drownedJockeyChance); drownedJockeyTryExistingChickens = getBoolean("mobs.drowned.jockey.try-existing-chickens", drownedJockeyTryExistingChickens); @@ -1384,7 +1384,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void elderGuardianSettings() { elderGuardianRidable = getBoolean("mobs.elder_guardian.ridable", elderGuardianRidable); if (PurpurConfig.version < 10) { -@@ -854,6 +881,7 @@ public class PurpurWorldConfig { +@@ -830,6 +857,7 @@ public class PurpurWorldConfig { set("mobs.elder_guardian.attributes.max_health", oldValue); } elderGuardianMaxHealth = getDouble("mobs.elder_guardian.attributes.max_health", elderGuardianMaxHealth); @@ -1392,7 +1392,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 } public boolean enderDragonRidable = false; -@@ -862,6 +890,7 @@ public class PurpurWorldConfig { +@@ -838,6 +866,7 @@ public class PurpurWorldConfig { public double enderDragonMaxHealth = 200.0D; public boolean enderDragonAlwaysDropsFullExp = false; public boolean enderDragonBypassMobGriefing = false; @@ -1400,7 +1400,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void enderDragonSettings() { enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable); enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater); -@@ -878,6 +907,7 @@ public class PurpurWorldConfig { +@@ -854,6 +883,7 @@ public class PurpurWorldConfig { enderDragonMaxHealth = getDouble("mobs.ender_dragon.attributes.max_health", enderDragonMaxHealth); enderDragonAlwaysDropsFullExp = getBoolean("mobs.ender_dragon.always-drop-full-exp", enderDragonAlwaysDropsFullExp); enderDragonBypassMobGriefing = getBoolean("mobs.ender_dragon.bypass-mob-griefing", enderDragonBypassMobGriefing); @@ -1408,7 +1408,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 } public boolean endermanRidable = false; -@@ -886,6 +916,7 @@ public class PurpurWorldConfig { +@@ -862,6 +892,7 @@ public class PurpurWorldConfig { public boolean endermanAllowGriefing = true; public boolean endermanDespawnEvenWithBlock = false; public boolean endermanBypassMobGriefing = false; @@ -1416,7 +1416,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -898,11 +929,13 @@ public class PurpurWorldConfig { +@@ -874,11 +905,13 @@ public class PurpurWorldConfig { endermanAllowGriefing = getBoolean("mobs.enderman.allow-griefing", endermanAllowGriefing); endermanDespawnEvenWithBlock = getBoolean("mobs.enderman.can-despawn-with-held-block", endermanDespawnEvenWithBlock); endermanBypassMobGriefing = getBoolean("mobs.enderman.bypass-mob-griefing", endermanBypassMobGriefing); @@ -1430,7 +1430,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void endermiteSettings() { endermiteRidable = getBoolean("mobs.endermite.ridable", endermiteRidable); endermiteRidableInWater = getBoolean("mobs.endermite.ridable-in-water", endermiteRidableInWater); -@@ -912,12 +945,14 @@ public class PurpurWorldConfig { +@@ -888,12 +921,14 @@ public class PurpurWorldConfig { set("mobs.endermite.attributes.max_health", oldValue); } endermiteMaxHealth = getDouble("mobs.endermite.attributes.max_health", endermiteMaxHealth); @@ -1445,7 +1445,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void evokerSettings() { evokerRidable = getBoolean("mobs.evoker.ridable", evokerRidable); evokerRidableInWater = getBoolean("mobs.evoker.ridable-in-water", evokerRidableInWater); -@@ -928,6 +963,7 @@ public class PurpurWorldConfig { +@@ -904,6 +939,7 @@ public class PurpurWorldConfig { } evokerMaxHealth = getDouble("mobs.evoker.attributes.max_health", evokerMaxHealth); evokerBypassMobGriefing = getBoolean("mobs.evoker.bypass-mob-griefing", evokerBypassMobGriefing); @@ -1453,7 +1453,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 } public boolean foxRidable = false; -@@ -936,6 +972,7 @@ public class PurpurWorldConfig { +@@ -912,6 +948,7 @@ public class PurpurWorldConfig { public boolean foxTypeChangesWithTulips = false; public int foxBreedingTicks = 6000; public boolean foxBypassMobGriefing = false; @@ -1461,7 +1461,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void foxSettings() { foxRidable = getBoolean("mobs.fox.ridable", foxRidable); foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater); -@@ -948,12 +985,14 @@ public class PurpurWorldConfig { +@@ -924,12 +961,14 @@ public class PurpurWorldConfig { foxTypeChangesWithTulips = getBoolean("mobs.fox.tulips-change-type", foxTypeChangesWithTulips); foxBreedingTicks = getInt("mobs.fox.breeding-delay-ticks", foxBreedingTicks); foxBypassMobGriefing = getBoolean("mobs.fox.bypass-mob-griefing", foxBypassMobGriefing); @@ -1476,7 +1476,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void ghastSettings() { ghastRidable = getBoolean("mobs.ghast.ridable", ghastRidable); ghastRidableInWater = getBoolean("mobs.ghast.ridable-in-water", ghastRidableInWater); -@@ -964,6 +1003,7 @@ public class PurpurWorldConfig { +@@ -940,6 +979,7 @@ public class PurpurWorldConfig { set("mobs.ghast.attributes.max_health", oldValue); } ghastMaxHealth = getDouble("mobs.ghast.attributes.max_health", ghastMaxHealth); @@ -1484,7 +1484,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 } public boolean giantRidable = false; -@@ -975,6 +1015,7 @@ public class PurpurWorldConfig { +@@ -951,6 +991,7 @@ public class PurpurWorldConfig { public float giantJumpHeight = 1.0F; public boolean giantHaveAI = false; public boolean giantHaveHostileAI = false; @@ -1492,7 +1492,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void giantSettings() { giantRidable = getBoolean("mobs.giant.ridable", giantRidable); giantRidableInWater = getBoolean("mobs.giant.ridable-in-water", giantRidableInWater); -@@ -994,30 +1035,36 @@ public class PurpurWorldConfig { +@@ -970,30 +1011,36 @@ public class PurpurWorldConfig { giantJumpHeight = (float) getDouble("mobs.giant.jump-height", giantJumpHeight); giantHaveAI = getBoolean("mobs.giant.have-ai", giantHaveAI); giantHaveHostileAI = getBoolean("mobs.giant.have-hostile-ai", giantHaveHostileAI); @@ -1529,7 +1529,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void guardianSettings() { guardianRidable = getBoolean("mobs.guardian.ridable", guardianRidable); if (PurpurConfig.version < 10) { -@@ -1026,12 +1073,14 @@ public class PurpurWorldConfig { +@@ -1002,12 +1049,14 @@ public class PurpurWorldConfig { set("mobs.guardian.attributes.max_health", oldValue); } guardianMaxHealth = getDouble("mobs.guardian.attributes.max_health", guardianMaxHealth); @@ -1544,7 +1544,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void hoglinSettings() { hoglinRidable = getBoolean("mobs.hoglin.ridable", hoglinRidable); hoglinRidableInWater = getBoolean("mobs.hoglin.ridable-in-water", hoglinRidableInWater); -@@ -1042,6 +1091,7 @@ public class PurpurWorldConfig { +@@ -1018,6 +1067,7 @@ public class PurpurWorldConfig { } hoglinMaxHealth = getDouble("mobs.hoglin.attributes.max_health", hoglinMaxHealth); hoglinBreedingTicks = getInt("mobs.hoglin.breeding-delay-ticks", hoglinBreedingTicks); @@ -1552,7 +1552,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 } public boolean horseRidableInWater = false; -@@ -1052,6 +1102,7 @@ public class PurpurWorldConfig { +@@ -1028,6 +1078,7 @@ public class PurpurWorldConfig { public double horseMovementSpeedMin = 0.1125D; public double horseMovementSpeedMax = 0.3375D; public int horseBreedingTicks = 6000; @@ -1560,7 +1560,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void horseSettings() { horseRidableInWater = getBoolean("mobs.horse.ridable-in-water", horseRidableInWater); if (PurpurConfig.version < 10) { -@@ -1068,6 +1119,7 @@ public class PurpurWorldConfig { +@@ -1044,6 +1095,7 @@ public class PurpurWorldConfig { horseMovementSpeedMin = getDouble("mobs.horse.attributes.movement_speed.min", horseMovementSpeedMin); horseMovementSpeedMax = getDouble("mobs.horse.attributes.movement_speed.max", horseMovementSpeedMax); horseBreedingTicks = getInt("mobs.horse.breeding-delay-ticks", horseBreedingTicks); @@ -1568,7 +1568,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 } public boolean huskRidable = false; -@@ -1077,6 +1129,7 @@ public class PurpurWorldConfig { +@@ -1053,6 +1105,7 @@ public class PurpurWorldConfig { public boolean huskJockeyOnlyBaby = true; public double huskJockeyChance = 0.05D; public boolean huskJockeyTryExistingChickens = true; @@ -1576,7 +1576,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void huskSettings() { huskRidable = getBoolean("mobs.husk.ridable", huskRidable); huskRidableInWater = getBoolean("mobs.husk.ridable-in-water", huskRidableInWater); -@@ -1090,6 +1143,7 @@ public class PurpurWorldConfig { +@@ -1066,6 +1119,7 @@ public class PurpurWorldConfig { huskJockeyOnlyBaby = getBoolean("mobs.husk.jockey.only-babies", huskJockeyOnlyBaby); huskJockeyChance = getDouble("mobs.husk.jockey.chance", huskJockeyChance); huskJockeyTryExistingChickens = getBoolean("mobs.husk.jockey.try-existing-chickens", huskJockeyTryExistingChickens); @@ -1584,7 +1584,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 } public boolean illusionerRidable = false; -@@ -1097,6 +1151,7 @@ public class PurpurWorldConfig { +@@ -1073,6 +1127,7 @@ public class PurpurWorldConfig { public double illusionerMovementSpeed = 0.5D; public double illusionerFollowRange = 18.0D; public double illusionerMaxHealth = 32.0D; @@ -1592,7 +1592,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void illusionerSettings() { illusionerRidable = getBoolean("mobs.illusioner.ridable", illusionerRidable); illusionerRidableInWater = getBoolean("mobs.illusioner.ridable-in-water", illusionerRidableInWater); -@@ -1112,12 +1167,14 @@ public class PurpurWorldConfig { +@@ -1088,12 +1143,14 @@ public class PurpurWorldConfig { set("mobs.illusioner.attributes.max_health", oldValue); } illusionerMaxHealth = getDouble("mobs.illusioner.attributes.max_health", illusionerMaxHealth); @@ -1607,7 +1607,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void ironGolemSettings() { ironGolemRidable = getBoolean("mobs.iron_golem.ridable", ironGolemRidable); ironGolemRidableInWater = getBoolean("mobs.iron_golem.ridable-in-water", ironGolemRidableInWater); -@@ -1128,6 +1185,7 @@ public class PurpurWorldConfig { +@@ -1104,6 +1161,7 @@ public class PurpurWorldConfig { set("mobs.iron_golem.attributes.max_health", oldValue); } ironGolemMaxHealth = getDouble("mobs.iron_golem.attributes.max_health", ironGolemMaxHealth); @@ -1615,7 +1615,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 } public boolean llamaRidable = false; -@@ -1139,6 +1197,7 @@ public class PurpurWorldConfig { +@@ -1115,6 +1173,7 @@ public class PurpurWorldConfig { public double llamaMovementSpeedMin = 0.175D; public double llamaMovementSpeedMax = 0.175D; public int llamaBreedingTicks = 6000; @@ -1623,7 +1623,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void llamaSettings() { llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable); llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater); -@@ -1156,11 +1215,13 @@ public class PurpurWorldConfig { +@@ -1132,11 +1191,13 @@ public class PurpurWorldConfig { llamaMovementSpeedMin = getDouble("mobs.llama.attributes.movement_speed.min", llamaMovementSpeedMin); llamaMovementSpeedMax = getDouble("mobs.llama.attributes.movement_speed.max", llamaMovementSpeedMax); llamaBreedingTicks = getInt("mobs.llama.breeding-delay-ticks", llamaBreedingTicks); @@ -1637,7 +1637,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void magmaCubeSettings() { magmaCubeRidable = getBoolean("mobs.magma_cube.ridable", magmaCubeRidable); magmaCubeRidableInWater = getBoolean("mobs.magma_cube.ridable-in-water", magmaCubeRidableInWater); -@@ -1170,12 +1231,14 @@ public class PurpurWorldConfig { +@@ -1146,12 +1207,14 @@ public class PurpurWorldConfig { set("mobs.magma_cube.attributes.max_health", oldValue); } magmaCubeMaxHealth = getString("mobs.magma_cube.attributes.max_health", magmaCubeMaxHealth); @@ -1652,7 +1652,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void mooshroomSettings() { mooshroomRidable = getBoolean("mobs.mooshroom.ridable", mooshroomRidable); mooshroomRidableInWater = getBoolean("mobs.mooshroom.ridable-in-water", mooshroomRidableInWater); -@@ -1186,6 +1249,7 @@ public class PurpurWorldConfig { +@@ -1162,6 +1225,7 @@ public class PurpurWorldConfig { } mooshroomMaxHealth = getDouble("mobs.mooshroom.attributes.max_health", mooshroomMaxHealth); mooshroomBreedingTicks = getInt("mobs.mooshroom.breeding-delay-ticks", mooshroomBreedingTicks); @@ -1660,7 +1660,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 } public boolean muleRidableInWater = false; -@@ -1196,6 +1260,7 @@ public class PurpurWorldConfig { +@@ -1172,6 +1236,7 @@ public class PurpurWorldConfig { public double muleMovementSpeedMin = 0.175D; public double muleMovementSpeedMax = 0.175D; public int muleBreedingTicks = 6000; @@ -1668,7 +1668,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void muleSettings() { muleRidableInWater = getBoolean("mobs.mule.ridable-in-water", muleRidableInWater); if (PurpurConfig.version < 10) { -@@ -1212,12 +1277,14 @@ public class PurpurWorldConfig { +@@ -1188,12 +1253,14 @@ public class PurpurWorldConfig { muleMovementSpeedMin = getDouble("mobs.mule.attributes.movement_speed.min", muleMovementSpeedMin); muleMovementSpeedMax = getDouble("mobs.mule.attributes.movement_speed.max", muleMovementSpeedMax); muleBreedingTicks = getInt("mobs.mule.breeding-delay-ticks", muleBreedingTicks); @@ -1683,7 +1683,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void ocelotSettings() { ocelotRidable = getBoolean("mobs.ocelot.ridable", ocelotRidable); ocelotRidableInWater = getBoolean("mobs.ocelot.ridable-in-water", ocelotRidableInWater); -@@ -1228,12 +1295,14 @@ public class PurpurWorldConfig { +@@ -1204,12 +1271,14 @@ public class PurpurWorldConfig { } ocelotMaxHealth = getDouble("mobs.ocelot.attributes.max_health", ocelotMaxHealth); ocelotBreedingTicks = getInt("mobs.ocelot.breeding-delay-ticks", ocelotBreedingTicks); @@ -1698,7 +1698,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void pandaSettings() { pandaRidable = getBoolean("mobs.panda.ridable", pandaRidable); pandaRidableInWater = getBoolean("mobs.panda.ridable-in-water", pandaRidableInWater); -@@ -1244,12 +1313,14 @@ public class PurpurWorldConfig { +@@ -1220,12 +1289,14 @@ public class PurpurWorldConfig { } pandaMaxHealth = getDouble("mobs.panda.attributes.max_health", pandaMaxHealth); pandaBreedingTicks = getInt("mobs.panda.breeding-delay-ticks", pandaBreedingTicks); @@ -1713,7 +1713,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void parrotSettings() { parrotRidable = getBoolean("mobs.parrot.ridable", parrotRidable); parrotRidableInWater = getBoolean("mobs.parrot.ridable-in-water", parrotRidableInWater); -@@ -1260,6 +1331,7 @@ public class PurpurWorldConfig { +@@ -1236,6 +1307,7 @@ public class PurpurWorldConfig { set("mobs.parrot.attributes.max_health", oldValue); } parrotMaxHealth = getDouble("mobs.parrot.attributes.max_health", parrotMaxHealth); @@ -1721,7 +1721,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 } public boolean phantomRidable = false; -@@ -1288,6 +1360,7 @@ public class PurpurWorldConfig { +@@ -1264,6 +1336,7 @@ public class PurpurWorldConfig { public int phantomBurnInLight = 0; public boolean phantomIgnorePlayersWithTorch = false; public boolean phantomBurnInDaylight = true; @@ -1729,7 +1729,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -1320,6 +1393,7 @@ public class PurpurWorldConfig { +@@ -1296,6 +1369,7 @@ public class PurpurWorldConfig { phantomBurnInLight = getInt("mobs.phantom.burn-in-light", phantomBurnInLight); phantomBurnInDaylight = getBoolean("mobs.phantom.burn-in-daylight", phantomBurnInDaylight); phantomIgnorePlayersWithTorch = getBoolean("mobs.phantom.ignore-players-with-torch", phantomIgnorePlayersWithTorch); @@ -1737,7 +1737,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 } public boolean pigRidable = false; -@@ -1327,6 +1401,7 @@ public class PurpurWorldConfig { +@@ -1303,6 +1377,7 @@ public class PurpurWorldConfig { public double pigMaxHealth = 10.0D; public boolean pigGiveSaddleBack = false; public int pigBreedingTicks = 6000; @@ -1745,7 +1745,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void pigSettings() { pigRidable = getBoolean("mobs.pig.ridable", pigRidable); pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater); -@@ -1338,12 +1413,14 @@ public class PurpurWorldConfig { +@@ -1314,12 +1389,14 @@ public class PurpurWorldConfig { pigMaxHealth = getDouble("mobs.pig.attributes.max_health", pigMaxHealth); pigGiveSaddleBack = getBoolean("mobs.pig.give-saddle-back", pigGiveSaddleBack); pigBreedingTicks = getInt("mobs.pig.breeding-delay-ticks", pigBreedingTicks); @@ -1760,7 +1760,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -1354,11 +1431,13 @@ public class PurpurWorldConfig { +@@ -1330,11 +1407,13 @@ public class PurpurWorldConfig { } piglinMaxHealth = getDouble("mobs.piglin.attributes.max_health", piglinMaxHealth); piglinBypassMobGriefing = getBoolean("mobs.piglin.bypass-mob-griefing", piglinBypassMobGriefing); @@ -1774,7 +1774,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void piglinBruteSettings() { piglinBruteRidable = getBoolean("mobs.piglin_brute.ridable", piglinBruteRidable); piglinBruteRidableInWater = getBoolean("mobs.piglin_brute.ridable-in-water", piglinBruteRidableInWater); -@@ -1368,12 +1447,14 @@ public class PurpurWorldConfig { +@@ -1344,12 +1423,14 @@ public class PurpurWorldConfig { set("mobs.piglin_brute.attributes.max_health", oldValue); } piglinBruteMaxHealth = getDouble("mobs.piglin_brute.attributes.max_health", piglinBruteMaxHealth); @@ -1789,7 +1789,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void pillagerSettings() { pillagerRidable = getBoolean("mobs.pillager.ridable", pillagerRidable); pillagerRidableInWater = getBoolean("mobs.pillager.ridable-in-water", pillagerRidableInWater); -@@ -1384,6 +1465,7 @@ public class PurpurWorldConfig { +@@ -1360,6 +1441,7 @@ public class PurpurWorldConfig { } pillagerMaxHealth = getDouble("mobs.pillager.attributes.max_health", pillagerMaxHealth); pillagerBypassMobGriefing = getBoolean("mobs.pillager.bypass-mob-griefing", pillagerBypassMobGriefing); @@ -1797,7 +1797,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 } public boolean polarBearRidable = false; -@@ -1392,6 +1474,7 @@ public class PurpurWorldConfig { +@@ -1368,6 +1450,7 @@ public class PurpurWorldConfig { public String polarBearBreedableItemString = ""; public Item polarBearBreedableItem = null; public int polarBearBreedingTicks = 6000; @@ -1805,7 +1805,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void polarBearSettings() { polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable); polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater); -@@ -1405,10 +1488,12 @@ public class PurpurWorldConfig { +@@ -1381,10 +1464,12 @@ public class PurpurWorldConfig { Item item = Registry.ITEM.get(new ResourceLocation(polarBearBreedableItemString)); if (item != Items.AIR) polarBearBreedableItem = item; polarBearBreedingTicks = getInt("mobs.polar_bear.breeding-delay-ticks", polarBearBreedingTicks); @@ -1818,7 +1818,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void pufferfishSettings() { pufferfishRidable = getBoolean("mobs.pufferfish.ridable", pufferfishRidable); if (PurpurConfig.version < 10) { -@@ -1417,6 +1502,7 @@ public class PurpurWorldConfig { +@@ -1393,6 +1478,7 @@ public class PurpurWorldConfig { set("mobs.pufferfish.attributes.max_health", oldValue); } pufferfishMaxHealth = getDouble("mobs.pufferfish.attributes.max_health", pufferfishMaxHealth); @@ -1826,7 +1826,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 } public boolean rabbitRidable = false; -@@ -1426,6 +1512,7 @@ public class PurpurWorldConfig { +@@ -1402,6 +1488,7 @@ public class PurpurWorldConfig { public double rabbitNaturalKiller = 0.0D; public int rabbitBreedingTicks = 6000; public boolean rabbitBypassMobGriefing = false; @@ -1834,7 +1834,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void rabbitSettings() { rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable); rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater); -@@ -1439,12 +1526,14 @@ public class PurpurWorldConfig { +@@ -1415,12 +1502,14 @@ public class PurpurWorldConfig { rabbitNaturalKiller = getDouble("mobs.rabbit.spawn-killer-rabbit-chance", rabbitNaturalKiller); rabbitBreedingTicks = getInt("mobs.rabbit.breeding-delay-ticks", rabbitBreedingTicks); rabbitBypassMobGriefing = getBoolean("mobs.rabbit.bypass-mob-griefing", rabbitBypassMobGriefing); @@ -1849,7 +1849,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void ravagerSettings() { ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable); ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater); -@@ -1455,10 +1544,12 @@ public class PurpurWorldConfig { +@@ -1431,10 +1520,12 @@ public class PurpurWorldConfig { } ravagerMaxHealth = getDouble("mobs.ravager.attributes.max_health", ravagerMaxHealth); ravagerBypassMobGriefing = getBoolean("mobs.ravager.bypass-mob-griefing", ravagerBypassMobGriefing); @@ -1862,7 +1862,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void salmonSettings() { salmonRidable = getBoolean("mobs.salmon.ridable", salmonRidable); if (PurpurConfig.version < 10) { -@@ -1467,6 +1558,7 @@ public class PurpurWorldConfig { +@@ -1443,6 +1534,7 @@ public class PurpurWorldConfig { set("mobs.salmon.attributes.max_health", oldValue); } salmonMaxHealth = getDouble("mobs.salmon.attributes.max_health", salmonMaxHealth); @@ -1870,7 +1870,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 } public boolean sheepRidable = false; -@@ -1474,6 +1566,7 @@ public class PurpurWorldConfig { +@@ -1450,6 +1542,7 @@ public class PurpurWorldConfig { public double sheepMaxHealth = 8.0D; public int sheepBreedingTicks = 6000; public boolean sheepBypassMobGriefing = false; @@ -1878,7 +1878,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void sheepSettings() { sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable); sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater); -@@ -1485,11 +1578,13 @@ public class PurpurWorldConfig { +@@ -1461,11 +1554,13 @@ public class PurpurWorldConfig { sheepMaxHealth = getDouble("mobs.sheep.attributes.max_health", sheepMaxHealth); sheepBreedingTicks = getInt("mobs.sheep.breeding-delay-ticks", sheepBreedingTicks); sheepBypassMobGriefing = getBoolean("mobs.sheep.bypass-mob-griefing", sheepBypassMobGriefing); @@ -1892,7 +1892,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void shulkerSettings() { shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable); shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater); -@@ -1499,12 +1594,14 @@ public class PurpurWorldConfig { +@@ -1475,12 +1570,14 @@ public class PurpurWorldConfig { set("mobs.shulker.attributes.max_health", oldValue); } shulkerMaxHealth = getDouble("mobs.shulker.attributes.max_health", shulkerMaxHealth); @@ -1907,7 +1907,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void silverfishSettings() { silverfishRidable = getBoolean("mobs.silverfish.ridable", silverfishRidable); silverfishRidableInWater = getBoolean("mobs.silverfish.ridable-in-water", silverfishRidableInWater); -@@ -1515,11 +1612,13 @@ public class PurpurWorldConfig { +@@ -1491,11 +1588,13 @@ public class PurpurWorldConfig { } silverfishMaxHealth = getDouble("mobs.silverfish.attributes.max_health", silverfishMaxHealth); silverfishBypassMobGriefing = getBoolean("mobs.silverfish.bypass-mob-griefing", silverfishBypassMobGriefing); @@ -1921,7 +1921,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -1529,6 +1628,7 @@ public class PurpurWorldConfig { +@@ -1505,6 +1604,7 @@ public class PurpurWorldConfig { set("mobs.skeleton.attributes.max_health", oldValue); } skeletonMaxHealth = getDouble("mobs.skeleton.attributes.max_health", skeletonMaxHealth); @@ -1929,7 +1929,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 } public boolean skeletonHorseRidableInWater = false; -@@ -1539,6 +1639,7 @@ public class PurpurWorldConfig { +@@ -1515,6 +1615,7 @@ public class PurpurWorldConfig { public double skeletonHorseJumpStrengthMax = 1.0D; public double skeletonHorseMovementSpeedMin = 0.2D; public double skeletonHorseMovementSpeedMax = 0.2D; @@ -1937,7 +1937,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void skeletonHorseSettings() { skeletonHorseRidableInWater = getBoolean("mobs.skeleton_horse.ridable-in-water", skeletonHorseRidableInWater); skeletonHorseCanSwim = getBoolean("mobs.skeleton_horse.can-swim", skeletonHorseCanSwim); -@@ -1554,12 +1655,14 @@ public class PurpurWorldConfig { +@@ -1530,12 +1631,14 @@ public class PurpurWorldConfig { skeletonHorseJumpStrengthMax = getDouble("mobs.skeleton_horse.attributes.jump_strength.max", skeletonHorseJumpStrengthMax); skeletonHorseMovementSpeedMin = getDouble("mobs.skeleton_horse.attributes.movement_speed.min", skeletonHorseMovementSpeedMin); skeletonHorseMovementSpeedMax = getDouble("mobs.skeleton_horse.attributes.movement_speed.max", skeletonHorseMovementSpeedMax); @@ -1952,7 +1952,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void slimeSettings() { slimeRidable = getBoolean("mobs.slime.ridable", slimeRidable); slimeRidableInWater = getBoolean("mobs.slime.ridable-in-water", slimeRidableInWater); -@@ -1570,6 +1673,7 @@ public class PurpurWorldConfig { +@@ -1546,6 +1649,7 @@ public class PurpurWorldConfig { } slimeMaxHealth = getString("mobs.slime.attributes.max_health", slimeMaxHealth); slimeMaxHealthCache.clear(); @@ -1960,7 +1960,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 } public boolean snowGolemRidable = false; -@@ -1583,6 +1687,7 @@ public class PurpurWorldConfig { +@@ -1559,6 +1663,7 @@ public class PurpurWorldConfig { public float snowGolemSnowBallModifier = 10.0F; public double snowGolemAttackDistance = 1.25D; public boolean snowGolemBypassMobGriefing = false; @@ -1968,7 +1968,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -1600,6 +1705,7 @@ public class PurpurWorldConfig { +@@ -1576,6 +1681,7 @@ public class PurpurWorldConfig { snowGolemSnowBallModifier = (float) getDouble("mobs.snow_golem.snow-ball-modifier", snowGolemSnowBallModifier); snowGolemAttackDistance = getDouble("mobs.snow_golem.attack-distance", snowGolemAttackDistance); snowGolemBypassMobGriefing = getBoolean("mobs.snow_golem.bypass-mob-griefing", snowGolemBypassMobGriefing); @@ -1976,7 +1976,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 } public boolean squidRidable = false; -@@ -1607,6 +1713,7 @@ public class PurpurWorldConfig { +@@ -1583,6 +1689,7 @@ public class PurpurWorldConfig { public boolean squidImmuneToEAR = true; public double squidOffsetWaterCheck = 0.0D; public boolean squidsCanFly = false; @@ -1984,7 +1984,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); if (PurpurConfig.version < 10) { -@@ -1618,11 +1725,13 @@ public class PurpurWorldConfig { +@@ -1594,11 +1701,13 @@ public class PurpurWorldConfig { squidImmuneToEAR = getBoolean("mobs.squid.immune-to-EAR", squidImmuneToEAR); squidOffsetWaterCheck = getDouble("mobs.squid.water-offset-check", squidOffsetWaterCheck); squidsCanFly = getBoolean("mobs.squid.can-fly", squidsCanFly); @@ -1998,7 +1998,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void spiderSettings() { spiderRidable = getBoolean("mobs.spider.ridable", spiderRidable); spiderRidableInWater = getBoolean("mobs.spider.ridable-in-water", spiderRidableInWater); -@@ -1632,11 +1741,13 @@ public class PurpurWorldConfig { +@@ -1608,11 +1717,13 @@ public class PurpurWorldConfig { set("mobs.spider.attributes.max_health", oldValue); } spiderMaxHealth = getDouble("mobs.spider.attributes.max_health", spiderMaxHealth); @@ -2012,7 +2012,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void straySettings() { strayRidable = getBoolean("mobs.stray.ridable", strayRidable); strayRidableInWater = getBoolean("mobs.stray.ridable-in-water", strayRidableInWater); -@@ -1646,6 +1757,7 @@ public class PurpurWorldConfig { +@@ -1622,6 +1733,7 @@ public class PurpurWorldConfig { set("mobs.stray.attributes.max_health", oldValue); } strayMaxHealth = getDouble("mobs.stray.attributes.max_health", strayMaxHealth); @@ -2020,7 +2020,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 } public boolean striderRidable = false; -@@ -1653,6 +1765,7 @@ public class PurpurWorldConfig { +@@ -1629,6 +1741,7 @@ public class PurpurWorldConfig { public double striderMaxHealth = 20.0D; public int striderBreedingTicks = 6000; public boolean striderGiveSaddleBack = false; @@ -2028,7 +2028,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -1664,6 +1777,7 @@ public class PurpurWorldConfig { +@@ -1640,6 +1753,7 @@ public class PurpurWorldConfig { striderMaxHealth = getDouble("mobs.strider.attributes.max_health", striderMaxHealth); striderBreedingTicks = getInt("mobs.strider.breeding-delay-ticks", striderBreedingTicks); striderGiveSaddleBack = getBoolean("mobs.strider.give-saddle-back", striderGiveSaddleBack); @@ -2036,7 +2036,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 } public boolean traderLlamaRidable = false; -@@ -1675,6 +1789,7 @@ public class PurpurWorldConfig { +@@ -1651,6 +1765,7 @@ public class PurpurWorldConfig { public double traderLlamaMovementSpeedMin = 0.175D; public double traderLlamaMovementSpeedMax = 0.175D; public int traderLlamaBreedingTicks = 6000; @@ -2044,7 +2044,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void traderLlamaSettings() { traderLlamaRidable = getBoolean("mobs.trader_llama.ridable", traderLlamaRidable); traderLlamaRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", traderLlamaRidableInWater); -@@ -1692,10 +1807,12 @@ public class PurpurWorldConfig { +@@ -1668,10 +1783,12 @@ public class PurpurWorldConfig { traderLlamaMovementSpeedMin = getDouble("mobs.trader_llama.attributes.movement_speed.min", traderLlamaMovementSpeedMin); traderLlamaMovementSpeedMax = getDouble("mobs.trader_llama.attributes.movement_speed.max", traderLlamaMovementSpeedMax); traderLlamaBreedingTicks = getInt("mobs.trader_llama.breeding-delay-ticks", traderLlamaBreedingTicks); @@ -2057,7 +2057,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void tropicalFishSettings() { tropicalFishRidable = getBoolean("mobs.tropical_fish.ridable", tropicalFishRidable); if (PurpurConfig.version < 10) { -@@ -1704,6 +1821,7 @@ public class PurpurWorldConfig { +@@ -1680,6 +1797,7 @@ public class PurpurWorldConfig { set("mobs.tropical_fish.attributes.max_health", oldValue); } tropicalFishMaxHealth = getDouble("mobs.tropical_fish.attributes.max_health", tropicalFishMaxHealth); @@ -2065,7 +2065,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 } public boolean turtleRidable = false; -@@ -1713,6 +1831,7 @@ public class PurpurWorldConfig { +@@ -1689,6 +1807,7 @@ public class PurpurWorldConfig { public boolean turtleEggsBreakFromItems = true; public boolean turtleEggsBreakFromMinecarts = true; public int turtleBreedingTicks = 6000; @@ -2073,7 +2073,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void turtleEggSettings() { turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable); turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater); -@@ -1726,12 +1845,14 @@ public class PurpurWorldConfig { +@@ -1702,12 +1821,14 @@ public class PurpurWorldConfig { turtleEggsBreakFromItems = getBoolean("blocks.turtle_egg.break-from-items", turtleEggsBreakFromItems); turtleEggsBreakFromMinecarts = getBoolean("blocks.turtle_egg.break-from-minecarts", turtleEggsBreakFromMinecarts); turtleBreedingTicks = getInt("mobs.turtle.breeding-delay-ticks", turtleBreedingTicks); @@ -2088,7 +2088,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void vexSettings() { vexRidable = getBoolean("mobs.vex.ridable", vexRidable); vexRidableInWater = getBoolean("mobs.vex.ridable-in-water", vexRidableInWater); -@@ -1742,6 +1863,7 @@ public class PurpurWorldConfig { +@@ -1718,6 +1839,7 @@ public class PurpurWorldConfig { set("mobs.vex.attributes.max_health", oldValue); } vexMaxHealth = getDouble("mobs.vex.attributes.max_health", vexMaxHealth); @@ -2096,7 +2096,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 } public boolean villagerRidable = false; -@@ -1760,6 +1882,7 @@ public class PurpurWorldConfig { +@@ -1736,6 +1858,7 @@ public class PurpurWorldConfig { public boolean villagerClericsFarmWarts = false; public boolean villagerClericFarmersThrowWarts = true; public boolean villagerBypassMobGriefing = false; @@ -2104,7 +2104,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1787,12 +1910,14 @@ public class PurpurWorldConfig { +@@ -1763,12 +1886,14 @@ public class PurpurWorldConfig { villagerClericsFarmWarts = getBoolean("mobs.villager.clerics-farm-warts", villagerClericsFarmWarts); villagerClericFarmersThrowWarts = getBoolean("mobs.villager.cleric-wart-farmers-throw-warts-at-villagers", villagerClericFarmersThrowWarts); villagerBypassMobGriefing = getBoolean("mobs.villager.bypass-mob-griefing", villagerBypassMobGriefing); @@ -2119,7 +2119,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void vindicatorSettings() { vindicatorRidable = getBoolean("mobs.vindicator.ridable", vindicatorRidable); vindicatorRidableInWater = getBoolean("mobs.vindicator.ridable-in-water", vindicatorRidableInWater); -@@ -1803,6 +1928,7 @@ public class PurpurWorldConfig { +@@ -1779,6 +1904,7 @@ public class PurpurWorldConfig { } vindicatorMaxHealth = getDouble("mobs.vindicator.attributes.max_health", vindicatorMaxHealth); vindicatorJohnnySpawnChance = getDouble("mobs.vindicator.johnny.spawn-chance", vindicatorJohnnySpawnChance); @@ -2127,7 +2127,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 } public boolean wanderingTraderRidable = false; -@@ -1810,6 +1936,7 @@ public class PurpurWorldConfig { +@@ -1786,6 +1912,7 @@ public class PurpurWorldConfig { public double wanderingTraderMaxHealth = 20.0D; public boolean wanderingTraderFollowEmeraldBlock = false; public boolean wanderingTraderCanBeLeashed = false; @@ -2135,7 +2135,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -1821,11 +1948,13 @@ public class PurpurWorldConfig { +@@ -1797,11 +1924,13 @@ public class PurpurWorldConfig { wanderingTraderMaxHealth = getDouble("mobs.wandering_trader.attributes.max_health", wanderingTraderMaxHealth); wanderingTraderFollowEmeraldBlock = getBoolean("mobs.wandering_trader.follow-emerald-blocks", wanderingTraderFollowEmeraldBlock); wanderingTraderCanBeLeashed = getBoolean("mobs.wandering_trader.can-be-leashed", wanderingTraderCanBeLeashed); @@ -2149,7 +2149,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void witchSettings() { witchRidable = getBoolean("mobs.witch.ridable", witchRidable); witchRidableInWater = getBoolean("mobs.witch.ridable-in-water", witchRidableInWater); -@@ -1835,6 +1964,7 @@ public class PurpurWorldConfig { +@@ -1811,6 +1940,7 @@ public class PurpurWorldConfig { set("mobs.witch.attributes.max_health", oldValue); } witchMaxHealth = getDouble("mobs.witch.attributes.max_health", witchMaxHealth); @@ -2157,7 +2157,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 } public boolean witherRidable = false; -@@ -1844,6 +1974,7 @@ public class PurpurWorldConfig { +@@ -1820,6 +1950,7 @@ public class PurpurWorldConfig { public float witherHealthRegenAmount = 1.0f; public int witherHealthRegenDelay = 20; public boolean witherBypassMobGriefing = false; @@ -2165,7 +2165,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -1861,11 +1992,13 @@ public class PurpurWorldConfig { +@@ -1837,11 +1968,13 @@ public class PurpurWorldConfig { witherHealthRegenAmount = (float) getDouble("mobs.wither.health-regen-amount", witherHealthRegenAmount); witherHealthRegenDelay = getInt("mobs.wither.health-regen-delay", witherHealthRegenDelay); witherBypassMobGriefing = getBoolean("mobs.wither.bypass-mob-griefing", witherBypassMobGriefing); @@ -2179,7 +2179,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void witherSkeletonSettings() { witherSkeletonRidable = getBoolean("mobs.wither_skeleton.ridable", witherSkeletonRidable); witherSkeletonRidableInWater = getBoolean("mobs.wither_skeleton.ridable-in-water", witherSkeletonRidableInWater); -@@ -1875,6 +2008,7 @@ public class PurpurWorldConfig { +@@ -1851,6 +1984,7 @@ public class PurpurWorldConfig { set("mobs.wither_skeleton.attributes.max_health", oldValue); } witherSkeletonMaxHealth = getDouble("mobs.wither_skeleton.attributes.max_health", witherSkeletonMaxHealth); @@ -2187,7 +2187,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 } public boolean wolfRidable = false; -@@ -1884,6 +2018,7 @@ public class PurpurWorldConfig { +@@ -1860,6 +1994,7 @@ public class PurpurWorldConfig { public boolean wolfMilkCuresRabies = true; public double wolfNaturalRabid = 0.0D; public int wolfBreedingTicks = 6000; @@ -2195,7 +2195,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void wolfSettings() { wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater); -@@ -1901,11 +2036,13 @@ public class PurpurWorldConfig { +@@ -1877,11 +2012,13 @@ public class PurpurWorldConfig { wolfMilkCuresRabies = getBoolean("mobs.wolf.milk-cures-rabid-wolves", wolfMilkCuresRabies); wolfNaturalRabid = getDouble("mobs.wolf.spawn-rabid-chance", wolfNaturalRabid); wolfBreedingTicks = getInt("mobs.wolf.breeding-delay-ticks", wolfBreedingTicks); @@ -2209,7 +2209,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void zoglinSettings() { zoglinRidable = getBoolean("mobs.zoglin.ridable", zoglinRidable); zoglinRidableInWater = getBoolean("mobs.zoglin.ridable-in-water", zoglinRidableInWater); -@@ -1915,6 +2052,7 @@ public class PurpurWorldConfig { +@@ -1891,6 +2028,7 @@ public class PurpurWorldConfig { set("mobs.zoglin.attributes.max_health", oldValue); } zoglinMaxHealth = getDouble("mobs.zoglin.attributes.max_health", zoglinMaxHealth); @@ -2217,7 +2217,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 } public boolean zombieRidable = false; -@@ -1926,6 +2064,7 @@ public class PurpurWorldConfig { +@@ -1902,6 +2040,7 @@ public class PurpurWorldConfig { public boolean zombieJockeyTryExistingChickens = true; public boolean zombieAggressiveTowardsVillagerWhenLagging = true; public boolean zombieBypassMobGriefing = false; @@ -2225,7 +2225,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -1941,6 +2080,7 @@ public class PurpurWorldConfig { +@@ -1917,6 +2056,7 @@ public class PurpurWorldConfig { zombieJockeyTryExistingChickens = getBoolean("mobs.zombie.jockey.try-existing-chickens", zombieJockeyTryExistingChickens); zombieAggressiveTowardsVillagerWhenLagging = getBoolean("mobs.zombie.aggressive-towards-villager-when-lagging", zombieAggressiveTowardsVillagerWhenLagging); zombieBypassMobGriefing = getBoolean("mobs.zombie.bypass-mob-griefing", zombieBypassMobGriefing); @@ -2233,7 +2233,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 } public boolean zombieHorseRidableInWater = false; -@@ -1952,6 +2092,7 @@ public class PurpurWorldConfig { +@@ -1928,6 +2068,7 @@ public class PurpurWorldConfig { public double zombieHorseMovementSpeedMin = 0.2D; public double zombieHorseMovementSpeedMax = 0.2D; public double zombieHorseSpawnChance = 0.0D; @@ -2241,7 +2241,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void zombieHorseSettings() { zombieHorseRidableInWater = getBoolean("mobs.zombie_horse.ridable-in-water", zombieHorseRidableInWater); zombieHorseCanSwim = getBoolean("mobs.zombie_horse.can-swim", zombieHorseCanSwim); -@@ -1968,6 +2109,7 @@ public class PurpurWorldConfig { +@@ -1944,6 +2085,7 @@ public class PurpurWorldConfig { zombieHorseMovementSpeedMin = getDouble("mobs.zombie_horse.attributes.movement_speed.min", zombieHorseMovementSpeedMin); zombieHorseMovementSpeedMax = getDouble("mobs.zombie_horse.attributes.movement_speed.max", zombieHorseMovementSpeedMax); zombieHorseSpawnChance = getDouble("mobs.zombie_horse.spawn-chance", zombieHorseSpawnChance); @@ -2249,7 +2249,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 } public boolean zombieVillagerRidable = false; -@@ -1977,6 +2119,7 @@ public class PurpurWorldConfig { +@@ -1953,6 +2095,7 @@ public class PurpurWorldConfig { public boolean zombieVillagerJockeyOnlyBaby = true; public double zombieVillagerJockeyChance = 0.05D; public boolean zombieVillagerJockeyTryExistingChickens = true; @@ -2257,7 +2257,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -1990,6 +2133,7 @@ public class PurpurWorldConfig { +@@ -1966,6 +2109,7 @@ public class PurpurWorldConfig { zombieVillagerJockeyOnlyBaby = getBoolean("mobs.zombie_villager.jockey.only-babies", zombieVillagerJockeyOnlyBaby); zombieVillagerJockeyChance = getDouble("mobs.zombie_villager.jockey.chance", zombieVillagerJockeyChance); zombieVillagerJockeyTryExistingChickens = getBoolean("mobs.zombie_villager.jockey.try-existing-chickens", zombieVillagerJockeyTryExistingChickens); @@ -2265,7 +2265,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 } public boolean zombifiedPiglinRidable = false; -@@ -2000,6 +2144,7 @@ public class PurpurWorldConfig { +@@ -1976,6 +2120,7 @@ public class PurpurWorldConfig { public double zombifiedPiglinJockeyChance = 0.05D; public boolean zombifiedPiglinJockeyTryExistingChickens = true; public boolean zombifiedPiglinCountAsPlayerKillWhenAngry = true; @@ -2273,7 +2273,7 @@ index 087bf58786d6a1e1f812319be615a53c02f6bfda..08709de2f81fb637cf951cb2d76dfd75 private void zombifiedPiglinSettings() { zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); -@@ -2014,5 +2159,6 @@ public class PurpurWorldConfig { +@@ -1990,5 +2135,6 @@ public class PurpurWorldConfig { zombifiedPiglinJockeyChance = getDouble("mobs.zombified_piglin.jockey.chance", zombifiedPiglinJockeyChance); zombifiedPiglinJockeyTryExistingChickens = getBoolean("mobs.zombified_piglin.jockey.try-existing-chickens", zombifiedPiglinJockeyTryExistingChickens); zombifiedPiglinCountAsPlayerKillWhenAngry = getBoolean("mobs.zombified_piglin.count-as-player-kill-when-angry", zombifiedPiglinCountAsPlayerKillWhenAngry); diff --git a/patches/unapplied/server/0148-Config-to-always-tame-in-Creative.patch b/patches/server/0145-Config-to-always-tame-in-Creative.patch similarity index 88% rename from patches/unapplied/server/0148-Config-to-always-tame-in-Creative.patch rename to patches/server/0145-Config-to-always-tame-in-Creative.patch index c15632058..e18b1a8da 100644 --- a/patches/unapplied/server/0148-Config-to-always-tame-in-Creative.patch +++ b/patches/server/0145-Config-to-always-tame-in-Creative.patch @@ -7,7 +7,7 @@ Adds a configuration option that ensures a player in Creative always tames a tam This essentially allows Creative mode players to tame animals on their first try. diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/RunAroundLikeCrazyGoal.java b/src/main/java/net/minecraft/world/entity/ai/goal/RunAroundLikeCrazyGoal.java -index fd0f5c255729b2c05ead5843ab58fe880971b3db..08bdebf99cdedfc6115405e5198346ee4e6e1dce 100644 +index 5c64905e90ccca6e0b347241ddf9cc3f71058b8e..3bd7521b131b2b40f807bdc7ab95e64cf9bcdadc 100644 --- a/src/main/java/net/minecraft/world/entity/ai/goal/RunAroundLikeCrazyGoal.java +++ b/src/main/java/net/minecraft/world/entity/ai/goal/RunAroundLikeCrazyGoal.java @@ -63,7 +63,7 @@ public class RunAroundLikeCrazyGoal extends Goal { @@ -20,10 +20,10 @@ index fd0f5c255729b2c05ead5843ab58fe880971b3db..08bdebf99cdedfc6115405e5198346ee return; } 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 9c89ae4f5f0ff8841040d43315db9fcf6d32f89e..fbb8d43b39bc3a215f89078ff45887cf6a87800b 100644 +index d6f50d524cd00fb54dd987cc9a9c560766a12553..e9954c99fdb089d57b32ddd754fee33fd642fece 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Cat.java +++ b/src/main/java/net/minecraft/world/entity/animal/Cat.java -@@ -479,7 +479,7 @@ public class Cat extends TamableAnimal { +@@ -480,7 +480,7 @@ public class Cat extends TamableAnimal { } } else if (this.isFood(itemstack)) { this.usePlayerItem(player, hand, itemstack); @@ -33,10 +33,10 @@ index 9c89ae4f5f0ff8841040d43315db9fcf6d32f89e..fbb8d43b39bc3a215f89078ff45887cf this.setOrderedToSit(true); this.level.broadcastEntityEvent(this, (byte) 7); diff --git a/src/main/java/net/minecraft/world/entity/animal/Parrot.java b/src/main/java/net/minecraft/world/entity/animal/Parrot.java -index f2226bd6753a50c0d96e07a50cb8785b50cae1ca..67c72a5b9c786d3240ade51aa48e0e63f0d758cd 100644 +index 5064673a78a6bc5cb8b8973d451946239cd995a0..953db16af175e14e1a47487659a0346216d8cdbc 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Parrot.java +++ b/src/main/java/net/minecraft/world/entity/animal/Parrot.java -@@ -321,7 +321,7 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal { +@@ -326,7 +326,7 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal { } if (!this.level.isClientSide) { @@ -46,10 +46,10 @@ index f2226bd6753a50c0d96e07a50cb8785b50cae1ca..67c72a5b9c786d3240ade51aa48e0e63 this.level.broadcastEntityEvent(this, (byte) 7); } else { diff --git a/src/main/java/net/minecraft/world/entity/animal/Wolf.java b/src/main/java/net/minecraft/world/entity/animal/Wolf.java -index 1193f711442fc8d0d3631cbb7fe4a31bf7639f1b..c681cbcd4549d6bf2d88408b94fbb31c1d1406e3 100644 +index b039cbbcc33a6b1925d1cf4339018219ceb6c2ad..57e8ef6f7c20d74fdc25d9ab2a9c35b1de1dc49b 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java +++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java -@@ -514,7 +514,7 @@ public class Wolf extends TamableAnimal implements NeutralMob { +@@ -519,7 +519,7 @@ public class Wolf extends TamableAnimal implements NeutralMob { } // CraftBukkit - added event call and isCancelled check. @@ -59,7 +59,7 @@ index 1193f711442fc8d0d3631cbb7fe4a31bf7639f1b..c681cbcd4549d6bf2d88408b94fbb31c this.navigation.stop(); this.setTarget((LivingEntity) null); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 08709de2f81fb637cf951cb2d76dfd759fb429b5..4e3bf53c088ec64882cf87c5e3facdaeb034e02e 100644 +index b7982c468d03f969d4809b66c34ed63ba35c48ef..ce35bce48c3fc5e4365416e19a194e6821a3f5bb 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -385,6 +385,7 @@ public class PurpurWorldConfig { @@ -70,7 +70,7 @@ index 08709de2f81fb637cf951cb2d76dfd759fb429b5..4e3bf53c088ec64882cf87c5e3facdae public boolean boatEjectPlayersOnLand = false; public boolean boatsDoFallDamage = true; public boolean disableDropsOnCrammingDeath = false; -@@ -404,6 +405,7 @@ public class PurpurWorldConfig { +@@ -403,6 +404,7 @@ public class PurpurWorldConfig { public int animalBreedingCooldownSeconds = 0; private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); diff --git a/patches/unapplied/server/0149-End-crystal-explosion-options.patch b/patches/server/0146-End-crystal-explosion-options.patch similarity index 93% rename from patches/unapplied/server/0149-End-crystal-explosion-options.patch rename to patches/server/0146-End-crystal-explosion-options.patch index 997cc73d1..8667777f9 100644 --- a/patches/unapplied/server/0149-End-crystal-explosion-options.patch +++ b/patches/server/0146-End-crystal-explosion-options.patch @@ -5,10 +5,10 @@ Subject: [PATCH] End crystal explosion options diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java -index 92e65f3fbc8f5d77bb8cc31e7a7780c2589f4227..0c46507ab0b904fb1f79bc5421c88c03e894c869 100644 +index f8863cabad1bd0c3c2c62b8e17612d9559237d68..06c6addfa2a8dab1ad52a3588e9aeba5208eb997 100644 --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java -@@ -130,6 +130,22 @@ public class EndCrystal extends Entity { +@@ -129,6 +129,22 @@ public class EndCrystal extends Entity { phantomDamageCooldown = 0; idleCooldown = 60; } @@ -31,7 +31,7 @@ index 92e65f3fbc8f5d77bb8cc31e7a7780c2589f4227..0c46507ab0b904fb1f79bc5421c88c03 // Purpur end @Override -@@ -175,15 +191,17 @@ public class EndCrystal extends Entity { +@@ -174,15 +190,17 @@ public class EndCrystal extends Entity { // CraftBukkit end this.remove(Entity.RemovalReason.KILLED); if (!source.isExplosion()) { @@ -52,10 +52,10 @@ index 92e65f3fbc8f5d77bb8cc31e7a7780c2589f4227..0c46507ab0b904fb1f79bc5421c88c03 this.onDestroyedBy(source); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 4e3bf53c088ec64882cf87c5e3facdaeb034e02e..3b75437f3e78d7d00ca0b41f85e18dc11bdc0f1c 100644 +index ce35bce48c3fc5e4365416e19a194e6821a3f5bb..99f106fb3e3c2220f0c97a8cafd22d5546e101e5 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -487,6 +487,35 @@ public class PurpurWorldConfig { +@@ -463,6 +463,35 @@ public class PurpurWorldConfig { dispenserPlaceAnvils = getBoolean("blocks.dispenser.place-anvils", dispenserPlaceAnvils); } diff --git a/patches/unapplied/server/0150-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch b/patches/server/0147-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch similarity index 86% rename from patches/unapplied/server/0150-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch rename to patches/server/0147-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch index a919148ce..67e31768c 100644 --- a/patches/unapplied/server/0150-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch +++ b/patches/server/0147-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configs for if Wither/Ender Dragon can ride vehicles diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java -index 2f0654d4e8eba44880392d140ee52234b79e9503..75d1cf540dfe55c8b979219b14610c22a5d18c48 100644 +index ed1c473ef80202b3aa4996b5acb9728857eaec8c..ea5e71b2264c73888d9355f31177a50ccdb50110 100644 --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java @@ -1114,6 +1114,7 @@ public class EnderDragon extends Mob implements Enemy { @@ -17,10 +17,10 @@ index 2f0654d4e8eba44880392d140ee52234b79e9503..75d1cf540dfe55c8b979219b14610c22 } 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 3de45a7a54643109fc6a8287879cf6dae87e72ec..2f9e10be559bbf685bbe8b4ac4b8a55a6a663821 100644 +index 580af65dd27616cd6c17f3b8e39abbb1c4549ef4..edd9c27c21bd3c377ecb9f14541140b73642c694 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 -@@ -722,6 +722,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob +@@ -733,6 +733,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob @Override protected boolean canRide(Entity entity) { @@ -29,10 +29,10 @@ index 3de45a7a54643109fc6a8287879cf6dae87e72ec..2f9e10be559bbf685bbe8b4ac4b8a55a } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 3b75437f3e78d7d00ca0b41f85e18dc11bdc0f1c..cadde9d8772d61edd0e041b508e0abebbd076454 100644 +index 99f106fb3e3c2220f0c97a8cafd22d5546e101e5..19e2027934810c7f384e33acb946ee51786eeae8 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -922,6 +922,7 @@ public class PurpurWorldConfig { +@@ -898,6 +898,7 @@ public class PurpurWorldConfig { public boolean enderDragonAlwaysDropsFullExp = false; public boolean enderDragonBypassMobGriefing = false; public boolean enderDragonTakeDamageFromWater = false; @@ -40,7 +40,7 @@ index 3b75437f3e78d7d00ca0b41f85e18dc11bdc0f1c..cadde9d8772d61edd0e041b508e0abeb private void enderDragonSettings() { enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable); enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater); -@@ -939,6 +940,7 @@ public class PurpurWorldConfig { +@@ -915,6 +916,7 @@ public class PurpurWorldConfig { enderDragonAlwaysDropsFullExp = getBoolean("mobs.ender_dragon.always-drop-full-exp", enderDragonAlwaysDropsFullExp); enderDragonBypassMobGriefing = getBoolean("mobs.ender_dragon.bypass-mob-griefing", enderDragonBypassMobGriefing); enderDragonTakeDamageFromWater = getBoolean("mobs.ender_dragon.takes-damage-from-water", enderDragonTakeDamageFromWater); @@ -48,7 +48,7 @@ index 3b75437f3e78d7d00ca0b41f85e18dc11bdc0f1c..cadde9d8772d61edd0e041b508e0abeb } public boolean endermanRidable = false; -@@ -2006,6 +2008,7 @@ public class PurpurWorldConfig { +@@ -1982,6 +1984,7 @@ public class PurpurWorldConfig { public int witherHealthRegenDelay = 20; public boolean witherBypassMobGriefing = false; public boolean witherTakeDamageFromWater = false; @@ -56,7 +56,7 @@ index 3b75437f3e78d7d00ca0b41f85e18dc11bdc0f1c..cadde9d8772d61edd0e041b508e0abeb private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -2024,6 +2027,7 @@ public class PurpurWorldConfig { +@@ -2000,6 +2003,7 @@ public class PurpurWorldConfig { witherHealthRegenDelay = getInt("mobs.wither.health-regen-delay", witherHealthRegenDelay); witherBypassMobGriefing = getBoolean("mobs.wither.bypass-mob-griefing", witherBypassMobGriefing); witherTakeDamageFromWater = getBoolean("mobs.wither.takes-damage-from-water", witherTakeDamageFromWater);