From 0f2c8e806a53269b0d6c3f247eeeba188634247d Mon Sep 17 00:00:00 2001 From: Simon Gardling Date: Fri, 30 Apr 2021 13:16:37 -0400 Subject: [PATCH] Updated Upstream and Sidestream(s) (Paper/Purpur) (#478) Upstream/An Sidestream has released updates that appears to apply and compile correctly This update has NOT been tested by YatopiaMC and as with ANY update, please do your own testing. Paper Changes: bc7ea673a Add internal channel initialization listeners (#5557) b28ad17ac Check for world change in MoveEvent API methods 3095c7592 [Auto] Updated Upstream (CraftBukkit) f56989c97 Add RespawnFlags to PlayerRespawnEvent (#5533) 7579c2667 Add more API to PlayerMoveEvent (#5553) ef60c01c4 [Auto] Updated Upstream (CraftBukkit) 0256dbea3 [Auto] Updated Upstream (Bukkit/CraftBukkit) 91ef74029 Updated Upstream (Spigot) (#5550) fdf2a59d5 Updated Upstream (Bukkit/CraftBukkit) (#5549) Purpur Changes: 97185df [CI-SKIP] Update mcdevimports documentation 1099c24 Config for wither explosion radius (closes #265) c5c9527 Configurable damage settings for magma blocks (adds #247) 1389b02 Updated Upstream (Paper) (#300) 79c82d2 Configuration to change the maximum number of bees in a hive (#301) 9fd776e Add configurable minecart speed and move controllable minecart options --- PATCHES.md | 5 +- Paper | 2 +- ...aps-the-predicate-order-of-collision.patch | 4 +- .../Purpur/patches/api/0020-Ridables.patch | 2 +- ...e-to-recipe-s-ExactChoice-ingredient.patch | 8 +- ...oc-warnings-missing-param-and-return.patch | 8 +- ...-Add-unsafe-Entity-serialization-API.patch | 2 +- .../server/0002-Purpur-config-files.patch | 6 +- .../patches/server/0003-Timings-stuff.patch | 2 +- .../0004-Barrels-and-enderchests-6-rows.patch | 2 +- .../Purpur/patches/server/0007-AFK-API.patch | 4 +- .../0009-Configurable-server-mod-name.patch | 2 +- .../server/0011-Lagging-threshold.patch | 2 +- .../0015-Player-invulnerabilities.patch | 4 +- .../0018-Alternative-Keepalive-Handling.patch | 4 +- ...-settings-suppressing-pointless-logs.patch | 2 +- ...031-Dont-send-useless-entity-packets.patch | 2 +- .../server/0044-Signs-allow-color-codes.patch | 2 +- ...Minecart-settings-and-WASD-controls.patch} | 165 +++++++++++------- ...able-loot-drops-on-death-by-cramming.patch | 4 +- ...048-Players-should-not-cram-to-death.patch | 4 +- ...ption-to-toggle-milk-curing-bad-omen.patch | 4 +- .../0053-Add-permission-for-F3-N-debug.patch | 2 +- ...-skeleton-takes-wither-damage-option.patch | 4 +- .../0055-Configurable-TPS-Catchup.patch | 2 +- ...low-loyalty-on-tridents-to-work-in-t.patch | 4 +- ...derman-and-creeper-griefing-controls.patch | 6 +- ...up-loot-bypass-mob-griefing-gamerule.patch | 4 +- ...ing-can-bypass-mob-griefing-gamerule.patch | 4 +- ...0060-Villagers-follow-emerald-blocks.patch | 4 +- .../0061-Allow-leashing-villagers.patch | 4 +- ...urable-search-radius-for-villagers-t.patch | 4 +- .../server/0063-Implement-infinite-lava.patch | 4 +- ...64-Make-lava-flow-speed-configurable.patch | 4 +- ...Add-player-death-exp-control-options.patch | 4 +- ...0067-Configurable-void-damage-height.patch | 4 +- ...ispenser-curse-of-binding-protection.patch | 4 +- ...n-for-boats-to-eject-players-on-land.patch | 4 +- ...g-mends-most-damages-equipment-first.patch | 6 +- .../0073-Implement-elytra-settings.patch | 4 +- .../server/0074-Item-entity-immunities.patch | 4 +- .../server/0075-Add-ping-command.patch | 2 +- .../0076-Configurable-jockey-options.patch | 8 +- ...ed-to-crystals-and-crystals-shoot-ph.patch | 4 +- .../0078-Add-phantom-spawning-options.patch | 4 +- ...0079-Implement-bed-explosion-options.patch | 4 +- ...ent-respawn-anchor-explosion-options.patch | 4 +- ...-Add-allow-water-in-end-world-option.patch | 2 +- .../0082-Allow-color-codes-in-books.patch | 2 +- .../patches/server/0083-Entity-lifespan.patch | 6 +- ...leport-to-spawn-if-outside-world-bor.patch | 8 +- .../server/0085-Squid-EAR-immunity.patch | 4 +- .../0086-Configurable-end-spike-seed.patch | 2 +- .../0087-Configurable-dungeon-seed.patch | 2 +- .../server/0088-Phantoms-burn-in-light.patch | 6 +- .../0089-Configurable-villager-breeding.patch | 6 +- .../0090-Redstone-deactivates-spawners.patch | 4 +- .../0091-Totems-work-in-inventory.patch | 4 +- ...3-Add-vindicator-johnny-spawn-chance.patch | 2 +- ...sable-mushroom-and-note-block-update.patch | 2 +- .../0095-Dispensers-place-anvils-option.patch | 4 +- .../server/0096-Allow-anvil-colors.patch | 4 +- .../0097-Add-no-random-tick-block-list.patch | 4 +- ...o-disable-dolphin-treasure-searching.patch | 4 +- .../server/0099-Short-enderman-height.patch | 2 +- ...Stop-squids-floating-on-top-of-water.patch | 4 +- .../Purpur/patches/server/0101-Ridables.patch | 28 +-- ...ing-obsidian-valid-for-portal-frames.patch | 6 +- ...tities-can-use-portals-configuration.patch | 6 +- ...stomizable-wither-health-and-healing.patch | 4 +- ...ggling-special-MobSpawners-per-world.patch | 4 +- .../server/0108-Raid-cooldown-setting.patch | 6 +- ...e-config-options-per-projectile-type.patch | 4 +- ...sable-zombie-aggressiveness-towards-.patch | 4 +- ...tent-TileEntity-Lore-and-DisplayName.patch | 12 +- .../server/0113-Flying-squids-Oh-my.patch | 4 +- .../server/0114-Infinity-bow-settings.patch | 4 +- .../server/0115-Stonecutter-damage.patch | 4 +- .../0116-Configurable-daylight-cycle.patch | 4 +- ...te-and-mending-enchantments-together.patch | 2 +- .../server/0118-Infinite-fuel-furnace.patch | 4 +- ...20-Add-tablist-suffix-option-for-afk.patch | 6 +- ...re-add-farmland-mechanics-from-Alpha.patch | 4 +- ...justable-breeding-cooldown-to-config.patch | 6 +- ...e-entity-breeding-times-configurable.patch | 38 ++-- ...mes-from-item-forms-of-entities-to-e.patch | 6 +- ...-when-using-a-Name-Tag-on-an-Armor-S.patch | 2 +- ...sting-and-weeping-vines-growth-rates.patch | 4 +- ...-twisting-vines-configurable-max-gro.patch | 6 +- ...llowing-Endermen-to-despawn-even-whi.patch | 4 +- ...130-Add-configurable-snowball-damage.patch | 4 +- ...break-door-minimum-difficulty-option.patch | 6 +- .../server/0132-Add-demo-command.patch | 2 +- ...35-Changeable-Mob-Left-Handed-Chance.patch | 4 +- .../0136-Add-boat-fall-damage-config.patch | 24 +-- ...-disable-saving-projectiles-to-disk-.patch | 4 +- .../0138-Snow-Golem-rate-of-fire-config.patch | 4 +- ...C-Configurable-disable-give-dropping.patch | 2 +- ...-climbing-should-not-bypass-cramming.patch | 4 +- .../0142-Lobotomize-stuck-villagers.patch | 6 +- ...Villager-Clerics-to-farm-Nether-Wart.patch | 6 +- ...fied-Piglin-death-always-counting-as.patch | 4 +- ...d-out-and-optimise-player-list-ticks.patch | 2 +- ...ble-chance-for-wolves-to-spawn-rabid.patch | 4 +- ...nfigurable-default-wolf-collar-color.patch | 4 +- ...-Configurable-entity-base-attributes.patch | 54 +++--- .../server/0149-Phantom-flames-on-swoop.patch | 6 +- ...s-to-open-even-with-a-solid-block-on.patch | 4 +- .../server/0151-Implement-TPSBar.patch | 2 +- .../0152-Striders-give-saddle-back.patch | 4 +- .../server/0153-PlayerBookTooLargeEvent.patch | 2 +- ...therite-armor-grants-fire-resistance.patch | 4 +- ...iefing-bypass-to-everything-affected.patch | 42 ++--- ...allow-Note-Block-sounds-when-blocked.patch | 6 +- ...0158-Add-EntityTeleportHinderedEvent.patch | 4 +- .../0160-Farmland-trampling-changes.patch | 4 +- ...61-Movement-options-for-armor-stands.patch | 4 +- .../server/0162-Fix-stuck-in-portals.patch | 8 +- ...-to-use-infinity-bows-without-arrows.patch | 4 +- ...oggle-for-water-sensitive-mob-damage.patch | 18 +- ...65-Config-to-always-tame-in-Creative.patch | 6 +- .../0166-End-crystal-explosion-options.patch | 4 +- ...0168-Add-ghast-allow-griefing-option.patch | 6 +- ...ither-Ender-Dragon-can-ride-vehicles.patch | 10 +- .../server/0170-Dont-run-with-scissors.patch | 8 +- .../patches/server/0171-One-Punch-Man.patch | 6 +- ...0172-Add-config-for-snow-on-blue-ice.patch | 4 +- ...er-Pearl-cooldown-damage-and-Endermi.patch | 6 +- ...-to-ignore-nearby-mobs-when-sleeping.patch | 10 +- ...Enderman-to-aggro-spawned-Endermites.patch | 6 +- ...-Dragon-Head-wearers-and-stare-aggro.patch | 6 +- .../server/0177-Tick-fluids-config.patch | 4 +- ...178-Config-to-disable-Llama-caravans.patch | 6 +- ...ig-to-make-Creepers-explode-on-death.patch | 4 +- ...urable-ravager-griefable-blocks-list.patch | 6 +- ...0181-Sneak-to-bulk-process-composter.patch | 4 +- .../0182-Config-for-skipping-night.patch | 6 +- ...0183-Add-config-for-villager-trading.patch | 10 +- .../0184-Allow-infinity-on-crossbows.patch | 2 +- .../server/0185-Drowning-Settings.patch | 4 +- ...Break-individual-slabs-when-sneaking.patch | 8 +- ...-to-disable-hostile-mob-spawn-on-ice.patch | 4 +- ...ig-to-show-Armor-Stand-arms-on-spawn.patch | 4 +- ...ption-to-make-doors-require-redstone.patch | 4 +- ...-Config-to-allow-for-unsafe-enchants.patch | 2 +- .../0191-Configurable-sponge-absorption.patch | 4 +- .../0192-Projectile-offset-config.patch | 4 +- ...for-powered-rail-activation-distance.patch | 4 +- .../0194-Piglin-portal-spawn-modifier.patch | 6 +- ...-Config-to-change-max-number-of-bees.patch | 39 +++++ ...ble-damage-settings-for-magma-blocks.patch | 68 ++++++++ ...7-Config-for-wither-explosion-radius.patch | 39 +++++ .../server/0009-Delay-chunk-unloads.patch | 2 +- .../0011-Lag-compensate-block-breaking.patch | 20 +-- .../server/0013-Per-World-Spawn-Limits.patch | 2 +- ...single-and-multi-AABB-VoxelShapes-an.patch | 2 +- ...event-moving-into-unloaded-chunk-che.patch | 2 +- ...t-Async-retaining-chunks-for-long-pe.patch | 2 +- ...on-checking-in-player-move-packet-ha.patch | 2 +- ...tives-for-encryption-and-compression.patch | 6 +- ...ot-load-chunks-during-a-crash-report.patch | 2 +- ...cancellation-of-projectile-hit-event.patch | 2 +- ...0065-Fix-incorrect-isRealPlayer-init.patch | 2 +- ...5-Replace-player-chunk-loader-system.patch | 4 +- ...vectors-in-player-packet-handling-fr.patch | 2 +- .../0082-Do-not-copy-visible-chunks.patch | 2 +- ...005-Add-NBT-API-as-a-first-class-lib.patch | 2 +- patches/server/0002-Brandings.patch | 2 +- .../server/0006-Yatopia-configuration.patch | 2 +- .../0023-Fix-lead-fall-dmg-config.patch | 4 +- ...ghly-optimize-VillagePlace-filtering.patch | 4 +- .../0028-Nuke-streams-off-BlockPosition.patch | 4 +- ...op-wasting-resources-on-JsonList-get.patch | 2 +- ...6-Ensure-pools-create-daemon-threads.patch | 2 +- .../0040-Configurable-flight-checks.patch | 2 +- ...0048-Configurable-criterion-triggers.patch | 6 +- .../0051-Configurable-movement-checks.patch | 2 +- ...2-Configurable-enchanting-table-tick.patch | 2 +- ...dd-config-for-logging-login-location.patch | 2 +- .../0059-Suspected-plugins-report.patch | 4 +- patches/server/0063-tic-tacs-unblocking.patch | 30 ++-- ...-BlockPos.iterateOutwards-by-caching.patch | 8 +- patches/server/0068-lithium-shape.patch | 10 +- ...king-block-entities-that-are-doing-n.patch | 11 +- upstream/Purpur | 2 +- upstreamCommits/Purpur | 2 +- 186 files changed, 734 insertions(+), 557 deletions(-) rename patches/Purpur/patches/server/{0046-Controllable-Minecarts.patch => 0046-Minecart-settings-and-WASD-controls.patch} (51%) create mode 100644 patches/Purpur/patches/server/0195-Config-to-change-max-number-of-bees.patch create mode 100644 patches/Purpur/patches/server/0196-Configurable-damage-settings-for-magma-blocks.patch create mode 100644 patches/Purpur/patches/server/0197-Config-for-wither-explosion-radius.patch diff --git a/PATCHES.md b/PATCHES.md index 980ffc2f..a12dd721 100644 --- a/PATCHES.md +++ b/PATCHES.md @@ -115,11 +115,13 @@ This is an overview over all patches that are currently used. | server | Config for Enderman to aggro spawned Endermites | Encode42 | | | server | Config for powered rail activation distance | Encode42 | | | server | Config for skipping night | Ben Kerllenevich | | +| server | Config for wither explosion radius | Ben Kerllenevich | | | server | Config migration: climbing should not bypass cramming | jmp | | | server | Config migration: disable saving projectiles to disk -> | jmp | | | server | Config to allow Note Block sounds when blocked | Encode42 | | | server | Config to allow for unsafe enchants | Encode42 | | | server | Config to always tame in Creative | Encode42 | | +| server | Config to change max number of bees | DoctaEnkoda | | | server | Config to disable Llama caravans | Encode42 | | | server | Config to disable hostile mob spawn on ice | Encode42 | | | server | Config to disable method profiler | Paul Sauve | | @@ -134,6 +136,7 @@ This is an overview over all patches that are currently used. | server | Configurable TPS Catchup | William Blake Galbreath | | | server | Configurable chance for wolves to spawn rabid | Encode42 | | | server | Configurable criterion triggers | Mykyta Komarnytskyy | | +| server | Configurable damage settings for magma blocks | Ben Kerllenevich | | | server | Configurable daylight cycle | William Blake Galbreath | | | server | Configurable default wolf collar color | Encode42 | | | server | Configurable dungeon seed | William Blake Galbreath | | @@ -152,7 +155,6 @@ This is an overview over all patches that are currently used. | server | Configurable void damage height | William Blake Galbreath | | | api | Conflict on change for adventure deprecations | BillyGalbreath | | | server | Consolidate flush calls for entity tracker packets | Spottedleaf | | -| server | Controllable Minecarts | William Blake Galbreath | | | server | Copy passenger list in enderTeleportTo | Spottedleaf | | | server | Correctly handle recursion for chunkholder updates | Spottedleaf | | | server | Cows eat mushrooms | William Blake Galbreath | | @@ -276,6 +278,7 @@ This is an overview over all patches that are currently used. | server | Make sure inlined getChunkAt has inlined logic for loaded | Spottedleaf | | | server | Manually inline methods in BlockPosition | Spottedleaf | | | server | Mending mends most damages equipment first | William Blake Galbreath | | +| server | Minecart settings and WASD controls | William Blake Galbreath | | | server | Modify POM | YatopiaMC | | | api | Modify POM | YatopiaMC | | | server | Modify default configs | tr7zw | | diff --git a/Paper b/Paper index b8020379..bc7ea673 160000 --- a/Paper +++ b/Paper @@ -1 +1 @@ -Subproject commit b8020379c6af10417bb8836398fa9460cf316f9c +Subproject commit bc7ea673a1662686b0ea6f154fbc029e8cacbdf4 diff --git a/patches/Akarin/patches/server/0003-Swaps-the-predicate-order-of-collision.patch b/patches/Akarin/patches/server/0003-Swaps-the-predicate-order-of-collision.patch index 9e59838d..47058fd6 100644 --- a/patches/Akarin/patches/server/0003-Swaps-the-predicate-order-of-collision.patch +++ b/patches/Akarin/patches/server/0003-Swaps-the-predicate-order-of-collision.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Swaps the predicate order of collision diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 706a1e2fadb0880277093be5de63f4dc0792fb72..2e872fe6e74d4deaa2bb46c5e9db472fbca03187 100644 +index f498bba37f3a40060a0847500b70e7cb55c745cd..d4fbfce75462ea8dd0fe8ed990a91d84a8d38632 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1754,8 +1754,9 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne +@@ -1760,8 +1760,9 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne public void pickup(EntityHuman entityhuman) {} public void collide(Entity entity) { diff --git a/patches/Purpur/patches/api/0020-Ridables.patch b/patches/Purpur/patches/api/0020-Ridables.patch index 3adb827f..0031ab00 100644 --- a/patches/Purpur/patches/api/0020-Ridables.patch +++ b/patches/Purpur/patches/api/0020-Ridables.patch @@ -169,7 +169,7 @@ index 0000000000000000000000000000000000000000..c0ec5a130985e8da4cc9e596a6b70503 + } +} diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index 428daeb04d0a35a443467e2f657d2356bcfdd7d7..7dc06b28af9fa45b2b49a6d37c1ed829257f812a 100644 +index 46985eaea3d3b00d1dd88c2dd5a2bc53d518c64f..38c6ecba4a6090ee42180ff52db42bac8e7f95d7 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java @@ -704,4 +704,35 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent diff --git a/patches/Purpur/patches/api/0026-Add-predicate-to-recipe-s-ExactChoice-ingredient.patch b/patches/Purpur/patches/api/0026-Add-predicate-to-recipe-s-ExactChoice-ingredient.patch index 008ba61e..db153e66 100644 --- a/patches/Purpur/patches/api/0026-Add-predicate-to-recipe-s-ExactChoice-ingredient.patch +++ b/patches/Purpur/patches/api/0026-Add-predicate-to-recipe-s-ExactChoice-ingredient.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add predicate to recipe's ExactChoice ingredient diff --git a/src/main/java/org/bukkit/inventory/RecipeChoice.java b/src/main/java/org/bukkit/inventory/RecipeChoice.java -index 3d325cab6b106ce8617e321d7a733eca91ba93e5..4dedbdc1cc8b34b73a1a32b35d1985284da6fc08 100644 +index 90208bc96085f05a3b657b9467b1670d00b03104..c59d5e4ef9641fd73463b177239226866272745b 100644 --- a/src/main/java/org/bukkit/inventory/RecipeChoice.java +++ b/src/main/java/org/bukkit/inventory/RecipeChoice.java @@ -10,6 +10,7 @@ import java.util.function.Predicate; @@ -16,7 +16,7 @@ index 3d325cab6b106ce8617e321d7a733eca91ba93e5..4dedbdc1cc8b34b73a1a32b35d198528 /** * Represents a potential item match within a recipe. All choices within a -@@ -155,6 +156,7 @@ public interface RecipeChoice extends Predicate, Cloneable { +@@ -152,6 +153,7 @@ public interface RecipeChoice extends Predicate, Cloneable { public static class ExactChoice implements RecipeChoice { private List choices; @@ -24,7 +24,7 @@ index 3d325cab6b106ce8617e321d7a733eca91ba93e5..4dedbdc1cc8b34b73a1a32b35d198528 public ExactChoice(@NotNull ItemStack stack) { this(Arrays.asList(stack)); -@@ -199,6 +201,7 @@ public interface RecipeChoice extends Predicate, Cloneable { +@@ -196,6 +198,7 @@ public interface RecipeChoice extends Predicate, Cloneable { @Override public boolean test(@NotNull ItemStack t) { @@ -32,7 +32,7 @@ index 3d325cab6b106ce8617e321d7a733eca91ba93e5..4dedbdc1cc8b34b73a1a32b35d198528 for (ItemStack match : choices) { if (t.isSimilar(match)) { return true; -@@ -208,6 +211,17 @@ public interface RecipeChoice extends Predicate, Cloneable { +@@ -205,6 +208,17 @@ public interface RecipeChoice extends Predicate, Cloneable { return false; } diff --git a/patches/Purpur/patches/api/0031-Fix-javadoc-warnings-missing-param-and-return.patch b/patches/Purpur/patches/api/0031-Fix-javadoc-warnings-missing-param-and-return.patch index e4ccaba8..88847858 100644 --- a/patches/Purpur/patches/api/0031-Fix-javadoc-warnings-missing-param-and-return.patch +++ b/patches/Purpur/patches/api/0031-Fix-javadoc-warnings-missing-param-and-return.patch @@ -860,7 +860,7 @@ index d9be83961b28b927a587f6dbb339b531520e4865..1ff4c5e283ac05c405c09bd4b8530664 /** diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index 7dc06b28af9fa45b2b49a6d37c1ed829257f812a..c51d545e137eec2017c9f2ff944db70f2fdffdfc 100644 +index 38c6ecba4a6090ee42180ff52db42bac8e7f95d7..b47e31d2b9b41b39b46892fe10bf36d82c5d8e1b 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java @@ -622,6 +622,9 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent @@ -1045,12 +1045,12 @@ index 9a99b8ca1ec9c3c88b29275c88b1221e1b22bcef..f1763f75d5f223ef70b968e463361673 /** diff --git a/src/main/java/org/bukkit/entity/Shulker.java b/src/main/java/org/bukkit/entity/Shulker.java -index 274d6131c893630dbc5e22aa2684d89e5a2c6c72..4507fa13689cd393f41c9f0c4a73362491f34c76 100644 +index 010e1f9c3567a2fe8297fe04fcf7b75df0279eca..bd40fdfbcd9a34c7cde5f4dc34cba53aec53c485 100644 --- a/src/main/java/org/bukkit/entity/Shulker.java +++ b/src/main/java/org/bukkit/entity/Shulker.java -@@ -2,6 +2,9 @@ package org.bukkit.entity; - +@@ -4,6 +4,9 @@ import org.bukkit.block.BlockFace; import org.bukkit.material.Colorable; + import org.jetbrains.annotations.NotNull; +/** + * Represents a shulker diff --git a/patches/Purpur/patches/api/0036-Add-unsafe-Entity-serialization-API.patch b/patches/Purpur/patches/api/0036-Add-unsafe-Entity-serialization-API.patch index 11af12ed..4c533123 100644 --- a/patches/Purpur/patches/api/0036-Add-unsafe-Entity-serialization-API.patch +++ b/patches/Purpur/patches/api/0036-Add-unsafe-Entity-serialization-API.patch @@ -50,7 +50,7 @@ index 5f2d5e12f11b471662943680b2012c99a8466306..7395fe0261da696d1b16c845d244ad5d + // Purpur end } diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index c51d545e137eec2017c9f2ff944db70f2fdffdfc..1e25f387e053b648477a3e9dace1a6c95e7f8cba 100644 +index b47e31d2b9b41b39b46892fe10bf36d82c5d8e1b..7fa5242bd44c9b19648d79fa8fecbb7ee125288e 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java @@ -751,5 +751,24 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent diff --git a/patches/Purpur/patches/server/0002-Purpur-config-files.patch b/patches/Purpur/patches/server/0002-Purpur-config-files.patch index b38ed207..789949c5 100644 --- a/patches/Purpur/patches/server/0002-Purpur-config-files.patch +++ b/patches/Purpur/patches/server/0002-Purpur-config-files.patch @@ -86,7 +86,7 @@ index f0420b87025a090a659542a00614e805bf850fd2..89b892c23a396d94c11b5d6b7ffe79e8 this.ticksPerAnimalSpawns = this.getServer().getTicksPerAnimalSpawns(); // CraftBukkit diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java new file mode 100644 -index 0000000000000000000000000000000000000000..19541e7071c05dce30c384093c8eae5beff3e515 +index 0000000000000000000000000000000000000000..2207d5ec00c0f6e4d332c0bbecbc224b24855927 --- /dev/null +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -0,0 +1,130 @@ @@ -145,8 +145,8 @@ index 0000000000000000000000000000000000000000..19541e7071c05dce30c384093c8eae5b + commands = new HashMap<>(); + commands.put("purpur", new PurpurCommand("purpur")); + -+ version = getInt("config-version", 11); -+ set("config-version", 11); ++ version = getInt("config-version", 12); ++ set("config-version", 12); + + readConfig(PurpurConfig.class, null); + } diff --git a/patches/Purpur/patches/server/0003-Timings-stuff.patch b/patches/Purpur/patches/server/0003-Timings-stuff.patch index 7c48e7c5..96525f57 100644 --- a/patches/Purpur/patches/server/0003-Timings-stuff.patch +++ b/patches/Purpur/patches/server/0003-Timings-stuff.patch @@ -57,7 +57,7 @@ index 35810f42d7a0cd50a4cbe90e8d698fe57914c889..5e672a0660d0aceffcdb26d185590ca1 String hostName = "BrokenHost"; try { diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 19541e7071c05dce30c384093c8eae5beff3e515..e1a85458a22007b0ba7f297c986c4a2765177f86 100644 +index 2207d5ec00c0f6e4d332c0bbecbc224b24855927..172545163646fb5cc28733af0e51b195c16898d6 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -127,4 +127,10 @@ public class PurpurConfig { diff --git a/patches/Purpur/patches/server/0004-Barrels-and-enderchests-6-rows.patch b/patches/Purpur/patches/server/0004-Barrels-and-enderchests-6-rows.patch index 628f2283..9120d01b 100644 --- a/patches/Purpur/patches/server/0004-Barrels-and-enderchests-6-rows.patch +++ b/patches/Purpur/patches/server/0004-Barrels-and-enderchests-6-rows.patch @@ -123,7 +123,7 @@ index 7a6f150490bc3ef8a5ed43c401fd70bcc67f40f0..449d2c38abdd35b782a6732006eebb38 } diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index e1a85458a22007b0ba7f297c986c4a2765177f86..64682d3188c356eec62b414d50e0221fc67de895 100644 +index 172545163646fb5cc28733af0e51b195c16898d6..5046628340f0f48587a790f7819fa368a849d979 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -7,6 +7,7 @@ import org.bukkit.Bukkit; diff --git a/patches/Purpur/patches/server/0007-AFK-API.patch b/patches/Purpur/patches/server/0007-AFK-API.patch index ab8b4dcd..9e293531 100644 --- a/patches/Purpur/patches/server/0007-AFK-API.patch +++ b/patches/Purpur/patches/server/0007-AFK-API.patch @@ -86,7 +86,7 @@ index ce428fd701fe4a0505a629edb322f19d730f8132..e37c7d925afb5043e6008488f7f773ba } else if (entityplayer.isSleeping()) { ++j; diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index 159c38618d7745ea513ad179b1217d76c2c4897a..15349a7bddcad5a4a6db07a8aa6ae8d06163b1f6 100644 +index 53320d1d134305c0b37442dfca9931629a6d196d..1f4e45f6e70032bfeeafe30d038e14e052e6ad9d 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java @@ -399,6 +399,12 @@ public class PlayerConnection implements PacketListenerPlayIn { @@ -215,7 +215,7 @@ index a7f2304acf8ee0a15d6eae8c42060e003be13ae7..fd56b2f15e570f266a79c25823a3b353 @Nullable diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 64682d3188c356eec62b414d50e0221fc67de895..3c81d9f1171262d17407232433e3eb0383f424c0 100644 +index 5046628340f0f48587a790f7819fa368a849d979..215d691de61c514bb75077d25428c2c2f56df0b5 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -1,6 +1,7 @@ diff --git a/patches/Purpur/patches/server/0009-Configurable-server-mod-name.patch b/patches/Purpur/patches/server/0009-Configurable-server-mod-name.patch index 92bf7549..753eaf69 100644 --- a/patches/Purpur/patches/server/0009-Configurable-server-mod-name.patch +++ b/patches/Purpur/patches/server/0009-Configurable-server-mod-name.patch @@ -18,7 +18,7 @@ index 42c24781d058cee94db8f0fa1a6849b41a0394ff..6121ef7fcbadb50d05fad4270556e825 public CrashReport b(CrashReport crashreport) { diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 3c81d9f1171262d17407232433e3eb0383f424c0..db62e40a5bba3bdb60f1dac6f25a48f321a5d3e1 100644 +index 215d691de61c514bb75077d25428c2c2f56df0b5..7eadf925c4e4429fa63fb02af9e87bf2ed68efa6 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -139,6 +139,11 @@ public class PurpurConfig { diff --git a/patches/Purpur/patches/server/0011-Lagging-threshold.patch b/patches/Purpur/patches/server/0011-Lagging-threshold.patch index 9bba2a5a..f590bdfe 100644 --- a/patches/Purpur/patches/server/0011-Lagging-threshold.patch +++ b/patches/Purpur/patches/server/0011-Lagging-threshold.patch @@ -25,7 +25,7 @@ index 6121ef7fcbadb50d05fad4270556e825f636f4d8..c086f50613cc3b1061c9958eb2a8aba0 } // Tuinity - replace logic diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index db62e40a5bba3bdb60f1dac6f25a48f321a5d3e1..471b16492deab9c2466178425cdecdbc3f6c4896 100644 +index 7eadf925c4e4429fa63fb02af9e87bf2ed68efa6..60ef024891e78e18c64435b7ee8118075ce5fb90 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -150,6 +150,11 @@ public class PurpurConfig { diff --git a/patches/Purpur/patches/server/0015-Player-invulnerabilities.patch b/patches/Purpur/patches/server/0015-Player-invulnerabilities.patch index 0e305479..19bcf3c1 100644 --- a/patches/Purpur/patches/server/0015-Player-invulnerabilities.patch +++ b/patches/Purpur/patches/server/0015-Player-invulnerabilities.patch @@ -67,7 +67,7 @@ index c42a2813b40152079786dde33231d945f3144580..6e3a3a50e01c41b40451bce05015714b public Scoreboard getScoreboard() { return getBukkitEntity().getScoreboard().getHandle(); diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index 15349a7bddcad5a4a6db07a8aa6ae8d06163b1f6..37663436c1ffed4552cdcdac7a5c09fe9b632fee 100644 +index 1f4e45f6e70032bfeeafe30d038e14e052e6ad9d..568fea41d12f2817b09768ff3b03f76930ad676c 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java @@ -1896,6 +1896,7 @@ public class PlayerConnection implements PacketListenerPlayIn { @@ -79,7 +79,7 @@ index 15349a7bddcad5a4a6db07a8aa6ae8d06163b1f6..37663436c1ffed4552cdcdac7a5c09fe this.server.getPluginManager().callEvent(new PlayerResourcePackStatusEvent(getPlayer(), packStatus)); // Paper end diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index c705bf1e651a764d56b87ebc5a86a938d8bd34bb..9360d35581c6961a768973cc31341381ee26e234 100644 +index b5043eabe63fe703a321cff6c0f6449cf729cd0e..456d87ffb2303867ac1e586078b4f81c059b0e74 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -1009,6 +1009,8 @@ public abstract class PlayerList { diff --git a/patches/Purpur/patches/server/0018-Alternative-Keepalive-Handling.patch b/patches/Purpur/patches/server/0018-Alternative-Keepalive-Handling.patch index d4281e68..82cbc123 100644 --- a/patches/Purpur/patches/server/0018-Alternative-Keepalive-Handling.patch +++ b/patches/Purpur/patches/server/0018-Alternative-Keepalive-Handling.patch @@ -17,7 +17,7 @@ index b4c37287362907b8507d156b978ba5b9d961bb7b..9e6e6636539702507abb78515e002819 return this.a; } diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index 37663436c1ffed4552cdcdac7a5c09fe9b632fee..f5ada346a11ac3becda4b87416beebd680ca16fa 100644 +index 568fea41d12f2817b09768ff3b03f76930ad676c..54327914233580282ee86e46712d1ba0d176bcc4 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java @@ -233,6 +233,7 @@ public class PlayerConnection implements PacketListenerPlayIn { @@ -68,7 +68,7 @@ index 37663436c1ffed4552cdcdac7a5c09fe9b632fee..f5ada346a11ac3becda4b87416beebd6 if (this.awaitingKeepAlive && packetplayinkeepalive.b() == this.h) { int i = (int) (SystemUtils.getMonotonicMillis() - this.lastKeepAlive); diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 471b16492deab9c2466178425cdecdbc3f6c4896..7194ab80185683fe198a3c19fc7401976976cb19 100644 +index 60ef024891e78e18c64435b7ee8118075ce5fb90..6e855980d32717119f30f39f4b47d86f8039ecc9 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -155,6 +155,11 @@ public class PurpurConfig { diff --git a/patches/Purpur/patches/server/0022-Logger-settings-suppressing-pointless-logs.patch b/patches/Purpur/patches/server/0022-Logger-settings-suppressing-pointless-logs.patch index c6fbddc9..b357cfb2 100644 --- a/patches/Purpur/patches/server/0022-Logger-settings-suppressing-pointless-logs.patch +++ b/patches/Purpur/patches/server/0022-Logger-settings-suppressing-pointless-logs.patch @@ -17,7 +17,7 @@ index 7a8a1960882e291c46301d07da3e1c5415516893..59d781b5e61c5d2c004bc92300d8d42e } // CraftBukkit end diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 7194ab80185683fe198a3c19fc7401976976cb19..9a6028759f6e3faac57013e6044afbfcb2c481ce 100644 +index 6e855980d32717119f30f39f4b47d86f8039ecc9..c5da5c0a6f68d4844ad8f59ad603611c909f8dfd 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -178,4 +178,11 @@ public class PurpurConfig { diff --git a/patches/Purpur/patches/server/0031-Dont-send-useless-entity-packets.patch b/patches/Purpur/patches/server/0031-Dont-send-useless-entity-packets.patch index c8948db1..aaca9df2 100644 --- a/patches/Purpur/patches/server/0031-Dont-send-useless-entity-packets.patch +++ b/patches/Purpur/patches/server/0031-Dont-send-useless-entity-packets.patch @@ -61,7 +61,7 @@ index 67ca28463f5add7c18f7f16b918c3f36f8feeeda..53e773c14689967d5b12467bf209eefb this.tracker.c(entityplayer); entityplayer.c(this.tracker); diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 9a6028759f6e3faac57013e6044afbfcb2c481ce..8d5c326b8c3ae0c6117a14b9be749a148293c3cd 100644 +index c5da5c0a6f68d4844ad8f59ad603611c909f8dfd..892f72c89af1b550305e2771f1ff5f470941faf8 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -179,6 +179,11 @@ public class PurpurConfig { diff --git a/patches/Purpur/patches/server/0044-Signs-allow-color-codes.patch b/patches/Purpur/patches/server/0044-Signs-allow-color-codes.patch index da9bcd92..7d01b048 100644 --- a/patches/Purpur/patches/server/0044-Signs-allow-color-codes.patch +++ b/patches/Purpur/patches/server/0044-Signs-allow-color-codes.patch @@ -17,7 +17,7 @@ index 6e3a3a50e01c41b40451bce05015714b5a7fe1e3..43900bb788f4baef420de0782c77d74d this.playerConnection.sendPacket(new PacketPlayOutOpenSignEditor(tileentitysign.getPosition())); } diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index f5ada346a11ac3becda4b87416beebd680ca16fa..4f094f026b118775cae84024b2ba6c33e14784e6 100644 +index 54327914233580282ee86e46712d1ba0d176bcc4..6451d5a6d491959ea537d11d0dde077578fed381 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java @@ -3073,6 +3073,15 @@ public class PlayerConnection implements PacketListenerPlayIn { diff --git a/patches/Purpur/patches/server/0046-Controllable-Minecarts.patch b/patches/Purpur/patches/server/0046-Minecart-settings-and-WASD-controls.patch similarity index 51% rename from patches/Purpur/patches/server/0046-Controllable-Minecarts.patch rename to patches/Purpur/patches/server/0046-Minecart-settings-and-WASD-controls.patch index 08d37472..26e41da3 100644 --- a/patches/Purpur/patches/server/0046-Controllable-Minecarts.patch +++ b/patches/Purpur/patches/server/0046-Minecart-settings-and-WASD-controls.patch @@ -1,27 +1,19 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 29 Jun 2019 02:32:40 -0500 -Subject: [PATCH] Controllable Minecarts +Subject: [PATCH] Minecart settings and WASD controls diff --git a/src/main/java/net/minecraft/core/BlockPosition.java b/src/main/java/net/minecraft/core/BlockPosition.java -index 8edc279e7a3fdfb7e10718f1deee34b7e3fb2f28..a01b69c43acf4beb65c8b7a8a800c44121068d46 100644 +index 8edc279e7a3fdfb7e10718f1deee34b7e3fb2f28..9a446a77dd9dbf5fa6f6fe763c4586cc377980d6 100644 --- a/src/main/java/net/minecraft/core/BlockPosition.java +++ b/src/main/java/net/minecraft/core/BlockPosition.java -@@ -11,6 +11,7 @@ import java.util.stream.StreamSupport; - import javax.annotation.concurrent.Immutable; - import net.minecraft.SystemUtils; - import net.minecraft.util.MathHelper; -+import net.minecraft.world.entity.Entity; - import net.minecraft.world.level.block.EnumBlockRotation; - import net.minecraft.world.level.levelgen.structure.StructureBoundingBox; - import net.minecraft.world.phys.AxisAlignedBB; -@@ -42,6 +43,12 @@ public class BlockPosition extends BaseBlockPosition { +@@ -42,6 +42,12 @@ public class BlockPosition extends BaseBlockPosition { private static final int m = 38; // Paper end + // Purpur start -+ public BlockPosition(Entity entity) { ++ public BlockPosition(net.minecraft.world.entity.Entity entity) { + super(entity.locX(), entity.locY(), entity.locZ()); + } + // Purpur end @@ -30,22 +22,14 @@ index 8edc279e7a3fdfb7e10718f1deee34b7e3fb2f28..a01b69c43acf4beb65c8b7a8a800c441 super(i, j, k); } diff --git a/src/main/java/net/minecraft/server/level/EntityPlayer.java b/src/main/java/net/minecraft/server/level/EntityPlayer.java -index 43900bb788f4baef420de0782c77d74dd7310f6e..610ab97ab5322df04b8163b806104490360030f8 100644 +index 43900bb788f4baef420de0782c77d74dd7310f6e..01d4aa706f5c1cf35210bbdbf25b4687d110eaa1 100644 --- a/src/main/java/net/minecraft/server/level/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/level/EntityPlayer.java -@@ -106,6 +106,7 @@ import net.minecraft.world.entity.monster.EntityMonster; - import net.minecraft.world.entity.player.EntityHuman; - import net.minecraft.world.entity.player.EnumChatVisibility; - import net.minecraft.world.entity.projectile.EntityArrow; -+import net.minecraft.world.entity.vehicle.EntityMinecartAbstract; - import net.minecraft.world.inventory.Container; - import net.minecraft.world.inventory.ContainerHorse; - import net.minecraft.world.inventory.ICrafting; -@@ -1132,6 +1133,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { +@@ -1132,6 +1132,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { if (this.isInvulnerable(damagesource)) { return false; } else { -+ if (damagesource == DamageSource.FALL && getRootVehicle() instanceof EntityMinecartAbstract && world.purpurConfig.controllableMinecarts && !world.purpurConfig.controllableMinecartsFallDamage) return false; // Purpur ++ if (damagesource == DamageSource.FALL && getRootVehicle() instanceof net.minecraft.world.entity.vehicle.EntityMinecartAbstract && world.purpurConfig.minecartControllable && !world.purpurConfig.minecartControllableFallDamage) return false; // Purpur boolean flag = this.server.j() && this.canPvP() && "fall".equals(damagesource.translationIndex); if (!flag && isSpawnInvulnerable() && damagesource != DamageSource.OUT_OF_WORLD) { // Purpur @@ -67,10 +51,37 @@ index d419d71af42c361d30aab12e4d245358667f857b..bb227e7dfb1e91a7f5dcc4c749838703 protected double aV; protected double aW; diff --git a/src/main/java/net/minecraft/world/entity/vehicle/EntityMinecartAbstract.java b/src/main/java/net/minecraft/world/entity/vehicle/EntityMinecartAbstract.java -index 75a88ab5d5b0fdb98ea8d61bb6b82049b21101f3..3cd9a7956f9cbb3f66764adfede12b3b25024c41 100644 +index 75a88ab5d5b0fdb98ea8d61bb6b82049b21101f3..7b49544210d087f5006a83c2a0d5c47c785c567f 100644 --- a/src/main/java/net/minecraft/world/entity/vehicle/EntityMinecartAbstract.java +++ b/src/main/java/net/minecraft/world/entity/vehicle/EntityMinecartAbstract.java -@@ -484,16 +484,62 @@ public abstract class EntityMinecartAbstract extends Entity { +@@ -105,11 +105,13 @@ public abstract class EntityMinecartAbstract extends Entity { + private double flyingY = 0.949999988079071D; // Paper - restore vanilla precision + private double flyingZ = 0.949999988079071D; // Paper - restore vanilla precision + public double maxSpeed = 0.4D; ++ public double storedMaxSpeed; // Purpur + // CraftBukkit end + + protected EntityMinecartAbstract(EntityTypes entitytypes, World world) { + super(entitytypes, world); + this.i = true; ++ if (world != null) maxSpeed = storedMaxSpeed = world.purpurConfig.minecartMaxSpeed; // Purpur + } + + protected EntityMinecartAbstract(EntityTypes entitytypes, World world, double d0, double d1, double d2) { +@@ -315,6 +317,12 @@ public abstract class EntityMinecartAbstract extends Entity { + + @Override + public void tick() { ++ // Purpur start ++ if (storedMaxSpeed != world.purpurConfig.minecartMaxSpeed) { ++ maxSpeed = storedMaxSpeed = world.purpurConfig.minecartMaxSpeed; ++ } ++ // Purpur end ++ + // CraftBukkit start + double prevX = this.locX(); + double prevY = this.locY(); +@@ -484,16 +492,62 @@ public abstract class EntityMinecartAbstract extends Entity { public void a(int i, int j, int k, boolean flag) {} @@ -83,11 +94,11 @@ index 75a88ab5d5b0fdb98ea8d61bb6b82049b21101f3..3cd9a7956f9cbb3f66764adfede12b3b + if (!block.getMaterial().isSolid()) { + block = world.getType(position.shift(EnumDirection.DOWN)).getBlock(); + } -+ Double speed = world.purpurConfig.controllableMinecartsBlockSpeeds.get(block); ++ Double speed = world.purpurConfig.minecartControllableBlockSpeeds.get(block); + if (!block.getMaterial().isSolid()) { + speed = lastSpeed; + } else if (speed == null) { -+ speed = world.purpurConfig.controllableMinecartsBaseSpeed; ++ speed = world.purpurConfig.minecartControllableBaseSpeed; + } + return lastSpeed = speed; + } @@ -100,12 +111,12 @@ index 75a88ab5d5b0fdb98ea8d61bb6b82049b21101f3..3cd9a7956f9cbb3f66764adfede12b3b this.setMot(MathHelper.a(vec3d.x, -d0, d0), vec3d.y, MathHelper.a(vec3d.z, -d0, d0)); + + // Purpur start -+ if (world.purpurConfig.controllableMinecarts && !isInWater() && !isInLava() && !passengers.isEmpty()) { ++ if (world.purpurConfig.minecartControllable && !isInWater() && !isInLava() && !passengers.isEmpty()) { + Entity passenger = passengers.get(0); + if (passenger instanceof EntityHuman) { + EntityHuman entityhuman = (EntityHuman) passenger; + if (entityhuman.jumping && this.onGround) { -+ setMot(new Vec3D(getMot().x, world.purpurConfig.controllableMinecartsHopBoost, getMot().z)); ++ setMot(new Vec3D(getMot().x, world.purpurConfig.minecartControllableHopBoost, getMot().z)); + } + if (entityhuman.getForward() != 0.0F) { + Vector velocity = entityhuman.getBukkitEntity().getEyeLocation().getDirection().normalize().multiply(getControllableSpeed()); @@ -115,7 +126,7 @@ index 75a88ab5d5b0fdb98ea8d61bb6b82049b21101f3..3cd9a7956f9cbb3f66764adfede12b3b + setMot(new Vec3D(velocity.getX(), getMot().y, velocity.getZ())); + } + this.yaw = passenger.yaw - 90; -+ setStepHeight(world.purpurConfig.controllableMinecartsStepHeight); ++ setStepHeight(world.purpurConfig.minecartControllableStepHeight); + } else { + setStepHeight(0.0F); + } @@ -129,12 +140,12 @@ index 75a88ab5d5b0fdb98ea8d61bb6b82049b21101f3..3cd9a7956f9cbb3f66764adfede12b3b this.setMot(new Vec3D(this.getMot().x * this.derailedX, this.getMot().y * this.derailedY, this.getMot().z * this.derailedZ)); // CraftBukkit end } -+ else if (world.purpurConfig.controllableMinecarts) setMot(new Vec3D(getMot().x * derailedX, getMot().y, getMot().z * derailedZ)); // Purpur ++ else if (world.purpurConfig.minecartControllable) setMot(new Vec3D(getMot().x * derailedX, getMot().y, getMot().z * derailedZ)); // Purpur this.move(EnumMoveType.SELF, this.getMot()); if (!this.onGround) { diff --git a/src/main/java/net/minecraft/world/item/ItemMinecart.java b/src/main/java/net/minecraft/world/item/ItemMinecart.java -index 527f3ed664854cdd938c34f00a064bc2f77148cc..d50a1093aa9b6d7187b59566309a3abd05125e07 100644 +index 527f3ed664854cdd938c34f00a064bc2f77148cc..1a1de9491a50e9e746e714fcb35633c22674f042 100644 --- a/src/main/java/net/minecraft/world/item/ItemMinecart.java +++ b/src/main/java/net/minecraft/world/item/ItemMinecart.java @@ -121,8 +121,10 @@ public class ItemMinecart extends Item { @@ -144,7 +155,7 @@ index 527f3ed664854cdd938c34f00a064bc2f77148cc..d50a1093aa9b6d7187b59566309a3abd - return EnumInteractionResult.FAIL; - } else { + // Purpur start - place minecarts anywhere -+ if (!world.purpurConfig.controllableMinecartsPlaceAnywhere) return EnumInteractionResult.FAIL; ++ if (!world.purpurConfig.minecartPlaceAnywhere) return EnumInteractionResult.FAIL; + if (iblockdata.getMaterial().isSolid()) blockposition = blockposition.shift(itemactioncontext.getClickedFace()); + } //else { // Purpur end - place minecarts anywhere ItemStack itemstack = itemactioncontext.getItemStack(); @@ -159,27 +170,19 @@ index 527f3ed664854cdd938c34f00a064bc2f77148cc..d50a1093aa9b6d7187b59566309a3abd } } diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java -index f8a982add50862f1bc977f3039e7e9aeed9138ae..e18b3b575e4fe3fde869e749070feefb31548a25 100644 +index f8a982add50862f1bc977f3039e7e9aeed9138ae..fb7d5fa53c51766f348271285a2e921be1ca0497 100644 --- a/src/main/java/net/minecraft/world/level/block/Block.java +++ b/src/main/java/net/minecraft/world/level/block/Block.java -@@ -41,6 +41,7 @@ import net.minecraft.world.level.block.entity.TileEntity; - import net.minecraft.world.level.block.state.BlockBase; - import net.minecraft.world.level.block.state.BlockStateList; - import net.minecraft.world.level.block.state.IBlockData; -+import net.minecraft.world.level.material.Material; - import net.minecraft.world.level.storage.loot.LootTableInfo; - import net.minecraft.world.level.storage.loot.parameters.LootContextParameters; - import net.minecraft.world.phys.Vec3D; -@@ -83,6 +84,7 @@ public class Block extends BlockBase implements IMaterial { +@@ -83,6 +83,7 @@ public class Block extends BlockBase implements IMaterial { return timing; } // Paper end -+ public Material getMaterial() { return material; } // Purpur - OBFHELPER ++ public net.minecraft.world.level.material.Material getMaterial() { return material; } // Purpur - OBFHELPER @Nullable private String name; @Nullable diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 2e4a928a3e88fb3d961d9530695cd7154321c79b..3a6a19bd4e952a6deb1def80755387cab75bbad8 100644 +index 2e4a928a3e88fb3d961d9530695cd7154321c79b..ee4b36f1aad78bcd7e9cc45acb4ca5b957d0d5c5 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -1,13 +1,18 @@ @@ -201,35 +204,69 @@ index 2e4a928a3e88fb3d961d9530695cd7154321c79b..3a6a19bd4e952a6deb1def80755387ca import static net.pl3x.purpur.PurpurConfig.log; public class PurpurWorldConfig { -@@ -68,6 +73,34 @@ public class PurpurWorldConfig { +@@ -68,6 +73,68 @@ public class PurpurWorldConfig { armorstandStepHeight = (float) getDouble("gameplay-mechanics.armorstand.step-height", armorstandStepHeight); } -+ public boolean controllableMinecarts = false; -+ public boolean controllableMinecartsPlaceAnywhere = false; -+ public float controllableMinecartsStepHeight = 1.0F; -+ public double controllableMinecartsHopBoost = 0.5D; -+ public boolean controllableMinecartsFallDamage = true; -+ public double controllableMinecartsBaseSpeed = 0.1D; -+ public Map controllableMinecartsBlockSpeeds = new HashMap<>(); -+ private void controllableMinecartsSettings() { -+ controllableMinecarts = getBoolean("gameplay-mechanics.controllable-minecarts.enabled", controllableMinecarts); -+ controllableMinecartsPlaceAnywhere = getBoolean("gameplay-mechanics.controllable-minecarts.place-anywhere", controllableMinecartsPlaceAnywhere); -+ controllableMinecartsStepHeight = (float) getDouble("gameplay-mechanics.controllable-minecarts.step-height", controllableMinecartsStepHeight); -+ controllableMinecartsHopBoost = getDouble("gameplay-mechanics.controllable-minecarts.hop-boost", controllableMinecartsHopBoost); -+ controllableMinecartsFallDamage = getBoolean("gameplay-mechanics.controllable-minecarts.fall-damage", controllableMinecartsFallDamage); -+ controllableMinecartsBaseSpeed = getDouble("gameplay-mechanics.controllable-minecarts.base-speed", controllableMinecartsBaseSpeed); -+ ConfigurationSection section = getConfigurationSection("gameplay-mechanics.controllable-minecarts.block-speed"); ++ public double minecartMaxSpeed = 0.4D; ++ public boolean minecartPlaceAnywhere = false; ++ public boolean minecartControllable = false; ++ public float minecartControllableStepHeight = 1.0F; ++ public double minecartControllableHopBoost = 0.5D; ++ public boolean minecartControllableFallDamage = true; ++ public double minecartControllableBaseSpeed = 0.1D; ++ public Map minecartControllableBlockSpeeds = new HashMap<>(); ++ private void minecartSettings() { ++ if (PurpurConfig.version < 12) { ++ boolean oldBool = getBoolean("gameplay-mechanics.controllable-minecarts.place-anywhere", minecartPlaceAnywhere); ++ set("gameplay-mechanics.controllable-minecarts.place-anywhere", null); ++ set("gameplay-mechanics.minecart.place-anywhere", oldBool); ++ oldBool = getBoolean("gameplay-mechanics.controllable-minecarts.enabled", minecartControllable); ++ set("gameplay-mechanics.controllable-minecarts.enabled", null); ++ set("gameplay-mechanics.minecart.controllable.enabled", oldBool); ++ double oldDouble = getDouble("gameplay-mechanics.controllable-minecarts.step-height", minecartControllableStepHeight); ++ set("gameplay-mechanics.controllable-minecarts.step-height", null); ++ set("gameplay-mechanics.minecart.controllable.step-height", oldDouble); ++ oldDouble = getDouble("gameplay-mechanics.controllable-minecarts.hop-boost", minecartControllableHopBoost); ++ set("gameplay-mechanics.controllable-minecarts.hop-boost", null); ++ set("gameplay-mechanics.minecart.controllable.hop-boost", oldDouble); ++ oldBool = getBoolean("gameplay-mechanics.controllable-minecarts.fall-damage", minecartControllableFallDamage); ++ set("gameplay-mechanics.controllable-minecarts.fall-damage", null); ++ set("gameplay-mechanics.minecart.controllable.fall-damage", oldBool); ++ oldDouble = getDouble("gameplay-mechanics.controllable-minecarts.base-speed", minecartControllableBaseSpeed); ++ set("gameplay-mechanics.controllable-minecarts.base-speed", null); ++ set("gameplay-mechanics.minecart.controllable.base-speed", oldDouble); ++ ConfigurationSection section = getConfigurationSection("gameplay-mechanics.controllable-minecarts.block-speed"); ++ if (section != null) { ++ for (String key : section.getKeys(false)) { ++ if ("grass-block".equals(key)) key = "grass_block"; // oopsie ++ oldDouble = section.getDouble(key, minecartControllableBaseSpeed); ++ set("gameplay-mechanics.controllable-minecarts.block-speed." + key, null); ++ set("gameplay-mechanics.minecart.controllable.block-speed." + key, oldDouble); ++ } ++ set("gameplay-mechanics.controllable-minecarts.block-speed", null); ++ } ++ set("gameplay-mechanics.controllable-minecarts", null); ++ } ++ ++ minecartMaxSpeed = getDouble("gameplay-mechanics.minecart.max-speed", minecartMaxSpeed); ++ minecartPlaceAnywhere = getBoolean("gameplay-mechanics.minecart.place-anywhere", minecartPlaceAnywhere); ++ minecartControllable = getBoolean("gameplay-mechanics.minecart.controllable.enabled", minecartControllable); ++ minecartControllableStepHeight = (float) getDouble("gameplay-mechanics.minecart.controllable.step-height", minecartControllableStepHeight); ++ minecartControllableHopBoost = getDouble("gameplay-mechanics.minecart.controllable.hop-boost", minecartControllableHopBoost); ++ minecartControllableFallDamage = getBoolean("gameplay-mechanics.minecart.controllable.fall-damage", minecartControllableFallDamage); ++ minecartControllableBaseSpeed = getDouble("gameplay-mechanics.minecart.controllable.base-speed", minecartControllableBaseSpeed); ++ ConfigurationSection section = getConfigurationSection("gameplay-mechanics.minecart.controllable.block-speed"); + if (section != null) { + for (String key : section.getKeys(false)) { + Block block = IRegistry.BLOCK.get(new MinecraftKey(key)); + if (block != Blocks.AIR) { -+ controllableMinecartsBlockSpeeds.put(block, section.getDouble(key, controllableMinecartsBaseSpeed)); ++ minecartControllableBlockSpeeds.put(block, section.getDouble(key, minecartControllableBaseSpeed)); + } + } + } else { -+ set("gameplay-mechanics.controllable-minecarts.block-speed.grass-block", 0.3D); -+ set("gameplay-mechanics.controllable-minecarts.block-speed.stone", 0.5D); ++ set("gameplay-mechanics.minecart.controllable.block-speed.grass_block", 0.3D); ++ set("gameplay-mechanics.minecart.controllable.block-speed.stone", 0.5D); + } + } + diff --git a/patches/Purpur/patches/server/0047-Disable-loot-drops-on-death-by-cramming.patch b/patches/Purpur/patches/server/0047-Disable-loot-drops-on-death-by-cramming.patch index a99dd36c..8c84a135 100644 --- a/patches/Purpur/patches/server/0047-Disable-loot-drops-on-death-by-cramming.patch +++ b/patches/Purpur/patches/server/0047-Disable-loot-drops-on-death-by-cramming.patch @@ -20,10 +20,10 @@ index bb227e7dfb1e91a7f5dcc4c7498387033b98df0f..e31538338e02fdb6e859c37bed899e5f // CraftBukkit start - Call death event org.bukkit.event.entity.EntityDeathEvent deathEvent = CraftEventFactory.callEntityDeathEvent(this, this.drops); // Paper diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 3a6a19bd4e952a6deb1def80755387cab75bbad8..b16ea97f4119fe2cd7c218f3fecbb7202c362665 100644 +index ee4b36f1aad78bcd7e9cc45acb4ca5b957d0d5c5..e2f49196642a325ac24f9245d5576547f20a044f 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -112,6 +112,11 @@ public class PurpurWorldConfig { +@@ -146,6 +146,11 @@ public class PurpurWorldConfig { idleTimeoutUpdateTabList = getBoolean("gameplay-mechanics.player.idle-timeout.update-tab-list", idleTimeoutUpdateTabList); } diff --git a/patches/Purpur/patches/server/0048-Players-should-not-cram-to-death.patch b/patches/Purpur/patches/server/0048-Players-should-not-cram-to-death.patch index 48117866..359d4579 100644 --- a/patches/Purpur/patches/server/0048-Players-should-not-cram-to-death.patch +++ b/patches/Purpur/patches/server/0048-Players-should-not-cram-to-death.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Players should not cram to death diff --git a/src/main/java/net/minecraft/server/level/EntityPlayer.java b/src/main/java/net/minecraft/server/level/EntityPlayer.java -index 610ab97ab5322df04b8163b806104490360030f8..5daf1f0f3371a1375daa829bcd4c447194e5f3e0 100644 +index 01d4aa706f5c1cf35210bbdbf25b4687d110eaa1..257265a036a62c7d5fbcff17a10a41198ed880a4 100644 --- a/src/main/java/net/minecraft/server/level/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/level/EntityPlayer.java -@@ -1557,7 +1557,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { +@@ -1556,7 +1556,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { @Override public boolean isInvulnerable(DamageSource damagesource) { diff --git a/patches/Purpur/patches/server/0049-Option-to-toggle-milk-curing-bad-omen.patch b/patches/Purpur/patches/server/0049-Option-to-toggle-milk-curing-bad-omen.patch index a109e04b..8d19f9ae 100644 --- a/patches/Purpur/patches/server/0049-Option-to-toggle-milk-curing-bad-omen.patch +++ b/patches/Purpur/patches/server/0049-Option-to-toggle-milk-curing-bad-omen.patch @@ -28,10 +28,10 @@ index 6085c5f75bd85cca3462613c18c2e2bf26205d1b..e20452f55c531f76ecaae9ba5d0ea3f8 return itemstack.isEmpty() ? new ItemStack(Items.BUCKET) : itemstack; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index b16ea97f4119fe2cd7c218f3fecbb7202c362665..a892d9af3753c4ca8f3733c64bece1cd1ed468c6 100644 +index e2f49196642a325ac24f9245d5576547f20a044f..7274008b7ff43f82574c748bac3566564792d05b 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -113,8 +113,10 @@ public class PurpurWorldConfig { +@@ -147,8 +147,10 @@ public class PurpurWorldConfig { } public boolean disableDropsOnCrammingDeath = false; diff --git a/patches/Purpur/patches/server/0053-Add-permission-for-F3-N-debug.patch b/patches/Purpur/patches/server/0053-Add-permission-for-F3-N-debug.patch index 1c43ba78..baea78df 100644 --- a/patches/Purpur/patches/server/0053-Add-permission-for-F3-N-debug.patch +++ b/patches/Purpur/patches/server/0053-Add-permission-for-F3-N-debug.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add permission for F3+N debug diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 9360d35581c6961a768973cc31341381ee26e234..c742647c0c5e3e4925e4ee6d195a54a85435e65e 100644 +index 456d87ffb2303867ac1e586078b4f81c059b0e74..92d696ee1812e8cfb8a853b5254db3ef5e4d2266 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -1168,6 +1168,7 @@ public abstract class PlayerList { diff --git a/patches/Purpur/patches/server/0054-Add-wither-skeleton-takes-wither-damage-option.patch b/patches/Purpur/patches/server/0054-Add-wither-skeleton-takes-wither-damage-option.patch index 84f792bb..919f48ce 100644 --- a/patches/Purpur/patches/server/0054-Add-wither-skeleton-takes-wither-damage-option.patch +++ b/patches/Purpur/patches/server/0054-Add-wither-skeleton-takes-wither-damage-option.patch @@ -17,10 +17,10 @@ index 85ba95615963fd6b28c454b25992e7c5b7019ae5..a90ac635ef7aef5289d21f948db7b170 } } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index a892d9af3753c4ca8f3733c64bece1cd1ed468c6..28ac3fcfb73acddd13712f5c625bd61be99cb7c5 100644 +index 7274008b7ff43f82574c748bac3566564792d05b..6b65a81bc54cc7c795885cc860346d4a0ed64125 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -279,6 +279,11 @@ public class PurpurWorldConfig { +@@ -313,6 +313,11 @@ public class PurpurWorldConfig { villagerUseBrainTicksOnlyWhenLagging = getBoolean("mobs.villager.use-brain-ticks-only-when-lagging", villagerUseBrainTicksOnlyWhenLagging); } diff --git a/patches/Purpur/patches/server/0055-Configurable-TPS-Catchup.patch b/patches/Purpur/patches/server/0055-Configurable-TPS-Catchup.patch index e09dbba5..f3d1f2b1 100644 --- a/patches/Purpur/patches/server/0055-Configurable-TPS-Catchup.patch +++ b/patches/Purpur/patches/server/0055-Configurable-TPS-Catchup.patch @@ -24,7 +24,7 @@ index c086f50613cc3b1061c9958eb2a8aba059a61e29..dccff89fcacdafe4961cd3121eb38ff8 this.methodProfiler.exit(); this.methodProfiler.b(); diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 8d5c326b8c3ae0c6117a14b9be749a148293c3cd..5fb05a8b660ee8e43458fbef1e59c5499ccaac9d 100644 +index 892f72c89af1b550305e2771f1ff5f470941faf8..0d16eaeea8b38329ffd6859b3ef93562a8fb86ce 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -190,4 +190,9 @@ public class PurpurConfig { diff --git a/patches/Purpur/patches/server/0056-Add-option-to-allow-loyalty-on-tridents-to-work-in-t.patch b/patches/Purpur/patches/server/0056-Add-option-to-allow-loyalty-on-tridents-to-work-in-t.patch index d43dfb2f..edd87500 100644 --- a/patches/Purpur/patches/server/0056-Add-option-to-allow-loyalty-on-tridents-to-work-in-t.patch +++ b/patches/Purpur/patches/server/0056-Add-option-to-allow-loyalty-on-tridents-to-work-in-t.patch @@ -18,10 +18,10 @@ index 646043987e1102ae8e9becc9820e6c6d86ef844d..7aadfe6598f0d3d41b94cfc003fcc9d0 if (b0 > 0 && !this.z()) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 28ac3fcfb73acddd13712f5c625bd61be99cb7c5..5d4432177aabbfd72e549b3bb5cf5381f71ce07a 100644 +index 6b65a81bc54cc7c795885cc860346d4a0ed64125..0a6255422a5d22e84cc1048caf7ca964a168b7fe 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -114,9 +114,11 @@ public class PurpurWorldConfig { +@@ -148,9 +148,11 @@ public class PurpurWorldConfig { public boolean disableDropsOnCrammingDeath = false; public boolean milkCuresBadOmen = true; diff --git a/patches/Purpur/patches/server/0057-Add-enderman-and-creeper-griefing-controls.patch b/patches/Purpur/patches/server/0057-Add-enderman-and-creeper-griefing-controls.patch index 6466333c..a82d7ee7 100644 --- a/patches/Purpur/patches/server/0057-Add-enderman-and-creeper-griefing-controls.patch +++ b/patches/Purpur/patches/server/0057-Add-enderman-and-creeper-griefing-controls.patch @@ -47,10 +47,10 @@ index 4d7b5d47ab6bd3b1408811c3b9c157b1eb5c30ae..72142f5c777c6218050bc2b69891072d } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 5d4432177aabbfd72e549b3bb5cf5381f71ce07a..ab703cbb1b4322b62246d974e3efa08884496ede 100644 +index 0a6255422a5d22e84cc1048caf7ca964a168b7fe..8033348257c0fcc6f3c1c376b6fb343c414618c5 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -191,8 +191,10 @@ public class PurpurWorldConfig { +@@ -225,8 +225,10 @@ public class PurpurWorldConfig { cowFeedMushrooms = getInt("mobs.cow.feed-mushrooms-for-mooshroom", cowFeedMushrooms); } @@ -61,7 +61,7 @@ index 5d4432177aabbfd72e549b3bb5cf5381f71ce07a..ab703cbb1b4322b62246d974e3efa088 creeperChargedChance = getDouble("mobs.creeper.naturally-charged-chance", creeperChargedChance); } -@@ -201,6 +203,11 @@ public class PurpurWorldConfig { +@@ -235,6 +237,11 @@ public class PurpurWorldConfig { enderDragonAlwaysDropsFullExp = getBoolean("mobs.ender_dragon.always-drop-full-exp", enderDragonAlwaysDropsFullExp); } diff --git a/patches/Purpur/patches/server/0058-Entities-pick-up-loot-bypass-mob-griefing-gamerule.patch b/patches/Purpur/patches/server/0058-Entities-pick-up-loot-bypass-mob-griefing-gamerule.patch index 20541cf3..285b07a2 100644 --- a/patches/Purpur/patches/server/0058-Entities-pick-up-loot-bypass-mob-griefing-gamerule.patch +++ b/patches/Purpur/patches/server/0058-Entities-pick-up-loot-bypass-mob-griefing-gamerule.patch @@ -18,10 +18,10 @@ index af04853ba114a80eb756c1700d27567fd8548e13..92d8c5e716678862deadd7755db8e927 Iterator iterator = list.iterator(); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index ab703cbb1b4322b62246d974e3efa08884496ede..29cab794e485b8e07b9e56f8cfb917934364121b 100644 +index 8033348257c0fcc6f3c1c376b6fb343c414618c5..3198f65bff04015babe7e529ad66588ef28e52be 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -113,10 +113,12 @@ public class PurpurWorldConfig { +@@ -147,10 +147,12 @@ public class PurpurWorldConfig { } public boolean disableDropsOnCrammingDeath = false; diff --git a/patches/Purpur/patches/server/0059-Villagers-farming-can-bypass-mob-griefing-gamerule.patch b/patches/Purpur/patches/server/0059-Villagers-farming-can-bypass-mob-griefing-gamerule.patch index a13ad74c..3019392f 100644 --- a/patches/Purpur/patches/server/0059-Villagers-farming-can-bypass-mob-griefing-gamerule.patch +++ b/patches/Purpur/patches/server/0059-Villagers-farming-can-bypass-mob-griefing-gamerule.patch @@ -18,10 +18,10 @@ index bd998ea93d7e8748b0a938f0a76b4ccf388c7b27..42c70a6c2972ac38e889a6d42fe2d7d4 } else if (entityvillager.getVillagerData().getProfession() != VillagerProfession.FARMER) { return false; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 29cab794e485b8e07b9e56f8cfb917934364121b..c51628f1f30bcd0206fc2b04ed83aca4ab7fd51a 100644 +index 3198f65bff04015babe7e529ad66588ef28e52be..e82485ee1270ce83ccc93825d795743d4ead23a1 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -285,9 +285,11 @@ public class PurpurWorldConfig { +@@ -319,9 +319,11 @@ public class PurpurWorldConfig { public int villagerBrainTicks = 1; public boolean villagerUseBrainTicksOnlyWhenLagging = true; diff --git a/patches/Purpur/patches/server/0060-Villagers-follow-emerald-blocks.patch b/patches/Purpur/patches/server/0060-Villagers-follow-emerald-blocks.patch index 5eafb9e9..3b2b6d20 100644 --- a/patches/Purpur/patches/server/0060-Villagers-follow-emerald-blocks.patch +++ b/patches/Purpur/patches/server/0060-Villagers-follow-emerald-blocks.patch @@ -78,10 +78,10 @@ index 37e1b2bf33510c3603efadf219b462e667f573c2..6c13a34a7ab220a3bba1c091f4f6a9e1 this.goalSelector.a(8, new PathfinderGoalRandomStrollLand(this, 0.35D)); this.goalSelector.a(9, new PathfinderGoalInteract(this, EntityHuman.class, 3.0F, 1.0F)); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index c51628f1f30bcd0206fc2b04ed83aca4ab7fd51a..7d66e253391522d754146275024ffb017a685e6f 100644 +index e82485ee1270ce83ccc93825d795743d4ead23a1..2eaef857f474c05ef1b4aac4870222d2464da949 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -286,10 +286,17 @@ public class PurpurWorldConfig { +@@ -320,10 +320,17 @@ public class PurpurWorldConfig { public int villagerBrainTicks = 1; public boolean villagerUseBrainTicksOnlyWhenLagging = true; public boolean villagerFarmingBypassMobGriefing = false; diff --git a/patches/Purpur/patches/server/0061-Allow-leashing-villagers.patch b/patches/Purpur/patches/server/0061-Allow-leashing-villagers.patch index 22e9eabf..f5e6e6bc 100644 --- a/patches/Purpur/patches/server/0061-Allow-leashing-villagers.patch +++ b/patches/Purpur/patches/server/0061-Allow-leashing-villagers.patch @@ -59,10 +59,10 @@ index 6c13a34a7ab220a3bba1c091f4f6a9e1340212f6..e0324cdb2d4c85714eaad490a7a5c826 @Override public EntityAgeable createChild(WorldServer worldserver, EntityAgeable entityageable) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 7d66e253391522d754146275024ffb017a685e6f..b6d6685f135ee66a25f29c0f00a63bbe78d0c3a5 100644 +index 2eaef857f474c05ef1b4aac4870222d2464da949..9922ca6bd7d856eea182b8dd3c210e5f726ef180 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -285,17 +285,21 @@ public class PurpurWorldConfig { +@@ -319,17 +319,21 @@ public class PurpurWorldConfig { public int villagerBrainTicks = 1; public boolean villagerUseBrainTicksOnlyWhenLagging = true; diff --git a/patches/Purpur/patches/server/0062-Implement-configurable-search-radius-for-villagers-t.patch b/patches/Purpur/patches/server/0062-Implement-configurable-search-radius-for-villagers-t.patch index 1d450ba2..afc15f39 100644 --- a/patches/Purpur/patches/server/0062-Implement-configurable-search-radius-for-villagers-t.patch +++ b/patches/Purpur/patches/server/0062-Implement-configurable-search-radius-for-villagers-t.patch @@ -18,10 +18,10 @@ index aeb3c82afeda3f1688b1b6617c6d05da2e7a3c76..2fad37812bfa39872e99c4432e1982d6 for (int i = 0; i < 10; ++i) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index b6d6685f135ee66a25f29c0f00a63bbe78d0c3a5..81f0538f6e5ab48a07459b102ea1f4533a63d031 100644 +index 9922ca6bd7d856eea182b8dd3c210e5f726ef180..f3c9a06be653a0fbd462677866134b634b8611b6 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -288,12 +288,16 @@ public class PurpurWorldConfig { +@@ -322,12 +322,16 @@ public class PurpurWorldConfig { public boolean villagerCanBeLeashed = false; public boolean villagerFarmingBypassMobGriefing = false; public boolean villagerFollowEmeraldBlock = false; diff --git a/patches/Purpur/patches/server/0063-Implement-infinite-lava.patch b/patches/Purpur/patches/server/0063-Implement-infinite-lava.patch index 91878741..975cae40 100644 --- a/patches/Purpur/patches/server/0063-Implement-infinite-lava.patch +++ b/patches/Purpur/patches/server/0063-Implement-infinite-lava.patch @@ -59,10 +59,10 @@ index b362a728b5d17256768847ab09e2505a9cc1918b..86f2e969d98c833700f0f48baf7610ad protected boolean f() { return false; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 81f0538f6e5ab48a07459b102ea1f4533a63d031..29bb808b1efe392157971a1a21c66eb9b85579d8 100644 +index f3c9a06be653a0fbd462677866134b634b8611b6..95605436c7d2d8e8b30217dc59d28ce2658d0e26 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -158,6 +158,13 @@ public class PurpurWorldConfig { +@@ -192,6 +192,13 @@ public class PurpurWorldConfig { farmlandGetsMoistFromBelow = getBoolean("blocks.farmland.gets-moist-from-below", farmlandGetsMoistFromBelow); } diff --git a/patches/Purpur/patches/server/0064-Make-lava-flow-speed-configurable.patch b/patches/Purpur/patches/server/0064-Make-lava-flow-speed-configurable.patch index c5dd85c1..9caee967 100644 --- a/patches/Purpur/patches/server/0064-Make-lava-flow-speed-configurable.patch +++ b/patches/Purpur/patches/server/0064-Make-lava-flow-speed-configurable.patch @@ -18,10 +18,10 @@ index 86f2e969d98c833700f0f48baf7610ad95b3f8a1..e706695d42d7557f818595aa30fb3cfc @Override diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 29bb808b1efe392157971a1a21c66eb9b85579d8..d51ee6ff1b73f0bafec88fd5445df37a1182c5d0 100644 +index 95605436c7d2d8e8b30217dc59d28ce2658d0e26..21ecfc0a1ee6d39e0b824aa3ce146a8833bd20ce 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -160,9 +160,13 @@ public class PurpurWorldConfig { +@@ -194,9 +194,13 @@ public class PurpurWorldConfig { public boolean lavaInfinite = false; public int lavaInfiniteRequiredSources = 2; diff --git a/patches/Purpur/patches/server/0065-Add-player-death-exp-control-options.patch b/patches/Purpur/patches/server/0065-Add-player-death-exp-control-options.patch index 644b936f..94dd827d 100644 --- a/patches/Purpur/patches/server/0065-Add-player-death-exp-control-options.patch +++ b/patches/Purpur/patches/server/0065-Add-player-death-exp-control-options.patch @@ -40,10 +40,10 @@ index 17e6f476e60a4f5dc278894a0a874ca5ae45ee22..1b130b50888113d515ce1e200a157c3b return 0; } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index d51ee6ff1b73f0bafec88fd5445df37a1182c5d0..e10aa8ddbcea3588b2da08de929eed18cb9f022c 100644 +index 21ecfc0a1ee6d39e0b824aa3ce146a8833bd20ce..32087bcc02c20448988c76e04dbc0dcc3db48641 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -123,6 +123,13 @@ public class PurpurWorldConfig { +@@ -157,6 +157,13 @@ public class PurpurWorldConfig { tridentLoyaltyVoidReturnHeight = getDouble("gameplay-mechanics.trident-loyalty-void-return-height", tridentLoyaltyVoidReturnHeight); } diff --git a/patches/Purpur/patches/server/0067-Configurable-void-damage-height.patch b/patches/Purpur/patches/server/0067-Configurable-void-damage-height.patch index 1f301901..272b9cd7 100644 --- a/patches/Purpur/patches/server/0067-Configurable-void-damage-height.patch +++ b/patches/Purpur/patches/server/0067-Configurable-void-damage-height.patch @@ -18,10 +18,10 @@ index 08f286a085cf36ce9a0ea420389f4ea33fb1cc1a..0950dcce2353504775813d9f60407361 && this.locY() >= world.paperConfig.netherVoidTopDamageHeight)) { this.doVoidDamage(); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index e10aa8ddbcea3588b2da08de929eed18cb9f022c..ef5a691861cdf249f0430fca7f7bbe241479926e 100644 +index 32087bcc02c20448988c76e04dbc0dcc3db48641..dc63d6ee62a45ff4862c01327de3dc06021bf284 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -116,11 +116,13 @@ public class PurpurWorldConfig { +@@ -150,11 +150,13 @@ public class PurpurWorldConfig { public boolean entitiesPickUpLootBypassMobGriefing = false; public boolean milkCuresBadOmen = true; public double tridentLoyaltyVoidReturnHeight = 0.0D; diff --git a/patches/Purpur/patches/server/0068-Dispenser-curse-of-binding-protection.patch b/patches/Purpur/patches/server/0068-Dispenser-curse-of-binding-protection.patch index a29bd014..eefbe8cc 100644 --- a/patches/Purpur/patches/server/0068-Dispenser-curse-of-binding-protection.patch +++ b/patches/Purpur/patches/server/0068-Dispenser-curse-of-binding-protection.patch @@ -52,10 +52,10 @@ index 7962808aebf67cf9bc1dc4c1e106e943536fdced..d072b604a1cd8835c1fe658831cdaf9f return this.b; } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index ef5a691861cdf249f0430fca7f7bbe241479926e..5b42e8347a42a16f79fbbc122e5cd82533e53b8c 100644 +index dc63d6ee62a45ff4862c01327de3dc06021bf284..d9c5f6f90c493dcf13199c488065d9dfbe34525e 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -162,6 +162,11 @@ public class PurpurWorldConfig { +@@ -196,6 +196,11 @@ public class PurpurWorldConfig { }); } diff --git a/patches/Purpur/patches/server/0069-Add-option-for-boats-to-eject-players-on-land.patch b/patches/Purpur/patches/server/0069-Add-option-for-boats-to-eject-players-on-land.patch index 96abfcc6..59e133a7 100644 --- a/patches/Purpur/patches/server/0069-Add-option-for-boats-to-eject-players-on-land.patch +++ b/patches/Purpur/patches/server/0069-Add-option-for-boats-to-eject-players-on-land.patch @@ -17,10 +17,10 @@ index 5e2c13bd6e52ffe182ef034e05ba6fe1cb301005..01839c7319e175477ded7001e00e5937 } else { return EntityBoat.EnumStatus.IN_AIR; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 5b42e8347a42a16f79fbbc122e5cd82533e53b8c..f443fadcafdbc3d69c86730e3fb1a71078d7fdf5 100644 +index d9c5f6f90c493dcf13199c488065d9dfbe34525e..f1a5bc297e67129351e4cf72bc67c44f4af64b91 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -112,12 +112,14 @@ public class PurpurWorldConfig { +@@ -146,12 +146,14 @@ public class PurpurWorldConfig { idleTimeoutUpdateTabList = getBoolean("gameplay-mechanics.player.idle-timeout.update-tab-list", idleTimeoutUpdateTabList); } diff --git a/patches/Purpur/patches/server/0071-Mending-mends-most-damages-equipment-first.patch b/patches/Purpur/patches/server/0071-Mending-mends-most-damages-equipment-first.patch index 275938db..2b57ebf3 100644 --- a/patches/Purpur/patches/server/0071-Mending-mends-most-damages-equipment-first.patch +++ b/patches/Purpur/patches/server/0071-Mending-mends-most-damages-equipment-first.patch @@ -78,10 +78,10 @@ index 72afbf8f537770540e90a2880ea81de137ea10f5..b2d28c2bf0a9e93d38583e2d734c12fe return a(enchantment, entityliving, (itemstack) -> { return true; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index f443fadcafdbc3d69c86730e3fb1a71078d7fdf5..e66b79218e960d11da4759187e4473685ccb9a9e 100644 +index f1a5bc297e67129351e4cf72bc67c44f4af64b91..7dd9a8af44fbf3e1a3fe48d9f259a4937a823f39 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -112,6 +112,7 @@ public class PurpurWorldConfig { +@@ -146,6 +146,7 @@ public class PurpurWorldConfig { idleTimeoutUpdateTabList = getBoolean("gameplay-mechanics.player.idle-timeout.update-tab-list", idleTimeoutUpdateTabList); } @@ -89,7 +89,7 @@ index f443fadcafdbc3d69c86730e3fb1a71078d7fdf5..e66b79218e960d11da4759187e447368 public boolean boatEjectPlayersOnLand = false; public boolean disableDropsOnCrammingDeath = false; public boolean entitiesPickUpLootBypassMobGriefing = false; -@@ -119,6 +120,7 @@ public class PurpurWorldConfig { +@@ -153,6 +154,7 @@ public class PurpurWorldConfig { public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; private void miscGameplayMechanicsSettings() { diff --git a/patches/Purpur/patches/server/0073-Implement-elytra-settings.patch b/patches/Purpur/patches/server/0073-Implement-elytra-settings.patch index 7d347f4d..34efff4b 100644 --- a/patches/Purpur/patches/server/0073-Implement-elytra-settings.patch +++ b/patches/Purpur/patches/server/0073-Implement-elytra-settings.patch @@ -101,10 +101,10 @@ index 9896477b54cf91a88bdfc3d85018a59193b32859..0711d195c654edef5875f587e391bacf entityhuman.r(20); if (entityhuman.isOnGround()) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index e66b79218e960d11da4759187e4473685ccb9a9e..7f6b028f32af113e5898a0f2f39e0ec6c4e4dd11 100644 +index 7dd9a8af44fbf3e1a3fe48d9f259a4937a823f39..321f1811da81ffb31bd26442d2e3386c48d30086 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -129,6 +129,19 @@ public class PurpurWorldConfig { +@@ -163,6 +163,19 @@ public class PurpurWorldConfig { voidDamageHeight = getDouble("gameplay-mechanics.void-damage-height", voidDamageHeight); } diff --git a/patches/Purpur/patches/server/0074-Item-entity-immunities.patch b/patches/Purpur/patches/server/0074-Item-entity-immunities.patch index 72034acb..7b629841 100644 --- a/patches/Purpur/patches/server/0074-Item-entity-immunities.patch +++ b/patches/Purpur/patches/server/0074-Item-entity-immunities.patch @@ -137,10 +137,10 @@ index 5dc3670f35b04d933e96c4b42aa9fbcf941e69c7..3b84039a76843a0784e2d71bb66dc322 + // Purpur end } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 7f6b028f32af113e5898a0f2f39e0ec6c4e4dd11..54ec01c01026f14f1f91aad2639109af853e10e4 100644 +index 321f1811da81ffb31bd26442d2e3386c48d30086..12c3708150475ec16b394c79a78f4f0d740ea611 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -101,6 +101,39 @@ public class PurpurWorldConfig { +@@ -135,6 +135,39 @@ public class PurpurWorldConfig { } } diff --git a/patches/Purpur/patches/server/0075-Add-ping-command.patch b/patches/Purpur/patches/server/0075-Add-ping-command.patch index 5f8ca9e0..e280c942 100644 --- a/patches/Purpur/patches/server/0075-Add-ping-command.patch +++ b/patches/Purpur/patches/server/0075-Add-ping-command.patch @@ -67,7 +67,7 @@ index bbad2b1399d9d2e16bfa77563bd564f7c6f640d7..a85c4525335fa46bc23a6dd57cfaea1f List list = ((EntitySelector) commandcontext.getArgument(s, EntitySelector.class)).d((CommandListenerWrapper) commandcontext.getSource()); diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 5fb05a8b660ee8e43458fbef1e59c5499ccaac9d..5cb45971721dd39d214434529ce434035173326b 100644 +index 0d16eaeea8b38329ffd6859b3ef93562a8fb86ce..969a4359dfb35e4cfeac26e1f6c700d7e9d142eb 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -133,10 +133,12 @@ public class PurpurConfig { diff --git a/patches/Purpur/patches/server/0076-Configurable-jockey-options.patch b/patches/Purpur/patches/server/0076-Configurable-jockey-options.patch index c10b48c0..4325f3ab 100644 --- a/patches/Purpur/patches/server/0076-Configurable-jockey-options.patch +++ b/patches/Purpur/patches/server/0076-Configurable-jockey-options.patch @@ -193,10 +193,10 @@ index f341759f6110b51c856de09248d2f523c58aa712..99d0932e5352589cfbcc48a5e789651d protected void initDatawatcher() { super.initDatawatcher(); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 54ec01c01026f14f1f91aad2639109af853e10e4..1ebc8d04020aec7e36dfed5196dde9e9fe6ada0f 100644 +index 12c3708150475ec16b394c79a78f4f0d740ea611..b01d82d76e07a482fd36a754b46ac22139114232 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -275,6 +275,15 @@ public class PurpurWorldConfig { +@@ -309,6 +309,15 @@ public class PurpurWorldConfig { creeperChargedChance = getDouble("mobs.creeper.naturally-charged-chance", creeperChargedChance); } @@ -212,7 +212,7 @@ index 54ec01c01026f14f1f91aad2639109af853e10e4..1ebc8d04020aec7e36dfed5196dde9e9 public boolean enderDragonAlwaysDropsFullExp = false; private void enderDragonSettings() { enderDragonAlwaysDropsFullExp = getBoolean("mobs.ender_dragon.always-drop-full-exp", enderDragonAlwaysDropsFullExp); -@@ -312,6 +321,15 @@ public class PurpurWorldConfig { +@@ -346,6 +355,15 @@ public class PurpurWorldConfig { giantMaxHealth = getDouble("mobs.giant.attributes.max-health", giantMaxHealth); } @@ -228,7 +228,7 @@ index 54ec01c01026f14f1f91aad2639109af853e10e4..1ebc8d04020aec7e36dfed5196dde9e9 public double illusionerMovementSpeed = 0.5D; public double illusionerFollowRange = 18.0D; public double illusionerMaxHealth = 32.0D; -@@ -387,8 +405,35 @@ public class PurpurWorldConfig { +@@ -421,8 +439,35 @@ public class PurpurWorldConfig { witherSkeletonTakesWitherDamage = getBoolean("mobs.wither_skeleton.takes-wither-damage", witherSkeletonTakesWitherDamage); } diff --git a/patches/Purpur/patches/server/0077-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch b/patches/Purpur/patches/server/0077-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch index 8d2c61e4..8b626663 100644 --- a/patches/Purpur/patches/server/0077-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch +++ b/patches/Purpur/patches/server/0077-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch @@ -350,10 +350,10 @@ index 42cf3fa42b73739182d26fbb524ee5b304c799b2..daf738e8f0987aa6ab200189d7a26d16 return entityliving != null ? EntityPhantom.this.a(EntityPhantom.this.getGoalTarget(), PathfinderTargetCondition.a) : false; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 1ebc8d04020aec7e36dfed5196dde9e9fe6ada0f..d5e1ca888c6fe0910f54e30b3b59af4dfde86cb3 100644 +index b01d82d76e07a482fd36a754b46ac22139114232..3194e8e31e9e98ed5ab81ebb45b4c765938db5f6 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -349,6 +349,15 @@ public class PurpurWorldConfig { +@@ -383,6 +383,15 @@ public class PurpurWorldConfig { ironGolemCanSwim = getBoolean("mobs.iron_golem.can-swim", ironGolemCanSwim); } diff --git a/patches/Purpur/patches/server/0078-Add-phantom-spawning-options.patch b/patches/Purpur/patches/server/0078-Add-phantom-spawning-options.patch index 7a46c657..0514c41e 100644 --- a/patches/Purpur/patches/server/0078-Add-phantom-spawning-options.patch +++ b/patches/Purpur/patches/server/0078-Add-phantom-spawning-options.patch @@ -262,10 +262,10 @@ index e4f5e570636862481aac92ec9b74d6cf5723eb6e..e954adeff4fbfc1aa85ac3785c0c4c86 } } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index d5e1ca888c6fe0910f54e30b3b59af4dfde86cb3..104947fbf7c68c94e5b0b72b13307197e041ae1c 100644 +index 3194e8e31e9e98ed5ab81ebb45b4c765938db5f6..041415d72d1c738dfa97c68ca47d0eaf473f33a2 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -352,10 +352,34 @@ public class PurpurWorldConfig { +@@ -386,10 +386,34 @@ public class PurpurWorldConfig { public double phantomAttackedByCrystalRadius = 0.0D; public float phantomAttackedByCrystalDamage = 1.0F; public double phantomOrbitCrystalRadius = 0.0D; diff --git a/patches/Purpur/patches/server/0079-Implement-bed-explosion-options.patch b/patches/Purpur/patches/server/0079-Implement-bed-explosion-options.patch index 3323dc8f..da06739d 100644 --- a/patches/Purpur/patches/server/0079-Implement-bed-explosion-options.patch +++ b/patches/Purpur/patches/server/0079-Implement-bed-explosion-options.patch @@ -18,7 +18,7 @@ index abe0a1c309d526de37efcac44922fa259e1d112c..db9ef25d0578538fd7c7950a3b3d0345 } } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 104947fbf7c68c94e5b0b72b13307197e041ae1c..5486dd15752e9c260275a6b3d5ed702e6bf14a81 100644 +index 041415d72d1c738dfa97c68ca47d0eaf473f33a2..7f934f3f630188e5ebcd3c216e2ae64ab2dc9dbf 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -1,6 +1,7 @@ @@ -37,7 +37,7 @@ index 104947fbf7c68c94e5b0b72b13307197e041ae1c..5486dd15752e9c260275a6b3d5ed702e import static net.pl3x.purpur.PurpurConfig.log; -@@ -212,6 +214,22 @@ public class PurpurWorldConfig { +@@ -246,6 +248,22 @@ public class PurpurWorldConfig { }); } diff --git a/patches/Purpur/patches/server/0080-Implement-respawn-anchor-explosion-options.patch b/patches/Purpur/patches/server/0080-Implement-respawn-anchor-explosion-options.patch index 669c9d39..0f6152cd 100644 --- a/patches/Purpur/patches/server/0080-Implement-respawn-anchor-explosion-options.patch +++ b/patches/Purpur/patches/server/0080-Implement-respawn-anchor-explosion-options.patch @@ -30,10 +30,10 @@ index 028e98decf8b0496b4ebcd1aad3aa474e5c4e7c1..9b7a7f1ae50baf53d314bbf1588afeb8 public static boolean a(World world) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 5486dd15752e9c260275a6b3d5ed702e6bf14a81..a366742e8d11513b469ffb8dafd98a4c0d8ab30a 100644 +index 7f934f3f630188e5ebcd3c216e2ae64ab2dc9dbf..09320a6d1d4390b59941381d1e0a4d365bb8beab 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -251,6 +251,22 @@ public class PurpurWorldConfig { +@@ -285,6 +285,22 @@ public class PurpurWorldConfig { lavaSpeedNotNether = getInt("blocks.lava.speed.not-nether", lavaSpeedNotNether); } diff --git a/patches/Purpur/patches/server/0081-Add-allow-water-in-end-world-option.patch b/patches/Purpur/patches/server/0081-Add-allow-water-in-end-world-option.patch index 2f090927..3a9cd6fc 100644 --- a/patches/Purpur/patches/server/0081-Add-allow-water-in-end-world-option.patch +++ b/patches/Purpur/patches/server/0081-Add-allow-water-in-end-world-option.patch @@ -68,7 +68,7 @@ index 461c85b426aab30c34529897e55aa842b45d0555..486a03f2582d6ece2775cb2db127953d } else { world.setTypeUpdate(blockposition, Blocks.WATER.getBlockData()); diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 5cb45971721dd39d214434529ce434035173326b..f1e57b679db156b4013f6bc81925462a746001f2 100644 +index 969a4359dfb35e4cfeac26e1f6c700d7e9d142eb..5c65438c8b8acd2893346d26649c9fe142da05e9 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -186,6 +186,11 @@ public class PurpurConfig { diff --git a/patches/Purpur/patches/server/0082-Allow-color-codes-in-books.patch b/patches/Purpur/patches/server/0082-Allow-color-codes-in-books.patch index a9a4c0b8..e3028bf3 100644 --- a/patches/Purpur/patches/server/0082-Allow-color-codes-in-books.patch +++ b/patches/Purpur/patches/server/0082-Allow-color-codes-in-books.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Allow color codes in books diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index 4f094f026b118775cae84024b2ba6c33e14784e6..c4ef3fef4db2326a531694e6798bab6103c7061c 100644 +index 6451d5a6d491959ea537d11d0dde077578fed381..e63e7f30db64d30840037d996c153822ce80fbbd 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java @@ -1211,7 +1211,8 @@ public class PlayerConnection implements PacketListenerPlayIn { diff --git a/patches/Purpur/patches/server/0083-Entity-lifespan.patch b/patches/Purpur/patches/server/0083-Entity-lifespan.patch index 6b801fdc..4d738709 100644 --- a/patches/Purpur/patches/server/0083-Entity-lifespan.patch +++ b/patches/Purpur/patches/server/0083-Entity-lifespan.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Entity lifespan diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index c4ef3fef4db2326a531694e6798bab6103c7061c..92437cf4413ea76ef139b007adf2b76c2729dad2 100644 +index e63e7f30db64d30840037d996c153822ce80fbbd..1c7579a1426c831484fe095d13169c2c47906843 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java @@ -2458,6 +2458,7 @@ public class PlayerConnection implements PacketListenerPlayIn { @@ -104,10 +104,10 @@ index 84995be65d033dd712211e1e479675815099c3b1..e10377b379079bc467a60abe719075c5 } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index a366742e8d11513b469ffb8dafd98a4c0d8ab30a..021dbb20793dd365c181c4d8a2ebc429af85778b 100644 +index 09320a6d1d4390b59941381d1e0a4d365bb8beab..2289c2ea20bddd4bdd93b1e25c04ed8ad8967053 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -103,6 +103,11 @@ public class PurpurWorldConfig { +@@ -137,6 +137,11 @@ public class PurpurWorldConfig { } } diff --git a/patches/Purpur/patches/server/0084-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch b/patches/Purpur/patches/server/0084-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch index c871a2fc..45dee022 100644 --- a/patches/Purpur/patches/server/0084-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch +++ b/patches/Purpur/patches/server/0084-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add option to teleport to spawn if outside world border diff --git a/src/main/java/net/minecraft/server/level/EntityPlayer.java b/src/main/java/net/minecraft/server/level/EntityPlayer.java -index 5daf1f0f3371a1375daa829bcd4c447194e5f3e0..81506c1191cf35d79981be4affc29f87291fc5a7 100644 +index 257265a036a62c7d5fbcff17a10a41198ed880a4..da708df0dc50ea02441f9db2bfd52f04d9a8e3da 100644 --- a/src/main/java/net/minecraft/server/level/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/level/EntityPlayer.java -@@ -2557,4 +2557,26 @@ public class EntityPlayer extends EntityHuman implements ICrafting { +@@ -2556,4 +2556,26 @@ public class EntityPlayer extends EntityHuman implements ICrafting { return (CraftPlayer) super.getBukkitEntity(); } // CraftBukkit end @@ -56,10 +56,10 @@ index 135e8b14d8b295797b87b2524a084f682bbf98ab..9c4bcc691ad2f6896b28d83f386fc8da } } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 021dbb20793dd365c181c4d8a2ebc429af85778b..b9e252c3db715c288493d5b98fc20d84de46c4e4 100644 +index 2289c2ea20bddd4bdd93b1e25c04ed8ad8967053..22d3b094f23bde7d3195125c46bb09e7fa3c2346 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -196,6 +196,11 @@ public class PurpurWorldConfig { +@@ -230,6 +230,11 @@ public class PurpurWorldConfig { playerInvulnerableWhileAcceptingResourcePack = getBoolean("gameplay-mechanics.player.invulnerable-while-accepting-resource-pack", playerInvulnerableWhileAcceptingResourcePack); } diff --git a/patches/Purpur/patches/server/0085-Squid-EAR-immunity.patch b/patches/Purpur/patches/server/0085-Squid-EAR-immunity.patch index 47a93485..9904ce56 100644 --- a/patches/Purpur/patches/server/0085-Squid-EAR-immunity.patch +++ b/patches/Purpur/patches/server/0085-Squid-EAR-immunity.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Squid EAR immunity diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index b9e252c3db715c288493d5b98fc20d84de46c4e4..cdb7a97ecececa78a200acc898535d33c950a668 100644 +index 22d3b094f23bde7d3195125c46bb09e7fa3c2346..9db3bc1540787e16f7d0033f9af5b04079775818 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -453,6 +453,11 @@ public class PurpurWorldConfig { +@@ -487,6 +487,11 @@ public class PurpurWorldConfig { snowGolemPutPumpkinBack = getBoolean("mobs.snow_golem.pumpkin-can-be-added-back", snowGolemPutPumpkinBack); } diff --git a/patches/Purpur/patches/server/0086-Configurable-end-spike-seed.patch b/patches/Purpur/patches/server/0086-Configurable-end-spike-seed.patch index 8f57ade5..7c5807bc 100644 --- a/patches/Purpur/patches/server/0086-Configurable-end-spike-seed.patch +++ b/patches/Purpur/patches/server/0086-Configurable-end-spike-seed.patch @@ -25,7 +25,7 @@ index dd623702131eaa1a65937a19a0e986e865322258..54ac8444702c3cfc2bcbaa6c8bc40398 List list = worldgenfeatureendspikeconfiguration.c(); diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index f1e57b679db156b4013f6bc81925462a746001f2..e9257f76275774518bb1fefe3b78144fd93791ab 100644 +index 5c65438c8b8acd2893346d26649c9fe142da05e9..90f1b46a8afd858eb0bc8a3723eda38c583d1ce3 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -1,5 +1,6 @@ diff --git a/patches/Purpur/patches/server/0087-Configurable-dungeon-seed.patch b/patches/Purpur/patches/server/0087-Configurable-dungeon-seed.patch index 49547108..8bccf35b 100644 --- a/patches/Purpur/patches/server/0087-Configurable-dungeon-seed.patch +++ b/patches/Purpur/patches/server/0087-Configurable-dungeon-seed.patch @@ -31,7 +31,7 @@ index 4a2e3af98ef3383678445c1bdf535203097558ee..363de0352804e6a778d4e6ee34609a94 int i = random.nextInt(2) + 2; int j = -i - 1; diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index e9257f76275774518bb1fefe3b78144fd93791ab..c356757bc6c3cca467c0f3839723391c9fc3347e 100644 +index 90f1b46a8afd858eb0bc8a3723eda38c583d1ce3..3a2476d78e74286636fb927258c583249aefd791 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -142,10 +142,13 @@ public class PurpurConfig { diff --git a/patches/Purpur/patches/server/0088-Phantoms-burn-in-light.patch b/patches/Purpur/patches/server/0088-Phantoms-burn-in-light.patch index 69a703ce..7f79e512 100644 --- a/patches/Purpur/patches/server/0088-Phantoms-burn-in-light.patch +++ b/patches/Purpur/patches/server/0088-Phantoms-burn-in-light.patch @@ -86,10 +86,10 @@ index 993a88a5937417016821ef9d7cd58e4ee097491c..64b4fcf6f43c39db0fe57fc7a74f0d95 public static final Item dr = a(Blocks.JACK_O_LANTERN, CreativeModeTab.b); public static final Item ds = a(Blocks.OAK_TRAPDOOR, CreativeModeTab.d); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index cdb7a97ecececa78a200acc898535d33c950a668..0a6b27327b0252911ac68f0584643e2d1c5bf09a 100644 +index 9db3bc1540787e16f7d0033f9af5b04079775818..ecb26650c17109ea51d4ad4842464e22835c0450 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -408,6 +408,9 @@ public class PurpurWorldConfig { +@@ -442,6 +442,9 @@ public class PurpurWorldConfig { public int phantomSpawnOverheadRadius = 10; public int phantomSpawnMinPerAttempt = 1; public int phantomSpawnMaxPerAttempt = -1; @@ -99,7 +99,7 @@ index cdb7a97ecececa78a200acc898535d33c950a668..0a6b27327b0252911ac68f0584643e2d private void phantomSettings() { phantomAttackedByCrystalRadius = getDouble("mobs.phantom.attacked-by-crystal-range", phantomAttackedByCrystalRadius); phantomAttackedByCrystalDamage = (float) getDouble("mobs.phantom.attacked-by-crystal-damage", phantomAttackedByCrystalDamage); -@@ -424,6 +427,9 @@ public class PurpurWorldConfig { +@@ -458,6 +461,9 @@ public class PurpurWorldConfig { phantomSpawnOverheadRadius = getInt("mobs.phantom.spawn.overhead.radius", phantomSpawnOverheadRadius); phantomSpawnMinPerAttempt = getInt("mobs.phantom.spawn.per-attempt.min", phantomSpawnMinPerAttempt); phantomSpawnMaxPerAttempt = getInt("mobs.phantom.spawn.per-attempt.max", phantomSpawnMaxPerAttempt); diff --git a/patches/Purpur/patches/server/0089-Configurable-villager-breeding.patch b/patches/Purpur/patches/server/0089-Configurable-villager-breeding.patch index c1451ec4..7a303b9b 100644 --- a/patches/Purpur/patches/server/0089-Configurable-villager-breeding.patch +++ b/patches/Purpur/patches/server/0089-Configurable-villager-breeding.patch @@ -18,10 +18,10 @@ index 2fad37812bfa39872e99c4432e1982d62f65efb7..d3032682af94428419daa02f55b60400 private boolean fr() { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 0a6b27327b0252911ac68f0584643e2d1c5bf09a..d56ec897bd3c7706b63d210568e60069c48b1a62 100644 +index ecb26650c17109ea51d4ad4842464e22835c0450..70a4fff198851c97de6c36c88bf579be51b8c0da 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -471,6 +471,7 @@ public class PurpurWorldConfig { +@@ -505,6 +505,7 @@ public class PurpurWorldConfig { public boolean villagerFollowEmeraldBlock = false; public int villagerSpawnIronGolemRadius = 0; public int villagerSpawnIronGolemLimit = 0; @@ -29,7 +29,7 @@ index 0a6b27327b0252911ac68f0584643e2d1c5bf09a..d56ec897bd3c7706b63d210568e60069 private void villagerSettings() { villagerBrainTicks = getInt("mobs.villager.brain-ticks", villagerBrainTicks); villagerUseBrainTicksOnlyWhenLagging = getBoolean("mobs.villager.use-brain-ticks-only-when-lagging", villagerUseBrainTicksOnlyWhenLagging); -@@ -479,6 +480,7 @@ public class PurpurWorldConfig { +@@ -513,6 +514,7 @@ public class PurpurWorldConfig { villagerFollowEmeraldBlock = getBoolean("mobs.villager.follow-emerald-blocks", villagerFollowEmeraldBlock); villagerSpawnIronGolemRadius = getInt("mobs.villager.spawn-iron-golem.radius", villagerSpawnIronGolemRadius); villagerSpawnIronGolemLimit = getInt("mobs.villager.spawn-iron-golem.limit", villagerSpawnIronGolemLimit); diff --git a/patches/Purpur/patches/server/0090-Redstone-deactivates-spawners.patch b/patches/Purpur/patches/server/0090-Redstone-deactivates-spawners.patch index 62de831a..779f61a2 100644 --- a/patches/Purpur/patches/server/0090-Redstone-deactivates-spawners.patch +++ b/patches/Purpur/patches/server/0090-Redstone-deactivates-spawners.patch @@ -26,10 +26,10 @@ index 5538404456dfee42257fad9040fcc0fefdfc5fab..b3a03dc66e803d9dc7000cc7d6960e87 public abstract BlockPosition b(); } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index d56ec897bd3c7706b63d210568e60069c48b1a62..ad32a4b3a601396c8d485d2264088d6cb4c92ebf 100644 +index 70a4fff198851c97de6c36c88bf579be51b8c0da..6bfa7faa7c2093c9da55d98343a87bcc6a182ca4 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -284,6 +284,11 @@ public class PurpurWorldConfig { +@@ -318,6 +318,11 @@ public class PurpurWorldConfig { signRightClickEdit = getBoolean("blocks.sign.right-click-edit", signRightClickEdit); } diff --git a/patches/Purpur/patches/server/0091-Totems-work-in-inventory.patch b/patches/Purpur/patches/server/0091-Totems-work-in-inventory.patch index 4a999899..1e1faa22 100644 --- a/patches/Purpur/patches/server/0091-Totems-work-in-inventory.patch +++ b/patches/Purpur/patches/server/0091-Totems-work-in-inventory.patch @@ -29,10 +29,10 @@ index 9c4bcc691ad2f6896b28d83f386fc8daa2777a3a..69101211dc01e5fbd1f156cbd612b423 event.setCancelled(itemstack == null); this.world.getServer().getPluginManager().callEvent(event); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index ad32a4b3a601396c8d485d2264088d6cb4c92ebf..2e3667c2c2530a1222f2ad7a4988ba8076759dc4 100644 +index 6bfa7faa7c2093c9da55d98343a87bcc6a182ca4..1ddd2ca349e303c75e0bb9b848c25f92383e84b5 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -201,6 +201,11 @@ public class PurpurWorldConfig { +@@ -235,6 +235,11 @@ public class PurpurWorldConfig { teleportIfOutsideBorder = getBoolean("gameplay-mechanics.player.teleport-if-outside-border", teleportIfOutsideBorder); } diff --git a/patches/Purpur/patches/server/0093-Add-vindicator-johnny-spawn-chance.patch b/patches/Purpur/patches/server/0093-Add-vindicator-johnny-spawn-chance.patch index 260c328a..cf02983f 100644 --- a/patches/Purpur/patches/server/0093-Add-vindicator-johnny-spawn-chance.patch +++ b/patches/Purpur/patches/server/0093-Add-vindicator-johnny-spawn-chance.patch @@ -30,7 +30,7 @@ index f0eda0b83bab8e3a8adbb569b5997402b0e08e9a..fe84d6d2b74b6ae00c4c66682107296a } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 2e3667c2c2530a1222f2ad7a4988ba8076759dc4..4901e9b0f418132fbe48a424df57d0e7a8103821 100644 +index 1ddd2ca349e303c75e0bb9b848c25f92383e84b5..55d7c48f0dd03c690b0d0b1fee4f3a5306de8d1d 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -40,6 +40,11 @@ public class PurpurWorldConfig { diff --git a/patches/Purpur/patches/server/0094-Add-option-to-disable-mushroom-and-note-block-update.patch b/patches/Purpur/patches/server/0094-Add-option-to-disable-mushroom-and-note-block-update.patch index 9aed0030..1871ec94 100644 --- a/patches/Purpur/patches/server/0094-Add-option-to-disable-mushroom-and-note-block-update.patch +++ b/patches/Purpur/patches/server/0094-Add-option-to-disable-mushroom-and-note-block-update.patch @@ -91,7 +91,7 @@ index feec1db88b22a4d13ffd3034633da79ed41b94fe..148718f8f96d94e76a4a7a96d5955b62 } diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index c356757bc6c3cca467c0f3839723391c9fc3347e..1d6da0c0753e822bba9d7847980235ff876e1ee8 100644 +index 3a2476d78e74286636fb927258c583249aefd791..0f7d4aecadf319bef64793e4938736c531459e0e 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -202,6 +202,13 @@ public class PurpurConfig { diff --git a/patches/Purpur/patches/server/0095-Dispensers-place-anvils-option.patch b/patches/Purpur/patches/server/0095-Dispensers-place-anvils-option.patch index e4141e44..a680cd98 100644 --- a/patches/Purpur/patches/server/0095-Dispensers-place-anvils-option.patch +++ b/patches/Purpur/patches/server/0095-Dispensers-place-anvils-option.patch @@ -69,10 +69,10 @@ index 93093c05da53e5ddc59fac179081af2e0893706d..a6f74fc09843de9ad5af5c45e303e754 static void a(ISourceBlock isourceblock, Entity entity, EnumDirection enumdirection) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 4901e9b0f418132fbe48a424df57d0e7a8103821..de573b8e09a3ad334991cc313208e0c91990e8a9 100644 +index 55d7c48f0dd03c690b0d0b1fee4f3a5306de8d1d..0d29894033d648c3588f4d02646ebe6cdd11f334 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -251,8 +251,10 @@ public class PurpurWorldConfig { +@@ -285,8 +285,10 @@ public class PurpurWorldConfig { } public boolean dispenserApplyCursedArmor = true; diff --git a/patches/Purpur/patches/server/0096-Allow-anvil-colors.patch b/patches/Purpur/patches/server/0096-Allow-anvil-colors.patch index 7b2e4ab6..a5449f58 100644 --- a/patches/Purpur/patches/server/0096-Allow-anvil-colors.patch +++ b/patches/Purpur/patches/server/0096-Allow-anvil-colors.patch @@ -41,10 +41,10 @@ index 1b2d633f3d5d735039f18f27fb1387bd5a74f0d8..77810fbb70bf2e1ad03c28c0d69ceaa6 } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index de573b8e09a3ad334991cc313208e0c91990e8a9..1e5dfaac19af7047243b991745a341782850cf20 100644 +index 0d29894033d648c3588f4d02646ebe6cdd11f334..87eb9d7a9d15640fe8d5892ae609d63dc6754379 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -234,6 +234,11 @@ public class PurpurWorldConfig { +@@ -268,6 +268,11 @@ public class PurpurWorldConfig { }); } diff --git a/patches/Purpur/patches/server/0097-Add-no-random-tick-block-list.patch b/patches/Purpur/patches/server/0097-Add-no-random-tick-block-list.patch index 5a6e19a2..e3dc91ef 100644 --- a/patches/Purpur/patches/server/0097-Add-no-random-tick-block-list.patch +++ b/patches/Purpur/patches/server/0097-Add-no-random-tick-block-list.patch @@ -43,7 +43,7 @@ index 6124b56d935386784371422960a07d518f848cf3..e5f66cdf95b6073545efc8d1527b0a5e } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 1e5dfaac19af7047243b991745a341782850cf20..8c04056ec174f02671c088038525637ae0f350cb 100644 +index 87eb9d7a9d15640fe8d5892ae609d63dc6754379..895480fdb4ce200a2194ab5d0873b5ab1a0b9325 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -11,8 +11,10 @@ import org.bukkit.configuration.ConfigurationSection; @@ -57,7 +57,7 @@ index 1e5dfaac19af7047243b991745a341782850cf20..8c04056ec174f02671c088038525637a import java.util.logging.Level; import static net.pl3x.purpur.PurpurConfig.log; -@@ -201,6 +203,28 @@ public class PurpurWorldConfig { +@@ -235,6 +237,28 @@ public class PurpurWorldConfig { playerInvulnerableWhileAcceptingResourcePack = getBoolean("gameplay-mechanics.player.invulnerable-while-accepting-resource-pack", playerInvulnerableWhileAcceptingResourcePack); } diff --git a/patches/Purpur/patches/server/0098-Add-option-to-disable-dolphin-treasure-searching.patch b/patches/Purpur/patches/server/0098-Add-option-to-disable-dolphin-treasure-searching.patch index b7743c90..ec2fe0d8 100644 --- a/patches/Purpur/patches/server/0098-Add-option-to-disable-dolphin-treasure-searching.patch +++ b/patches/Purpur/patches/server/0098-Add-option-to-disable-dolphin-treasure-searching.patch @@ -17,10 +17,10 @@ index 5d18e19eafd5dc01a6caa45075d8c0598f1bb709..e0a9b931c26dbd4e7739d09ae45e1cee } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 8c04056ec174f02671c088038525637ae0f350cb..18289cb1453fa00ed00f6a9ae7636eec472b47c1 100644 +index 895480fdb4ce200a2194ab5d0873b5ab1a0b9325..4fa9ca53480538687b3045bac74cbe74136e5fec 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -365,6 +365,11 @@ public class PurpurWorldConfig { +@@ -399,6 +399,11 @@ public class PurpurWorldConfig { creeperChargedChance = getDouble("mobs.creeper.naturally-charged-chance", creeperChargedChance); } diff --git a/patches/Purpur/patches/server/0099-Short-enderman-height.patch b/patches/Purpur/patches/server/0099-Short-enderman-height.patch index 8d4f4d5c..f60f38fb 100644 --- a/patches/Purpur/patches/server/0099-Short-enderman-height.patch +++ b/patches/Purpur/patches/server/0099-Short-enderman-height.patch @@ -31,7 +31,7 @@ index 72142f5c777c6218050bc2b69891072d256ea57d..52aa47036acee2ec21ae2d6f4df634ec if (this.tryEscape(EndermanEscapeEvent.Reason.INDIRECT)) { // Paper start for (int i = 0; i < 64; ++i) { diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 1d6da0c0753e822bba9d7847980235ff876e1ee8..76a1f157dc4ae0fdf804f3340b72dfa17ffbbb94 100644 +index 0f7d4aecadf319bef64793e4938736c531459e0e..3b20793e3eb4349f8a4ce724f8fc0d6366bb28c2 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -4,6 +4,8 @@ import co.aikar.timings.TimingsManager; diff --git a/patches/Purpur/patches/server/0100-Stop-squids-floating-on-top-of-water.patch b/patches/Purpur/patches/server/0100-Stop-squids-floating-on-top-of-water.patch index aa84086a..085e376d 100644 --- a/patches/Purpur/patches/server/0100-Stop-squids-floating-on-top-of-water.patch +++ b/patches/Purpur/patches/server/0100-Stop-squids-floating-on-top-of-water.patch @@ -51,10 +51,10 @@ index 1f5f3e0d209426b97e32b82dd15176b800f85816..e6757b22497c6e274c3999d58671653e protected void initPathfinder() { this.goalSelector.a(0, new EntitySquid.PathfinderGoalSquid(this)); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 18289cb1453fa00ed00f6a9ae7636eec472b47c1..a13f5e2f242f5ff7bfe7fbd56439a1c1b8b7df2c 100644 +index 4fa9ca53480538687b3045bac74cbe74136e5fec..ffb53daed6bb08d4f448f4d0a6fee6d10710541b 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -511,8 +511,10 @@ public class PurpurWorldConfig { +@@ -545,8 +545,10 @@ public class PurpurWorldConfig { } public boolean squidImmuneToEAR = true; diff --git a/patches/Purpur/patches/server/0101-Ridables.patch b/patches/Purpur/patches/server/0101-Ridables.patch index 0ca50dd8..529918ff 100644 --- a/patches/Purpur/patches/server/0101-Ridables.patch +++ b/patches/Purpur/patches/server/0101-Ridables.patch @@ -68,10 +68,10 @@ index 0000000000000000000000000000000000000000..8b66d1215a6eef1302b5ecb46a4b3d50 + } +} diff --git a/src/main/java/net/minecraft/server/level/EntityPlayer.java b/src/main/java/net/minecraft/server/level/EntityPlayer.java -index 81506c1191cf35d79981be4affc29f87291fc5a7..c723c1cc4a5d73c82b009aeb6f3e6ecf0a6668b9 100644 +index da708df0dc50ea02441f9db2bfd52f04d9a8e3da..867a6b7fe1788b20f8d0f4f1e42dd52bfc6a8c2a 100644 --- a/src/main/java/net/minecraft/server/level/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/level/EntityPlayer.java -@@ -643,6 +643,15 @@ public class EntityPlayer extends EntityHuman implements ICrafting { +@@ -642,6 +642,15 @@ public class EntityPlayer extends EntityHuman implements ICrafting { } this.advancementDataPlayer.b(this); @@ -100,7 +100,7 @@ index bbfe37b2faa4e91c62912a1b5013ffa175db41d4..f5b2e0503e6c826e2466835fdc8e5199 return new Throwable(entity + " Added to world at " + new java.util.Date()); } diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index 92437cf4413ea76ef139b007adf2b76c2729dad2..07541f23ee853dae137440129e600d345774cd90 100644 +index 1c7579a1426c831484fe095d13169c2c47906843..59eedbe9d249fd09673393651a8be76232ab16e9 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java @@ -2467,6 +2467,8 @@ public class PlayerConnection implements PacketListenerPlayIn { @@ -4469,7 +4469,7 @@ index 16d5cae64887b82e67eeb61ccb714e6125ff0c09..dc1ca7b334e89b4d0be775b6f6e6f422 this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).setValue(0.0D); } else { diff --git a/src/main/java/net/minecraft/world/entity/monster/EntityShulker.java b/src/main/java/net/minecraft/world/entity/monster/EntityShulker.java -index bfecaa56c3d93436d71082f1398e0ceb12336e38..0294ab119407dc45a40c8444fb5a91e154017234 100644 +index 49523302dd72a3dafab23c047412a2e77b6247ed..4b5c1691664f16594f316e55576086f2ae54e59e 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EntityShulker.java +++ b/src/main/java/net/minecraft/world/entity/monster/EntityShulker.java @@ -12,6 +12,7 @@ import net.minecraft.nbt.NBTTagCompound; @@ -5541,7 +5541,7 @@ index a19a26a88f247d359354902efeece9923f3e0e0b..1119f60890784d953c2cd4e0078af4d0 return new Vec3D(this.x * d0, this.y * d1, this.z * d2); } diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 76a1f157dc4ae0fdf804f3340b72dfa17ffbbb94..b587c96084a1ec3dd8fdec5a830fb8680e33e729 100644 +index 3b20793e3eb4349f8a4ce724f8fc0d6366bb28c2..9789d0f9f73540a486befcdd4901014efeed8403 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -137,11 +137,13 @@ public class PurpurConfig { @@ -5559,7 +5559,7 @@ index 76a1f157dc4ae0fdf804f3340b72dfa17ffbbb94..b587c96084a1ec3dd8fdec5a830fb868 public static int dungeonSeed = -1; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index a13f5e2f242f5ff7bfe7fbd56439a1c1b8b7df2c..19e79cd7ec2c624963affa8587b40d6fc50d0f05 100644 +index ffb53daed6bb08d4f448f4d0a6fee6d10710541b..8db7dca08fe4f0e88c950179f62ecd0d17bc329c 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -42,11 +42,6 @@ public class PurpurWorldConfig { @@ -5574,7 +5574,7 @@ index a13f5e2f242f5ff7bfe7fbd56439a1c1b8b7df2c..19e79cd7ec2c624963affa8587b40d6f private ConfigurationSection getConfigurationSection(String path) { ConfigurationSection section = PurpurConfig.config.getConfigurationSection("world-settings." + worldName + "." + path); return section != null ? section : PurpurConfig.config.getConfigurationSection("world-settings.default." + path); -@@ -339,61 +334,186 @@ public class PurpurWorldConfig { +@@ -373,61 +368,186 @@ public class PurpurWorldConfig { turtleEggsBreakFromMinecarts = getBoolean("blocks.turtle_egg.break-from-minecarts", turtleEggsBreakFromMinecarts); } @@ -5761,7 +5761,7 @@ index a13f5e2f242f5ff7bfe7fbd56439a1c1b8b7df2c..19e79cd7ec2c624963affa8587b40d6f public float giantStepHeight = 2.0F; public float giantJumpHeight = 1.0F; public double giantMovementSpeed = 0.5D; -@@ -402,6 +522,8 @@ public class PurpurWorldConfig { +@@ -436,6 +556,8 @@ public class PurpurWorldConfig { public boolean giantHaveHostileAI = false; public double giantMaxHealth = 100.0D; private void giantSettings() { @@ -5770,7 +5770,7 @@ index a13f5e2f242f5ff7bfe7fbd56439a1c1b8b7df2c..19e79cd7ec2c624963affa8587b40d6f giantStepHeight = (float) getDouble("mobs.giant.step-height", giantStepHeight); giantJumpHeight = (float) getDouble("mobs.giant.jump-height", giantJumpHeight); giantMovementSpeed = getDouble("mobs.giant.movement-speed", giantMovementSpeed); -@@ -416,19 +538,44 @@ public class PurpurWorldConfig { +@@ -450,19 +572,44 @@ public class PurpurWorldConfig { giantMaxHealth = getDouble("mobs.giant.attributes.max-health", giantMaxHealth); } @@ -5815,7 +5815,7 @@ index a13f5e2f242f5ff7bfe7fbd56439a1c1b8b7df2c..19e79cd7ec2c624963affa8587b40d6f illusionerMovementSpeed = getDouble("mobs.illusioner.movement-speed", illusionerMovementSpeed); illusionerFollowRange = getDouble("mobs.illusioner.follow-range", illusionerFollowRange); if (PurpurConfig.version < 8) { -@@ -439,11 +586,76 @@ public class PurpurWorldConfig { +@@ -473,11 +620,76 @@ public class PurpurWorldConfig { illusionerMaxHealth = getDouble("mobs.illusioner.attributes.max-health", illusionerMaxHealth); } @@ -5892,7 +5892,7 @@ index a13f5e2f242f5ff7bfe7fbd56439a1c1b8b7df2c..19e79cd7ec2c624963affa8587b40d6f public double phantomAttackedByCrystalRadius = 0.0D; public float phantomAttackedByCrystalDamage = 1.0F; public double phantomOrbitCrystalRadius = 0.0D; -@@ -462,7 +674,13 @@ public class PurpurWorldConfig { +@@ -496,7 +708,13 @@ public class PurpurWorldConfig { public int phantomBurnInLight = 0; public boolean phantomIgnorePlayersWithTorch = false; public boolean phantomBurnInDaylight = true; @@ -5906,7 +5906,7 @@ index a13f5e2f242f5ff7bfe7fbd56439a1c1b8b7df2c..19e79cd7ec2c624963affa8587b40d6f phantomAttackedByCrystalRadius = getDouble("mobs.phantom.attacked-by-crystal-range", phantomAttackedByCrystalRadius); phantomAttackedByCrystalDamage = (float) getDouble("mobs.phantom.attacked-by-crystal-damage", phantomAttackedByCrystalDamage); phantomOrbitCrystalRadius = getDouble("mobs.phantom.orbit-crystal-radius", phantomOrbitCrystalRadius); -@@ -481,42 +699,187 @@ public class PurpurWorldConfig { +@@ -515,42 +733,187 @@ 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); @@ -6094,7 +6094,7 @@ index a13f5e2f242f5ff7bfe7fbd56439a1c1b8b7df2c..19e79cd7ec2c624963affa8587b40d6f public int villagerBrainTicks = 1; public boolean villagerUseBrainTicksOnlyWhenLagging = true; public boolean villagerCanBeLeashed = false; -@@ -526,6 +889,8 @@ public class PurpurWorldConfig { +@@ -560,6 +923,8 @@ public class PurpurWorldConfig { public int villagerSpawnIronGolemLimit = 0; public boolean villagerCanBreed = true; private void villagerSettings() { @@ -6103,7 +6103,7 @@ index a13f5e2f242f5ff7bfe7fbd56439a1c1b8b7df2c..19e79cd7ec2c624963affa8587b40d6f villagerBrainTicks = getInt("mobs.villager.brain-ticks", villagerBrainTicks); villagerUseBrainTicksOnlyWhenLagging = getBoolean("mobs.villager.use-brain-ticks-only-when-lagging", villagerUseBrainTicksOnlyWhenLagging); villagerCanBeLeashed = getBoolean("mobs.villager.can-be-leashed", villagerCanBeLeashed); -@@ -536,45 +901,108 @@ public class PurpurWorldConfig { +@@ -570,45 +935,108 @@ public class PurpurWorldConfig { villagerCanBreed = getBoolean("mobs.villager.can-breed", villagerCanBreed); } diff --git a/patches/Purpur/patches/server/0103-Crying-obsidian-valid-for-portal-frames.patch b/patches/Purpur/patches/server/0103-Crying-obsidian-valid-for-portal-frames.patch index bdb4666d..779adfe8 100644 --- a/patches/Purpur/patches/server/0103-Crying-obsidian-valid-for-portal-frames.patch +++ b/patches/Purpur/patches/server/0103-Crying-obsidian-valid-for-portal-frames.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Crying obsidian valid for portal frames diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java -index e18b3b575e4fe3fde869e749070feefb31548a25..26cda907063f104fd4a3fbd2286b37fb539f741a 100644 +index fb7d5fa53c51766f348271285a2e921be1ca0497..1bc6380a805c1f76ffde67951d32d911e8f1f4a7 100644 --- a/src/main/java/net/minecraft/world/level/block/Block.java +++ b/src/main/java/net/minecraft/world/level/block/Block.java -@@ -141,6 +141,7 @@ public class Block extends BlockBase implements IMaterial { +@@ -140,6 +140,7 @@ public class Block extends BlockBase implements IMaterial { return tag.isTagged(this); } @@ -42,7 +42,7 @@ index 3f8a674345bcad8289a48d2daa5e2a283528e952..3c35f5d171df518f491cad1f49882622 private final GeneratorAccess b; private final EnumDirection.EnumAxis c; diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index b587c96084a1ec3dd8fdec5a830fb8680e33e729..2409dbc4fca9b7510f01c0abc092ab67dd402b79 100644 +index 9789d0f9f73540a486befcdd4901014efeed8403..d783f6a9288db216a5eb812ab0cbf5c000edb1b5 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -180,6 +180,7 @@ public class PurpurConfig { diff --git a/patches/Purpur/patches/server/0104-Entities-can-use-portals-configuration.patch b/patches/Purpur/patches/server/0104-Entities-can-use-portals-configuration.patch index fd3509e0..d6076709 100644 --- a/patches/Purpur/patches/server/0104-Entities-can-use-portals-configuration.patch +++ b/patches/Purpur/patches/server/0104-Entities-can-use-portals-configuration.patch @@ -27,10 +27,10 @@ index 4e1363050bef7fff9117250b79cbf35bf6bfc537..918edab475a8d33a253e3d6cd3c56557 public float a(Explosion explosion, IBlockAccess iblockaccess, BlockPosition blockposition, IBlockData iblockdata, Fluid fluid, float f) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 19e79cd7ec2c624963affa8587b40d6fc50d0f05..66074748c6fd366caf58170de478a01d3adb1430 100644 +index 8db7dca08fe4f0e88c950179f62ecd0d17bc329c..d6bf755d3f978adaec04e5feaab659445d49305e 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -158,6 +158,7 @@ public class PurpurWorldConfig { +@@ -192,6 +192,7 @@ public class PurpurWorldConfig { public boolean boatEjectPlayersOnLand = false; public boolean disableDropsOnCrammingDeath = false; public boolean entitiesPickUpLootBypassMobGriefing = false; @@ -38,7 +38,7 @@ index 19e79cd7ec2c624963affa8587b40d6fc50d0f05..66074748c6fd366caf58170de478a01d public boolean milkCuresBadOmen = true; public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; -@@ -166,6 +167,7 @@ public class PurpurWorldConfig { +@@ -200,6 +201,7 @@ public class PurpurWorldConfig { boatEjectPlayersOnLand = getBoolean("gameplay-mechanics.boat.eject-players-on-land", boatEjectPlayersOnLand); disableDropsOnCrammingDeath = getBoolean("gameplay-mechanics.disable-drops-on-cramming-death", disableDropsOnCrammingDeath); entitiesPickUpLootBypassMobGriefing = getBoolean("gameplay-mechanics.entities-pick-up-loot-bypass-mob-griefing", entitiesPickUpLootBypassMobGriefing); diff --git a/patches/Purpur/patches/server/0106-Customizable-wither-health-and-healing.patch b/patches/Purpur/patches/server/0106-Customizable-wither-health-and-healing.patch index 776930df..9ccabcde 100644 --- a/patches/Purpur/patches/server/0106-Customizable-wither-health-and-healing.patch +++ b/patches/Purpur/patches/server/0106-Customizable-wither-health-and-healing.patch @@ -44,10 +44,10 @@ index 4c0a555cdb5bc34c73040b9533beaee56cbce70a..beb4d59faf4bd7501468b2eaa0e86661 //this.bossBattle.setProgress(this.getHealth() / this.getMaxHealth()); // Paper - Moved down diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 66074748c6fd366caf58170de478a01d3adb1430..4b851fe1f266dd646e51730d41fbe269ad2c9791 100644 +index d6bf755d3f978adaec04e5feaab659445d49305e..c4e04c2986d7029e76a930c33842c0355110244b 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -933,10 +933,21 @@ public class PurpurWorldConfig { +@@ -967,10 +967,21 @@ public class PurpurWorldConfig { public boolean witherRidable = false; public boolean witherRidableInWater = false; public double witherMaxY = 256D; diff --git a/patches/Purpur/patches/server/0107-Allow-toggling-special-MobSpawners-per-world.patch b/patches/Purpur/patches/server/0107-Allow-toggling-special-MobSpawners-per-world.patch index f04139b1..9ff71088 100644 --- a/patches/Purpur/patches/server/0107-Allow-toggling-special-MobSpawners-per-world.patch +++ b/patches/Purpur/patches/server/0107-Allow-toggling-special-MobSpawners-per-world.patch @@ -106,7 +106,7 @@ index b40de7edffa9c14bc5c04217a430c6d7bf0d25b1..ef1ba94bc03d6ee752c69119f615be8d this.world = new CraftWorld((WorldServer) this, gen, env); this.ticksPerAnimalSpawns = this.getServer().getTicksPerAnimalSpawns(); // CraftBukkit diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 4b851fe1f266dd646e51730d41fbe269ad2c9791..b60ac4576578f9dc95b66ad2932b046f7f50317e 100644 +index c4e04c2986d7029e76a930c33842c0355110244b..954f2b3b0df6b15731fc4389366a8063498cd7d3 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -7,6 +7,8 @@ import net.minecraft.world.level.block.Blocks; @@ -152,7 +152,7 @@ index 4b851fe1f266dd646e51730d41fbe269ad2c9791..b60ac4576578f9dc95b66ad2932b046f private double getDouble(String path, double def) { PurpurConfig.config.addDefault("world-settings.default." + path, def); return PurpurConfig.config.getDouble("world-settings." + worldName + "." + path, PurpurConfig.config.getDouble("world-settings.default." + path)); -@@ -173,6 +184,21 @@ public class PurpurWorldConfig { +@@ -207,6 +218,21 @@ public class PurpurWorldConfig { voidDamageHeight = getDouble("gameplay-mechanics.void-damage-height", voidDamageHeight); } diff --git a/patches/Purpur/patches/server/0108-Raid-cooldown-setting.patch b/patches/Purpur/patches/server/0108-Raid-cooldown-setting.patch index b4d18f9b..3157e884 100644 --- a/patches/Purpur/patches/server/0108-Raid-cooldown-setting.patch +++ b/patches/Purpur/patches/server/0108-Raid-cooldown-setting.patch @@ -52,10 +52,10 @@ index c939ca087af4588e14669a2d53d7c116dcb59f16..11271762dcf5783c3179de1afc6a882c if (!this.raids.containsKey(raid.getId())) { this.raids.put(raid.getId(), raid); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index b60ac4576578f9dc95b66ad2932b046f7f50317e..847975c3c2309633e1505b9ee37d9d7ba9019f0f 100644 +index 954f2b3b0df6b15731fc4389366a8063498cd7d3..7fc194d11ffeb82890d2faa1841bdb94f68336c2 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -173,6 +173,7 @@ public class PurpurWorldConfig { +@@ -207,6 +207,7 @@ public class PurpurWorldConfig { public boolean milkCuresBadOmen = true; public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; @@ -63,7 +63,7 @@ index b60ac4576578f9dc95b66ad2932b046f7f50317e..847975c3c2309633e1505b9ee37d9d7b private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); boatEjectPlayersOnLand = getBoolean("gameplay-mechanics.boat.eject-players-on-land", boatEjectPlayersOnLand); -@@ -182,6 +183,7 @@ public class PurpurWorldConfig { +@@ -216,6 +217,7 @@ public class PurpurWorldConfig { milkCuresBadOmen = getBoolean("gameplay-mechanics.milk-cures-bad-omen", milkCuresBadOmen); tridentLoyaltyVoidReturnHeight = getDouble("gameplay-mechanics.trident-loyalty-void-return-height", tridentLoyaltyVoidReturnHeight); voidDamageHeight = getDouble("gameplay-mechanics.void-damage-height", voidDamageHeight); diff --git a/patches/Purpur/patches/server/0109-Despawn-rate-config-options-per-projectile-type.patch b/patches/Purpur/patches/server/0109-Despawn-rate-config-options-per-projectile-type.patch index d777ae70..168ede30 100644 --- a/patches/Purpur/patches/server/0109-Despawn-rate-config-options-per-projectile-type.patch +++ b/patches/Purpur/patches/server/0109-Despawn-rate-config-options-per-projectile-type.patch @@ -300,10 +300,10 @@ index 3914081629669aea19d50530db996728bbfa607f..62fa5be9090c8789e91bf9b9f614e74a public boolean checkIfLeftOwner() { return this.h(); } // Purpur - OBFHELPER diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 847975c3c2309633e1505b9ee37d9d7ba9019f0f..4015a27eebbfd655d3723813a0632f3183d48af7 100644 +index 7fc194d11ffeb82890d2faa1841bdb94f68336c2..8312461ed8c4b47049ec0eb0501306c14ebfee94 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -165,6 +165,35 @@ public class PurpurWorldConfig { +@@ -199,6 +199,35 @@ public class PurpurWorldConfig { idleTimeoutUpdateTabList = getBoolean("gameplay-mechanics.player.idle-timeout.update-tab-list", idleTimeoutUpdateTabList); } diff --git a/patches/Purpur/patches/server/0110-Add-option-to-disable-zombie-aggressiveness-towards-.patch b/patches/Purpur/patches/server/0110-Add-option-to-disable-zombie-aggressiveness-towards-.patch index ddffd1c8..f48cfed0 100644 --- a/patches/Purpur/patches/server/0110-Add-option-to-disable-zombie-aggressiveness-towards-.patch +++ b/patches/Purpur/patches/server/0110-Add-option-to-disable-zombie-aggressiveness-towards-.patch @@ -69,10 +69,10 @@ index 901fe8d224130c67bad00636b065bc798859a18e..88264b7b2c21a377f4b0dd857065e401 this.targetSelector.a(5, new PathfinderGoalNearestAttackableTarget<>(this, EntityTurtle.class, 10, true, false, EntityTurtle.bo)); } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 4015a27eebbfd655d3723813a0632f3183d48af7..93d934b020203dbcd20d01ee650a4a204a9ac201 100644 +index 8312461ed8c4b47049ec0eb0501306c14ebfee94..b6ad75695b80c4ec2249caa908b2fd2f4bbfbfaf 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1035,12 +1035,14 @@ public class PurpurWorldConfig { +@@ -1069,12 +1069,14 @@ public class PurpurWorldConfig { public boolean zombieJockeyOnlyBaby = true; public double zombieJockeyChance = 0.05D; public boolean zombieJockeyTryExistingChickens = true; diff --git a/patches/Purpur/patches/server/0111-Persistent-TileEntity-Lore-and-DisplayName.patch b/patches/Purpur/patches/server/0111-Persistent-TileEntity-Lore-and-DisplayName.patch index 094abf5c..c83b96a9 100644 --- a/patches/Purpur/patches/server/0111-Persistent-TileEntity-Lore-and-DisplayName.patch +++ b/patches/Purpur/patches/server/0111-Persistent-TileEntity-Lore-and-DisplayName.patch @@ -61,7 +61,7 @@ index 59d52c252b2e59923b8e513dd4d2e1ec9ce34dc7..4be1c8ee85f411a8b01be50b8cc3dc38 @Nullable diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java -index 26cda907063f104fd4a3fbd2286b37fb539f741a..fab55929f72c5784291b3bc87f7717ac24b7806f 100644 +index 1bc6380a805c1f76ffde67951d32d911e8f1f4a7..1e3adc491f0454edf4e19fb0bdf5d2cb7c8e842d 100644 --- a/src/main/java/net/minecraft/world/level/block/Block.java +++ b/src/main/java/net/minecraft/world/level/block/Block.java @@ -15,10 +15,15 @@ import net.minecraft.core.EnumDirection; @@ -80,7 +80,7 @@ index 26cda907063f104fd4a3fbd2286b37fb539f741a..fab55929f72c5784291b3bc87f7717ac import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityExperienceOrb; import net.minecraft.world.entity.EntityLiving; -@@ -248,7 +253,7 @@ public class Block extends BlockBase implements IMaterial { +@@ -247,7 +252,7 @@ public class Block extends BlockBase implements IMaterial { public static void a(IBlockData iblockdata, GeneratorAccess generatoraccess, BlockPosition blockposition, @Nullable TileEntity tileentity) { if (generatoraccess instanceof WorldServer) { a(iblockdata, (WorldServer) generatoraccess, blockposition, tileentity).forEach((itemstack) -> { @@ -89,7 +89,7 @@ index 26cda907063f104fd4a3fbd2286b37fb539f741a..fab55929f72c5784291b3bc87f7717ac }); iblockdata.dropNaturally((WorldServer) generatoraccess, blockposition, ItemStack.b); } -@@ -257,14 +262,56 @@ public class Block extends BlockBase implements IMaterial { +@@ -256,14 +261,56 @@ public class Block extends BlockBase implements IMaterial { public static void dropItems(IBlockData iblockdata, World world, BlockPosition blockposition, @Nullable TileEntity tileentity, Entity entity, ItemStack itemstack) { if (world instanceof WorldServer) { @@ -214,10 +214,10 @@ index 93d02ccb87c17404c55884f52ae40c7b7ddfb103..35c4d5414db66b977a354ac50d35a6aa + // Purpur end } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 93d934b020203dbcd20d01ee650a4a204a9ac201..abe5bc17ff209edbbcb3bb366669887b8d3c75f3 100644 +index b6ad75695b80c4ec2249caa908b2fd2f4bbfbfaf..1a5a8242a11f5b5851c9184d0a216110a591df8e 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -200,6 +200,7 @@ public class PurpurWorldConfig { +@@ -234,6 +234,7 @@ public class PurpurWorldConfig { public boolean entitiesPickUpLootBypassMobGriefing = false; public boolean entitiesCanUsePortals = true; public boolean milkCuresBadOmen = true; @@ -225,7 +225,7 @@ index 93d934b020203dbcd20d01ee650a4a204a9ac201..abe5bc17ff209edbbcb3bb366669887b public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; public int raidCooldownSeconds = 0; -@@ -210,6 +211,7 @@ public class PurpurWorldConfig { +@@ -244,6 +245,7 @@ public class PurpurWorldConfig { entitiesPickUpLootBypassMobGriefing = getBoolean("gameplay-mechanics.entities-pick-up-loot-bypass-mob-griefing", entitiesPickUpLootBypassMobGriefing); entitiesCanUsePortals = getBoolean("gameplay-mechanics.entities-can-use-portals", entitiesCanUsePortals); milkCuresBadOmen = getBoolean("gameplay-mechanics.milk-cures-bad-omen", milkCuresBadOmen); diff --git a/patches/Purpur/patches/server/0113-Flying-squids-Oh-my.patch b/patches/Purpur/patches/server/0113-Flying-squids-Oh-my.patch index a506b39d..03e29623 100644 --- a/patches/Purpur/patches/server/0113-Flying-squids-Oh-my.patch +++ b/patches/Purpur/patches/server/0113-Flying-squids-Oh-my.patch @@ -38,10 +38,10 @@ index a9fa18931d93dd7fa428b8cd6a414d4b3a3b4fbb..be48e12dd6c9a390bf383129953bcd3d float f1 = MathHelper.cos(f) * 0.2F; float f2 = -0.1F + this.b.getRandom().nextFloat() * 0.2F; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index abe5bc17ff209edbbcb3bb366669887b8d3c75f3..53a9208cd22b5057caef0dff5edc100297686422 100644 +index 1a5a8242a11f5b5851c9184d0a216110a591df8e..630e6b38d391112a42c60650af78f79afe6a190e 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -891,10 +891,12 @@ public class PurpurWorldConfig { +@@ -925,10 +925,12 @@ public class PurpurWorldConfig { public boolean squidRidable = false; public boolean squidImmuneToEAR = true; public double squidOffsetWaterCheck = 0.0D; diff --git a/patches/Purpur/patches/server/0114-Infinity-bow-settings.patch b/patches/Purpur/patches/server/0114-Infinity-bow-settings.patch index 0700a56e..28df332c 100644 --- a/patches/Purpur/patches/server/0114-Infinity-bow-settings.patch +++ b/patches/Purpur/patches/server/0114-Infinity-bow-settings.patch @@ -26,10 +26,10 @@ index 015f4d71f35a9d512814389b6e6cab74c0daf116..c7e20b25b4d09463fa54c66e62208e90 entityhuman.b(StatisticList.ITEM_USED.b(this)); } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 53a9208cd22b5057caef0dff5edc100297686422..c14fcd0c46b1f5ca6b827632cb37dd5f7e3eb6cd 100644 +index 630e6b38d391112a42c60650af78f79afe6a190e..7c89bda2330b1a3fe5a5c83ee0038936938b7ae0 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -165,6 +165,15 @@ public class PurpurWorldConfig { +@@ -199,6 +199,15 @@ public class PurpurWorldConfig { idleTimeoutUpdateTabList = getBoolean("gameplay-mechanics.player.idle-timeout.update-tab-list", idleTimeoutUpdateTabList); } diff --git a/patches/Purpur/patches/server/0115-Stonecutter-damage.patch b/patches/Purpur/patches/server/0115-Stonecutter-damage.patch index d419a9aa..d3842ac3 100644 --- a/patches/Purpur/patches/server/0115-Stonecutter-damage.patch +++ b/patches/Purpur/patches/server/0115-Stonecutter-damage.patch @@ -49,10 +49,10 @@ index 7b92a54cfb64fb77af99e6bf66eacbdb9e769dc1..9d08094165cf18d99116b5c721fff888 } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index c14fcd0c46b1f5ca6b827632cb37dd5f7e3eb6cd..8dda3c6aab016c52cf8cc2ee663087cbe9099681 100644 +index 7c89bda2330b1a3fe5a5c83ee0038936938b7ae0..b8929df319ccb260b0f8fc841c9665c6aa2548eb 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -395,6 +395,11 @@ public class PurpurWorldConfig { +@@ -429,6 +429,11 @@ public class PurpurWorldConfig { spawnerDeactivateByRedstone = getBoolean("blocks.spawner.deactivate-by-redstone", spawnerDeactivateByRedstone); } diff --git a/patches/Purpur/patches/server/0116-Configurable-daylight-cycle.patch b/patches/Purpur/patches/server/0116-Configurable-daylight-cycle.patch index 02399710..e6b48a55 100644 --- a/patches/Purpur/patches/server/0116-Configurable-daylight-cycle.patch +++ b/patches/Purpur/patches/server/0116-Configurable-daylight-cycle.patch @@ -82,10 +82,10 @@ index eec7e5d4836e55f2fdf4780cd6d214b29bcbfee8..866a6f3aca0f30850da1ef47230eb739 public void doMobSpawning(boolean flag, boolean flag1) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 8dda3c6aab016c52cf8cc2ee663087cbe9099681..21bc5f3b398b824a66e089e408e6759d33c30511 100644 +index b8929df319ccb260b0f8fc841c9665c6aa2548eb..fb694fd7be60dc9ae7305b4a03a767b6ae169778 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -116,6 +116,13 @@ public class PurpurWorldConfig { +@@ -150,6 +150,13 @@ public class PurpurWorldConfig { } } diff --git a/patches/Purpur/patches/server/0117-Allow-infinite-and-mending-enchantments-together.patch b/patches/Purpur/patches/server/0117-Allow-infinite-and-mending-enchantments-together.patch index 9fcf9311..9bbb0575 100644 --- a/patches/Purpur/patches/server/0117-Allow-infinite-and-mending-enchantments-together.patch +++ b/patches/Purpur/patches/server/0117-Allow-infinite-and-mending-enchantments-together.patch @@ -17,7 +17,7 @@ index bf9d6d0e593951aa5abc9aef6cf4803430ea18e5..29bebbccf8dd6ff8976d1bfdb4c2ddcf } } diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 2409dbc4fca9b7510f01c0abc092ab67dd402b79..e0985ec72adf643a4439e8ed5457cb9381bc5dcb 100644 +index d783f6a9288db216a5eb812ab0cbf5c000edb1b5..24220d8a4e832771aa86619b660535867bb091de 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -198,6 +198,16 @@ public class PurpurConfig { diff --git a/patches/Purpur/patches/server/0118-Infinite-fuel-furnace.patch b/patches/Purpur/patches/server/0118-Infinite-fuel-furnace.patch index 497c9a1b..17ef2aa9 100644 --- a/patches/Purpur/patches/server/0118-Infinite-fuel-furnace.patch +++ b/patches/Purpur/patches/server/0118-Infinite-fuel-furnace.patch @@ -57,10 +57,10 @@ index 9ce19b89c16eb6edd3d5d5cc87a966a37f66895c..ac42fd627009a87709448354f232d8b5 if (flag1) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 21bc5f3b398b824a66e089e408e6759d33c30511..938876a4edb3b37e6b7dcc3b2c1b55cd35df1c8e 100644 +index fb694fd7be60dc9ae7305b4a03a767b6ae169778..1ee44467f98f8ecffa7c7d61a6169ba0b727f234 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -363,6 +363,11 @@ public class PurpurWorldConfig { +@@ -397,6 +397,11 @@ public class PurpurWorldConfig { farmlandGetsMoistFromBelow = getBoolean("blocks.farmland.gets-moist-from-below", farmlandGetsMoistFromBelow); } diff --git a/patches/Purpur/patches/server/0120-Add-tablist-suffix-option-for-afk.patch b/patches/Purpur/patches/server/0120-Add-tablist-suffix-option-for-afk.patch index cbd720e6..2e79efc1 100644 --- a/patches/Purpur/patches/server/0120-Add-tablist-suffix-option-for-afk.patch +++ b/patches/Purpur/patches/server/0120-Add-tablist-suffix-option-for-afk.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add tablist suffix option for afk diff --git a/src/main/java/net/minecraft/server/level/EntityPlayer.java b/src/main/java/net/minecraft/server/level/EntityPlayer.java -index c723c1cc4a5d73c82b009aeb6f3e6ecf0a6668b9..37870dee53c651b5f3e52f76fc5d569d610bda26 100644 +index 867a6b7fe1788b20f8d0f4f1e42dd52bfc6a8c2a..3f29cc87faa85f857c5fe2b8457d7c96d05515bc 100644 --- a/src/main/java/net/minecraft/server/level/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/level/EntityPlayer.java -@@ -2123,7 +2123,11 @@ public class EntityPlayer extends EntityHuman implements ICrafting { +@@ -2122,7 +2122,11 @@ public class EntityPlayer extends EntityHuman implements ICrafting { } if (world.purpurConfig.idleTimeoutUpdateTabList) { @@ -22,7 +22,7 @@ index c723c1cc4a5d73c82b009aeb6f3e6ecf0a6668b9..37870dee53c651b5f3e52f76fc5d569d ((WorldServer) world).everyoneSleeping(); diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index e0985ec72adf643a4439e8ed5457cb9381bc5dcb..b005025e49f5b45bf5a28e5a38cffc9b70689b0f 100644 +index 24220d8a4e832771aa86619b660535867bb091de..b903a19e0fcf008cb8358be2d5050c89d2addf28 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -136,12 +136,14 @@ public class PurpurConfig { diff --git a/patches/Purpur/patches/server/0121-Ability-to-re-add-farmland-mechanics-from-Alpha.patch b/patches/Purpur/patches/server/0121-Ability-to-re-add-farmland-mechanics-from-Alpha.patch index 0b9e7d19..35814292 100644 --- a/patches/Purpur/patches/server/0121-Ability-to-re-add-farmland-mechanics-from-Alpha.patch +++ b/patches/Purpur/patches/server/0121-Ability-to-re-add-farmland-mechanics-from-Alpha.patch @@ -24,10 +24,10 @@ index 2bbaa2fb426869223a9b2f07406496c1b0daff3f..3e8893bf76b8ffda4c595c81086556ea return; } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 938876a4edb3b37e6b7dcc3b2c1b55cd35df1c8e..6d18cc40841c285664fbb0964ba0ecc30994fc5c 100644 +index 1ee44467f98f8ecffa7c7d61a6169ba0b727f234..c29f923872dea87fa3fcbb9e4e8554947b569121 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -359,8 +359,10 @@ public class PurpurWorldConfig { +@@ -393,8 +393,10 @@ public class PurpurWorldConfig { } public boolean farmlandGetsMoistFromBelow = false; diff --git a/patches/Purpur/patches/server/0122-Add-adjustable-breeding-cooldown-to-config.patch b/patches/Purpur/patches/server/0122-Add-adjustable-breeding-cooldown-to-config.patch index c8a9ccba..86a06b60 100644 --- a/patches/Purpur/patches/server/0122-Add-adjustable-breeding-cooldown-to-config.patch +++ b/patches/Purpur/patches/server/0122-Add-adjustable-breeding-cooldown-to-config.patch @@ -102,10 +102,10 @@ index ef1ba94bc03d6ee752c69119f615be8d14bf2ffc..ad9ccd07cc9f49c9d5b106b9078a4ed2 this.world = new CraftWorld((WorldServer) this, gen, env); this.ticksPerAnimalSpawns = this.getServer().getTicksPerAnimalSpawns(); // CraftBukkit diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 6d18cc40841c285664fbb0964ba0ecc30994fc5c..34b39dbeb0452fd4488d0cd7b4202782ec49e2c3 100644 +index c29f923872dea87fa3fcbb9e4e8554947b569121..def36f72153b25094693b82e962366cc19ae4d13 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -220,6 +220,7 @@ public class PurpurWorldConfig { +@@ -254,6 +254,7 @@ public class PurpurWorldConfig { public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; public int raidCooldownSeconds = 0; @@ -113,7 +113,7 @@ index 6d18cc40841c285664fbb0964ba0ecc30994fc5c..34b39dbeb0452fd4488d0cd7b4202782 private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); boatEjectPlayersOnLand = getBoolean("gameplay-mechanics.boat.eject-players-on-land", boatEjectPlayersOnLand); -@@ -231,6 +232,7 @@ public class PurpurWorldConfig { +@@ -265,6 +266,7 @@ public class PurpurWorldConfig { tridentLoyaltyVoidReturnHeight = getDouble("gameplay-mechanics.trident-loyalty-void-return-height", tridentLoyaltyVoidReturnHeight); voidDamageHeight = getDouble("gameplay-mechanics.void-damage-height", voidDamageHeight); raidCooldownSeconds = getInt("gameplay-mechanics.raid-cooldown-seconds", raidCooldownSeconds); diff --git a/patches/Purpur/patches/server/0123-Make-entity-breeding-times-configurable.patch b/patches/Purpur/patches/server/0123-Make-entity-breeding-times-configurable.patch index 9d4c1eb2..7d677e89 100644 --- a/patches/Purpur/patches/server/0123-Make-entity-breeding-times-configurable.patch +++ b/patches/Purpur/patches/server/0123-Make-entity-breeding-times-configurable.patch @@ -428,10 +428,10 @@ index 64253428ef66145d07f74f8d0e5bdeb5aa5fe02b..828d01abe8202a246ce07c1c652a17cb @Override diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 34b39dbeb0452fd4488d0cd7b4202782ec49e2c3..71e6f39d8a75061e8bb37db20f03ec616ca1d165 100644 +index def36f72153b25094693b82e962366cc19ae4d13..1ac6394340aaf61c899b758351cfb667f6d9bc09 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -446,10 +446,12 @@ public class PurpurWorldConfig { +@@ -480,10 +480,12 @@ public class PurpurWorldConfig { public boolean beeRidable = false; public boolean beeRidableInWater = false; public double beeMaxY = 256D; @@ -444,7 +444,7 @@ index 34b39dbeb0452fd4488d0cd7b4202782ec49e2c3..71e6f39d8a75061e8bb37db20f03ec61 } public boolean blazeRidable = false; -@@ -466,12 +468,14 @@ public class PurpurWorldConfig { +@@ -500,12 +502,14 @@ public class PurpurWorldConfig { public int catSpawnDelay = 1200; public int catSpawnSwampHutScanRange = 16; public int catSpawnVillageScanRange = 48; @@ -459,7 +459,7 @@ index 34b39dbeb0452fd4488d0cd7b4202782ec49e2c3..71e6f39d8a75061e8bb37db20f03ec61 } public boolean caveSpiderRidable = false; -@@ -484,10 +488,12 @@ public class PurpurWorldConfig { +@@ -518,10 +522,12 @@ public class PurpurWorldConfig { public boolean chickenRidable = false; public boolean chickenRidableInWater = false; public boolean chickenRetaliate = false; @@ -472,7 +472,7 @@ index 34b39dbeb0452fd4488d0cd7b4202782ec49e2c3..71e6f39d8a75061e8bb37db20f03ec61 } public boolean codRidable = false; -@@ -498,10 +504,12 @@ public class PurpurWorldConfig { +@@ -532,10 +538,12 @@ public class PurpurWorldConfig { public boolean cowRidable = false; public boolean cowRidableInWater = false; public int cowFeedMushrooms = 0; @@ -485,7 +485,7 @@ index 34b39dbeb0452fd4488d0cd7b4202782ec49e2c3..71e6f39d8a75061e8bb37db20f03ec61 } public boolean creeperRidable = false; -@@ -529,8 +537,10 @@ public class PurpurWorldConfig { +@@ -563,8 +571,10 @@ public class PurpurWorldConfig { } public boolean donkeyRidableInWater = false; @@ -496,7 +496,7 @@ index 34b39dbeb0452fd4488d0cd7b4202782ec49e2c3..71e6f39d8a75061e8bb37db20f03ec61 } public boolean drownedRidable = false; -@@ -588,10 +598,12 @@ public class PurpurWorldConfig { +@@ -622,10 +632,12 @@ public class PurpurWorldConfig { public boolean foxRidable = false; public boolean foxRidableInWater = false; public boolean foxTypeChangesWithTulips = false; @@ -509,7 +509,7 @@ index 34b39dbeb0452fd4488d0cd7b4202782ec49e2c3..71e6f39d8a75061e8bb37db20f03ec61 } public boolean ghastRidable = false; -@@ -636,14 +648,18 @@ public class PurpurWorldConfig { +@@ -670,14 +682,18 @@ public class PurpurWorldConfig { public boolean hoglinRidable = false; public boolean hoglinRidableInWater = false; @@ -528,7 +528,7 @@ index 34b39dbeb0452fd4488d0cd7b4202782ec49e2c3..71e6f39d8a75061e8bb37db20f03ec61 } public boolean huskRidable = false; -@@ -688,9 +704,11 @@ public class PurpurWorldConfig { +@@ -722,9 +738,11 @@ public class PurpurWorldConfig { public boolean llamaRidable = false; public boolean llamaRidableInWater = false; @@ -540,7 +540,7 @@ index 34b39dbeb0452fd4488d0cd7b4202782ec49e2c3..71e6f39d8a75061e8bb37db20f03ec61 } public boolean llamaTraderRidable = false; -@@ -709,28 +727,36 @@ public class PurpurWorldConfig { +@@ -743,28 +761,36 @@ public class PurpurWorldConfig { public boolean mooshroomRidable = false; public boolean mooshroomRidableInWater = false; @@ -577,7 +577,7 @@ index 34b39dbeb0452fd4488d0cd7b4202782ec49e2c3..71e6f39d8a75061e8bb37db20f03ec61 } public boolean parrotRidable = false; -@@ -796,10 +822,12 @@ public class PurpurWorldConfig { +@@ -830,10 +856,12 @@ public class PurpurWorldConfig { public boolean pigRidable = false; public boolean pigRidableInWater = false; public boolean pigGiveSaddleBack = false; @@ -590,7 +590,7 @@ index 34b39dbeb0452fd4488d0cd7b4202782ec49e2c3..71e6f39d8a75061e8bb37db20f03ec61 } public boolean piglinRidable = false; -@@ -827,12 +855,14 @@ public class PurpurWorldConfig { +@@ -861,12 +889,14 @@ public class PurpurWorldConfig { public boolean polarBearRidableInWater = false; public String polarBearBreedableItemString = ""; public Item polarBearBreedableItem = null; @@ -605,7 +605,7 @@ index 34b39dbeb0452fd4488d0cd7b4202782ec49e2c3..71e6f39d8a75061e8bb37db20f03ec61 } public boolean pufferfishRidable = false; -@@ -844,11 +874,13 @@ public class PurpurWorldConfig { +@@ -878,11 +908,13 @@ public class PurpurWorldConfig { public boolean rabbitRidableInWater = false; public double rabbitNaturalToast = 0.0D; public double rabbitNaturalKiller = 0.0D; @@ -619,7 +619,7 @@ index 34b39dbeb0452fd4488d0cd7b4202782ec49e2c3..71e6f39d8a75061e8bb37db20f03ec61 } public boolean ravagerRidable = false; -@@ -865,9 +897,11 @@ public class PurpurWorldConfig { +@@ -899,9 +931,11 @@ public class PurpurWorldConfig { public boolean sheepRidable = false; public boolean sheepRidableInWater = false; @@ -631,7 +631,7 @@ index 34b39dbeb0452fd4488d0cd7b4202782ec49e2c3..71e6f39d8a75061e8bb37db20f03ec61 } public boolean shulkerRidable = false; -@@ -945,9 +979,11 @@ public class PurpurWorldConfig { +@@ -979,9 +1013,11 @@ public class PurpurWorldConfig { public boolean striderRidable = false; public boolean striderRidableInWater = false; @@ -643,7 +643,7 @@ index 34b39dbeb0452fd4488d0cd7b4202782ec49e2c3..71e6f39d8a75061e8bb37db20f03ec61 } public boolean tropicalFishRidable = false; -@@ -957,9 +993,11 @@ public class PurpurWorldConfig { +@@ -991,9 +1027,11 @@ public class PurpurWorldConfig { public boolean turtleRidable = false; public boolean turtleRidableInWater = false; @@ -655,7 +655,7 @@ index 34b39dbeb0452fd4488d0cd7b4202782ec49e2c3..71e6f39d8a75061e8bb37db20f03ec61 } public boolean vexRidable = false; -@@ -981,6 +1019,7 @@ public class PurpurWorldConfig { +@@ -1015,6 +1053,7 @@ public class PurpurWorldConfig { public int villagerSpawnIronGolemRadius = 0; public int villagerSpawnIronGolemLimit = 0; public boolean villagerCanBreed = true; @@ -663,7 +663,7 @@ index 34b39dbeb0452fd4488d0cd7b4202782ec49e2c3..71e6f39d8a75061e8bb37db20f03ec61 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -992,6 +1031,7 @@ public class PurpurWorldConfig { +@@ -1026,6 +1065,7 @@ public class PurpurWorldConfig { villagerSpawnIronGolemRadius = getInt("mobs.villager.spawn-iron-golem.radius", villagerSpawnIronGolemRadius); villagerSpawnIronGolemLimit = getInt("mobs.villager.spawn-iron-golem.limit", villagerSpawnIronGolemLimit); villagerCanBreed = getBoolean("mobs.villager.can-breed", villagerCanBreed); @@ -671,7 +671,7 @@ index 34b39dbeb0452fd4488d0cd7b4202782ec49e2c3..71e6f39d8a75061e8bb37db20f03ec61 } public boolean villagerTraderRidable = false; -@@ -1052,9 +1092,11 @@ public class PurpurWorldConfig { +@@ -1086,9 +1126,11 @@ public class PurpurWorldConfig { public boolean wolfRidable = false; public boolean wolfRidableInWater = false; diff --git a/patches/Purpur/patches/server/0124-Apply-display-names-from-item-forms-of-entities-to-e.patch b/patches/Purpur/patches/server/0124-Apply-display-names-from-item-forms-of-entities-to-e.patch index fe8037f8..59b5a916 100644 --- a/patches/Purpur/patches/server/0124-Apply-display-names-from-item-forms-of-entities-to-e.patch +++ b/patches/Purpur/patches/server/0124-Apply-display-names-from-item-forms-of-entities-to-e.patch @@ -154,7 +154,7 @@ index 81e2ccfa4f6cf6a4ad9236cf0ce94df8dc3ec5b6..132972755ac74838f3386e0fac503338 NBTTagCompound nbttagcompound = this.a("display"); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 71e6f39d8a75061e8bb37db20f03ec616ca1d165..d054678a1fc7825a4b43e5841ca9715a86d0d091 100644 +index 1ac6394340aaf61c899b758351cfb667f6d9bc09..0c159098cff5a67bc2ebc9374138843172316f01 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -83,8 +83,10 @@ public class PurpurWorldConfig { @@ -168,7 +168,7 @@ index 71e6f39d8a75061e8bb37db20f03ec616ca1d165..d054678a1fc7825a4b43e5841ca9715a armorstandStepHeight = (float) getDouble("gameplay-mechanics.armorstand.step-height", armorstandStepHeight); } -@@ -217,6 +219,7 @@ public class PurpurWorldConfig { +@@ -251,6 +253,7 @@ public class PurpurWorldConfig { public boolean entitiesCanUsePortals = true; public boolean milkCuresBadOmen = true; public boolean persistentTileEntityDisplayNames = false; @@ -176,7 +176,7 @@ index 71e6f39d8a75061e8bb37db20f03ec616ca1d165..d054678a1fc7825a4b43e5841ca9715a public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; public int raidCooldownSeconds = 0; -@@ -229,6 +232,7 @@ public class PurpurWorldConfig { +@@ -263,6 +266,7 @@ public class PurpurWorldConfig { entitiesCanUsePortals = getBoolean("gameplay-mechanics.entities-can-use-portals", entitiesCanUsePortals); milkCuresBadOmen = getBoolean("gameplay-mechanics.milk-cures-bad-omen", milkCuresBadOmen); persistentTileEntityDisplayNames = getBoolean("gameplay-mechanics.persistent-tileentity-display-names-and-lore", persistentTileEntityDisplayNames); diff --git a/patches/Purpur/patches/server/0125-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch b/patches/Purpur/patches/server/0125-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch index c3f37c5c..4745abc9 100644 --- a/patches/Purpur/patches/server/0125-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch +++ b/patches/Purpur/patches/server/0125-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch @@ -29,7 +29,7 @@ index b9b2b27e534ba87a1aae3c521f393a066a18a199..4f4e9ebb9af4970fe920a540d40dbc56 ((EntityInsentient) newEntityLiving).setPersistent(); } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index d054678a1fc7825a4b43e5841ca9715a86d0d091..9298bfbf64aae5bcdd758e3cddba14f9e6e2ba4e 100644 +index 0c159098cff5a67bc2ebc9374138843172316f01..4cd8acf6ef170193f38c3926e467aa2e9c7acf63 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -84,9 +84,11 @@ public class PurpurWorldConfig { diff --git a/patches/Purpur/patches/server/0126-Add-twisting-and-weeping-vines-growth-rates.patch b/patches/Purpur/patches/server/0126-Add-twisting-and-weeping-vines-growth-rates.patch index 74162943..34a7c549 100644 --- a/patches/Purpur/patches/server/0126-Add-twisting-and-weeping-vines-growth-rates.patch +++ b/patches/Purpur/patches/server/0126-Add-twisting-and-weeping-vines-growth-rates.patch @@ -91,10 +91,10 @@ index 2552631084926c2fad40b3f21ae479c0e1cfdb77..198bd8857571872ed3f7437529c330dc + // Purpur end } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 9298bfbf64aae5bcdd758e3cddba14f9e6e2ba4e..6894d0aa124b45bf6eb79d417026b85fc342f25a 100644 +index 4cd8acf6ef170193f38c3926e467aa2e9c7acf63..495c8fc0e632dfc4f73d2929b1da9adea18345a5 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -431,6 +431,16 @@ public class PurpurWorldConfig { +@@ -465,6 +465,16 @@ public class PurpurWorldConfig { turtleEggsBreakFromMinecarts = getBoolean("blocks.turtle_egg.break-from-minecarts", turtleEggsBreakFromMinecarts); } diff --git a/patches/Purpur/patches/server/0127-Kelp-weeping-and-twisting-vines-configurable-max-gro.patch b/patches/Purpur/patches/server/0127-Kelp-weeping-and-twisting-vines-configurable-max-gro.patch index 97b25591..cf867643 100644 --- a/patches/Purpur/patches/server/0127-Kelp-weeping-and-twisting-vines-configurable-max-gro.patch +++ b/patches/Purpur/patches/server/0127-Kelp-weeping-and-twisting-vines-configurable-max-gro.patch @@ -89,10 +89,10 @@ index 198bd8857571872ed3f7437529c330dceeb825db..a71f97e87ee7210f3246e542dd768403 // Purpur end } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 6894d0aa124b45bf6eb79d417026b85fc342f25a..e11b7abcebefc384b7d15fbae17c6d8e723e2cc5 100644 +index 495c8fc0e632dfc4f73d2929b1da9adea18345a5..15ea799b677b8be82f38ce4ab152878fd577d174 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -378,6 +378,11 @@ public class PurpurWorldConfig { +@@ -412,6 +412,11 @@ public class PurpurWorldConfig { furnaceInfiniteFuel = getBoolean("blocks.furnace.infinite-fuel", furnaceInfiniteFuel); } @@ -104,7 +104,7 @@ index 6894d0aa124b45bf6eb79d417026b85fc342f25a..e11b7abcebefc384b7d15fbae17c6d8e public boolean lavaInfinite = false; public int lavaInfiniteRequiredSources = 2; public int lavaSpeedNether = 10; -@@ -432,13 +437,17 @@ public class PurpurWorldConfig { +@@ -466,13 +471,17 @@ public class PurpurWorldConfig { } public double twistingVinesGrowthModifier = 0.10D; diff --git a/patches/Purpur/patches/server/0128-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch b/patches/Purpur/patches/server/0128-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch index 1bab509a..4bf84280 100644 --- a/patches/Purpur/patches/server/0128-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch +++ b/patches/Purpur/patches/server/0128-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch @@ -21,10 +21,10 @@ index 03fa2cfc1d5bc27e03e9979b3f33d88362c19066..18b3f8d1fadd1424327261d92b49977a static class PathfinderGoalEndermanPickupBlock extends PathfinderGoal { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index e11b7abcebefc384b7d15fbae17c6d8e723e2cc5..fe7d850d110f8ea5746f186694014d8d9fd11a97 100644 +index 15ea799b677b8be82f38ce4ab152878fd577d174..fb3d98999a926763f7319b24c35cdf0116ff0682 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -600,10 +600,12 @@ public class PurpurWorldConfig { +@@ -634,10 +634,12 @@ public class PurpurWorldConfig { public boolean endermanRidable = false; public boolean endermanRidableInWater = false; public boolean endermanAllowGriefing = true; diff --git a/patches/Purpur/patches/server/0130-Add-configurable-snowball-damage.patch b/patches/Purpur/patches/server/0130-Add-configurable-snowball-damage.patch index 6c2c7965..3dd5d8cb 100644 --- a/patches/Purpur/patches/server/0130-Add-configurable-snowball-damage.patch +++ b/patches/Purpur/patches/server/0130-Add-configurable-snowball-damage.patch @@ -18,10 +18,10 @@ index 0d3b9c81e47eef645335e49a1d6d88db7338aa4b..6bfd3f57e6c04ed426870d6dbf068bf3 entity.damageEntity(DamageSource.projectile(this, this.getShooter()), (float) i); } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index fe7d850d110f8ea5746f186694014d8d9fd11a97..fd0abfef98944c8ce4cf91c1ddb401d62f82c4e5 100644 +index fb3d98999a926763f7319b24c35cdf0116ff0682..c9ba9beabf41905f892e8f657d40de9bc78ca337 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -214,6 +214,11 @@ public class PurpurWorldConfig { +@@ -248,6 +248,11 @@ public class PurpurWorldConfig { witherSkullDespawnRate = getInt("gameplay-mechanics.projectile-despawn-rates.wither_skull", witherSkullDespawnRate); } diff --git a/patches/Purpur/patches/server/0131-Zombie-break-door-minimum-difficulty-option.patch b/patches/Purpur/patches/server/0131-Zombie-break-door-minimum-difficulty-option.patch index a1f3a66f..a3f47405 100644 --- a/patches/Purpur/patches/server/0131-Zombie-break-door-minimum-difficulty-option.patch +++ b/patches/Purpur/patches/server/0131-Zombie-break-door-minimum-difficulty-option.patch @@ -50,7 +50,7 @@ index 10ee8a0a717354f50b29e7ebeab0ee2aa7bf42f7..d785066e2a52699c18315f7244d80db6 + // Purpur end } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index fd0abfef98944c8ce4cf91c1ddb401d62f82c4e5..55b64126f3fc586fefae9a16e7f1b5d28cffc14d 100644 +index c9ba9beabf41905f892e8f657d40de9bc78ca337..af4725f4d224bbb8c1fb1fac78c217343e9717a8 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -1,6 +1,7 @@ @@ -61,7 +61,7 @@ index fd0abfef98944c8ce4cf91c1ddb401d62f82c4e5..55b64126f3fc586fefae9a16e7f1b5d2 import net.minecraft.world.level.Explosion; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; -@@ -1144,6 +1145,7 @@ public class PurpurWorldConfig { +@@ -1178,6 +1179,7 @@ public class PurpurWorldConfig { public double zombieJockeyChance = 0.05D; public boolean zombieJockeyTryExistingChickens = true; public boolean zombieAggressiveTowardsVillagerWhenLagging = true; @@ -69,7 +69,7 @@ index fd0abfef98944c8ce4cf91c1ddb401d62f82c4e5..55b64126f3fc586fefae9a16e7f1b5d2 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -1151,6 +1153,11 @@ public class PurpurWorldConfig { +@@ -1185,6 +1187,11 @@ 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/Purpur/patches/server/0132-Add-demo-command.patch b/patches/Purpur/patches/server/0132-Add-demo-command.patch index 34780f55..9184f8f9 100644 --- a/patches/Purpur/patches/server/0132-Add-demo-command.patch +++ b/patches/Purpur/patches/server/0132-Add-demo-command.patch @@ -30,7 +30,7 @@ index edb6c0ab2826051b04e025a713d794dbc5de4792..0161657748d398b6827ef8bc2b00b8a6 public static final PacketPlayOutGameStateChange.a h = new PacketPlayOutGameStateChange.a(7); public static final PacketPlayOutGameStateChange.a i = new PacketPlayOutGameStateChange.a(8); diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index b005025e49f5b45bf5a28e5a38cffc9b70689b0f..f99566da1ea88cfddf14fd73cba98643707bb893 100644 +index b903a19e0fcf008cb8358be2d5050c89d2addf28..69d6d3fb4333531ea63acf5272ffa52ed296346f 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -137,6 +137,7 @@ public class PurpurConfig { diff --git a/patches/Purpur/patches/server/0135-Changeable-Mob-Left-Handed-Chance.patch b/patches/Purpur/patches/server/0135-Changeable-Mob-Left-Handed-Chance.patch index 3468f240..8955091c 100644 --- a/patches/Purpur/patches/server/0135-Changeable-Mob-Left-Handed-Chance.patch +++ b/patches/Purpur/patches/server/0135-Changeable-Mob-Left-Handed-Chance.patch @@ -18,10 +18,10 @@ index df33b46ff1267f0f2692a8956438f3bd1e2a3086..a6ea96683b0f4d35015dff6168f3bf45 } else { this.setLeftHanded(false); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 55b64126f3fc586fefae9a16e7f1b5d28cffc14d..2265952ae272dc27796f87bd05e171a6c1fdab1b 100644 +index af4725f4d224bbb8c1fb1fac78c217343e9717a8..0baa0b3c33d91f79030d639091628224bb27bdc6 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -129,8 +129,10 @@ public class PurpurWorldConfig { +@@ -163,8 +163,10 @@ public class PurpurWorldConfig { } public int entityLifeSpan = 0; diff --git a/patches/Purpur/patches/server/0136-Add-boat-fall-damage-config.patch b/patches/Purpur/patches/server/0136-Add-boat-fall-damage-config.patch index dcba2b1c..a8f9012a 100644 --- a/patches/Purpur/patches/server/0136-Add-boat-fall-damage-config.patch +++ b/patches/Purpur/patches/server/0136-Add-boat-fall-damage-config.patch @@ -5,28 +5,20 @@ Subject: [PATCH] Add boat fall damage config diff --git a/src/main/java/net/minecraft/server/level/EntityPlayer.java b/src/main/java/net/minecraft/server/level/EntityPlayer.java -index 37870dee53c651b5f3e52f76fc5d569d610bda26..e1072ae940ac56c3a2d9af756acc9278baa07d84 100644 +index 3f29cc87faa85f857c5fe2b8457d7c96d05515bc..a1d5662911ee3a038da427bf2e0b69a11f187149 100644 --- a/src/main/java/net/minecraft/server/level/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/level/EntityPlayer.java -@@ -106,6 +106,7 @@ import net.minecraft.world.entity.monster.EntityMonster; - import net.minecraft.world.entity.player.EntityHuman; - import net.minecraft.world.entity.player.EnumChatVisibility; - import net.minecraft.world.entity.projectile.EntityArrow; -+import net.minecraft.world.entity.vehicle.EntityBoat; - import net.minecraft.world.entity.vehicle.EntityMinecartAbstract; - import net.minecraft.world.inventory.Container; - import net.minecraft.world.inventory.ContainerHorse; -@@ -1142,7 +1143,16 @@ public class EntityPlayer extends EntityHuman implements ICrafting { +@@ -1141,7 +1141,16 @@ public class EntityPlayer extends EntityHuman implements ICrafting { if (this.isInvulnerable(damagesource)) { return false; } else { -- if (damagesource == DamageSource.FALL && getRootVehicle() instanceof EntityMinecartAbstract && world.purpurConfig.controllableMinecarts && !world.purpurConfig.controllableMinecartsFallDamage) return false; // Purpur +- if (damagesource == DamageSource.FALL && getRootVehicle() instanceof net.minecraft.world.entity.vehicle.EntityMinecartAbstract && world.purpurConfig.minecartControllable && !world.purpurConfig.minecartControllableFallDamage) return false; // Purpur + // Purpur start + if (damagesource == DamageSource.FALL) { -+ if (getRootVehicle() instanceof EntityMinecartAbstract && world.purpurConfig.controllableMinecarts && !world.purpurConfig.controllableMinecartsFallDamage) { ++ if (getRootVehicle() instanceof net.minecraft.world.entity.vehicle.EntityMinecartAbstract && world.purpurConfig.minecartControllable && !world.purpurConfig.minecartControllableFallDamage) { + return false; + } -+ if (getRootVehicle() instanceof EntityBoat && !world.purpurConfig.boatsDoFallDamage) { ++ if (getRootVehicle() instanceof net.minecraft.world.entity.vehicle.EntityBoat && !world.purpurConfig.boatsDoFallDamage) { + return false; + } + } @@ -35,10 +27,10 @@ index 37870dee53c651b5f3e52f76fc5d569d610bda26..e1072ae940ac56c3a2d9af756acc9278 if (!flag && isSpawnInvulnerable() && damagesource != DamageSource.OUT_OF_WORLD) { // Purpur diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 2265952ae272dc27796f87bd05e171a6c1fdab1b..df42e4a1d1c542eb20759ede3e20ce186352e5c2 100644 +index 0baa0b3c33d91f79030d639091628224bb27bdc6..d0aa12148e5abe3b2df3b4341b11b55feb73535e 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -224,6 +224,7 @@ public class PurpurWorldConfig { +@@ -258,6 +258,7 @@ public class PurpurWorldConfig { public boolean useBetterMending = false; public boolean boatEjectPlayersOnLand = false; @@ -46,7 +38,7 @@ index 2265952ae272dc27796f87bd05e171a6c1fdab1b..df42e4a1d1c542eb20759ede3e20ce18 public boolean disableDropsOnCrammingDeath = false; public boolean entitiesPickUpLootBypassMobGriefing = false; public boolean entitiesCanUsePortals = true; -@@ -237,6 +238,7 @@ public class PurpurWorldConfig { +@@ -271,6 +272,7 @@ public class PurpurWorldConfig { private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); boatEjectPlayersOnLand = getBoolean("gameplay-mechanics.boat.eject-players-on-land", boatEjectPlayersOnLand); diff --git a/patches/Purpur/patches/server/0137-Config-migration-disable-saving-projectiles-to-disk-.patch b/patches/Purpur/patches/server/0137-Config-migration-disable-saving-projectiles-to-disk-.patch index 7fa50afd..fa155d87 100644 --- a/patches/Purpur/patches/server/0137-Config-migration-disable-saving-projectiles-to-disk-.patch +++ b/patches/Purpur/patches/server/0137-Config-migration-disable-saving-projectiles-to-disk-.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Config migration: disable saving projectiles to disk -> diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index f99566da1ea88cfddf14fd73cba98643707bb893..dc6122ef302055eb2c08fda05be977b045b6debe 100644 +index 69d6d3fb4333531ea63acf5272ffa52ed296346f..457a20aee6f7aa25be052bec202bbcb8153612c0 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -1,6 +1,7 @@ @@ -36,7 +36,7 @@ index f99566da1ea88cfddf14fd73cba98643707bb893..dc6122ef302055eb2c08fda05be977b0 public static String afkBroadcastBack = "§e§o%s is no longer AFK"; public static String afkTabListPrefix = "[AFK] "; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index df42e4a1d1c542eb20759ede3e20ce186352e5c2..dbd3836c4f35a5ae560234b268d0f69b0a13701d 100644 +index d0aa12148e5abe3b2df3b4341b11b55feb73535e..81cd441842e63c0465bd64d9f9009852fed1296a 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -1,5 +1,6 @@ diff --git a/patches/Purpur/patches/server/0138-Snow-Golem-rate-of-fire-config.patch b/patches/Purpur/patches/server/0138-Snow-Golem-rate-of-fire-config.patch index 0d44a262..ce331764 100644 --- a/patches/Purpur/patches/server/0138-Snow-Golem-rate-of-fire-config.patch +++ b/patches/Purpur/patches/server/0138-Snow-Golem-rate-of-fire-config.patch @@ -23,10 +23,10 @@ index cfcf67e99ae345f77a55771e6a25bdcdb4a9740a..28b5c22ecfe573ac9d91b74e54ebd3e3 this.goalSelector.a(3, new PathfinderGoalLookAtPlayer(this, EntityHuman.class, 6.0F)); this.goalSelector.a(4, new PathfinderGoalRandomLookaround(this)); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index dbd3836c4f35a5ae560234b268d0f69b0a13701d..eb6e752ca3be8fc933eec58f639952990393bb1f 100644 +index 81cd441842e63c0465bd64d9f9009852fed1296a..f534924050ac90716979e9f2b66c8a0752454fad 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -993,12 +993,20 @@ public class PurpurWorldConfig { +@@ -1027,12 +1027,20 @@ public class PurpurWorldConfig { public boolean snowGolemLeaveTrailWhenRidden = false; public boolean snowGolemDropsPumpkin = true; public boolean snowGolemPutPumpkinBack = false; diff --git a/patches/Purpur/patches/server/0140-EMC-Configurable-disable-give-dropping.patch b/patches/Purpur/patches/server/0140-EMC-Configurable-disable-give-dropping.patch index daa83e51..7d06e897 100644 --- a/patches/Purpur/patches/server/0140-EMC-Configurable-disable-give-dropping.patch +++ b/patches/Purpur/patches/server/0140-EMC-Configurable-disable-give-dropping.patch @@ -20,7 +20,7 @@ index a10207f7cb9455e29db7e6906cb2138ad5609a1f..9557fd12f87e7e825501759598eaee75 itemstack.setCount(1); entityitem = entityplayer.drop(itemstack, false, false, true); // Paper - Fix duplicating /give items on item drop cancel diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index dc6122ef302055eb2c08fda05be977b045b6debe..f1088638716b4a02eb3b8541a040229da8a6ea24 100644 +index 457a20aee6f7aa25be052bec202bbcb8153612c0..521604b37ca61b849420f206fde88210b582cd3c 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -193,6 +193,11 @@ public class PurpurConfig { diff --git a/patches/Purpur/patches/server/0141-Config-migration-climbing-should-not-bypass-cramming.patch b/patches/Purpur/patches/server/0141-Config-migration-climbing-should-not-bypass-cramming.patch index e0761eae..fd8cdf7e 100644 --- a/patches/Purpur/patches/server/0141-Config-migration-climbing-should-not-bypass-cramming.patch +++ b/patches/Purpur/patches/server/0141-Config-migration-climbing-should-not-bypass-cramming.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Config migration: climbing should not bypass cramming diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index f1088638716b4a02eb3b8541a040229da8a6ea24..70ac948a91c1d4f9cffeac982c505cd1c3908cd3 100644 +index 521604b37ca61b849420f206fde88210b582cd3c..116f17bcc02d15951fa248c6ce4e2cf3617034d4 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -145,6 +145,17 @@ public class PurpurConfig { @@ -28,7 +28,7 @@ index f1088638716b4a02eb3b8541a040229da8a6ea24..70ac948a91c1d4f9cffeac982c505cd1 public static String afkBroadcastBack = "§e§o%s is no longer AFK"; public static String afkTabListPrefix = "[AFK] "; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index eb6e752ca3be8fc933eec58f639952990393bb1f..d6f98a1b4bcc44bad7c8e39f31ea61cd7428f071 100644 +index f534924050ac90716979e9f2b66c8a0752454fad..efd2bce6fa4572093acb7ef67d85aac1a989bcf3 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -96,6 +96,17 @@ public class PurpurWorldConfig { diff --git a/patches/Purpur/patches/server/0142-Lobotomize-stuck-villagers.patch b/patches/Purpur/patches/server/0142-Lobotomize-stuck-villagers.patch index 3c22a6d1..d349b92e 100644 --- a/patches/Purpur/patches/server/0142-Lobotomize-stuck-villagers.patch +++ b/patches/Purpur/patches/server/0142-Lobotomize-stuck-villagers.patch @@ -99,10 +99,10 @@ index a0f0d5e0909da5cfe87078d4722b030635cfeadd..bc14e242f97f9f6d8e581d12319c95ae long i = this.bC + 12000L; long j = this.world.getTime(); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index d6f98a1b4bcc44bad7c8e39f31ea61cd7428f071..50cacb7ab275229c0d2fdeeca4719a565977b630 100644 +index efd2bce6fa4572093acb7ef67d85aac1a989bcf3..300fb6bb60fa961f2321183553c293730d4c4cd0 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1088,6 +1088,8 @@ public class PurpurWorldConfig { +@@ -1122,6 +1122,8 @@ public class PurpurWorldConfig { public int villagerSpawnIronGolemLimit = 0; public boolean villagerCanBreed = true; public int villagerBreedingTicks = 6000; @@ -111,7 +111,7 @@ index d6f98a1b4bcc44bad7c8e39f31ea61cd7428f071..50cacb7ab275229c0d2fdeeca4719a56 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1100,6 +1102,13 @@ public class PurpurWorldConfig { +@@ -1134,6 +1136,13 @@ public class PurpurWorldConfig { villagerSpawnIronGolemLimit = getInt("mobs.villager.spawn-iron-golem.limit", villagerSpawnIronGolemLimit); villagerCanBreed = getBoolean("mobs.villager.can-breed", villagerCanBreed); villagerBreedingTicks = getInt("mobs.villager.breeding-delay-ticks", villagerBreedingTicks); diff --git a/patches/Purpur/patches/server/0143-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch b/patches/Purpur/patches/server/0143-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch index 35dc4a1e..ecba7bf1 100644 --- a/patches/Purpur/patches/server/0143-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch +++ b/patches/Purpur/patches/server/0143-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch @@ -224,10 +224,10 @@ index 69de7588eebba7557cdaec129f19ec1fc2c675c5..dd9b678481620856fb7eaaa04c3b812c public static final VillagerProfession FISHERMAN = a("fisherman", VillagePlaceType.i, SoundEffects.ENTITY_VILLAGER_WORK_FISHERMAN); public static final VillagerProfession FLETCHER = a("fletcher", VillagePlaceType.j, SoundEffects.ENTITY_VILLAGER_WORK_FLETCHER); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 50cacb7ab275229c0d2fdeeca4719a565977b630..40ce04e9a3f55f42e44230c63b53efbfe08fcd74 100644 +index 300fb6bb60fa961f2321183553c293730d4c4cd0..bf82602521eacbe2ae18b548e2f2013f9179c23b 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1090,6 +1090,8 @@ public class PurpurWorldConfig { +@@ -1124,6 +1124,8 @@ public class PurpurWorldConfig { public int villagerBreedingTicks = 6000; public boolean villagerLobotomizeEnabled = false; public int villagerLobotomizeCheck = 60; @@ -236,7 +236,7 @@ index 50cacb7ab275229c0d2fdeeca4719a565977b630..40ce04e9a3f55f42e44230c63b53efbf private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1109,6 +1111,8 @@ public class PurpurWorldConfig { +@@ -1143,6 +1145,8 @@ public class PurpurWorldConfig { } villagerLobotomizeEnabled = getBoolean("mobs.villager.lobotomize.enabled", villagerLobotomizeEnabled); villagerLobotomizeCheck = getInt("mobs.villager.lobotomize.check-interval", villagerLobotomizeCheck); diff --git a/patches/Purpur/patches/server/0144-Toggle-for-Zombified-Piglin-death-always-counting-as.patch b/patches/Purpur/patches/server/0144-Toggle-for-Zombified-Piglin-death-always-counting-as.patch index 335b6917..bd0b9c9c 100644 --- a/patches/Purpur/patches/server/0144-Toggle-for-Zombified-Piglin-death-always-counting-as.patch +++ b/patches/Purpur/patches/server/0144-Toggle-for-Zombified-Piglin-death-always-counting-as.patch @@ -35,10 +35,10 @@ index 9f50054211db48e7fe764434e8d71aab0995e57a..82279ab2f3c1edec14c24c3a7ad24d09 } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 40ce04e9a3f55f42e44230c63b53efbfe08fcd74..8854a188a932559fca000def3ded5bd9077ab62b 100644 +index bf82602521eacbe2ae18b548e2f2013f9179c23b..4ff49f042f1573162b1db59d1e3aeba72b0ef448 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1222,12 +1222,14 @@ public class PurpurWorldConfig { +@@ -1256,12 +1256,14 @@ public class PurpurWorldConfig { public boolean zombifiedPiglinJockeyOnlyBaby = true; public double zombifiedPiglinJockeyChance = 0.05D; public boolean zombifiedPiglinJockeyTryExistingChickens = true; diff --git a/patches/Purpur/patches/server/0145-Spread-out-and-optimise-player-list-ticks.patch b/patches/Purpur/patches/server/0145-Spread-out-and-optimise-player-list-ticks.patch index 31a9dd02..528f599d 100644 --- a/patches/Purpur/patches/server/0145-Spread-out-and-optimise-player-list-ticks.patch +++ b/patches/Purpur/patches/server/0145-Spread-out-and-optimise-player-list-ticks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Spread out and optimise player list ticks diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index c742647c0c5e3e4925e4ee6d195a54a85435e65e..8307b44718198f6f2325454f72bd296c33cba58a 100644 +index 92d696ee1812e8cfb8a853b5254db3ef5e4d2266..1f07751bf67b9fd1a0f19ebc8d05fd16a6c24322 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -151,7 +151,7 @@ public abstract class PlayerList { diff --git a/patches/Purpur/patches/server/0146-Configurable-chance-for-wolves-to-spawn-rabid.patch b/patches/Purpur/patches/server/0146-Configurable-chance-for-wolves-to-spawn-rabid.patch index 2496cbcb..1c440e4d 100644 --- a/patches/Purpur/patches/server/0146-Configurable-chance-for-wolves-to-spawn-rabid.patch +++ b/patches/Purpur/patches/server/0146-Configurable-chance-for-wolves-to-spawn-rabid.patch @@ -242,10 +242,10 @@ index dd3c7ad7701ad18ccaf86d73fde7051090ed3d57..e8c6aca70db693250224d1c162e3c268 return super.b(entityhuman, enumhand); } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 8854a188a932559fca000def3ded5bd9077ab62b..02f83d156e84fe98628d13748ce19d521d3593b6 100644 +index 4ff49f042f1573162b1db59d1e3aeba72b0ef448..5b549ab625890cd49e6820e31a15e80680b78237 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1173,10 +1173,14 @@ public class PurpurWorldConfig { +@@ -1207,10 +1207,14 @@ public class PurpurWorldConfig { public boolean wolfRidable = false; public boolean wolfRidableInWater = false; diff --git a/patches/Purpur/patches/server/0147-Configurable-default-wolf-collar-color.patch b/patches/Purpur/patches/server/0147-Configurable-default-wolf-collar-color.patch index c1291087..298a43f9 100644 --- a/patches/Purpur/patches/server/0147-Configurable-default-wolf-collar-color.patch +++ b/patches/Purpur/patches/server/0147-Configurable-default-wolf-collar-color.patch @@ -24,7 +24,7 @@ index e8c6aca70db693250224d1c162e3c2684687ea41..e33aadead6e6c5e0a7b39ef95e7aeb0f @Override diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 02f83d156e84fe98628d13748ce19d521d3593b6..6f1ea7f760bd3a4ab6ba0787776b4017f9e6d52e 100644 +index 5b549ab625890cd49e6820e31a15e80680b78237..7ddb0119baa33a6641599fce7c7112d05dd7fb5d 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -3,6 +3,7 @@ package net.pl3x.purpur; @@ -35,7 +35,7 @@ index 02f83d156e84fe98628d13748ce19d521d3593b6..6f1ea7f760bd3a4ab6ba0787776b4017 import net.minecraft.world.level.Explosion; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; -@@ -1173,12 +1174,18 @@ public class PurpurWorldConfig { +@@ -1207,12 +1208,18 @@ public class PurpurWorldConfig { public boolean wolfRidable = false; public boolean wolfRidableInWater = false; diff --git a/patches/Purpur/patches/server/0148-Configurable-entity-base-attributes.patch b/patches/Purpur/patches/server/0148-Configurable-entity-base-attributes.patch index f0d3266c..a6f1dd2f 100644 --- a/patches/Purpur/patches/server/0148-Configurable-entity-base-attributes.patch +++ b/patches/Purpur/patches/server/0148-Configurable-entity-base-attributes.patch @@ -982,7 +982,7 @@ index dc1ca7b334e89b4d0be775b6f6e6f4222ea02dcc..80c3cd540a46e249e85586e8d7a2f0f6 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/EntityShulker.java b/src/main/java/net/minecraft/world/entity/monster/EntityShulker.java -index 0294ab119407dc45a40c8444fb5a91e154017234..a735ac7644f8fe6924349fbd9e8984f678d0b9c2 100644 +index 4b5c1691664f16594f316e55576086f2ae54e59e..24367e08c7a94ffdb80d098cf822c278e4e3fe70 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EntityShulker.java +++ b/src/main/java/net/minecraft/world/entity/monster/EntityShulker.java @@ -82,6 +82,11 @@ public class EntityShulker extends EntityGolem implements IMonster { @@ -1407,10 +1407,10 @@ index 90cbef7fe8803295f82bddd6709fdf303aedcaba..b84916c0c58fd208ef5547299f8db846 @Nullable diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 6f1ea7f760bd3a4ab6ba0787776b4017f9e6d52e..c423bc6a535a61dc7deed0b2c5f94eb1633aa1a3 100644 +index 7ddb0119baa33a6641599fce7c7112d05dd7fb5d..464d6e35970b42319934d74a1f41076cf4f8b784 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -496,30 +496,58 @@ public class PurpurWorldConfig { +@@ -530,30 +530,58 @@ public class PurpurWorldConfig { public boolean batRidable = false; public boolean batRidableInWater = false; public double batMaxY = 256D; @@ -1469,7 +1469,7 @@ index 6f1ea7f760bd3a4ab6ba0787776b4017f9e6d52e..c423bc6a535a61dc7deed0b2c5f94eb1 } public boolean catRidable = false; -@@ -528,6 +556,7 @@ public class PurpurWorldConfig { +@@ -562,6 +590,7 @@ public class PurpurWorldConfig { public int catSpawnSwampHutScanRange = 16; public int catSpawnVillageScanRange = 48; public int catBreedingTicks = 6000; @@ -1477,7 +1477,7 @@ index 6f1ea7f760bd3a4ab6ba0787776b4017f9e6d52e..c423bc6a535a61dc7deed0b2c5f94eb1 private void catSettings() { catRidable = getBoolean("mobs.cat.ridable", catRidable); catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater); -@@ -535,51 +564,92 @@ public class PurpurWorldConfig { +@@ -569,51 +598,92 @@ 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); @@ -1570,7 +1570,7 @@ index 6f1ea7f760bd3a4ab6ba0787776b4017f9e6d52e..c423bc6a535a61dc7deed0b2c5f94eb1 } public boolean dolphinRidable = false; -@@ -587,19 +657,45 @@ public class PurpurWorldConfig { +@@ -621,19 +691,45 @@ public class PurpurWorldConfig { public float dolphinSpitSpeed = 1.0F; public float dolphinSpitDamage = 2.0F; public boolean dolphinDisableTreasureSearching = false; @@ -1616,7 +1616,7 @@ index 6f1ea7f760bd3a4ab6ba0787776b4017f9e6d52e..c423bc6a535a61dc7deed0b2c5f94eb1 } public boolean drownedRidable = false; -@@ -607,73 +703,135 @@ public class PurpurWorldConfig { +@@ -641,73 +737,135 @@ public class PurpurWorldConfig { public boolean drownedJockeyOnlyBaby = true; public double drownedJockeyChance = 0.05D; public boolean drownedJockeyTryExistingChickens = true; @@ -1752,7 +1752,7 @@ index 6f1ea7f760bd3a4ab6ba0787776b4017f9e6d52e..c423bc6a535a61dc7deed0b2c5f94eb1 } public boolean giantRidable = false; -@@ -696,31 +854,68 @@ public class PurpurWorldConfig { +@@ -730,31 +888,68 @@ public class PurpurWorldConfig { giantHaveHostileAI = getBoolean("mobs.giant.have-hostile-ai", giantHaveHostileAI); if (PurpurConfig.version < 8) { double oldValue = getDouble("mobs.giant.max-health", giantMaxHealth); @@ -1823,7 +1823,7 @@ index 6f1ea7f760bd3a4ab6ba0787776b4017f9e6d52e..c423bc6a535a61dc7deed0b2c5f94eb1 } public boolean huskRidable = false; -@@ -728,12 +923,21 @@ public class PurpurWorldConfig { +@@ -762,12 +957,21 @@ public class PurpurWorldConfig { public boolean huskJockeyOnlyBaby = true; public double huskJockeyChance = 0.05D; public boolean huskJockeyTryExistingChickens = true; @@ -1845,7 +1845,7 @@ index 6f1ea7f760bd3a4ab6ba0787776b4017f9e6d52e..c423bc6a535a61dc7deed0b2c5f94eb1 } public boolean illusionerRidable = false; -@@ -748,85 +952,188 @@ public class PurpurWorldConfig { +@@ -782,85 +986,188 @@ public class PurpurWorldConfig { illusionerFollowRange = getDouble("mobs.illusioner.follow-range", illusionerFollowRange); if (PurpurConfig.version < 8) { double oldValue = getDouble("mobs.illusioner.max-health", illusionerMaxHealth); @@ -2036,7 +2036,7 @@ index 6f1ea7f760bd3a4ab6ba0787776b4017f9e6d52e..c423bc6a535a61dc7deed0b2c5f94eb1 } public boolean phantomRidable = false; -@@ -853,6 +1160,7 @@ public class PurpurWorldConfig { +@@ -887,6 +1194,7 @@ public class PurpurWorldConfig { public boolean phantomIgnorePlayersWithTorch = false; public boolean phantomBurnInDaylight = true; public boolean phantomAllowGriefing = false; @@ -2044,7 +2044,7 @@ index 6f1ea7f760bd3a4ab6ba0787776b4017f9e6d52e..c423bc6a535a61dc7deed0b2c5f94eb1 private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -878,38 +1186,72 @@ public class PurpurWorldConfig { +@@ -912,38 +1220,72 @@ public class PurpurWorldConfig { phantomBurnInDaylight = getBoolean("mobs.phantom.burn-in-daylight", phantomBurnInDaylight); phantomIgnorePlayersWithTorch = getBoolean("mobs.phantom.ignore-players-with-torch", phantomIgnorePlayersWithTorch); phantomAllowGriefing = getBoolean("mobs.phantom.allow-griefing", phantomAllowGriefing); @@ -2117,7 +2117,7 @@ index 6f1ea7f760bd3a4ab6ba0787776b4017f9e6d52e..c423bc6a535a61dc7deed0b2c5f94eb1 } public boolean polarBearRidable = false; -@@ -917,6 +1259,7 @@ public class PurpurWorldConfig { +@@ -951,6 +1293,7 @@ public class PurpurWorldConfig { public String polarBearBreedableItemString = ""; public Item polarBearBreedableItem = null; public int polarBearBreedingTicks = 6000; @@ -2125,7 +2125,7 @@ index 6f1ea7f760bd3a4ab6ba0787776b4017f9e6d52e..c423bc6a535a61dc7deed0b2c5f94eb1 private void polarBearSettings() { polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable); polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater); -@@ -924,11 +1267,24 @@ public class PurpurWorldConfig { +@@ -958,11 +1301,24 @@ public class PurpurWorldConfig { Item item = IRegistry.ITEM.get(new MinecraftKey(polarBearBreedableItemString)); if (item != Items.AIR) polarBearBreedableItem = item; polarBearBreedingTicks = getInt("mobs.polar_bear.breeding-delay-ticks", polarBearBreedingTicks); @@ -2150,7 +2150,7 @@ index 6f1ea7f760bd3a4ab6ba0787776b4017f9e6d52e..c423bc6a535a61dc7deed0b2c5f94eb1 } public boolean rabbitRidable = false; -@@ -936,68 +1292,144 @@ public class PurpurWorldConfig { +@@ -970,68 +1326,144 @@ public class PurpurWorldConfig { public double rabbitNaturalToast = 0.0D; public double rabbitNaturalKiller = 0.0D; public int rabbitBreedingTicks = 6000; @@ -2295,7 +2295,7 @@ index 6f1ea7f760bd3a4ab6ba0787776b4017f9e6d52e..c423bc6a535a61dc7deed0b2c5f94eb1 } public boolean snowGolemRidable = false; -@@ -1009,6 +1441,7 @@ public class PurpurWorldConfig { +@@ -1043,6 +1475,7 @@ public class PurpurWorldConfig { public int snowGolemSnowBallMax = 20; public float snowGolemSnowBallModifier = 10.0F; public double snowGolemAttackDistance = 1.25D; @@ -2303,7 +2303,7 @@ index 6f1ea7f760bd3a4ab6ba0787776b4017f9e6d52e..c423bc6a535a61dc7deed0b2c5f94eb1 private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -1019,63 +1452,118 @@ public class PurpurWorldConfig { +@@ -1053,63 +1486,118 @@ 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); @@ -2422,7 +2422,7 @@ index 6f1ea7f760bd3a4ab6ba0787776b4017f9e6d52e..c423bc6a535a61dc7deed0b2c5f94eb1 } public boolean villagerRidable = false; -@@ -1093,6 +1581,7 @@ public class PurpurWorldConfig { +@@ -1127,6 +1615,7 @@ public class PurpurWorldConfig { public int villagerLobotomizeCheck = 60; public boolean villagerClericsFarmWarts = false; public boolean villagerClericFarmersThrowWarts = true; @@ -2430,7 +2430,7 @@ index 6f1ea7f760bd3a4ab6ba0787776b4017f9e6d52e..c423bc6a535a61dc7deed0b2c5f94eb1 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1114,33 +1603,60 @@ public class PurpurWorldConfig { +@@ -1148,33 +1637,60 @@ 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); @@ -2491,7 +2491,7 @@ index 6f1ea7f760bd3a4ab6ba0787776b4017f9e6d52e..c423bc6a535a61dc7deed0b2c5f94eb1 } public boolean witherRidable = false; -@@ -1157,19 +1673,30 @@ public class PurpurWorldConfig { +@@ -1191,19 +1707,30 @@ public class PurpurWorldConfig { witherHealthRegenDelay = getInt("mobs.wither.health-regen-delay", witherHealthRegenDelay); if (PurpurConfig.version < 8) { double oldValue = getDouble("mobs.wither.max-health", witherMaxHealth); @@ -2524,7 +2524,7 @@ index 6f1ea7f760bd3a4ab6ba0787776b4017f9e6d52e..c423bc6a535a61dc7deed0b2c5f94eb1 } public boolean wolfRidable = false; -@@ -1178,6 +1705,7 @@ public class PurpurWorldConfig { +@@ -1212,6 +1739,7 @@ public class PurpurWorldConfig { public boolean wolfMilkCuresRabies = true; public double wolfNaturalRabid = 0.0D; public int wolfBreedingTicks = 6000; @@ -2532,7 +2532,7 @@ index 6f1ea7f760bd3a4ab6ba0787776b4017f9e6d52e..c423bc6a535a61dc7deed0b2c5f94eb1 private void wolfSettings() { wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater); -@@ -1189,13 +1717,26 @@ public class PurpurWorldConfig { +@@ -1223,13 +1751,26 @@ 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); @@ -2559,7 +2559,7 @@ index 6f1ea7f760bd3a4ab6ba0787776b4017f9e6d52e..c423bc6a535a61dc7deed0b2c5f94eb1 } public boolean zombieRidable = false; -@@ -1205,6 +1746,8 @@ public class PurpurWorldConfig { +@@ -1239,6 +1780,8 @@ public class PurpurWorldConfig { public boolean zombieJockeyTryExistingChickens = true; public boolean zombieAggressiveTowardsVillagerWhenLagging = true; public EnumDifficulty zombieBreakDoorMinDifficulty = EnumDifficulty.HARD; @@ -2568,7 +2568,7 @@ index 6f1ea7f760bd3a4ab6ba0787776b4017f9e6d52e..c423bc6a535a61dc7deed0b2c5f94eb1 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -1217,15 +1760,40 @@ public class PurpurWorldConfig { +@@ -1251,15 +1794,40 @@ public class PurpurWorldConfig { } catch (IllegalArgumentException ignore) { zombieBreakDoorMinDifficulty = EnumDifficulty.HARD; } @@ -2609,7 +2609,7 @@ index 6f1ea7f760bd3a4ab6ba0787776b4017f9e6d52e..c423bc6a535a61dc7deed0b2c5f94eb1 } public boolean zombifiedPiglinRidable = false; -@@ -1234,6 +1802,8 @@ public class PurpurWorldConfig { +@@ -1268,6 +1836,8 @@ public class PurpurWorldConfig { public double zombifiedPiglinJockeyChance = 0.05D; public boolean zombifiedPiglinJockeyTryExistingChickens = true; public boolean zombifiedPiglinCountAsPlayerKillWhenAngry = true; @@ -2618,7 +2618,7 @@ index 6f1ea7f760bd3a4ab6ba0787776b4017f9e6d52e..c423bc6a535a61dc7deed0b2c5f94eb1 private void zombifiedPiglinSettings() { zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); -@@ -1241,6 +1811,13 @@ public class PurpurWorldConfig { +@@ -1275,6 +1845,13 @@ 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); @@ -2632,7 +2632,7 @@ index 6f1ea7f760bd3a4ab6ba0787776b4017f9e6d52e..c423bc6a535a61dc7deed0b2c5f94eb1 } public boolean zombieVillagerRidable = false; -@@ -1248,11 +1825,20 @@ public class PurpurWorldConfig { +@@ -1282,11 +1859,20 @@ public class PurpurWorldConfig { public boolean zombieVillagerJockeyOnlyBaby = true; public double zombieVillagerJockeyChance = 0.05D; public boolean zombieVillagerJockeyTryExistingChickens = true; diff --git a/patches/Purpur/patches/server/0149-Phantom-flames-on-swoop.patch b/patches/Purpur/patches/server/0149-Phantom-flames-on-swoop.patch index 65f38073..3e2e1cd1 100644 --- a/patches/Purpur/patches/server/0149-Phantom-flames-on-swoop.patch +++ b/patches/Purpur/patches/server/0149-Phantom-flames-on-swoop.patch @@ -17,10 +17,10 @@ index 902b26d609aef8dd46e8875cb7c06f187511e8d5..4f3d4f2596c69881f0653bddcc3bf2b9 @Override diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index c423bc6a535a61dc7deed0b2c5f94eb1633aa1a3..0740dbce49417bc8788bb61bc9c079ef2d98d68a 100644 +index 464d6e35970b42319934d74a1f41076cf4f8b784..8484e197272327722b6f20c23f92af44525311df 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1160,6 +1160,7 @@ public class PurpurWorldConfig { +@@ -1194,6 +1194,7 @@ public class PurpurWorldConfig { public boolean phantomIgnorePlayersWithTorch = false; public boolean phantomBurnInDaylight = true; public boolean phantomAllowGriefing = false; @@ -28,7 +28,7 @@ index c423bc6a535a61dc7deed0b2c5f94eb1633aa1a3..0740dbce49417bc8788bb61bc9c079ef public double phantomMaxHealth = 20.0D; private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); -@@ -1186,6 +1187,7 @@ public class PurpurWorldConfig { +@@ -1220,6 +1221,7 @@ public class PurpurWorldConfig { phantomBurnInDaylight = getBoolean("mobs.phantom.burn-in-daylight", phantomBurnInDaylight); phantomIgnorePlayersWithTorch = getBoolean("mobs.phantom.ignore-players-with-torch", phantomIgnorePlayersWithTorch); phantomAllowGriefing = getBoolean("mobs.phantom.allow-griefing", phantomAllowGriefing); diff --git a/patches/Purpur/patches/server/0150-Option-for-chests-to-open-even-with-a-solid-block-on.patch b/patches/Purpur/patches/server/0150-Option-for-chests-to-open-even-with-a-solid-block-on.patch index 720448d3..a8432a80 100644 --- a/patches/Purpur/patches/server/0150-Option-for-chests-to-open-even-with-a-solid-block-on.patch +++ b/patches/Purpur/patches/server/0150-Option-for-chests-to-open-even-with-a-solid-block-on.patch @@ -17,10 +17,10 @@ index a45ee959f41e7f349ff2c309f21fa44ec671cb87..cddf8e3d34385eb264cd28ba6b4392d6 return iblockaccess.getType(blockposition1).isOccluding(iblockaccess, blockposition1); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 0740dbce49417bc8788bb61bc9c079ef2d98d68a..a675a19b123e3d8aa2010aa6aaa93344bc301a50 100644 +index 8484e197272327722b6f20c23f92af44525311df..62cdf46803a178de52150d3180d2db7bc1e5e84f 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -393,6 +393,11 @@ public class PurpurWorldConfig { +@@ -427,6 +427,11 @@ public class PurpurWorldConfig { } } diff --git a/patches/Purpur/patches/server/0151-Implement-TPSBar.patch b/patches/Purpur/patches/server/0151-Implement-TPSBar.patch index 6094ad5b..b8d6c31a 100644 --- a/patches/Purpur/patches/server/0151-Implement-TPSBar.patch +++ b/patches/Purpur/patches/server/0151-Implement-TPSBar.patch @@ -42,7 +42,7 @@ index a76219e59c24862b9c1e09e4a2a29cf2a6260514..4f7fed0418df17b80cb41e16bb1978c5 } } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 8307b44718198f6f2325454f72bd296c33cba58a..c1f86c5cb6cf4c42dbc972f9ec14efa8452bad91 100644 +index 1f07751bf67b9fd1a0f19ebc8d05fd16a6c24322..33ef9699fdcf5dfd2ecaa53cb6388adb13da1697 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -598,6 +598,8 @@ public abstract class PlayerList { diff --git a/patches/Purpur/patches/server/0152-Striders-give-saddle-back.patch b/patches/Purpur/patches/server/0152-Striders-give-saddle-back.patch index 74175e84..fedf483d 100644 --- a/patches/Purpur/patches/server/0152-Striders-give-saddle-back.patch +++ b/patches/Purpur/patches/server/0152-Striders-give-saddle-back.patch @@ -28,10 +28,10 @@ index 892aa844a98ae0d192737c6fc6df0a219256a47b..5e4cc99a746d98231bbb71672fbc0243 } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index a675a19b123e3d8aa2010aa6aaa93344bc301a50..57779ceb3c1e2ff27130e5eba204370a3eb0fe14 100644 +index 62cdf46803a178de52150d3180d2db7bc1e5e84f..c9faf726d5f64142946438966b887655e75759af 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1516,11 +1516,13 @@ public class PurpurWorldConfig { +@@ -1550,11 +1550,13 @@ public class PurpurWorldConfig { public boolean striderRidable = false; public boolean striderRidableInWater = false; public int striderBreedingTicks = 6000; diff --git a/patches/Purpur/patches/server/0153-PlayerBookTooLargeEvent.patch b/patches/Purpur/patches/server/0153-PlayerBookTooLargeEvent.patch index 8a815c6e..aa684ec4 100644 --- a/patches/Purpur/patches/server/0153-PlayerBookTooLargeEvent.patch +++ b/patches/Purpur/patches/server/0153-PlayerBookTooLargeEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] PlayerBookTooLargeEvent diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index 07541f23ee853dae137440129e600d345774cd90..5a2f84cd1456b072084e2db53a24c9863cb75563 100644 +index 59eedbe9d249fd09673393651a8be76232ab16e9..f55485094a5b676d8051d1f8d3151340bf176b33 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java @@ -1123,6 +1123,7 @@ public class PlayerConnection implements PacketListenerPlayIn { diff --git a/patches/Purpur/patches/server/0154-Full-netherite-armor-grants-fire-resistance.patch b/patches/Purpur/patches/server/0154-Full-netherite-armor-grants-fire-resistance.patch index 783e8087..2b191533 100644 --- a/patches/Purpur/patches/server/0154-Full-netherite-armor-grants-fire-resistance.patch +++ b/patches/Purpur/patches/server/0154-Full-netherite-armor-grants-fire-resistance.patch @@ -26,10 +26,10 @@ index af10d5aea7909ee9f38982264233f0a45c153003..5a2678cf3a8441344629b6a0bf4b6be5 protected ItemCooldown i() { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 57779ceb3c1e2ff27130e5eba204370a3eb0fe14..b8c9c8e5ed7f3ffea4dc2cbe29d308afe0069773 100644 +index c9faf726d5f64142946438966b887655e75759af..2d9d963773b1df9a5d7520a5c295d40ebf56761f 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -310,6 +310,19 @@ public class PurpurWorldConfig { +@@ -344,6 +344,19 @@ public class PurpurWorldConfig { playerDeathExpDropMax = getInt("gameplay-mechanics.player.exp-dropped-on-death.maximum", playerDeathExpDropMax); } diff --git a/patches/Purpur/patches/server/0156-Add-mobGriefing-bypass-to-everything-affected.patch b/patches/Purpur/patches/server/0156-Add-mobGriefing-bypass-to-everything-affected.patch index a23f23ed..63a6c0fe 100644 --- a/patches/Purpur/patches/server/0156-Add-mobGriefing-bypass-to-everything-affected.patch +++ b/patches/Purpur/patches/server/0156-Add-mobGriefing-bypass-to-everything-affected.patch @@ -338,10 +338,10 @@ index 04504901b1933ed760b34b8abb994de8ec340a4e..e18be05c9a9230105ec54395d4391c86 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 b8c9c8e5ed7f3ffea4dc2cbe29d308afe0069773..a5086549c5cb034b47989141efabeaf9980ad2ff 100644 +index 2d9d963773b1df9a5d7520a5c295d40ebf56761f..751558a0a3fcb0433d7b580e5618755bdb277292 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -252,6 +252,7 @@ public class PurpurWorldConfig { +@@ -286,6 +286,7 @@ public class PurpurWorldConfig { public boolean disableDropsOnCrammingDeath = false; public boolean entitiesPickUpLootBypassMobGriefing = false; public boolean entitiesCanUsePortals = true; @@ -349,7 +349,7 @@ index b8c9c8e5ed7f3ffea4dc2cbe29d308afe0069773..a5086549c5cb034b47989141efabeaf9 public boolean milkCuresBadOmen = true; public boolean persistentTileEntityDisplayNames = false; public boolean persistentDroppableEntityDisplayNames = false; -@@ -266,6 +267,7 @@ public class PurpurWorldConfig { +@@ -300,6 +301,7 @@ public class PurpurWorldConfig { disableDropsOnCrammingDeath = getBoolean("gameplay-mechanics.disable-drops-on-cramming-death", disableDropsOnCrammingDeath); entitiesPickUpLootBypassMobGriefing = getBoolean("gameplay-mechanics.entities-pick-up-loot-bypass-mob-griefing", entitiesPickUpLootBypassMobGriefing); entitiesCanUsePortals = getBoolean("gameplay-mechanics.entities-can-use-portals", entitiesCanUsePortals); @@ -357,7 +357,7 @@ index b8c9c8e5ed7f3ffea4dc2cbe29d308afe0069773..a5086549c5cb034b47989141efabeaf9 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); -@@ -418,9 +420,11 @@ public class PurpurWorldConfig { +@@ -452,9 +454,11 @@ public class PurpurWorldConfig { dispenserPlaceAnvils = getBoolean("blocks.dispenser.place-anvils", dispenserPlaceAnvils); } @@ -369,7 +369,7 @@ index b8c9c8e5ed7f3ffea4dc2cbe29d308afe0069773..a5086549c5cb034b47989141efabeaf9 farmlandGetsMoistFromBelow = getBoolean("blocks.farmland.gets-moist-from-below", farmlandGetsMoistFromBelow); farmlandAlpha = getBoolean("blocks.farmland.use-alpha-farmland", farmlandAlpha); } -@@ -479,10 +483,12 @@ public class PurpurWorldConfig { +@@ -513,10 +517,12 @@ public class PurpurWorldConfig { stonecutterDamage = (float) getDouble("blocks.stonecutter.damage", stonecutterDamage); } @@ -382,7 +382,7 @@ index b8c9c8e5ed7f3ffea4dc2cbe29d308afe0069773..a5086549c5cb034b47989141efabeaf9 turtleEggsBreakFromExpOrbs = getBoolean("blocks.turtle_egg.break-from-exp-orbs", turtleEggsBreakFromExpOrbs); turtleEggsBreakFromItems = getBoolean("blocks.turtle_egg.break-from-items", turtleEggsBreakFromItems); turtleEggsBreakFromMinecarts = getBoolean("blocks.turtle_egg.break-from-minecarts", turtleEggsBreakFromMinecarts); -@@ -754,12 +760,14 @@ public class PurpurWorldConfig { +@@ -788,12 +794,14 @@ public class PurpurWorldConfig { public boolean enderDragonRidableInWater = false; public double enderDragonMaxY = 256D; public boolean enderDragonAlwaysDropsFullExp = false; @@ -397,7 +397,7 @@ index b8c9c8e5ed7f3ffea4dc2cbe29d308afe0069773..a5086549c5cb034b47989141efabeaf9 if (PurpurConfig.version < 8) { double oldValue = getDouble("mobs.ender_dragon.max-health", enderDragonMaxHealth); set("mobs.ender_dragon.max-health", null); -@@ -775,12 +783,14 @@ public class PurpurWorldConfig { +@@ -809,12 +817,14 @@ public class PurpurWorldConfig { public boolean endermanRidable = false; public boolean endermanRidableInWater = false; public boolean endermanAllowGriefing = true; @@ -412,7 +412,7 @@ index b8c9c8e5ed7f3ffea4dc2cbe29d308afe0069773..a5086549c5cb034b47989141efabeaf9 endermanDespawnEvenWithBlock = getBoolean("mobs.enderman.can-despawn-with-held-block", endermanDespawnEvenWithBlock); if (PurpurConfig.version < 10) { double oldValue = getDouble("mobs.enderman.attributes.max-health", endermanMaxHealth); -@@ -806,10 +816,12 @@ public class PurpurWorldConfig { +@@ -840,10 +850,12 @@ public class PurpurWorldConfig { public boolean evokerRidable = false; public boolean evokerRidableInWater = false; @@ -425,7 +425,7 @@ index b8c9c8e5ed7f3ffea4dc2cbe29d308afe0069773..a5086549c5cb034b47989141efabeaf9 if (PurpurConfig.version < 10) { double oldValue = getDouble("mobs.evoker.attributes.max-health", evokerMaxHealth); set("mobs.evoker.attributes.max-health", null); -@@ -820,12 +832,14 @@ public class PurpurWorldConfig { +@@ -854,12 +866,14 @@ public class PurpurWorldConfig { public boolean foxRidable = false; public boolean foxRidableInWater = false; @@ -440,7 +440,7 @@ index b8c9c8e5ed7f3ffea4dc2cbe29d308afe0069773..a5086549c5cb034b47989141efabeaf9 foxTypeChangesWithTulips = getBoolean("mobs.fox.tulips-change-type", foxTypeChangesWithTulips); foxBreedingTicks = getInt("mobs.fox.breeding-delay-ticks", foxBreedingTicks); if (PurpurConfig.version < 10) { -@@ -1262,10 +1276,12 @@ public class PurpurWorldConfig { +@@ -1296,10 +1310,12 @@ public class PurpurWorldConfig { public boolean pillagerRidable = false; public boolean pillagerRidableInWater = false; @@ -453,7 +453,7 @@ index b8c9c8e5ed7f3ffea4dc2cbe29d308afe0069773..a5086549c5cb034b47989141efabeaf9 if (PurpurConfig.version < 10) { double oldValue = getDouble("mobs.pillager.attributes.max-health", pillagerMaxHealth); set("mobs.pillager.attributes.max-health", null); -@@ -1309,6 +1325,7 @@ public class PurpurWorldConfig { +@@ -1343,6 +1359,7 @@ public class PurpurWorldConfig { public boolean rabbitRidable = false; public boolean rabbitRidableInWater = false; @@ -461,7 +461,7 @@ index b8c9c8e5ed7f3ffea4dc2cbe29d308afe0069773..a5086549c5cb034b47989141efabeaf9 public double rabbitNaturalToast = 0.0D; public double rabbitNaturalKiller = 0.0D; public int rabbitBreedingTicks = 6000; -@@ -1316,6 +1333,7 @@ public class PurpurWorldConfig { +@@ -1350,6 +1367,7 @@ public class PurpurWorldConfig { private void rabbitSettings() { rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable); rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater); @@ -469,7 +469,7 @@ index b8c9c8e5ed7f3ffea4dc2cbe29d308afe0069773..a5086549c5cb034b47989141efabeaf9 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); -@@ -1329,10 +1347,12 @@ public class PurpurWorldConfig { +@@ -1363,10 +1381,12 @@ public class PurpurWorldConfig { public boolean ravagerRidable = false; public boolean ravagerRidableInWater = false; @@ -482,7 +482,7 @@ index b8c9c8e5ed7f3ffea4dc2cbe29d308afe0069773..a5086549c5cb034b47989141efabeaf9 if (PurpurConfig.version < 10) { double oldValue = getDouble("mobs.ravager.attributes.max-health", ravagerMaxHealth); set("mobs.ravager.attributes.max-health", null); -@@ -1356,11 +1376,13 @@ public class PurpurWorldConfig { +@@ -1390,11 +1410,13 @@ public class PurpurWorldConfig { public boolean sheepRidable = false; public boolean sheepRidableInWater = false; public int sheepBreedingTicks = 6000; @@ -496,7 +496,7 @@ index b8c9c8e5ed7f3ffea4dc2cbe29d308afe0069773..a5086549c5cb034b47989141efabeaf9 if (PurpurConfig.version < 10) { double oldValue = getDouble("mobs.sheep.attributes.max-health", sheepMaxHealth); set("mobs.sheep.attributes.max-health", null); -@@ -1385,10 +1407,12 @@ public class PurpurWorldConfig { +@@ -1419,10 +1441,12 @@ public class PurpurWorldConfig { public boolean silverfishRidable = false; public boolean silverfishRidableInWater = false; @@ -509,7 +509,7 @@ index b8c9c8e5ed7f3ffea4dc2cbe29d308afe0069773..a5086549c5cb034b47989141efabeaf9 if (PurpurConfig.version < 10) { double oldValue = getDouble("mobs.silverfish.attributes.max-health", silverfishMaxHealth); set("mobs.silverfish.attributes.max-health", null); -@@ -1455,6 +1479,7 @@ public class PurpurWorldConfig { +@@ -1489,6 +1513,7 @@ public class PurpurWorldConfig { public boolean snowGolemRidable = false; public boolean snowGolemRidableInWater = false; public boolean snowGolemLeaveTrailWhenRidden = false; @@ -517,7 +517,7 @@ index b8c9c8e5ed7f3ffea4dc2cbe29d308afe0069773..a5086549c5cb034b47989141efabeaf9 public boolean snowGolemDropsPumpkin = true; public boolean snowGolemPutPumpkinBack = false; public int snowGolemSnowBallMin = 20; -@@ -1466,6 +1491,7 @@ public class PurpurWorldConfig { +@@ -1500,6 +1525,7 @@ public class PurpurWorldConfig { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); snowGolemLeaveTrailWhenRidden = getBoolean("mobs.snow_golem.leave-trail-when-ridden", snowGolemLeaveTrailWhenRidden); @@ -525,7 +525,7 @@ index b8c9c8e5ed7f3ffea4dc2cbe29d308afe0069773..a5086549c5cb034b47989141efabeaf9 snowGolemDropsPumpkin = getBoolean("mobs.snow_golem.drop-pumpkin-when-sheared", snowGolemDropsPumpkin); snowGolemPutPumpkinBack = getBoolean("mobs.snow_golem.pumpkin-can-be-added-back", snowGolemPutPumpkinBack); snowGolemSnowBallMin = getInt("mobs.snow_golem.min-shoot-interval-ticks", snowGolemSnowBallMin); -@@ -1684,6 +1710,7 @@ public class PurpurWorldConfig { +@@ -1718,6 +1744,7 @@ public class PurpurWorldConfig { public boolean witherRidable = false; public boolean witherRidableInWater = false; public double witherMaxY = 256D; @@ -533,7 +533,7 @@ index b8c9c8e5ed7f3ffea4dc2cbe29d308afe0069773..a5086549c5cb034b47989141efabeaf9 public float witherHealthRegenAmount = 1.0f; public int witherHealthRegenDelay = 20; public double witherMaxHealth = 300.0D; -@@ -1691,6 +1718,7 @@ public class PurpurWorldConfig { +@@ -1725,6 +1752,7 @@ public class PurpurWorldConfig { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); witherMaxY = getDouble("mobs.wither.ridable-max-y", witherMaxY); @@ -541,7 +541,7 @@ index b8c9c8e5ed7f3ffea4dc2cbe29d308afe0069773..a5086549c5cb034b47989141efabeaf9 witherHealthRegenAmount = (float) getDouble("mobs.wither.health-regen-amount", witherHealthRegenAmount); witherHealthRegenDelay = getInt("mobs.wither.health-regen-delay", witherHealthRegenDelay); if (PurpurConfig.version < 8) { -@@ -1763,6 +1791,7 @@ public class PurpurWorldConfig { +@@ -1797,6 +1825,7 @@ public class PurpurWorldConfig { public boolean zombieRidable = false; public boolean zombieRidableInWater = false; @@ -549,7 +549,7 @@ index b8c9c8e5ed7f3ffea4dc2cbe29d308afe0069773..a5086549c5cb034b47989141efabeaf9 public boolean zombieJockeyOnlyBaby = true; public double zombieJockeyChance = 0.05D; public boolean zombieJockeyTryExistingChickens = true; -@@ -1773,6 +1802,7 @@ public class PurpurWorldConfig { +@@ -1807,6 +1836,7 @@ public class PurpurWorldConfig { private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); diff --git a/patches/Purpur/patches/server/0157-Config-to-allow-Note-Block-sounds-when-blocked.patch b/patches/Purpur/patches/server/0157-Config-to-allow-Note-Block-sounds-when-blocked.patch index 42a376c9..6bd91842 100644 --- a/patches/Purpur/patches/server/0157-Config-to-allow-Note-Block-sounds-when-blocked.patch +++ b/patches/Purpur/patches/server/0157-Config-to-allow-Note-Block-sounds-when-blocked.patch @@ -22,10 +22,10 @@ index 148718f8f96d94e76a4a7a96d5955b624c2dc661..075987567cd4412c8f0fb4e31b786394 org.bukkit.event.block.NotePlayEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callNotePlayEvent(world, blockposition, data.get(BlockNote.INSTRUMENT), data.get(BlockNote.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 a5086549c5cb034b47989141efabeaf9980ad2ff..6bea16303dbcee4f8523547c44e4ee282fdb44ae 100644 +index 751558a0a3fcb0433d7b580e5618755bdb277292..681e4d41aed335b62fb9aaa030f7fc119cfbfa88 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -254,6 +254,7 @@ public class PurpurWorldConfig { +@@ -288,6 +288,7 @@ public class PurpurWorldConfig { public boolean entitiesCanUsePortals = true; public boolean fireballsBypassMobGriefing = false; public boolean milkCuresBadOmen = true; @@ -33,7 +33,7 @@ index a5086549c5cb034b47989141efabeaf9980ad2ff..6bea16303dbcee4f8523547c44e4ee28 public boolean persistentTileEntityDisplayNames = false; public boolean persistentDroppableEntityDisplayNames = false; public double tridentLoyaltyVoidReturnHeight = 0.0D; -@@ -269,6 +270,7 @@ public class PurpurWorldConfig { +@@ -303,6 +304,7 @@ public class PurpurWorldConfig { entitiesCanUsePortals = getBoolean("gameplay-mechanics.entities-can-use-portals", entitiesCanUsePortals); fireballsBypassMobGriefing = getBoolean("gameplay-mechanics.fireballs-bypass-mob-griefing", fireballsBypassMobGriefing); milkCuresBadOmen = getBoolean("gameplay-mechanics.milk-cures-bad-omen", milkCuresBadOmen); diff --git a/patches/Purpur/patches/server/0158-Add-EntityTeleportHinderedEvent.patch b/patches/Purpur/patches/server/0158-Add-EntityTeleportHinderedEvent.patch index b9b9b411..a31f33df 100644 --- a/patches/Purpur/patches/server/0158-Add-EntityTeleportHinderedEvent.patch +++ b/patches/Purpur/patches/server/0158-Add-EntityTeleportHinderedEvent.patch @@ -94,10 +94,10 @@ index 23a3b1b317b6b3e9d812f5a7b09b099b0528c59e..4f40c6c3397596c81147fae4a6a51bfd public void a(IBlockData iblockdata, World world, BlockPosition blockposition, Entity entity) {} diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 6bea16303dbcee4f8523547c44e4ee282fdb44ae..05a473104d1108f529243de032a9500093ce2959 100644 +index 681e4d41aed335b62fb9aaa030f7fc119cfbfa88..82963c98c127ae3e5d5dddb321771f08aee9b9a7 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1895,4 +1895,9 @@ public class PurpurWorldConfig { +@@ -1929,4 +1929,9 @@ public class PurpurWorldConfig { zombieVillagerMaxHealth = getDouble("mobs.zombie_villager.attributes.max_health", zombieVillagerMaxHealth); zombieVillagerSpawnReinforcements = getDouble("mobs.zombie_villager.attributes.spawn_reinforcements", zombieVillagerSpawnReinforcements); } diff --git a/patches/Purpur/patches/server/0160-Farmland-trampling-changes.patch b/patches/Purpur/patches/server/0160-Farmland-trampling-changes.patch index 496a29da..d74cefa3 100644 --- a/patches/Purpur/patches/server/0160-Farmland-trampling-changes.patch +++ b/patches/Purpur/patches/server/0160-Farmland-trampling-changes.patch @@ -54,10 +54,10 @@ index d3fd0b418b9088b621e44f5da452db74b433efe8..e7e5ee52cb7ac7e406c837db686d0a96 if (CraftEventFactory.callEntityChangeBlockEvent(entity, blockposition, Blocks.DIRT.getBlockData()).isCancelled()) { return; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 05a473104d1108f529243de032a9500093ce2959..4343e7536fa5320579496f6c116fb93c938b34e5 100644 +index 82963c98c127ae3e5d5dddb321771f08aee9b9a7..9fe79ccb92bfc0fca6660d159c4bc209d8302fd5 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -425,10 +425,16 @@ public class PurpurWorldConfig { +@@ -459,10 +459,16 @@ public class PurpurWorldConfig { public boolean farmlandBypassMobGriefing = false; public boolean farmlandGetsMoistFromBelow = false; public boolean farmlandAlpha = false; diff --git a/patches/Purpur/patches/server/0161-Movement-options-for-armor-stands.patch b/patches/Purpur/patches/server/0161-Movement-options-for-armor-stands.patch index 9f4888a1..296679f3 100644 --- a/patches/Purpur/patches/server/0161-Movement-options-for-armor-stands.patch +++ b/patches/Purpur/patches/server/0161-Movement-options-for-armor-stands.patch @@ -74,7 +74,7 @@ index 43dc0925887e2e9e86445cccff57be7994ca0d58..ecb797e67554d30e35b3aca4d0fc9b0e + // Purpur end } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 4343e7536fa5320579496f6c116fb93c938b34e5..a3e6844602b8baea643ec1ae65ef7161789cac6c 100644 +index 9fe79ccb92bfc0fca6660d159c4bc209d8302fd5..edb7f82c0ebadd05095917f303be9c6f72a4a893 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -111,10 +111,16 @@ public class PurpurWorldConfig { @@ -93,4 +93,4 @@ index 4343e7536fa5320579496f6c116fb93c938b34e5..a3e6844602b8baea643ec1ae65ef7161 + armorstandWaterFence = getBoolean("gameplay-mechanics.armorstand.can-move-in-water-over-fence", armorstandWaterFence); } - public boolean controllableMinecarts = false; + public double minecartMaxSpeed = 0.4D; diff --git a/patches/Purpur/patches/server/0162-Fix-stuck-in-portals.patch b/patches/Purpur/patches/server/0162-Fix-stuck-in-portals.patch index d93e88e9..419f6e29 100644 --- a/patches/Purpur/patches/server/0162-Fix-stuck-in-portals.patch +++ b/patches/Purpur/patches/server/0162-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/EntityPlayer.java b/src/main/java/net/minecraft/server/level/EntityPlayer.java -index e1072ae940ac56c3a2d9af756acc9278baa07d84..30bdb18bf89ab021a66c2a51e1543b71ae77fae8 100644 +index a1d5662911ee3a038da427bf2e0b69a11f187149..9c520e7600986b7b7df3af96a715c91c5347f30d 100644 --- a/src/main/java/net/minecraft/server/level/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/level/EntityPlayer.java -@@ -1293,6 +1293,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { +@@ -1291,6 +1291,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { playerlist.d(this); worldserver1.removePlayer(this); this.dead = false; @@ -37,10 +37,10 @@ index 2545b0891a299301a8d9e194e795b0f3856f2178..fdd374232ced8f4da675afaee3f5278c this.inPortal = true; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index a3e6844602b8baea643ec1ae65ef7161789cac6c..8e4843e47abf4a084653b0e338eb72f1e5c1e1b3 100644 +index edb7f82c0ebadd05095917f303be9c6f72a4a893..3dd8868ab3f1675ff5e7547285f9a89b9d56cd63 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -362,6 +362,11 @@ public class PurpurWorldConfig { +@@ -396,6 +396,11 @@ public class PurpurWorldConfig { }); } diff --git a/patches/Purpur/patches/server/0163-Config-to-use-infinity-bows-without-arrows.patch b/patches/Purpur/patches/server/0163-Config-to-use-infinity-bows-without-arrows.patch index 9909c7e0..3eb40f8d 100644 --- a/patches/Purpur/patches/server/0163-Config-to-use-infinity-bows-without-arrows.patch +++ b/patches/Purpur/patches/server/0163-Config-to-use-infinity-bows-without-arrows.patch @@ -20,10 +20,10 @@ index c7e20b25b4d09463fa54c66e62208e90515013e2..59b803ec4552058f2dda269e9435daf6 } else { entityhuman.c(enumhand); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 8e4843e47abf4a084653b0e338eb72f1e5c1e1b3..b701402cf9109aa9729bd3ab5585d24532147246 100644 +index 3dd8868ab3f1675ff5e7547285f9a89b9d56cd63..235eba799c4b92738a57b62bc6bb572dd417a45b 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -209,10 +209,12 @@ public class PurpurWorldConfig { +@@ -243,10 +243,12 @@ public class PurpurWorldConfig { idleTimeoutUpdateTabList = getBoolean("gameplay-mechanics.player.idle-timeout.update-tab-list", idleTimeoutUpdateTabList); } diff --git a/patches/Purpur/patches/server/0164-Toggle-for-water-sensitive-mob-damage.patch b/patches/Purpur/patches/server/0164-Toggle-for-water-sensitive-mob-damage.patch index f0c3af0d..560369b1 100644 --- a/patches/Purpur/patches/server/0164-Toggle-for-water-sensitive-mob-damage.patch +++ b/patches/Purpur/patches/server/0164-Toggle-for-water-sensitive-mob-damage.patch @@ -83,10 +83,10 @@ index 5e4cc99a746d98231bbb71672fbc02431e4fab48..f52ae7446c16d5b8ac51bd2e12bb51d2 @Override diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index b701402cf9109aa9729bd3ab5585d24532147246..6036f39cd3aaeee459cbb45d9e3bd7450b6f08b0 100644 +index 235eba799c4b92738a57b62bc6bb572dd417a45b..aa73eb1ec79ae552d60c31d0168a0e91cdabb4f5 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -583,6 +583,7 @@ public class PurpurWorldConfig { +@@ -617,6 +617,7 @@ public class PurpurWorldConfig { public boolean blazeRidableInWater = false; public double blazeMaxY = 256D; public double blazeMaxHealth = 20.0D; @@ -94,7 +94,7 @@ index b701402cf9109aa9729bd3ab5585d24532147246..6036f39cd3aaeee459cbb45d9e3bd745 private void blazeSettings() { blazeRidable = getBoolean("mobs.blaze.ridable", blazeRidable); blazeRidableInWater = getBoolean("mobs.blaze.ridable-in-water", blazeRidableInWater); -@@ -593,6 +594,7 @@ public class PurpurWorldConfig { +@@ -627,6 +628,7 @@ public class PurpurWorldConfig { set("mobs.blaze.attributes.max_health", oldValue); } blazeMaxHealth = getDouble("mobs.blaze.attributes.max_health", blazeMaxHealth); @@ -102,7 +102,7 @@ index b701402cf9109aa9729bd3ab5585d24532147246..6036f39cd3aaeee459cbb45d9e3bd745 } public boolean catRidable = false; -@@ -807,6 +809,7 @@ public class PurpurWorldConfig { +@@ -841,6 +843,7 @@ public class PurpurWorldConfig { public boolean endermanBypassMobGriefing = false; public boolean endermanDespawnEvenWithBlock = false; public double endermanMaxHealth = 40.0D; @@ -110,7 +110,7 @@ index b701402cf9109aa9729bd3ab5585d24532147246..6036f39cd3aaeee459cbb45d9e3bd745 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -819,6 +822,7 @@ public class PurpurWorldConfig { +@@ -853,6 +856,7 @@ public class PurpurWorldConfig { set("mobs.enderman.attributes.max_health", oldValue); } endermanMaxHealth = getDouble("mobs.enderman.attributes.max_health", endermanMaxHealth); @@ -118,7 +118,7 @@ index b701402cf9109aa9729bd3ab5585d24532147246..6036f39cd3aaeee459cbb45d9e3bd745 } public boolean endermiteRidable = false; -@@ -1508,6 +1512,7 @@ public class PurpurWorldConfig { +@@ -1542,6 +1546,7 @@ public class PurpurWorldConfig { public float snowGolemSnowBallModifier = 10.0F; public double snowGolemAttackDistance = 1.25D; public double snowGolemMaxHealth = 4.0D; @@ -126,7 +126,7 @@ index b701402cf9109aa9729bd3ab5585d24532147246..6036f39cd3aaeee459cbb45d9e3bd745 private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -1525,6 +1530,7 @@ public class PurpurWorldConfig { +@@ -1559,6 +1564,7 @@ public class PurpurWorldConfig { set("mobs.snow_golem.attributes.max_health", oldValue); } snowGolemMaxHealth = getDouble("mobs.snow_golem.attributes.max_health", snowGolemMaxHealth); @@ -134,7 +134,7 @@ index b701402cf9109aa9729bd3ab5585d24532147246..6036f39cd3aaeee459cbb45d9e3bd745 } public boolean squidRidable = false; -@@ -1578,6 +1584,7 @@ public class PurpurWorldConfig { +@@ -1612,6 +1618,7 @@ public class PurpurWorldConfig { public int striderBreedingTicks = 6000; public boolean striderGiveSaddleBack = false; public double striderMaxHealth = 20.0D; @@ -142,7 +142,7 @@ index b701402cf9109aa9729bd3ab5585d24532147246..6036f39cd3aaeee459cbb45d9e3bd745 private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -1589,6 +1596,7 @@ public class PurpurWorldConfig { +@@ -1623,6 +1630,7 @@ public class PurpurWorldConfig { set("mobs.strider.attributes.max_health", oldValue); } striderMaxHealth = getDouble("mobs.strider.attributes.max_health", striderMaxHealth); diff --git a/patches/Purpur/patches/server/0165-Config-to-always-tame-in-Creative.patch b/patches/Purpur/patches/server/0165-Config-to-always-tame-in-Creative.patch index 758043a4..ee61a022 100644 --- a/patches/Purpur/patches/server/0165-Config-to-always-tame-in-Creative.patch +++ b/patches/Purpur/patches/server/0165-Config-to-always-tame-in-Creative.patch @@ -59,10 +59,10 @@ index 090903fbc8f6cd1522c7afb358f708f5ae3395f4..884a3f03c73efb8fb0863976615fba5e this.navigation.o(); this.setGoalTarget((EntityLiving) null); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 6036f39cd3aaeee459cbb45d9e3bd7450b6f08b0..71566df66d763c2e05442a75a940cc50011fee7a 100644 +index aa73eb1ec79ae552d60c31d0168a0e91cdabb4f5..447188e570bbab37a225f9c2583a8481a90a22ef 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -255,6 +255,7 @@ public class PurpurWorldConfig { +@@ -289,6 +289,7 @@ public class PurpurWorldConfig { } public boolean useBetterMending = false; @@ -70,7 +70,7 @@ index 6036f39cd3aaeee459cbb45d9e3bd7450b6f08b0..71566df66d763c2e05442a75a940cc50 public boolean boatEjectPlayersOnLand = false; public boolean boatsDoFallDamage = true; public boolean disableDropsOnCrammingDeath = false; -@@ -271,6 +272,7 @@ public class PurpurWorldConfig { +@@ -305,6 +306,7 @@ public class PurpurWorldConfig { public int animalBreedingCooldownSeconds = 0; private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); diff --git a/patches/Purpur/patches/server/0166-End-crystal-explosion-options.patch b/patches/Purpur/patches/server/0166-End-crystal-explosion-options.patch index e587883b..0aa21712 100644 --- a/patches/Purpur/patches/server/0166-End-crystal-explosion-options.patch +++ b/patches/Purpur/patches/server/0166-End-crystal-explosion-options.patch @@ -52,10 +52,10 @@ index 2c983e6a092464d1867fcbe875b2e1461ec8556b..a92c900a6092c07b34711428fac268f4 this.a(damagesource); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 71566df66d763c2e05442a75a940cc50011fee7a..535d30e65fcdf59aa42af0564aa8747504b804d5 100644 +index 447188e570bbab37a225f9c2583a8481a90a22ef..d98671c6db4d86a9324f120c68e610364337bee6 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1929,4 +1929,33 @@ public class PurpurWorldConfig { +@@ -1963,4 +1963,33 @@ public class PurpurWorldConfig { private void imposeTeleportRestrictionsOnGateways() { imposeTeleportRestrictionsOnGateways = getBoolean("gameplay-mechanics.impose-teleport-restrictions-on-gateways", imposeTeleportRestrictionsOnGateways); } diff --git a/patches/Purpur/patches/server/0168-Add-ghast-allow-griefing-option.patch b/patches/Purpur/patches/server/0168-Add-ghast-allow-griefing-option.patch index 7cf863de..c60936e1 100644 --- a/patches/Purpur/patches/server/0168-Add-ghast-allow-griefing-option.patch +++ b/patches/Purpur/patches/server/0168-Add-ghast-allow-griefing-option.patch @@ -38,10 +38,10 @@ index 61f06eacb4ea4ef869b60c9014cc23b25583eead..627915ee205fdcc93c5424ad7d7ea057 // CraftBukkit start - fire ExplosionPrimeEvent ExplosionPrimeEvent event = new ExplosionPrimeEvent((org.bukkit.entity.Explosive) this.getBukkitEntity()); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 535d30e65fcdf59aa42af0564aa8747504b804d5..3ea3c35865e0a467f86b93377dd069c3cf59ceb4 100644 +index d98671c6db4d86a9324f120c68e610364337bee6..fa3c9dbcdea3701cdecd2e4324690528af47247f 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -880,6 +880,7 @@ public class PurpurWorldConfig { +@@ -914,6 +914,7 @@ public class PurpurWorldConfig { public boolean ghastRidable = false; public boolean ghastRidableInWater = false; public double ghastMaxY = 256D; @@ -49,7 +49,7 @@ index 535d30e65fcdf59aa42af0564aa8747504b804d5..3ea3c35865e0a467f86b93377dd069c3 public double ghastMaxHealth = 10.0D; private void ghastSettings() { ghastRidable = getBoolean("mobs.ghast.ridable", ghastRidable); -@@ -890,6 +891,7 @@ public class PurpurWorldConfig { +@@ -924,6 +925,7 @@ public class PurpurWorldConfig { set("mobs.ghast.attributes.max-health", null); set("mobs.ghast.attributes.max_health", oldValue); } diff --git a/patches/Purpur/patches/server/0169-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch b/patches/Purpur/patches/server/0169-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch index 29fd9514..2b0fb75a 100644 --- a/patches/Purpur/patches/server/0169-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch +++ b/patches/Purpur/patches/server/0169-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch @@ -42,10 +42,10 @@ index fa6b72c7a12b20f8ccffa360a3895e4d8f4277e4..4a3e0f7f59ca4fd64be62a580d08b6ab } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 3ea3c35865e0a467f86b93377dd069c3cf59ceb4..7afc05f54f4b2fda3b250cb8fd1973247be5933f 100644 +index fa3c9dbcdea3701cdecd2e4324690528af47247f..b82cf670d693096884f801e72efbcb535d0952a7 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -787,6 +787,7 @@ public class PurpurWorldConfig { +@@ -821,6 +821,7 @@ public class PurpurWorldConfig { public boolean enderDragonAlwaysDropsFullExp = false; public boolean enderDragonBypassMobGriefing = false; public double enderDragonMaxHealth = 200.0D; @@ -53,7 +53,7 @@ index 3ea3c35865e0a467f86b93377dd069c3cf59ceb4..7afc05f54f4b2fda3b250cb8fd197324 private void enderDragonSettings() { enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable); enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater); -@@ -803,6 +804,7 @@ public class PurpurWorldConfig { +@@ -837,6 +838,7 @@ public class PurpurWorldConfig { set("mobs.ender_dragon.attributes.max_health", oldValue); } enderDragonMaxHealth = getDouble("mobs.ender_dragon.attributes.max_health", enderDragonMaxHealth); @@ -61,7 +61,7 @@ index 3ea3c35865e0a467f86b93377dd069c3cf59ceb4..7afc05f54f4b2fda3b250cb8fd197324 } public boolean endermanRidable = false; -@@ -1747,6 +1749,7 @@ public class PurpurWorldConfig { +@@ -1781,6 +1783,7 @@ public class PurpurWorldConfig { public float witherHealthRegenAmount = 1.0f; public int witherHealthRegenDelay = 20; public double witherMaxHealth = 300.0D; @@ -69,7 +69,7 @@ index 3ea3c35865e0a467f86b93377dd069c3cf59ceb4..7afc05f54f4b2fda3b250cb8fd197324 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -1764,6 +1767,7 @@ public class PurpurWorldConfig { +@@ -1798,6 +1801,7 @@ public class PurpurWorldConfig { set("mobs.wither.attributes.max_health", oldValue); } witherMaxHealth = getDouble("mobs.wither.attributes.max_health", witherMaxHealth); diff --git a/patches/Purpur/patches/server/0170-Dont-run-with-scissors.patch b/patches/Purpur/patches/server/0170-Dont-run-with-scissors.patch index 6bb66ecc..7fba08d0 100644 --- a/patches/Purpur/patches/server/0170-Dont-run-with-scissors.patch +++ b/patches/Purpur/patches/server/0170-Dont-run-with-scissors.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Dont run with scissors! diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index 5a2f84cd1456b072084e2db53a24c9863cb75563..40ad7f050b7f11f2810b07970c9e29354525de98 100644 +index f55485094a5b676d8051d1f8d3151340bf176b33..03a61aa91191b44284e9b4d02f2c57eaf2de7105 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java @@ -1547,6 +1547,12 @@ public class PlayerConnection implements PacketListenerPlayIn { @@ -22,10 +22,10 @@ index 5a2f84cd1456b072084e2db53a24c9863cb75563..40ad7f050b7f11f2810b07970c9e2935 this.o = this.player.locX(); this.p = this.player.locY(); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 7afc05f54f4b2fda3b250cb8fd1973247be5933f..bd3a7b45746ec2981cd4f6373e7af11ac668bba6 100644 +index b82cf670d693096884f801e72efbcb535d0952a7..6e37207d2c1d83a18d39cde4436b9b16c693df77 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -168,6 +168,8 @@ public class PurpurWorldConfig { +@@ -202,6 +202,8 @@ public class PurpurWorldConfig { public List itemImmuneToCactus = new ArrayList<>(); public List itemImmuneToExplosion = new ArrayList<>(); public List itemImmuneToFire = new ArrayList<>(); @@ -34,7 +34,7 @@ index 7afc05f54f4b2fda3b250cb8fd1973247be5933f..bd3a7b45746ec2981cd4f6373e7af11a private void itemSettings() { itemImmuneToCactus.clear(); getList("gameplay-mechanics.item.immune.cactus", new ArrayList<>()).forEach(key -> { -@@ -196,6 +198,8 @@ public class PurpurWorldConfig { +@@ -230,6 +232,8 @@ public class PurpurWorldConfig { Item item = IRegistry.ITEM.get(new MinecraftKey(key.toString())); if (item != Items.AIR) itemImmuneToFire.add(item); }); diff --git a/patches/Purpur/patches/server/0171-One-Punch-Man.patch b/patches/Purpur/patches/server/0171-One-Punch-Man.patch index 974022d8..a338b15b 100644 --- a/patches/Purpur/patches/server/0171-One-Punch-Man.patch +++ b/patches/Purpur/patches/server/0171-One-Punch-Man.patch @@ -45,10 +45,10 @@ index 132972755ac74838f3386e0fac5033380b71fce5..26fff0540e3d8863e83b0a60df220542 Object object; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index bd3a7b45746ec2981cd4f6373e7af11ac668bba6..2299ad06b89fc22832285be745de40192987dce2 100644 +index 6e37207d2c1d83a18d39cde4436b9b16c693df77..087ab9b2b9be1a02f472563226fb7d8fb96a4dc3 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -274,6 +274,7 @@ public class PurpurWorldConfig { +@@ -308,6 +308,7 @@ public class PurpurWorldConfig { public double voidDamageHeight = -64.0D; public int raidCooldownSeconds = 0; public int animalBreedingCooldownSeconds = 0; @@ -56,7 +56,7 @@ index bd3a7b45746ec2981cd4f6373e7af11ac668bba6..2299ad06b89fc22832285be745de4019 private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); alwaysTameInCreative = getBoolean("gameplay-mechanics.always-tame-in-creative", alwaysTameInCreative); -@@ -291,6 +292,7 @@ public class PurpurWorldConfig { +@@ -325,6 +326,7 @@ public class PurpurWorldConfig { voidDamageHeight = getDouble("gameplay-mechanics.void-damage-height", voidDamageHeight); raidCooldownSeconds = getInt("gameplay-mechanics.raid-cooldown-seconds", raidCooldownSeconds); animalBreedingCooldownSeconds = getInt("gameplay-mechanics.animal-breeding-cooldown-seconds", animalBreedingCooldownSeconds); diff --git a/patches/Purpur/patches/server/0172-Add-config-for-snow-on-blue-ice.patch b/patches/Purpur/patches/server/0172-Add-config-for-snow-on-blue-ice.patch index 88ee393d..f40427dc 100644 --- a/patches/Purpur/patches/server/0172-Add-config-for-snow-on-blue-ice.patch +++ b/patches/Purpur/patches/server/0172-Add-config-for-snow-on-blue-ice.patch @@ -29,10 +29,10 @@ index d44b88185ce58346007c6ef70b76f8e0df23e95c..4b7497acc5b26da48375625b4a31fb05 @Override diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 2299ad06b89fc22832285be745de40192987dce2..e1af2d86660f28798e5da8932f5b97b731eefbc7 100644 +index 087ab9b2b9be1a02f472563226fb7d8fb96a4dc3..c207b7004cd6da7de11bbe88ae7b84a1a9874bbc 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -431,6 +431,11 @@ public class PurpurWorldConfig { +@@ -465,6 +465,11 @@ public class PurpurWorldConfig { } } diff --git a/patches/Purpur/patches/server/0173-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch b/patches/Purpur/patches/server/0173-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch index 58cc111d..7a071516 100644 --- a/patches/Purpur/patches/server/0173-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch +++ b/patches/Purpur/patches/server/0173-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch @@ -43,10 +43,10 @@ index 9896d77381e7fadf1ef2619210713e190c1445d0..61512c6755f29cb2c228ae3e80b1e083 // Paper end if (entityhuman instanceof net.minecraft.server.level.EntityPlayer) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index e1af2d86660f28798e5da8932f5b97b731eefbc7..6d0a017eec94b85f3d033c7cb494a82bdd18a2d0 100644 +index c207b7004cd6da7de11bbe88ae7b84a1a9874bbc..ecbf06ad3c649f1175ac0885591ed6f1190c737a 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -170,6 +170,10 @@ public class PurpurWorldConfig { +@@ -204,6 +204,10 @@ public class PurpurWorldConfig { public List itemImmuneToFire = new ArrayList<>(); public boolean dontRunWithScissors = false; public double scissorsRunningDamage = 1D; @@ -57,7 +57,7 @@ index e1af2d86660f28798e5da8932f5b97b731eefbc7..6d0a017eec94b85f3d033c7cb494a82b private void itemSettings() { itemImmuneToCactus.clear(); getList("gameplay-mechanics.item.immune.cactus", new ArrayList<>()).forEach(key -> { -@@ -200,6 +204,10 @@ public class PurpurWorldConfig { +@@ -234,6 +238,10 @@ public class PurpurWorldConfig { }); dontRunWithScissors = getBoolean("gameplay-mechanics.item.shears.damage-if-sprinting", dontRunWithScissors); scissorsRunningDamage = getDouble("gameplay-mechanics.item.shears.sprinting-damage", scissorsRunningDamage); diff --git a/patches/Purpur/patches/server/0174-Config-to-ignore-nearby-mobs-when-sleeping.patch b/patches/Purpur/patches/server/0174-Config-to-ignore-nearby-mobs-when-sleeping.patch index 31e81d6c..80bc5392 100644 --- a/patches/Purpur/patches/server/0174-Config-to-ignore-nearby-mobs-when-sleeping.patch +++ b/patches/Purpur/patches/server/0174-Config-to-ignore-nearby-mobs-when-sleeping.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Config to ignore nearby mobs when sleeping diff --git a/src/main/java/net/minecraft/server/level/EntityPlayer.java b/src/main/java/net/minecraft/server/level/EntityPlayer.java -index 30bdb18bf89ab021a66c2a51e1543b71ae77fae8..0c796d04a2d6903639856865d2822d345d53d766 100644 +index 9c520e7600986b7b7df3af96a715c91c5347f30d..4ec18d28c0022614b0ef6900774ddd4bda814308 100644 --- a/src/main/java/net/minecraft/server/level/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/level/EntityPlayer.java -@@ -1443,7 +1443,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { +@@ -1441,7 +1441,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { return entitymonster.f((EntityHuman) this); }); @@ -18,10 +18,10 @@ index 30bdb18bf89ab021a66c2a51e1543b71ae77fae8..0c796d04a2d6903639856865d2822d34 } } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 6d0a017eec94b85f3d033c7cb494a82bdd18a2d0..a7cbfb08f3e855bff3acbdd6e8064a00b192ad88 100644 +index ecbf06ad3c649f1175ac0885591ed6f1190c737a..feff8cc3a8e38c67f06e08a593b51e99c4d8381f 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -283,6 +283,7 @@ public class PurpurWorldConfig { +@@ -317,6 +317,7 @@ public class PurpurWorldConfig { public int raidCooldownSeconds = 0; public int animalBreedingCooldownSeconds = 0; public boolean creativeOnePunch = false; @@ -29,7 +29,7 @@ index 6d0a017eec94b85f3d033c7cb494a82bdd18a2d0..a7cbfb08f3e855bff3acbdd6e8064a00 private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); alwaysTameInCreative = getBoolean("gameplay-mechanics.always-tame-in-creative", alwaysTameInCreative); -@@ -301,6 +302,7 @@ public class PurpurWorldConfig { +@@ -335,6 +336,7 @@ public class PurpurWorldConfig { raidCooldownSeconds = getInt("gameplay-mechanics.raid-cooldown-seconds", raidCooldownSeconds); animalBreedingCooldownSeconds = getInt("gameplay-mechanics.animal-breeding-cooldown-seconds", animalBreedingCooldownSeconds); creativeOnePunch = getBoolean("gameplay-mechanics.player.one-punch-in-creative", creativeOnePunch); diff --git a/patches/Purpur/patches/server/0175-Config-for-Enderman-to-aggro-spawned-Endermites.patch b/patches/Purpur/patches/server/0175-Config-for-Enderman-to-aggro-spawned-Endermites.patch index 52b2bc61..54951ea3 100644 --- a/patches/Purpur/patches/server/0175-Config-for-Enderman-to-aggro-spawned-Endermites.patch +++ b/patches/Purpur/patches/server/0175-Config-for-Enderman-to-aggro-spawned-Endermites.patch @@ -19,10 +19,10 @@ index d290787f74579dd4c138eb827e44544814bfe315..46143a710e057378ebe0ad644de27560 private int br = Integer.MIN_VALUE; private int bs; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index a7cbfb08f3e855bff3acbdd6e8064a00b192ad88..0f3b0bfef14c5533a45bd44eaa6899779b5820d0 100644 +index feff8cc3a8e38c67f06e08a593b51e99c4d8381f..76d63988772452525ece58e5d717fd84f3bad2f6 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -835,6 +835,7 @@ public class PurpurWorldConfig { +@@ -869,6 +869,7 @@ public class PurpurWorldConfig { public boolean endermanDespawnEvenWithBlock = false; public double endermanMaxHealth = 40.0D; public boolean endermanTakeDamageFromWater = true; @@ -30,7 +30,7 @@ index a7cbfb08f3e855bff3acbdd6e8064a00b192ad88..0f3b0bfef14c5533a45bd44eaa689977 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -848,6 +849,7 @@ public class PurpurWorldConfig { +@@ -882,6 +883,7 @@ public class PurpurWorldConfig { } endermanMaxHealth = getDouble("mobs.enderman.attributes.max_health", endermanMaxHealth); endermanTakeDamageFromWater = getBoolean("mobs.enderman.takes-damage-from-water", endermanTakeDamageFromWater); diff --git a/patches/Purpur/patches/server/0176-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch b/patches/Purpur/patches/server/0176-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch index b8a7973b..2327ecb7 100644 --- a/patches/Purpur/patches/server/0176-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch +++ b/patches/Purpur/patches/server/0176-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch @@ -28,10 +28,10 @@ index 46143a710e057378ebe0ad644de275604b11d886..0ed19429c1a9021e636fdfffa582b4e0 } else { Vec3D vec3d = entityhuman.f(1.0F).d(); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 0f3b0bfef14c5533a45bd44eaa6899779b5820d0..6e26a462e8b376d3a8fe12d2f14df226fc5d1a49 100644 +index 76d63988772452525ece58e5d717fd84f3bad2f6..673d55a3458dcb4bca61779757d3329598bd305d 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -836,6 +836,8 @@ public class PurpurWorldConfig { +@@ -870,6 +870,8 @@ public class PurpurWorldConfig { public double endermanMaxHealth = 40.0D; public boolean endermanTakeDamageFromWater = true; public boolean endermanAggroSpawnedEndermites = false; @@ -40,7 +40,7 @@ index 0f3b0bfef14c5533a45bd44eaa6899779b5820d0..6e26a462e8b376d3a8fe12d2f14df226 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -850,6 +852,8 @@ public class PurpurWorldConfig { +@@ -884,6 +886,8 @@ public class PurpurWorldConfig { endermanMaxHealth = getDouble("mobs.enderman.attributes.max_health", endermanMaxHealth); endermanTakeDamageFromWater = getBoolean("mobs.enderman.takes-damage-from-water", endermanTakeDamageFromWater); endermanAggroSpawnedEndermites = getBoolean("mobs.enderman.aggressive-towards-spawned-endermites", endermanAggroSpawnedEndermites); diff --git a/patches/Purpur/patches/server/0177-Tick-fluids-config.patch b/patches/Purpur/patches/server/0177-Tick-fluids-config.patch index d1c0fb45..bdd95da4 100644 --- a/patches/Purpur/patches/server/0177-Tick-fluids-config.patch +++ b/patches/Purpur/patches/server/0177-Tick-fluids-config.patch @@ -36,10 +36,10 @@ index 0ed8d938b8fafdb03e01a00a201ba3f8597ac6e9..0eff89bf9e114271c34c37cad1b98691 } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 6e26a462e8b376d3a8fe12d2f14df226fc5d1a49..8491e9198c302bf62648498d84f62b505695cfef 100644 +index 673d55a3458dcb4bca61779757d3329598bd305d..4d40319188375b71cb7feeecf1907693c3cbd021 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -261,6 +261,11 @@ public class PurpurWorldConfig { +@@ -295,6 +295,11 @@ public class PurpurWorldConfig { witherSkullDespawnRate = getInt("gameplay-mechanics.projectile-despawn-rates.wither_skull", witherSkullDespawnRate); } diff --git a/patches/Purpur/patches/server/0178-Config-to-disable-Llama-caravans.patch b/patches/Purpur/patches/server/0178-Config-to-disable-Llama-caravans.patch index 7fb928c9..7dedb9e6 100644 --- a/patches/Purpur/patches/server/0178-Config-to-disable-Llama-caravans.patch +++ b/patches/Purpur/patches/server/0178-Config-to-disable-Llama-caravans.patch @@ -32,10 +32,10 @@ index 762fed5ba27474951c1962e6f034e8494b1035d6..567a1da3c167c20ae3fb86c2a1f3608e this.bB.bC = this; } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 8491e9198c302bf62648498d84f62b505695cfef..61361ca712cdc92c76b64dd2a87cea0080edc02e 100644 +index 4d40319188375b71cb7feeecf1907693c3cbd021..1ac22df208eccccfa290c1e3e5a15b6d2b675b9e 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1075,6 +1075,7 @@ public class PurpurWorldConfig { +@@ -1109,6 +1109,7 @@ public class PurpurWorldConfig { public boolean llamaRidable = false; public boolean llamaRidableInWater = false; @@ -43,7 +43,7 @@ index 8491e9198c302bf62648498d84f62b505695cfef..61361ca712cdc92c76b64dd2a87cea00 public int llamaBreedingTicks = 6000; public double llamaMaxHealthMin = 15.0D; public double llamaMaxHealthMax = 30.0D; -@@ -1085,6 +1086,7 @@ public class PurpurWorldConfig { +@@ -1119,6 +1120,7 @@ public class PurpurWorldConfig { private void llamaSettings() { llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable); llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater); diff --git a/patches/Purpur/patches/server/0179-Config-to-make-Creepers-explode-on-death.patch b/patches/Purpur/patches/server/0179-Config-to-make-Creepers-explode-on-death.patch index 76c83cf7..35b5b280 100644 --- a/patches/Purpur/patches/server/0179-Config-to-make-Creepers-explode-on-death.patch +++ b/patches/Purpur/patches/server/0179-Config-to-make-Creepers-explode-on-death.patch @@ -57,10 +57,10 @@ index 62d40f726355283baddde349c52bee0599bb293c..014091f35ee5aac0ee2f155ccec2daf5 private void createEffectCloud() { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 61361ca712cdc92c76b64dd2a87cea0080edc02e..1adedace256828ba34c643eaf2b480601ede1b2b 100644 +index 1ac22df208eccccfa290c1e3e5a15b6d2b675b9e..f32c331bb904326070cacf00337a207af8509226 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -711,12 +711,14 @@ public class PurpurWorldConfig { +@@ -745,12 +745,14 @@ public class PurpurWorldConfig { public boolean creeperRidable = false; public boolean creeperRidableInWater = false; diff --git a/patches/Purpur/patches/server/0180-Configurable-ravager-griefable-blocks-list.patch b/patches/Purpur/patches/server/0180-Configurable-ravager-griefable-blocks-list.patch index 8c06d7f8..4dd46255 100644 --- a/patches/Purpur/patches/server/0180-Configurable-ravager-griefable-blocks-list.patch +++ b/patches/Purpur/patches/server/0180-Configurable-ravager-griefable-blocks-list.patch @@ -31,10 +31,10 @@ index 5f8366beeaac7153a0421554f9bf91fbf265edca..7fca4d1713e8061d9de825cdae484012 } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 1adedace256828ba34c643eaf2b480601ede1b2b..58f2440498039bfa0af030f34372d0b1e6e82bed 100644 +index f32c331bb904326070cacf00337a207af8509226..1199e500376d442ffdc5028bda3169ec7bc29985 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1416,6 +1416,7 @@ public class PurpurWorldConfig { +@@ -1450,6 +1450,7 @@ public class PurpurWorldConfig { public boolean ravagerRidableInWater = false; public boolean ravagerBypassMobGriefing = false; public double ravagerMaxHealth = 100.0D; @@ -42,7 +42,7 @@ index 1adedace256828ba34c643eaf2b480601ede1b2b..58f2440498039bfa0af030f34372d0b1 private void ravagerSettings() { ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable); ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater); -@@ -1426,6 +1427,23 @@ public class PurpurWorldConfig { +@@ -1460,6 +1461,23 @@ public class PurpurWorldConfig { set("mobs.ravager.attributes.max_health", oldValue); } ravagerMaxHealth = getDouble("mobs.ravager.attributes.max_health", ravagerMaxHealth); diff --git a/patches/Purpur/patches/server/0181-Sneak-to-bulk-process-composter.patch b/patches/Purpur/patches/server/0181-Sneak-to-bulk-process-composter.patch index 6c353546..36d164a2 100644 --- a/patches/Purpur/patches/server/0181-Sneak-to-bulk-process-composter.patch +++ b/patches/Purpur/patches/server/0181-Sneak-to-bulk-process-composter.patch @@ -44,10 +44,10 @@ index e4e519ba773388b8d26a8f794a6eff51e3d8f72e..c0b235d5edf3cd14021696d1b4f76ce3 // CraftBukkit start double rand = worldserver.getRandom().nextDouble(); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 58f2440498039bfa0af030f34372d0b1e6e82bed..0e1f6e0bda27547a59c2116f9eec3e29be9f36eb 100644 +index 1199e500376d442ffdc5028bda3169ec7bc29985..e5fc4fbd6bb417607ced21d84ca0e85804d107cb 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -456,6 +456,11 @@ public class PurpurWorldConfig { +@@ -490,6 +490,11 @@ public class PurpurWorldConfig { chestOpenWithBlockOnTop = getBoolean("blocks.chest.open-with-solid-block-on-top", chestOpenWithBlockOnTop); } diff --git a/patches/Purpur/patches/server/0182-Config-for-skipping-night.patch b/patches/Purpur/patches/server/0182-Config-for-skipping-night.patch index fd563847..8f6b80cd 100644 --- a/patches/Purpur/patches/server/0182-Config-for-skipping-night.patch +++ b/patches/Purpur/patches/server/0182-Config-for-skipping-night.patch @@ -18,10 +18,10 @@ index 866a6f3aca0f30850da1ef47230eb739b0f92cdc..13c90105d62a599120e9872383a0c2b9 })) { // CraftBukkit start diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 0e1f6e0bda27547a59c2116f9eec3e29be9f36eb..8bb134ee7be7ff52cda4807f7c9a393f92b8fbc1 100644 +index e5fc4fbd6bb417607ced21d84ca0e85804d107cb..2932b5f7a5a10dcc83755066c692f5edf7fafa1a 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -289,6 +289,7 @@ public class PurpurWorldConfig { +@@ -323,6 +323,7 @@ public class PurpurWorldConfig { public int animalBreedingCooldownSeconds = 0; public boolean creativeOnePunch = false; public boolean playerSleepNearMonsters = false; @@ -29,7 +29,7 @@ index 0e1f6e0bda27547a59c2116f9eec3e29be9f36eb..8bb134ee7be7ff52cda4807f7c9a393f private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); alwaysTameInCreative = getBoolean("gameplay-mechanics.always-tame-in-creative", alwaysTameInCreative); -@@ -308,6 +309,7 @@ public class PurpurWorldConfig { +@@ -342,6 +343,7 @@ public class PurpurWorldConfig { animalBreedingCooldownSeconds = getInt("gameplay-mechanics.animal-breeding-cooldown-seconds", animalBreedingCooldownSeconds); creativeOnePunch = getBoolean("gameplay-mechanics.player.one-punch-in-creative", creativeOnePunch); playerSleepNearMonsters = getBoolean("gameplay-mechanics.player.sleep-ignore-nearby-mobs", playerSleepNearMonsters); diff --git a/patches/Purpur/patches/server/0183-Add-config-for-villager-trading.patch b/patches/Purpur/patches/server/0183-Add-config-for-villager-trading.patch index 9a9c16e7..e28397b9 100644 --- a/patches/Purpur/patches/server/0183-Add-config-for-villager-trading.patch +++ b/patches/Purpur/patches/server/0183-Add-config-for-villager-trading.patch @@ -31,10 +31,10 @@ index b84916c0c58fd208ef5547299f8db8462d1c42fe..0b6b6aa6b358759c45bbcf4a9ffa5377 this.openTrade(entityhuman, this.getScoreboardDisplayName(), 1); } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 8bb134ee7be7ff52cda4807f7c9a393f92b8fbc1..e17bf229f8bca03f5a2c78203d1e95093ff9bac1 100644 +index 2932b5f7a5a10dcc83755066c692f5edf7fafa1a..82f1a60b57c94f4e301b8048c6b1de15c9f7b41f 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1726,6 +1726,7 @@ public class PurpurWorldConfig { +@@ -1760,6 +1760,7 @@ public class PurpurWorldConfig { public boolean villagerClericsFarmWarts = false; public boolean villagerClericFarmersThrowWarts = true; public double villagerMaxHealth = 20.0D; @@ -42,7 +42,7 @@ index 8bb134ee7be7ff52cda4807f7c9a393f92b8fbc1..e17bf229f8bca03f5a2c78203d1e9509 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1753,6 +1754,7 @@ public class PurpurWorldConfig { +@@ -1787,6 +1788,7 @@ public class PurpurWorldConfig { set("mobs.villager.attributes.max_health", oldValue); } villagerMaxHealth = getDouble("mobs.villager.attributes.max_health", villagerMaxHealth); @@ -50,7 +50,7 @@ index 8bb134ee7be7ff52cda4807f7c9a393f92b8fbc1..e17bf229f8bca03f5a2c78203d1e9509 } public boolean villagerTraderRidable = false; -@@ -1760,6 +1762,7 @@ public class PurpurWorldConfig { +@@ -1794,6 +1796,7 @@ public class PurpurWorldConfig { public boolean villagerTraderCanBeLeashed = false; public boolean villagerTraderFollowEmeraldBlock = false; public double villagerTraderMaxHealth = 20.0D; @@ -58,7 +58,7 @@ index 8bb134ee7be7ff52cda4807f7c9a393f92b8fbc1..e17bf229f8bca03f5a2c78203d1e9509 private void villagerTraderSettings() { villagerTraderRidable = getBoolean("mobs.wandering_trader.ridable", villagerTraderRidable); villagerTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", villagerTraderRidableInWater); -@@ -1771,6 +1774,7 @@ public class PurpurWorldConfig { +@@ -1805,6 +1808,7 @@ public class PurpurWorldConfig { set("mobs.wandering_trader.attributes.max_health", oldValue); } villagerTraderMaxHealth = getDouble("mobs.wandering_trader.attributes.max_health", villagerTraderMaxHealth); diff --git a/patches/Purpur/patches/server/0184-Allow-infinity-on-crossbows.patch b/patches/Purpur/patches/server/0184-Allow-infinity-on-crossbows.patch index 60eea7a9..564f3827 100644 --- a/patches/Purpur/patches/server/0184-Allow-infinity-on-crossbows.patch +++ b/patches/Purpur/patches/server/0184-Allow-infinity-on-crossbows.patch @@ -63,7 +63,7 @@ index cf41863bc8b0be9f2a73ca2dd02a4d414d4f230e..2b75432d74df4f627d08d32c6553bd1a private EnchantmentSlotType() {} diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 70ac948a91c1d4f9cffeac982c505cd1c3908cd3..844f5d7fee4ea06a5761e8fb6d54357d58bff8f5 100644 +index 116f17bcc02d15951fa248c6ce4e2cf3617034d4..f469b27273883c56cee98fee464c4d1a32a31478 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -231,6 +231,7 @@ public class PurpurConfig { diff --git a/patches/Purpur/patches/server/0185-Drowning-Settings.patch b/patches/Purpur/patches/server/0185-Drowning-Settings.patch index 7675eeb9..03420f72 100644 --- a/patches/Purpur/patches/server/0185-Drowning-Settings.patch +++ b/patches/Purpur/patches/server/0185-Drowning-Settings.patch @@ -40,10 +40,10 @@ index 93f8aa6d40b1eba6535f170bf0a79417d7d21069..8db61c8b392c8e95f6896b6e48e4d74d } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index e17bf229f8bca03f5a2c78203d1e95093ff9bac1..c09c3a326e6ea80f3037a3d9fd6b78f03d8a7ecd 100644 +index 82f1a60b57c94f4e301b8048c6b1de15c9f7b41f..0c79d6af4604d900bfa33f544ac0e0e56932de50 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -2001,6 +2001,15 @@ public class PurpurWorldConfig { +@@ -2035,6 +2035,15 @@ public class PurpurWorldConfig { imposeTeleportRestrictionsOnGateways = getBoolean("gameplay-mechanics.impose-teleport-restrictions-on-gateways", imposeTeleportRestrictionsOnGateways); } diff --git a/patches/Purpur/patches/server/0186-Break-individual-slabs-when-sneaking.patch b/patches/Purpur/patches/server/0186-Break-individual-slabs-when-sneaking.patch index 326e31f5..435ed3eb 100644 --- a/patches/Purpur/patches/server/0186-Break-individual-slabs-when-sneaking.patch +++ b/patches/Purpur/patches/server/0186-Break-individual-slabs-when-sneaking.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Break individual slabs when sneaking diff --git a/src/main/java/net/minecraft/server/level/PlayerInteractManager.java b/src/main/java/net/minecraft/server/level/PlayerInteractManager.java -index 238e143277eb75db6d96e1c52db810eb8a9423de..ddff3a31a564cddcebad4531ca1db66fd0949796 100644 +index 1746a8c1750b494c47f9f46e83b248d8129d2630..7302554063ac7b5dedaff895cba33b70234008e6 100644 --- a/src/main/java/net/minecraft/server/level/PlayerInteractManager.java +++ b/src/main/java/net/minecraft/server/level/PlayerInteractManager.java -@@ -409,6 +409,8 @@ public class PlayerInteractManager { +@@ -410,6 +410,8 @@ public class PlayerInteractManager { } return false; } @@ -57,10 +57,10 @@ index 12c0fa5072755fd2a4f575b0cc5e4222617490ce..94965b216d50b29b95f09fa9019c177b + // Purpur end } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index c09c3a326e6ea80f3037a3d9fd6b78f03d8a7ecd..8054d6242358dc2bf212c7aff55ebf011c22e474 100644 +index 0c79d6af4604d900bfa33f544ac0e0e56932de50..a927869cdb6e935226a20200827bd297aac4e8b2 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -529,6 +529,11 @@ public class PurpurWorldConfig { +@@ -563,6 +563,11 @@ public class PurpurWorldConfig { signRightClickEdit = getBoolean("blocks.sign.right-click-edit", signRightClickEdit); } diff --git a/patches/Purpur/patches/server/0187-Config-to-disable-hostile-mob-spawn-on-ice.patch b/patches/Purpur/patches/server/0187-Config-to-disable-hostile-mob-spawn-on-ice.patch index 87dfbbf0..cc0a2cb2 100644 --- a/patches/Purpur/patches/server/0187-Config-to-disable-hostile-mob-spawn-on-ice.patch +++ b/patches/Purpur/patches/server/0187-Config-to-disable-hostile-mob-spawn-on-ice.patch @@ -22,10 +22,10 @@ index c484e27650364b6537fe6b2e8e14de98382b86a3..096a7b76e0ae42ba8b859159e20fb72e return false; } else { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 8054d6242358dc2bf212c7aff55ebf011c22e474..aa401d246373fba0d6c66bff5fda5febdc59480a 100644 +index a927869cdb6e935226a20200827bd297aac4e8b2..2f544d8bb44a1bee18468cb8611591413507c521 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -449,8 +449,12 @@ public class PurpurWorldConfig { +@@ -483,8 +483,12 @@ public class PurpurWorldConfig { } public boolean snowOnBlueIce = true; diff --git a/patches/Purpur/patches/server/0188-Config-to-show-Armor-Stand-arms-on-spawn.patch b/patches/Purpur/patches/server/0188-Config-to-show-Armor-Stand-arms-on-spawn.patch index 26dab009..717ade0e 100644 --- a/patches/Purpur/patches/server/0188-Config-to-show-Armor-Stand-arms-on-spawn.patch +++ b/patches/Purpur/patches/server/0188-Config-to-show-Armor-Stand-arms-on-spawn.patch @@ -17,7 +17,7 @@ index ecb797e67554d30e35b3aca4d0fc9b0e3f6c1a50..ddc1c3383cdc32fa832485f3922c7418 public EntityArmorStand(World world, double d0, double d1, double d2) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index aa401d246373fba0d6c66bff5fda5febdc59480a..40771bafbcf3b65e3a9d6397d492296eee01c85b 100644 +index 2f544d8bb44a1bee18468cb8611591413507c521..47f5be1a1adb8cf98b84324e346cbf60099840c0 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -114,6 +114,7 @@ public class PurpurWorldConfig { @@ -35,4 +35,4 @@ index aa401d246373fba0d6c66bff5fda5febdc59480a..40771bafbcf3b65e3a9d6397d492296e + armorstandPlaceWithArms = getBoolean("gameplay-mechanics.armorstand.place-with-arms-visible", armorstandPlaceWithArms); } - public boolean controllableMinecarts = false; + public double minecartMaxSpeed = 0.4D; diff --git a/patches/Purpur/patches/server/0189-Option-to-make-doors-require-redstone.patch b/patches/Purpur/patches/server/0189-Option-to-make-doors-require-redstone.patch index 6e62dcc8..a59f6c32 100644 --- a/patches/Purpur/patches/server/0189-Option-to-make-doors-require-redstone.patch +++ b/patches/Purpur/patches/server/0189-Option-to-make-doors-require-redstone.patch @@ -70,10 +70,10 @@ index 453b46851f021d4285be123bedc8982fc8844da2..2a7695c899b12c87ab89d00116b6f0dd + // Purpur end } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 40771bafbcf3b65e3a9d6397d492296eee01c85b..be6637a7de0dc9514af5f0d30e1095c95652e26b 100644 +index 47f5be1a1adb8cf98b84324e346cbf60099840c0..813752be37c5f2956c4f10dcd974e4437020906c 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -450,6 +450,16 @@ public class PurpurWorldConfig { +@@ -484,6 +484,16 @@ public class PurpurWorldConfig { } } diff --git a/patches/Purpur/patches/server/0190-Config-to-allow-for-unsafe-enchants.patch b/patches/Purpur/patches/server/0190-Config-to-allow-for-unsafe-enchants.patch index f655bdf1..998e7425 100644 --- a/patches/Purpur/patches/server/0190-Config-to-allow-for-unsafe-enchants.patch +++ b/patches/Purpur/patches/server/0190-Config-to-allow-for-unsafe-enchants.patch @@ -27,7 +27,7 @@ index 96991d77cfef2ef0fdada1a831619293ffe37e70..4d85ae98369039bcbb5ed5acb2d281bd ++j; } else if (collection.size() == 1) { diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 844f5d7fee4ea06a5761e8fb6d54357d58bff8f5..6355f246809982f6da34671be22066a83cfba42c 100644 +index f469b27273883c56cee98fee464c4d1a32a31478..b410d38a431f79971ca183b476115d9e85e1cd6e 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -232,6 +232,7 @@ public class PurpurConfig { diff --git a/patches/Purpur/patches/server/0191-Configurable-sponge-absorption.patch b/patches/Purpur/patches/server/0191-Configurable-sponge-absorption.patch index d4d059d4..e3553be7 100644 --- a/patches/Purpur/patches/server/0191-Configurable-sponge-absorption.patch +++ b/patches/Purpur/patches/server/0191-Configurable-sponge-absorption.patch @@ -43,10 +43,10 @@ index d80eee47390ab202eea0368571421bbc94655ab1..b36536d4cc95797c59549f5db1f67b34 } } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index be6637a7de0dc9514af5f0d30e1095c95652e26b..1584d1e5d0ae6adda1ace0fb8abeb9bb92771bed 100644 +index 813752be37c5f2956c4f10dcd974e4437020906c..e2504bf2846b66563936fc9329561da66e8ae985 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -555,6 +555,13 @@ public class PurpurWorldConfig { +@@ -589,6 +589,13 @@ public class PurpurWorldConfig { spawnerDeactivateByRedstone = getBoolean("blocks.spawner.deactivate-by-redstone", spawnerDeactivateByRedstone); } diff --git a/patches/Purpur/patches/server/0192-Projectile-offset-config.patch b/patches/Purpur/patches/server/0192-Projectile-offset-config.patch index 3b224d82..3f9fbdde 100644 --- a/patches/Purpur/patches/server/0192-Projectile-offset-config.patch +++ b/patches/Purpur/patches/server/0192-Projectile-offset-config.patch @@ -96,10 +96,10 @@ index 0711d195c654edef5875f587e391bacfdea096da..2341c98859faa61662d7ed343e6ed157 entitythrowntrident.fromPlayer = EntityArrow.PickupStatus.CREATIVE_ONLY; } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 1584d1e5d0ae6adda1ace0fb8abeb9bb92771bed..adbb934ce58a0ece9839d35369f830e4028c197c 100644 +index e2504bf2846b66563936fc9329561da66e8ae985..75cae460f560a3825915a96126f28ce3d4f9e182 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -273,6 +273,23 @@ public class PurpurWorldConfig { +@@ -307,6 +307,23 @@ public class PurpurWorldConfig { snowballDamage = getInt("gameplay-mechanics.projectile-damage.snowball", snowballDamage); } diff --git a/patches/Purpur/patches/server/0193-Config-for-powered-rail-activation-distance.patch b/patches/Purpur/patches/server/0193-Config-for-powered-rail-activation-distance.patch index 5d04fe0e..5c008316 100644 --- a/patches/Purpur/patches/server/0193-Config-for-powered-rail-activation-distance.patch +++ b/patches/Purpur/patches/server/0193-Config-for-powered-rail-activation-distance.patch @@ -18,10 +18,10 @@ index b26e168fbf49bbe7ec981b5b186c94ca67827f4a..bc91c96a29dcc60c578b342055b8eaf3 } else { int j = blockposition.getX(); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index adbb934ce58a0ece9839d35369f830e4028c197c..a3cca259f03d6ee0551bd075ceaa91ffb8fa21fc 100644 +index 75cae460f560a3825915a96126f28ce3d4f9e182..3b380cd47061724b20e153d97bac865d344a2eec 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -539,6 +539,11 @@ public class PurpurWorldConfig { +@@ -573,6 +573,11 @@ public class PurpurWorldConfig { lavaSpeedNotNether = getInt("blocks.lava.speed.not-nether", lavaSpeedNotNether); } diff --git a/patches/Purpur/patches/server/0194-Piglin-portal-spawn-modifier.patch b/patches/Purpur/patches/server/0194-Piglin-portal-spawn-modifier.patch index a12d35fb..fa7f9573 100644 --- a/patches/Purpur/patches/server/0194-Piglin-portal-spawn-modifier.patch +++ b/patches/Purpur/patches/server/0194-Piglin-portal-spawn-modifier.patch @@ -31,10 +31,10 @@ index ac5ce96ab62ec210816e7af85a4269073b7a9270..84140e01eba780ffb8289bff75d1b58a blockposition = blockposition.down(); } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index a3cca259f03d6ee0551bd075ceaa91ffb8fa21fc..689656dcfa823e5478f7c053137ee38c6ef19c00 100644 +index 3b380cd47061724b20e153d97bac865d344a2eec..f3cde1e3d06da82b7a54898df5d331f279b2a954 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1373,6 +1373,7 @@ public class PurpurWorldConfig { +@@ -1407,6 +1407,7 @@ public class PurpurWorldConfig { public boolean piglinRidable = false; public boolean piglinRidableInWater = false; public double piglinMaxHealth = 16.0D; @@ -42,7 +42,7 @@ index a3cca259f03d6ee0551bd075ceaa91ffb8fa21fc..689656dcfa823e5478f7c053137ee38c private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -1382,6 +1383,7 @@ public class PurpurWorldConfig { +@@ -1416,6 +1417,7 @@ public class PurpurWorldConfig { set("mobs.piglin.attributes.max_health", oldValue); } piglinMaxHealth = getDouble("mobs.piglin.attributes.max_health", piglinMaxHealth); diff --git a/patches/Purpur/patches/server/0195-Config-to-change-max-number-of-bees.patch b/patches/Purpur/patches/server/0195-Config-to-change-max-number-of-bees.patch new file mode 100644 index 00000000..63d5396a --- /dev/null +++ b/patches/Purpur/patches/server/0195-Config-to-change-max-number-of-bees.patch @@ -0,0 +1,39 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: DoctaEnkoda +Date: Thu, 29 Apr 2021 19:37:48 +0200 +Subject: [PATCH] Config to change max number of bees + + +diff --git a/src/main/java/net/minecraft/world/level/block/entity/TileEntityBeehive.java b/src/main/java/net/minecraft/world/level/block/entity/TileEntityBeehive.java +index 3cbcbb028b864f1d14e004628bbc0829f71ab476..3ce6a1b1f75443d1d1c6740d6f3f730f06a34f6a 100644 +--- a/src/main/java/net/minecraft/world/level/block/entity/TileEntityBeehive.java ++++ b/src/main/java/net/minecraft/world/level/block/entity/TileEntityBeehive.java +@@ -29,7 +29,7 @@ public class TileEntityBeehive extends TileEntity implements ITickable { + private final List bees = Lists.newArrayList(); + @Nullable + public BlockPosition flowerPos = null; +- public int maxBees = 3; // CraftBukkit - allow setting max amount of bees a hive can hold ++ public int maxBees = net.pl3x.purpur.PurpurConfig.beeInsideBeeHive; // CraftBukkit - allow setting max amount of bees a hive can hold // Purpur - Change max bees inside beehive and bee_nest + + public TileEntityBeehive() { + super(TileEntityTypes.BEEHIVE); +diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java +index b410d38a431f79971ca183b476115d9e85e1cd6e..c0ef121956ad42bbb555eb8ee6c46b1845dd9e0d 100644 +--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java ++++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java +@@ -213,6 +213,7 @@ public class PurpurConfig { + public static boolean enderChestSixRows = false; + public static boolean enderChestPermissionRows = false; + public static boolean cryingObsidianValidForPortalFrame = false; ++ public static int beeInsideBeeHive = 3; + private static void blockSettings() { + if (version < 3) { + boolean oldValue = getBoolean("settings.barrel.packed-barrels", true); +@@ -228,6 +229,7 @@ public class PurpurConfig { + InventoryType.ENDER_CHEST.setDefaultSize(enderChestSixRows ? 54 : 27); + enderChestPermissionRows = getBoolean("settings.blocks.ender_chest.use-permissions-for-rows", enderChestPermissionRows); + cryingObsidianValidForPortalFrame = getBoolean("settings.blocks.crying_obsidian.valid-for-portal-frame", cryingObsidianValidForPortalFrame); ++ beeInsideBeeHive = getInt("settings.blocks.beehive.max-bees-inside", beeInsideBeeHive); + } + + public static boolean allowInfinityMending = false; diff --git a/patches/Purpur/patches/server/0196-Configurable-damage-settings-for-magma-blocks.patch b/patches/Purpur/patches/server/0196-Configurable-damage-settings-for-magma-blocks.patch new file mode 100644 index 00000000..fe2252a9 --- /dev/null +++ b/patches/Purpur/patches/server/0196-Configurable-damage-settings-for-magma-blocks.patch @@ -0,0 +1,68 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ben Kerllenevich +Date: Thu, 29 Apr 2021 14:06:29 -0400 +Subject: [PATCH] Configurable damage settings for magma blocks + + +diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java +index 706a1e2fadb0880277093be5de63f4dc0792fb72..f498bba37f3a40060a0847500b70e7cb55c745cd 100644 +--- a/src/main/java/net/minecraft/world/entity/Entity.java ++++ b/src/main/java/net/minecraft/world/entity/Entity.java +@@ -894,9 +894,15 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne + } + // CraftBukkit end + ++ // Purpur start ++ if (block instanceof net.minecraft.world.level.block.BlockMagma && this.onGround) { ++ block.stepOn(this.world, blockposition, this); ++ } else { + if (this.onGround && !this.bv()) { + block.stepOn(this.world, blockposition, this); + } ++ } ++ // Purpur end + + if (this.playStepSound() && !this.isPassenger()) { + double d0 = vec3d1.x; +diff --git a/src/main/java/net/minecraft/world/item/enchantment/EnchantmentManager.java b/src/main/java/net/minecraft/world/item/enchantment/EnchantmentManager.java +index b2d28c2bf0a9e93d38583e2d734c12fed4f63d5d..b889e5426781da215b5c26477015d04457142213 100644 +--- a/src/main/java/net/minecraft/world/item/enchantment/EnchantmentManager.java ++++ b/src/main/java/net/minecraft/world/item/enchantment/EnchantmentManager.java +@@ -241,7 +241,7 @@ public class EnchantmentManager { + return a(Enchantments.WATER_WORKER, entityliving) > 0; + } + +- public static boolean i(EntityLiving entityliving) { ++ public static boolean hasFrostWalker(EntityLiving entityLiving) { return i(entityLiving);} public static boolean i(EntityLiving entityliving) { // Purpur - OBFHELPER + return a(Enchantments.FROST_WALKER, entityliving) > 0; + } + +diff --git a/src/main/java/net/minecraft/world/level/block/BlockMagma.java b/src/main/java/net/minecraft/world/level/block/BlockMagma.java +index 4559085fa4452d3a9f59ed967ccb69a7823718e5..f1c53428c8f9eb0922fc16f152c6566d1a32cac0 100644 +--- a/src/main/java/net/minecraft/world/level/block/BlockMagma.java ++++ b/src/main/java/net/minecraft/world/level/block/BlockMagma.java +@@ -27,7 +27,7 @@ public class BlockMagma extends Block { + + @Override + public void stepOn(World world, BlockPosition blockposition, Entity entity) { +- if (!entity.isFireProof() && entity instanceof EntityLiving && !EnchantmentManager.i((EntityLiving) entity)) { ++ if (!entity.isFireProof() && entity instanceof EntityLiving && (world.purpurConfig.magmaBlockDamageWhenSneaking || !entity.isSneaking()) && (world.purpurConfig.magmaBlockDamageWithFrostWalker || !EnchantmentManager.hasFrostWalker((EntityLiving) entity))) { // Purpur + org.bukkit.craftbukkit.event.CraftEventFactory.blockDamage = world.getWorld().getBlockAt(blockposition.getX(), blockposition.getY(), blockposition.getZ()); // CraftBukkit + entity.damageEntity(DamageSource.HOT_FLOOR, 1.0F); + org.bukkit.craftbukkit.event.CraftEventFactory.blockDamage = null; // CraftBukkit +diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +index f3cde1e3d06da82b7a54898df5d331f279b2a954..78e39c9424c296bf07f89d63ce42b02b96c2cd35 100644 +--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java ++++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +@@ -2124,4 +2124,11 @@ public class PurpurWorldConfig { + baseCrystalExplosionEffect = Explosion.Effect.DESTROY; + } + } ++ ++ public boolean magmaBlockDamageWhenSneaking = false; ++ public boolean magmaBlockDamageWithFrostWalker = false; ++ private void magmaBlockSettings() { ++ magmaBlockDamageWhenSneaking = getBoolean("blocks.magma-block.damage-when-sneaking", magmaBlockDamageWhenSneaking); ++ magmaBlockDamageWithFrostWalker = getBoolean("blocks.magma-block.damage-with-frost-walker", magmaBlockDamageWithFrostWalker); ++ } + } diff --git a/patches/Purpur/patches/server/0197-Config-for-wither-explosion-radius.patch b/patches/Purpur/patches/server/0197-Config-for-wither-explosion-radius.patch new file mode 100644 index 00000000..478a8889 --- /dev/null +++ b/patches/Purpur/patches/server/0197-Config-for-wither-explosion-radius.patch @@ -0,0 +1,39 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ben Kerllenevich +Date: Thu, 29 Apr 2021 14:39:07 -0400 +Subject: [PATCH] Config for wither explosion radius + + +diff --git a/src/main/java/net/minecraft/world/entity/projectile/EntityWitherSkull.java b/src/main/java/net/minecraft/world/entity/projectile/EntityWitherSkull.java +index 616b5267d1d94b2be37ec48983b45e4478502fb5..052cffb156e4e6f31df3935fd8312eb37e3b7019 100644 +--- a/src/main/java/net/minecraft/world/entity/projectile/EntityWitherSkull.java ++++ b/src/main/java/net/minecraft/world/entity/projectile/EntityWitherSkull.java +@@ -98,7 +98,7 @@ public class EntityWitherSkull extends EntityFireball { + + // CraftBukkit start + // this.world.createExplosion(this, this.locX(), this.locY(), this.locZ(), 1.0F, false, explosion_effect); +- ExplosionPrimeEvent event = new ExplosionPrimeEvent(this.getBukkitEntity(), 1.0F, false); ++ ExplosionPrimeEvent event = new ExplosionPrimeEvent(this.getBukkitEntity(), world.purpurConfig.witherExplosionRadius, false); // Purpur + this.world.getServer().getPluginManager().callEvent(event); + + if (!event.isCancelled()) { +diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +index 78e39c9424c296bf07f89d63ce42b02b96c2cd35..69d6ced8e583a3a0625ced9d444caca21fa80723 100644 +--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java ++++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +@@ -1901,6 +1901,7 @@ public class PurpurWorldConfig { + public int witherHealthRegenDelay = 20; + public double witherMaxHealth = 300.0D; + public boolean witherCanRideVehicles = false; ++ public float witherExplosionRadius = 1.0F; + private void witherSettings() { + witherRidable = getBoolean("mobs.wither.ridable", witherRidable); + witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); +@@ -1919,6 +1920,7 @@ public class PurpurWorldConfig { + } + witherMaxHealth = getDouble("mobs.wither.attributes.max_health", witherMaxHealth); + witherCanRideVehicles = getBoolean("mobs.wither.can-ride-vehicles", witherCanRideVehicles); ++ witherExplosionRadius = (float) getDouble("mobs.wither.explosion-radius", witherExplosionRadius); + } + + public boolean witherSkeletonRidable = false; diff --git a/patches/Tuinity/patches/server/0009-Delay-chunk-unloads.patch b/patches/Tuinity/patches/server/0009-Delay-chunk-unloads.patch index b4e99f85..9d222536 100644 --- a/patches/Tuinity/patches/server/0009-Delay-chunk-unloads.patch +++ b/patches/Tuinity/patches/server/0009-Delay-chunk-unloads.patch @@ -247,7 +247,7 @@ index 3c804c7b20a14ea6e510810e2be10c1cc89ff5c1..47da7efffde2e6d63c1a064b950abf81 return new TicketType<>(s, comparator, 0L); } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 80de9f687d9acd7425e7c8a453c2759450869497..88786a1b498f663a0bb5e9025f54f3b6122e9b58 100644 +index 3b3eda95c0ff8b129adedbae6561bba2d01c2f3a..03f74fb19e93620e057e71ac0c6c368e81aa532e 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -505,6 +505,7 @@ public class CraftWorld implements World { diff --git a/patches/Tuinity/patches/server/0011-Lag-compensate-block-breaking.patch b/patches/Tuinity/patches/server/0011-Lag-compensate-block-breaking.patch index 782b9aea..580f47dd 100644 --- a/patches/Tuinity/patches/server/0011-Lag-compensate-block-breaking.patch +++ b/patches/Tuinity/patches/server/0011-Lag-compensate-block-breaking.patch @@ -23,10 +23,10 @@ index 182f419fde8eb3646a79cc0ba689ee486cb53338..5aa558bd05c4ab735730263f220478c3 public final String worldName; diff --git a/src/main/java/net/minecraft/server/level/PlayerInteractManager.java b/src/main/java/net/minecraft/server/level/PlayerInteractManager.java -index 4203081692d2e4c43abc47aeb85f42b09acb7eee..238e143277eb75db6d96e1c52db810eb8a9423de 100644 +index 87722285690d9d3370610e2a2eb809e0d1f497c9..1746a8c1750b494c47f9f46e83b248d8129d2630 100644 --- a/src/main/java/net/minecraft/server/level/PlayerInteractManager.java +++ b/src/main/java/net/minecraft/server/level/PlayerInteractManager.java -@@ -55,14 +55,29 @@ public class PlayerInteractManager { +@@ -56,14 +56,29 @@ public class PlayerInteractManager { private EnumGamemode gamemode; private EnumGamemode e; private boolean f; @@ -59,7 +59,7 @@ index 4203081692d2e4c43abc47aeb85f42b09acb7eee..238e143277eb75db6d96e1c52db810eb public PlayerInteractManager(WorldServer worldserver) { this.gamemode = EnumGamemode.NOT_SET; this.e = EnumGamemode.NOT_SET; -@@ -118,7 +133,7 @@ public class PlayerInteractManager { +@@ -119,7 +134,7 @@ public class PlayerInteractManager { if (iblockdata == null || iblockdata.isAir()) { // Paper this.j = false; } else { @@ -68,7 +68,7 @@ index 4203081692d2e4c43abc47aeb85f42b09acb7eee..238e143277eb75db6d96e1c52db810eb if (f >= 1.0F) { this.j = false; -@@ -138,7 +153,7 @@ public class PlayerInteractManager { +@@ -139,7 +154,7 @@ public class PlayerInteractManager { this.m = -1; this.f = false; } else { @@ -77,7 +77,7 @@ index 4203081692d2e4c43abc47aeb85f42b09acb7eee..238e143277eb75db6d96e1c52db810eb } } -@@ -146,6 +161,12 @@ public class PlayerInteractManager { +@@ -147,6 +162,12 @@ public class PlayerInteractManager { private float a(IBlockData iblockdata, BlockPosition blockposition, int i) { int j = this.currentTick - i; @@ -90,7 +90,7 @@ index 4203081692d2e4c43abc47aeb85f42b09acb7eee..238e143277eb75db6d96e1c52db810eb float f = iblockdata.getDamage(this.player, this.player.world, blockposition) * (float) (j + 1); int k = (int) (f * 10.0F); -@@ -213,7 +234,7 @@ public class PlayerInteractManager { +@@ -214,7 +235,7 @@ public class PlayerInteractManager { return; } @@ -99,7 +99,7 @@ index 4203081692d2e4c43abc47aeb85f42b09acb7eee..238e143277eb75db6d96e1c52db810eb float f = 1.0F; iblockdata = this.world.getType(blockposition); -@@ -266,12 +287,12 @@ public class PlayerInteractManager { +@@ -267,12 +288,12 @@ public class PlayerInteractManager { int j = (int) (f * 10.0F); this.world.a(this.player.getId(), blockposition, j); @@ -114,7 +114,7 @@ index 4203081692d2e4c43abc47aeb85f42b09acb7eee..238e143277eb75db6d96e1c52db810eb iblockdata = this.world.getType(blockposition); if (!iblockdata.isAir()) { -@@ -288,12 +309,18 @@ public class PlayerInteractManager { +@@ -289,12 +310,18 @@ public class PlayerInteractManager { this.f = false; this.j = true; this.k = blockposition; @@ -134,7 +134,7 @@ index 4203081692d2e4c43abc47aeb85f42b09acb7eee..238e143277eb75db6d96e1c52db810eb } else if (packetplayinblockdig_enumplayerdigtype == PacketPlayInBlockDig.EnumPlayerDigType.ABORT_DESTROY_BLOCK) { this.f = false; if (!Objects.equals(this.h, blockposition) && !BlockPosition.ZERO.equals(this.h)) { -@@ -305,7 +332,7 @@ public class PlayerInteractManager { +@@ -306,7 +333,7 @@ public class PlayerInteractManager { } this.world.a(this.player.getId(), blockposition, -1); @@ -143,7 +143,7 @@ index 4203081692d2e4c43abc47aeb85f42b09acb7eee..238e143277eb75db6d96e1c52db810eb } } -@@ -315,7 +342,13 @@ public class PlayerInteractManager { +@@ -316,7 +343,13 @@ public class PlayerInteractManager { public void a(BlockPosition blockposition, PacketPlayInBlockDig.EnumPlayerDigType packetplayinblockdig_enumplayerdigtype, String s) { if (this.breakBlock(blockposition)) { diff --git a/patches/Tuinity/patches/server/0013-Per-World-Spawn-Limits.patch b/patches/Tuinity/patches/server/0013-Per-World-Spawn-Limits.patch index 4d61f376..6e7f9791 100644 --- a/patches/Tuinity/patches/server/0013-Per-World-Spawn-Limits.patch +++ b/patches/Tuinity/patches/server/0013-Per-World-Spawn-Limits.patch @@ -35,7 +35,7 @@ index 5aa558bd05c4ab735730263f220478c36a4ba0fd..6473b951788a3ecbeee4811ea0288ff4 } \ No newline at end of file diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 88786a1b498f663a0bb5e9025f54f3b6122e9b58..46840620899039e15a02397b39434f00da8a4858 100644 +index 03f74fb19e93620e057e71ac0c6c368e81aa532e..c89b4788cec45354e03efc3f9b05dd3891101349 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -342,6 +342,14 @@ public class CraftWorld implements World { diff --git a/patches/Tuinity/patches/server/0025-Highly-optimise-single-and-multi-AABB-VoxelShapes-an.patch b/patches/Tuinity/patches/server/0025-Highly-optimise-single-and-multi-AABB-VoxelShapes-an.patch index c78f9cfb..29800a4f 100644 --- a/patches/Tuinity/patches/server/0025-Highly-optimise-single-and-multi-AABB-VoxelShapes-an.patch +++ b/patches/Tuinity/patches/server/0025-Highly-optimise-single-and-multi-AABB-VoxelShapes-an.patch @@ -539,7 +539,7 @@ index 9f9bd5ea486eb037cb95254a2b505218a4a5e8b3..217dfb529b6c09ceda0d84ea32637ffd @Override public TileEntity getTileEntity(BlockPosition pos, boolean validate) { diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index f8f0212497ad4fbb1273820a06a4ae6721053b8e..949eaa0e117104659d96bc2a5bb5a4f8a3bee114 100644 +index 6bfa8020c19721dd63e038e4b866a7d3a24e66ac..1a7bcca69ef4996cd751b9bbae46043727cb8faf 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -945,7 +945,7 @@ public abstract class PlayerList { diff --git a/patches/Tuinity/patches/server/0029-Improve-paper-prevent-moving-into-unloaded-chunk-che.patch b/patches/Tuinity/patches/server/0029-Improve-paper-prevent-moving-into-unloaded-chunk-che.patch index 48760a8f..1610133c 100644 --- a/patches/Tuinity/patches/server/0029-Improve-paper-prevent-moving-into-unloaded-chunk-che.patch +++ b/patches/Tuinity/patches/server/0029-Improve-paper-prevent-moving-into-unloaded-chunk-che.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Improve paper prevent moving into unloaded chunk check Check the AABB of the move diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index b543776da3b799643893984a8c6f29477ed78d4a..8abcf2e092ecae54ef614f95fdfa8912355c9960 100644 +index 9455cb9bc849a330e57fdc466fb51902631e22d8..be52d15ee6828398bb85c05ce0eaad93fb696a62 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java @@ -570,7 +570,9 @@ public class PlayerConnection implements PacketListenerPlayIn { diff --git a/patches/Tuinity/patches/server/0031-Revert-getChunkAt-Async-retaining-chunks-for-long-pe.patch b/patches/Tuinity/patches/server/0031-Revert-getChunkAt-Async-retaining-chunks-for-long-pe.patch index 1f69faac..683e1650 100644 --- a/patches/Tuinity/patches/server/0031-Revert-getChunkAt-Async-retaining-chunks-for-long-pe.patch +++ b/patches/Tuinity/patches/server/0031-Revert-getChunkAt-Async-retaining-chunks-for-long-pe.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Revert getChunkAt(Async) retaining chunks for long periods of diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 46840620899039e15a02397b39434f00da8a4858..beed4bfbed9ccec4a48554e6de9ec94251bba01a 100644 +index c89b4788cec45354e03efc3f9b05dd3891101349..6e9cc608fd5038b9729eeb56f6014de3ce19809d 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -423,14 +423,7 @@ public class CraftWorld implements World { diff --git a/patches/Tuinity/patches/server/0035-Optimise-collision-checking-in-player-move-packet-ha.patch b/patches/Tuinity/patches/server/0035-Optimise-collision-checking-in-player-move-packet-ha.patch index 7c90d3b7..2ae27614 100644 --- a/patches/Tuinity/patches/server/0035-Optimise-collision-checking-in-player-move-packet-ha.patch +++ b/patches/Tuinity/patches/server/0035-Optimise-collision-checking-in-player-move-packet-ha.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Optimise collision checking in player move packet handling Move collision logic to just the hasNewCollision call instead of getCubes + hasNewCollision diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index 8abcf2e092ecae54ef614f95fdfa8912355c9960..eba187b3b2649662dd65ad2cec41273f82869e44 100644 +index be52d15ee6828398bb85c05ce0eaad93fb696a62..c4ab9593d0f781b5d3c546b79cdd232478981577 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java @@ -585,12 +585,14 @@ public class PlayerConnection implements PacketListenerPlayIn { diff --git a/patches/Tuinity/patches/server/0051-Add-Velocity-natives-for-encryption-and-compression.patch b/patches/Tuinity/patches/server/0051-Add-Velocity-natives-for-encryption-and-compression.patch index 9d2e9125..69fd70a9 100644 --- a/patches/Tuinity/patches/server/0051-Add-Velocity-natives-for-encryption-and-compression.patch +++ b/patches/Tuinity/patches/server/0051-Add-Velocity-natives-for-encryption-and-compression.patch @@ -291,10 +291,10 @@ index 5759f91d5e9dc52b16c8955b8d318da2b53c7af4..0960f415fd3c6c764cf3dd273bb9e9c5 } +// Tuinity end diff --git a/src/main/java/net/minecraft/server/network/LoginListener.java b/src/main/java/net/minecraft/server/network/LoginListener.java -index 185667110cd6f566b23546728d20fc79223f3c92..dc98ef48a664d9ee2a302fff8c611fd16dc704b6 100644 +index c67b94840e4c967baebf6eb351df15f0e4ead4be..ed836462123efc6903e406fa926e55e1cedddb95 100644 --- a/src/main/java/net/minecraft/server/network/LoginListener.java +++ b/src/main/java/net/minecraft/server/network/LoginListener.java -@@ -255,7 +255,7 @@ public class LoginListener implements PacketLoginInListener { +@@ -256,7 +256,7 @@ public class LoginListener implements PacketLoginInListener { s = (new BigInteger(MinecraftEncryption.a("", this.server.getKeyPair().getPublic(), this.loginKey))).toString(16); this.g = LoginListener.EnumProtocolState.AUTHENTICATING; @@ -304,7 +304,7 @@ index 185667110cd6f566b23546728d20fc79223f3c92..dc98ef48a664d9ee2a302fff8c611fd1 throw new IllegalStateException("Protocol error", cryptographyexception); } diff --git a/src/main/java/net/minecraft/server/network/ServerConnection.java b/src/main/java/net/minecraft/server/network/ServerConnection.java -index dc362724ea0cc1b2f9d9ceffff483217b4356c40..70fde7bad2e0a6d7432d8509fdb7c46d9f020d4c 100644 +index 69fc2789df88344587b6052f93661ed38f24a503..92836f1200461ba7fff2f8bcb5e1755ec9a0c9ce 100644 --- a/src/main/java/net/minecraft/server/network/ServerConnection.java +++ b/src/main/java/net/minecraft/server/network/ServerConnection.java @@ -87,6 +87,11 @@ public class ServerConnection { diff --git a/patches/Tuinity/patches/server/0054-Do-not-load-chunks-during-a-crash-report.patch b/patches/Tuinity/patches/server/0054-Do-not-load-chunks-during-a-crash-report.patch index 04a5f150..6a354916 100644 --- a/patches/Tuinity/patches/server/0054-Do-not-load-chunks-during-a-crash-report.patch +++ b/patches/Tuinity/patches/server/0054-Do-not-load-chunks-during-a-crash-report.patch @@ -22,7 +22,7 @@ index e50731723d266ba65b2163df2e935afb8b013a93..a6736d15282715d920bab85eb92074cd } value.append("},"); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index beed4bfbed9ccec4a48554e6de9ec94251bba01a..edb0c77d0345f1fbf1b7e7c549639f3b726ff218 100644 +index 6e9cc608fd5038b9729eeb56f6014de3ce19809d..7a94e9efddbffca4627a0685e2baee8e7d6a3176 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -720,6 +720,30 @@ public class CraftWorld implements World { diff --git a/patches/Tuinity/patches/server/0059-Properly-handle-cancellation-of-projectile-hit-event.patch b/patches/Tuinity/patches/server/0059-Properly-handle-cancellation-of-projectile-hit-event.patch index 2ff8de06..c6dcd144 100644 --- a/patches/Tuinity/patches/server/0059-Properly-handle-cancellation-of-projectile-hit-event.patch +++ b/patches/Tuinity/patches/server/0059-Properly-handle-cancellation-of-projectile-hit-event.patch @@ -21,7 +21,7 @@ index 2f8b3587f527620152609d5be342b328a7621e0f..01679d76405625223869f3fdcb29ffba } diff --git a/src/main/java/net/minecraft/world/entity/projectile/EntityFireball.java b/src/main/java/net/minecraft/world/entity/projectile/EntityFireball.java -index b9680f6f2e30ec9397d6a9c83e79563d9253aff6..546de0ec2b624a781480ac95f65b2cbfbb5dcf2e 100644 +index c4248531d4a6a11259d9d78ce1d7683a86840d40..f3077c22445949c484a73ee56eab593f527795a6 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/EntityFireball.java +++ b/src/main/java/net/minecraft/world/entity/projectile/EntityFireball.java @@ -83,7 +83,9 @@ public abstract class EntityFireball extends IProjectile { diff --git a/patches/Tuinity/patches/server/0065-Fix-incorrect-isRealPlayer-init.patch b/patches/Tuinity/patches/server/0065-Fix-incorrect-isRealPlayer-init.patch index f4170675..5aab9008 100644 --- a/patches/Tuinity/patches/server/0065-Fix-incorrect-isRealPlayer-init.patch +++ b/patches/Tuinity/patches/server/0065-Fix-incorrect-isRealPlayer-init.patch @@ -9,7 +9,7 @@ paper placed their logic. So it wont correctly set in this case. Fix by moving it to a different place. diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 949eaa0e117104659d96bc2a5bb5a4f8a3bee114..e373232cfb4aff039e9163cab82df33ec9c0d50d 100644 +index 1a7bcca69ef4996cd751b9bbae46043727cb8faf..a1eea57a876e3ba0d39c4d4881d6558a9829874e 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -179,6 +179,7 @@ public abstract class PlayerList { diff --git a/patches/Tuinity/patches/server/0075-Replace-player-chunk-loader-system.patch b/patches/Tuinity/patches/server/0075-Replace-player-chunk-loader-system.patch index e70fc3dd..488ef8e4 100644 --- a/patches/Tuinity/patches/server/0075-Replace-player-chunk-loader-system.patch +++ b/patches/Tuinity/patches/server/0075-Replace-player-chunk-loader-system.patch @@ -1554,7 +1554,7 @@ index 1e627159cbb35fac47d4d158299ec3da7c1f9bf5..d7eede51f1c4ebbe8e00b16efd6331c8 } } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index e373232cfb4aff039e9163cab82df33ec9c0d50d..c705bf1e651a764d56b87ebc5a86a938d8bd34bb 100644 +index a1eea57a876e3ba0d39c4d4881d6558a9829874e..b5043eabe63fe703a321cff6c0f6449cf729cd0e 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -270,7 +270,7 @@ public abstract class PlayerList { @@ -1750,7 +1750,7 @@ index 3fe1508b091e1fd0325eae50138d02fa6445c9ff..a19a26a88f247d359354902efeece992 return new Vec3D((double) baseblockposition.getX() + 0.5D, (double) baseblockposition.getY() + 0.5D, (double) baseblockposition.getZ() + 0.5D); } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index edb0c77d0345f1fbf1b7e7c549639f3b726ff218..2152900a4f92c5a3b08b3fe05a700b7c35631a4f 100644 +index 7a94e9efddbffca4627a0685e2baee8e7d6a3176..41ee7b1f2fe9a220abe1d96749887ad9babe9f95 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -2701,14 +2701,14 @@ public class CraftWorld implements World { diff --git a/patches/Tuinity/patches/server/0080-Stop-large-move-vectors-in-player-packet-handling-fr.patch b/patches/Tuinity/patches/server/0080-Stop-large-move-vectors-in-player-packet-handling-fr.patch index 645cddd7..c83733ac 100644 --- a/patches/Tuinity/patches/server/0080-Stop-large-move-vectors-in-player-packet-handling-fr.patch +++ b/patches/Tuinity/patches/server/0080-Stop-large-move-vectors-in-player-packet-handling-fr.patch @@ -7,7 +7,7 @@ Subject: [PATCH] Stop large move vectors in player packet handling from Looks like we need to check three vectors, not two. fun. diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index eba187b3b2649662dd65ad2cec41273f82869e44..159c38618d7745ea513ad179b1217d76c2c4897a 100644 +index c4ab9593d0f781b5d3c546b79cdd232478981577..53320d1d134305c0b37442dfca9931629a6d196d 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java @@ -542,6 +542,12 @@ public class PlayerConnection implements PacketListenerPlayIn { diff --git a/patches/Tuinity/patches/server/0082-Do-not-copy-visible-chunks.patch b/patches/Tuinity/patches/server/0082-Do-not-copy-visible-chunks.patch index 0a93a657..65239b8d 100644 --- a/patches/Tuinity/patches/server/0082-Do-not-copy-visible-chunks.patch +++ b/patches/Tuinity/patches/server/0082-Do-not-copy-visible-chunks.patch @@ -166,7 +166,7 @@ index d7eede51f1c4ebbe8e00b16efd6331c87db53bb4..b28995ecfd7f45e6b6197be96c418aa0 protected PlayerChunkMap.a e() { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 2152900a4f92c5a3b08b3fe05a700b7c35631a4f..29f2c253e420a400736eec54f0e9c80bcc621fa1 100644 +index 41ee7b1f2fe9a220abe1d96749887ad9babe9f95..02807cc1fe14e747a7c18edf0fcdc38630cc4e9f 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -298,7 +298,7 @@ public class CraftWorld implements World { diff --git a/patches/api/0005-Add-NBT-API-as-a-first-class-lib.patch b/patches/api/0005-Add-NBT-API-as-a-first-class-lib.patch index 6b1d39d1..ee81636e 100644 --- a/patches/api/0005-Add-NBT-API-as-a-first-class-lib.patch +++ b/patches/api/0005-Add-NBT-API-as-a-first-class-lib.patch @@ -98,7 +98,7 @@ index 3b10fcc13893403b29f0260b8605144679e89b82..1e9a96d8b08cc396acf73dc420830093 + // Yatopia end } diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index 1e25f387e053b648477a3e9dace1a6c95e7f8cba..02c5967dcc8591d4324d1218eb8c2ff0cb961647 100644 +index 7fa5242bd44c9b19648d79fa8fecbb7ee125288e..592c65017e601534dad56e988d096992ad70b05a 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java @@ -771,4 +771,26 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent diff --git a/patches/server/0002-Brandings.patch b/patches/server/0002-Brandings.patch index 132bc240..d4bbf704 100644 --- a/patches/server/0002-Brandings.patch +++ b/patches/server/0002-Brandings.patch @@ -40,7 +40,7 @@ index e56ebeaaa12494817d31099eed54ef2c50b98b9e..eb0509386feb156ae9c8ca0eb25c0120 .completer(new ConsoleCommandCompleter(this.server)) .option(LineReader.Option.COMPLETE_IN_WORD, true); diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 6355f246809982f6da34671be22066a83cfba42c..9a9e2692cc058ed3bcafd0cee37c4c9012e4a983 100644 +index c0ef121956ad42bbb555eb8ee6c46b1845dd9e0d..2d83f0a6823a02f45cdd1783191e2a0465fc0657 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -183,7 +183,7 @@ public class PurpurConfig { diff --git a/patches/server/0006-Yatopia-configuration.patch b/patches/server/0006-Yatopia-configuration.patch index 496d4a01..d6ee0562 100644 --- a/patches/server/0006-Yatopia-configuration.patch +++ b/patches/server/0006-Yatopia-configuration.patch @@ -47,7 +47,7 @@ index 4f7fed0418df17b80cb41e16bb1978c5cb284810..1bbedddf940bd3be281ab2572256b3d1 this.setAllowFlight(dedicatedserverproperties.allowFlight); this.setResourcePack(dedicatedserverproperties.resourcePack, this.ba()); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index c1f86c5cb6cf4c42dbc972f9ec14efa8452bad91..5742737bacbc738691a5caf9a169c12a8a25cc4a 100644 +index 33ef9699fdcf5dfd2ecaa53cb6388adb13da1697..bb03c45632aeb378c1d1a1792ef15203cd7c0b13 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -272,7 +272,7 @@ public abstract class PlayerList { diff --git a/patches/server/0023-Fix-lead-fall-dmg-config.patch b/patches/server/0023-Fix-lead-fall-dmg-config.patch index 4971bfc6..b8f4773f 100644 --- a/patches/server/0023-Fix-lead-fall-dmg-config.patch +++ b/patches/server/0023-Fix-lead-fall-dmg-config.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix lead fall dmg config diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 2e872fe6e74d4deaa2bb46c5e9db472fbca03187..1c7d6fd2ceedd866cfd4ece540cf1511e0fde41f 100644 +index d4fbfce75462ea8dd0fe8ed990a91d84a8d38632..04dbacd89ebb630df7ee5663d0096c01d43d27af 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1427,6 +1427,8 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne +@@ -1433,6 +1433,8 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne this.fallDistance = 0.0F; } else if (d0 < 0.0D) { this.fallDistance = (float) ((double) this.fallDistance - d0); diff --git a/patches/server/0027-Highly-optimize-VillagePlace-filtering.patch b/patches/server/0027-Highly-optimize-VillagePlace-filtering.patch index d9ff4422..3e374ea8 100644 --- a/patches/server/0027-Highly-optimize-VillagePlace-filtering.patch +++ b/patches/server/0027-Highly-optimize-VillagePlace-filtering.patch @@ -67,10 +67,10 @@ index 0000000000000000000000000000000000000000..e647624f4c9afe8bc603792ad88c807e + } +} diff --git a/src/main/java/net/minecraft/core/BlockPosition.java b/src/main/java/net/minecraft/core/BlockPosition.java -index a01b69c43acf4beb65c8b7a8a800c44121068d46..bb520b56d797cabec86fce42dd4afff018e66fdd 100644 +index 9a446a77dd9dbf5fa6f6fe763c4586cc377980d6..21ed288b5d0e7416fb6c5ec7d3112281ab805c0b 100644 --- a/src/main/java/net/minecraft/core/BlockPosition.java +++ b/src/main/java/net/minecraft/core/BlockPosition.java -@@ -348,6 +348,16 @@ public class BlockPosition extends BaseBlockPosition { +@@ -347,6 +347,16 @@ public class BlockPosition extends BaseBlockPosition { return a(MathHelper.floor(axisalignedbb.minX), MathHelper.floor(axisalignedbb.minY), MathHelper.floor(axisalignedbb.minZ), MathHelper.floor(axisalignedbb.maxX), MathHelper.floor(axisalignedbb.maxY), MathHelper.floor(axisalignedbb.maxZ)); } diff --git a/patches/server/0028-Nuke-streams-off-BlockPosition.patch b/patches/server/0028-Nuke-streams-off-BlockPosition.patch index fad51324..d54e05dc 100644 --- a/patches/server/0028-Nuke-streams-off-BlockPosition.patch +++ b/patches/server/0028-Nuke-streams-off-BlockPosition.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Nuke streams off BlockPosition diff --git a/src/main/java/net/minecraft/core/BlockPosition.java b/src/main/java/net/minecraft/core/BlockPosition.java -index bb520b56d797cabec86fce42dd4afff018e66fdd..9c508cc41575175d442cd51d75706830351a24f2 100644 +index 21ed288b5d0e7416fb6c5ec7d3112281ab805c0b..04d8ef920afd473c8218e2065d3fe9cc57543d37 100644 --- a/src/main/java/net/minecraft/core/BlockPosition.java +++ b/src/main/java/net/minecraft/core/BlockPosition.java -@@ -325,7 +325,15 @@ public class BlockPosition extends BaseBlockPosition { +@@ -324,7 +324,15 @@ public class BlockPosition extends BaseBlockPosition { } public static Optional a(BlockPosition blockposition, int i, int j, Predicate predicate) { diff --git a/patches/server/0030-Stop-wasting-resources-on-JsonList-get.patch b/patches/server/0030-Stop-wasting-resources-on-JsonList-get.patch index 496dc950..b7aa78b2 100644 --- a/patches/server/0030-Stop-wasting-resources-on-JsonList-get.patch +++ b/patches/server/0030-Stop-wasting-resources-on-JsonList-get.patch @@ -55,7 +55,7 @@ index c960852dc60d0598012c5eef0d139fe38bde63fb..96fbb1a3d216302aa937e07bf88fdb19 Throwable throwable = null; diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 5742737bacbc738691a5caf9a169c12a8a25cc4a..dc7ab77f92e4c40a7828543b7f793d1f6e898b86 100644 +index bb03c45632aeb378c1d1a1792ef15203cd7c0b13..fc3cc8ce5979eb75123d60a08f89d969fb9a0f08 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -740,6 +740,7 @@ public abstract class PlayerList { diff --git a/patches/server/0036-Ensure-pools-create-daemon-threads.patch b/patches/server/0036-Ensure-pools-create-daemon-threads.patch index 78522e48..f6e97984 100644 --- a/patches/server/0036-Ensure-pools-create-daemon-threads.patch +++ b/patches/server/0036-Ensure-pools-create-daemon-threads.patch @@ -26,7 +26,7 @@ index b7399d17dd64ca8b1f1fab405cb0ac914dc53b98..add92c6ba9556b0a2695b007e0d83d73 public static final long INVALID_CHUNK_KEY = getCoordinateKey(Integer.MAX_VALUE, Integer.MAX_VALUE); diff --git a/src/main/java/net/minecraft/server/network/LoginListener.java b/src/main/java/net/minecraft/server/network/LoginListener.java -index dc98ef48a664d9ee2a302fff8c611fd16dc704b6..c65ff6a11a5570e9c39dcd2512374d5e8a2625b5 100644 +index ed836462123efc6903e406fa926e55e1cedddb95..a9ff089da89d001ccb230025b640ba4d042fdb7b 100644 --- a/src/main/java/net/minecraft/server/network/LoginListener.java +++ b/src/main/java/net/minecraft/server/network/LoginListener.java @@ -129,7 +129,11 @@ public class LoginListener implements PacketLoginInListener { diff --git a/patches/server/0040-Configurable-flight-checks.patch b/patches/server/0040-Configurable-flight-checks.patch index e77899ba..ac89db0c 100644 --- a/patches/server/0040-Configurable-flight-checks.patch +++ b/patches/server/0040-Configurable-flight-checks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configurable flight checks diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index 40ad7f050b7f11f2810b07970c9e29354525de98..9426bc32084d62b02829bbbe7fc38fe7db2d3191 100644 +index 03a61aa91191b44284e9b4d02f2c57eaf2de7105..51f04452863e241c63983659456e99730c7928e6 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java @@ -328,7 +328,7 @@ public class PlayerConnection implements PacketListenerPlayIn { diff --git a/patches/server/0048-Configurable-criterion-triggers.patch b/patches/server/0048-Configurable-criterion-triggers.patch index b461b595..a039e24e 100644 --- a/patches/server/0048-Configurable-criterion-triggers.patch +++ b/patches/server/0048-Configurable-criterion-triggers.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Configurable criterion triggers This patch adds toggles for three criterion triggers that are called every tick. These can be very unnecessary, and especially in the case of CriterionTriggerEnterBlock, quite heavy. diff --git a/src/main/java/net/minecraft/server/level/EntityPlayer.java b/src/main/java/net/minecraft/server/level/EntityPlayer.java -index 0c796d04a2d6903639856865d2822d345d53d766..c819aa0f8a96e74366081d6bd957ad68348792aa 100644 +index 4ec18d28c0022614b0ef6900774ddd4bda814308..f4b0bcf4e5fdfd4381e1410a929ed3a166ce4d00 100644 --- a/src/main/java/net/minecraft/server/level/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/level/EntityPlayer.java -@@ -571,6 +571,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { +@@ -569,6 +569,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { @Override protected void a(IBlockData iblockdata) { @@ -17,7 +17,7 @@ index 0c796d04a2d6903639856865d2822d345d53d766..c819aa0f8a96e74366081d6bd957ad68 CriterionTriggers.d.a(this, iblockdata); } -@@ -901,7 +902,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { +@@ -899,7 +900,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { this.playerConnection.sendPacket(new PacketPlayOutExperience(this.exp, this.expTotal, this.expLevel)); } diff --git a/patches/server/0051-Configurable-movement-checks.patch b/patches/server/0051-Configurable-movement-checks.patch index e2ee86c3..8ffa7b47 100644 --- a/patches/server/0051-Configurable-movement-checks.patch +++ b/patches/server/0051-Configurable-movement-checks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configurable movement checks diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index 9426bc32084d62b02829bbbe7fc38fe7db2d3191..8ffc1170d2eb7f97cd12965813329ba3ced7ba54 100644 +index 51f04452863e241c63983659456e99730c7928e6..ddb6d79cdc2f09d9438ea04f7c48c992d43eae25 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java @@ -606,7 +606,7 @@ public class PlayerConnection implements PacketListenerPlayIn { diff --git a/patches/server/0052-Configurable-enchanting-table-tick.patch b/patches/server/0052-Configurable-enchanting-table-tick.patch index e8058f1a..a8f754a6 100644 --- a/patches/server/0052-Configurable-enchanting-table-tick.patch +++ b/patches/server/0052-Configurable-enchanting-table-tick.patch @@ -7,7 +7,7 @@ Also don't tick blockentity beehive if there are no bees in it. This patch is a leftover from the original tile entity optimisations, which was majorly flawed. diff --git a/src/main/java/net/minecraft/world/level/block/entity/TileEntityBeehive.java b/src/main/java/net/minecraft/world/level/block/entity/TileEntityBeehive.java -index 3cbcbb028b864f1d14e004628bbc0829f71ab476..d97acd72c30e1051f3e14c3c23b1a6b6e6fa42f0 100644 +index 3ce6a1b1f75443d1d1c6740d6f3f730f06a34f6a..d79094386a564a44d5a519477309f669ea045876 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/TileEntityBeehive.java +++ b/src/main/java/net/minecraft/world/level/block/entity/TileEntityBeehive.java @@ -304,6 +304,7 @@ public class TileEntityBeehive extends TileEntity implements ITickable { diff --git a/patches/server/0055-add-config-for-logging-login-location.patch b/patches/server/0055-add-config-for-logging-login-location.patch index 1efdf977..b9af8701 100644 --- a/patches/server/0055-add-config-for-logging-login-location.patch +++ b/patches/server/0055-add-config-for-logging-login-location.patch @@ -5,7 +5,7 @@ Subject: [PATCH] add config for logging login location diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index dc7ab77f92e4c40a7828543b7f793d1f6e898b86..baa54b24a1606771b867250defb6d9f7fcae293d 100644 +index fc3cc8ce5979eb75123d60a08f89d969fb9a0f08..bb7178336d9e428a74e84b65bf72db10d4afdb5f 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -480,7 +480,14 @@ public abstract class PlayerList { diff --git a/patches/server/0059-Suspected-plugins-report.patch b/patches/server/0059-Suspected-plugins-report.patch index 2296cc9c..fdac3f34 100644 --- a/patches/server/0059-Suspected-plugins-report.patch +++ b/patches/server/0059-Suspected-plugins-report.patch @@ -92,10 +92,10 @@ index c1fd0149e1c04f33911bef77afa5d1c7938a6048..61d7004e51fcfb556875066506526129 if ( throwable.getCause() != null ) { diff --git a/src/main/java/net/minecraft/server/network/ServerConnection.java b/src/main/java/net/minecraft/server/network/ServerConnection.java -index 70fde7bad2e0a6d7432d8509fdb7c46d9f020d4c..0798f27656cf9fedf61e7ff83879cecb7d12e6c7 100644 +index 92836f1200461ba7fff2f8bcb5e1755ec9a0c9ce..da1be1eaed33dde5c1af44ed97f4b46974a7cd01 100644 --- a/src/main/java/net/minecraft/server/network/ServerConnection.java +++ b/src/main/java/net/minecraft/server/network/ServerConnection.java -@@ -166,6 +166,11 @@ public class ServerConnection { +@@ -167,6 +167,11 @@ public class ServerConnection { throw new ReportedException(CrashReport.a(exception, "Ticking memory connection")); } diff --git a/patches/server/0063-tic-tacs-unblocking.patch b/patches/server/0063-tic-tacs-unblocking.patch index 5a115deb..9582d75c 100644 --- a/patches/server/0063-tic-tacs-unblocking.patch +++ b/patches/server/0063-tic-tacs-unblocking.patch @@ -42,10 +42,10 @@ index 0000000000000000000000000000000000000000..0d99f3b4930045632d88fa4acb3b8159 +} \ No newline at end of file diff --git a/src/main/java/net/minecraft/server/level/EntityPlayer.java b/src/main/java/net/minecraft/server/level/EntityPlayer.java -index c819aa0f8a96e74366081d6bd957ad68348792aa..b5e85808552d3c242516c5e31f890992a21d9574 100644 +index f4b0bcf4e5fdfd4381e1410a929ed3a166ce4d00..4fc4d3d2ec98535626dc21d667ee2822f71dc845 100644 --- a/src/main/java/net/minecraft/server/level/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/level/EntityPlayer.java -@@ -657,6 +657,8 @@ public class EntityPlayer extends EntityHuman implements ICrafting { +@@ -655,6 +655,8 @@ public class EntityPlayer extends EntityHuman implements ICrafting { } public void playerTick() { @@ -70,7 +70,7 @@ index e7462367084007a149279d9bdb74ed26177d47df..ce9c580963bd6d8f0130bc28774dd91e public static final BlockPosition a = new BlockPosition(100, 50, 0); private static final Logger LOGGER = LogManager.getLogger(); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 1c7d6fd2ceedd866cfd4ece540cf1511e0fde41f..3c435ce71d1184e9bedff712a75917b9069dfa7d 100644 +index 04dbacd89ebb630df7ee5663d0096c01d43d27af..30cf0acb92c6c8b9745926d09a1d8f6edf7e143b 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -142,9 +142,12 @@ import org.bukkit.event.entity.EntityPoseChangeEvent; @@ -108,7 +108,7 @@ index 1c7d6fd2ceedd866cfd4ece540cf1511e0fde41f..3c435ce71d1184e9bedff712a75917b9 this.a(vec3d1.y, this.onGround, iblockdata, blockposition); Vec3D vec3d2 = this.getMot(); -@@ -967,9 +976,9 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne +@@ -973,9 +982,9 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne int k = MathHelper.floor(this.loc.z); BlockPosition blockposition = new BlockPosition(i, j, k); @@ -120,7 +120,7 @@ index 1c7d6fd2ceedd866cfd4ece540cf1511e0fde41f..3c435ce71d1184e9bedff712a75917b9 Block block = iblockdata.getBlock(); if (block.a((Tag) TagsBlock.FENCES) || block.a((Tag) TagsBlock.WALLS) || block instanceof BlockFenceGate) { -@@ -981,17 +990,21 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne +@@ -987,17 +996,21 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne } protected float getBlockJumpFactor() { @@ -146,7 +146,7 @@ index 1c7d6fd2ceedd866cfd4ece540cf1511e0fde41f..3c435ce71d1184e9bedff712a75917b9 } protected BlockPosition as() { -@@ -1336,7 +1349,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne +@@ -1342,7 +1355,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne for (int i = blockposition.getX(); i <= blockposition1.getX(); ++i) { // Tuinity end - reorder iteration to more cache aware blockposition_mutableblockposition.d(i, j, k); @@ -155,7 +155,7 @@ index 1c7d6fd2ceedd866cfd4ece540cf1511e0fde41f..3c435ce71d1184e9bedff712a75917b9 // Tuinity start - move fire checking in here - reuse getType from this method if (checkFire) { -@@ -1372,7 +1385,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne +@@ -1378,7 +1391,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne protected void b(BlockPosition blockposition, IBlockData iblockdata) { if (!iblockdata.getMaterial().isLiquid()) { @@ -164,7 +164,7 @@ index 1c7d6fd2ceedd866cfd4ece540cf1511e0fde41f..3c435ce71d1184e9bedff712a75917b9 SoundEffectType soundeffecttype = iblockdata1.a(Blocks.SNOW) ? iblockdata1.getStepSound() : iblockdata.getStepSound(); this.playSound(soundeffecttype.getStepSound(), soundeffecttype.getVolume() * 0.15F, soundeffecttype.getPitch()); -@@ -1463,7 +1476,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne +@@ -1469,7 +1482,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne public final boolean isInBubbleColumn() { return k(); } // Paper - OBFHELPER private boolean k() { @@ -173,7 +173,7 @@ index 1c7d6fd2ceedd866cfd4ece540cf1511e0fde41f..3c435ce71d1184e9bedff712a75917b9 } public boolean isInWaterOrRain() { -@@ -1534,7 +1547,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne +@@ -1540,7 +1553,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne } BlockPosition blockposition = new BlockPosition(this.locX(), d0, this.locZ()); @@ -182,7 +182,7 @@ index 1c7d6fd2ceedd866cfd4ece540cf1511e0fde41f..3c435ce71d1184e9bedff712a75917b9 Iterator iterator = TagsFluid.b().iterator(); Tag tag; -@@ -1592,7 +1605,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne +@@ -1598,7 +1611,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne } protected IBlockData aN() { @@ -191,7 +191,7 @@ index 1c7d6fd2ceedd866cfd4ece540cf1511e0fde41f..3c435ce71d1184e9bedff712a75917b9 } public boolean aO() { -@@ -1604,7 +1617,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne +@@ -1610,7 +1623,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne int j = MathHelper.floor(this.locY() - 0.20000000298023224D); int k = MathHelper.floor(this.locZ()); BlockPosition blockposition = new BlockPosition(i, j, k); @@ -200,7 +200,7 @@ index 1c7d6fd2ceedd866cfd4ece540cf1511e0fde41f..3c435ce71d1184e9bedff712a75917b9 if (iblockdata.h() != EnumRenderType.INVISIBLE) { Vec3D vec3d = this.getMot(); -@@ -2858,7 +2871,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne +@@ -2864,7 +2877,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne EnumDirection enumdirection1 = aenumdirection[j]; blockposition_mutableblockposition.a((BaseBlockPosition) blockposition, enumdirection1); @@ -209,7 +209,7 @@ index 1c7d6fd2ceedd866cfd4ece540cf1511e0fde41f..3c435ce71d1184e9bedff712a75917b9 double d4 = vec3d.a(enumdirection1.n()); double d5 = enumdirection1.e() == EnumDirection.EnumAxisDirection.POSITIVE ? 1.0D - d4 : d4; -@@ -3074,14 +3087,14 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne +@@ -3080,14 +3093,14 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne return (ShapeDetectorShape) this.findOrCreatePortal(worldserver, blockposition, flag2, event.getSearchRadius(), event.getCanCreatePortal(), event.getCreationRadius()).map((blockutil_rectangle) -> { // CraftBukkit end @@ -226,7 +226,7 @@ index 1c7d6fd2ceedd866cfd4ece540cf1511e0fde41f..3c435ce71d1184e9bedff712a75917b9 }); vec3d = this.a(enumdirection_enumaxis, blockutil_rectangle1); -@@ -3448,6 +3461,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne +@@ -3454,6 +3467,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne } public boolean cl() { @@ -234,7 +234,7 @@ index 1c7d6fd2ceedd866cfd4ece540cf1511e0fde41f..3c435ce71d1184e9bedff712a75917b9 boolean flag = this.au; this.au = false; -@@ -3651,7 +3665,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne +@@ -3657,7 +3671,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne for (int i2 = k; i2 < l; ++i2) { for (int j2 = i1; j2 < j1; ++j2) { blockposition_mutableblockposition.d(l1, i2, j2); diff --git a/patches/server/0064-lithium-optimize-BlockPos.iterateOutwards-by-caching.patch b/patches/server/0064-lithium-optimize-BlockPos.iterateOutwards-by-caching.patch index 556b3556..c29df5d6 100644 --- a/patches/server/0064-lithium-optimize-BlockPos.iterateOutwards-by-caching.patch +++ b/patches/server/0064-lithium-optimize-BlockPos.iterateOutwards-by-caching.patch @@ -140,10 +140,10 @@ index 0000000000000000000000000000000000000000..e2e4f7968a399b4641df07b2931fff6d +} \ No newline at end of file diff --git a/src/main/java/net/minecraft/core/BlockPosition.java b/src/main/java/net/minecraft/core/BlockPosition.java -index 9c508cc41575175d442cd51d75706830351a24f2..df6df2ae3e30ada07c90a26b9615d939508d3246 100644 +index 04d8ef920afd473c8218e2065d3fe9cc57543d37..83857b56935b69be371c8481e670ccb8942b394a 100644 --- a/src/main/java/net/minecraft/core/BlockPosition.java +++ b/src/main/java/net/minecraft/core/BlockPosition.java -@@ -19,10 +19,16 @@ import net.minecraft.world.phys.Vec3D; +@@ -18,10 +18,16 @@ import net.minecraft.world.phys.Vec3D; import org.apache.commons.lang3.Validate; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -160,7 +160,7 @@ index 9c508cc41575175d442cd51d75706830351a24f2..df6df2ae3e30ada07c90a26b9615d939 public static final Codec a = Codec.INT_STREAM.comapFlatMap((intstream) -> { return SystemUtils.a(intstream, 3).map((aint) -> { return new BlockPosition(aint[0], aint[1], aint[2]); -@@ -78,14 +84,17 @@ public class BlockPosition extends BaseBlockPosition { +@@ -77,14 +83,17 @@ public class BlockPosition extends BaseBlockPosition { return a((int) (i >> 38) + j, (int) ((i << 52) >> 52) + k, (int) ((i << 26) >> 38) + l); // Paper - simplify/inline } @@ -178,7 +178,7 @@ index 9c508cc41575175d442cd51d75706830351a24f2..df6df2ae3e30ada07c90a26b9615d939 public static int d(long i) { return (int) ((i << 26) >> 38); // Paper - simplify/inline } -@@ -266,7 +275,15 @@ public class BlockPosition extends BaseBlockPosition { +@@ -265,7 +274,15 @@ public class BlockPosition extends BaseBlockPosition { }; } diff --git a/patches/server/0068-lithium-shape.patch b/patches/server/0068-lithium-shape.patch index 9ac69e7b..87991e65 100644 --- a/patches/server/0068-lithium-shape.patch +++ b/patches/server/0068-lithium-shape.patch @@ -270,10 +270,10 @@ index b95115aca72ba0cf6451096ddbd8b50a8f3bb5c6..0afb8c643cb3e5938e12183c6132797d int j = i - 1; diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 3c435ce71d1184e9bedff712a75917b9069dfa7d..352585f3c9d0563181f497752ecb1c72f548f275 100644 +index 30cf0acb92c6c8b9745926d09a1d8f6edf7e143b..a79a453c4224e444a09026e64ba0b14fd5ee9ae0 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2677,6 +2677,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne +@@ -2683,6 +2683,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne return this.isSneaking(); } @@ -282,10 +282,10 @@ index 3c435ce71d1184e9bedff712a75917b9069dfa7d..352585f3c9d0563181f497752ecb1c72 return this.isSneaking(); } diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java -index fab55929f72c5784291b3bc87f7717ac24b7806f..024b1c8939a93e2802ea53eefc49dda182412f28 100644 +index 1e3adc491f0454edf4e19fb0bdf5d2cb7c8e842d..96dc80e346ed435336ed63e624c14714f70060b6 100644 --- a/src/main/java/net/minecraft/world/level/block/Block.java +++ b/src/main/java/net/minecraft/world/level/block/Block.java -@@ -55,6 +55,7 @@ import net.minecraft.world.phys.shapes.VoxelShape; +@@ -54,6 +54,7 @@ import net.minecraft.world.phys.shapes.VoxelShape; import net.minecraft.world.phys.shapes.VoxelShapes; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -293,7 +293,7 @@ index fab55929f72c5784291b3bc87f7717ac24b7806f..024b1c8939a93e2802ea53eefc49dda1 public class Block extends BlockBase implements IMaterial { -@@ -217,8 +218,14 @@ public class Block extends BlockBase implements IMaterial { +@@ -216,8 +217,14 @@ public class Block extends BlockBase implements IMaterial { return a(voxelshape1); } diff --git a/patches/server/0069-lithium-skip-ticking-block-entities-that-are-doing-n.patch b/patches/server/0069-lithium-skip-ticking-block-entities-that-are-doing-n.patch index e575fa5f..e52d8dda 100644 --- a/patches/server/0069-lithium-skip-ticking-block-entities-that-are-doing-n.patch +++ b/patches/server/0069-lithium-skip-ticking-block-entities-that-are-doing-n.patch @@ -737,7 +737,7 @@ index 35c4d5414db66b977a354ac50d35a6aa0fcd4cf8..35aef3647c025eaa763e2b9a5a4e266d public Timing tickTimer = MinecraftTimings.getTileEntityTimings(this); // Paper // CraftBukkit start - data containers diff --git a/src/main/java/net/minecraft/world/level/block/entity/TileEntityBeehive.java b/src/main/java/net/minecraft/world/level/block/entity/TileEntityBeehive.java -index d97acd72c30e1051f3e14c3c23b1a6b6e6fa42f0..b11c260908791d7fca711954ae0b715a9bd0634f 100644 +index d79094386a564a44d5a519477309f669ea045876..f714c1e4e4e70095e43ec86e76368d0ebc71887a 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/TileEntityBeehive.java +++ b/src/main/java/net/minecraft/world/level/block/entity/TileEntityBeehive.java @@ -23,6 +23,9 @@ import net.minecraft.world.level.block.BlockBeehive; @@ -750,13 +750,12 @@ index d97acd72c30e1051f3e14c3c23b1a6b6e6fa42f0..b11c260908791d7fca711954ae0b715a public class TileEntityBeehive extends TileEntity implements ITickable { -@@ -30,11 +33,25 @@ public class TileEntityBeehive extends TileEntity implements ITickable { +@@ -30,11 +33,24 @@ public class TileEntityBeehive extends TileEntity implements ITickable { @Nullable public BlockPosition flowerPos = null; - public int maxBees = 3; // CraftBukkit - allow setting max amount of bees a hive can hold + public int maxBees = net.pl3x.purpur.PurpurConfig.beeInsideBeeHive; // CraftBukkit - allow setting max amount of bees a hive can hold // Purpur - Change max bees inside beehive and bee_nest + public boolean doInit = true; // Yatopia + public boolean isTicking = true; // Yatopia -+ public TileEntityBeehive() { super(TileEntityTypes.BEEHIVE); @@ -776,7 +775,7 @@ index d97acd72c30e1051f3e14c3c23b1a6b6e6fa42f0..b11c260908791d7fca711954ae0b715a @Override public void update() { if (this.d()) { -@@ -304,6 +321,12 @@ public class TileEntityBeehive extends TileEntity implements ITickable { +@@ -304,6 +320,12 @@ public class TileEntityBeehive extends TileEntity implements ITickable { @Override public void tick() { @@ -789,7 +788,7 @@ index d97acd72c30e1051f3e14c3c23b1a6b6e6fa42f0..b11c260908791d7fca711954ae0b715a if (this.bees.size() == 0) { return; } // Yatopia - TE optimizations if (!this.world.isClientSide) { this.y(); -@@ -324,6 +347,7 @@ public class TileEntityBeehive extends TileEntity implements ITickable { +@@ -324,6 +346,7 @@ public class TileEntityBeehive extends TileEntity implements ITickable { @Override public void load(IBlockData iblockdata, NBTTagCompound nbttagcompound) { super.load(iblockdata, nbttagcompound); diff --git a/upstream/Purpur b/upstream/Purpur index 3dce9755..97185df2 160000 --- a/upstream/Purpur +++ b/upstream/Purpur @@ -1 +1 @@ -Subproject commit 3dce9755f3b882b2ecfb0dddf4cec2faa585440b +Subproject commit 97185df2ea4c39b3f1b7affad579f46ccb2c8e9f diff --git a/upstreamCommits/Purpur b/upstreamCommits/Purpur index 32b2bf84..73810fcc 100644 --- a/upstreamCommits/Purpur +++ b/upstreamCommits/Purpur @@ -1 +1 @@ -3dce9755f3b882b2ecfb0dddf4cec2faa585440b \ No newline at end of file +97185df2ea4c39b3f1b7affad579f46ccb2c8e9f \ No newline at end of file