From 61e91ba5ee46bfc262b61682abf2fbee024b8ae1 Mon Sep 17 00:00:00 2001 From: granny Date: Tue, 7 May 2024 04:15:10 -0700 Subject: [PATCH] re-add sign and book color code patches --- .../0068-Allow-color-codes-in-books.patch | 89 ++++++ ...espan.patch => 0069-Entity-lifespan.patch} | 4 +- ...eport-to-spawn-if-outside-world-bor.patch} | 0 ...ty.patch => 0071-Squid-EAR-immunity.patch} | 0 ...atch => 0072-Phantoms-burn-in-light.patch} | 0 ...0073-Configurable-villager-breeding.patch} | 0 ... 0074-Redstone-deactivates-spawners.patch} | 0 ...ch => 0075-Totems-work-in-inventory.patch} | 0 ...-Add-vindicator-johnny-spawn-chance.patch} | 0 ...0077-Dispensers-place-anvils-option.patch} | 0 ...rs.patch => 0078-Allow-anvil-colors.patch} | 0 ...-disable-dolphin-treasure-searching.patch} | 0 ...patch => 0080-Short-enderman-height.patch} | 2 +- ...top-squids-floating-on-top-of-water.patch} | 0 ...ng-obsidian-valid-for-portal-frames.patch} | 2 +- ...ities-can-use-portals-configuration.patch} | 0 ...084-LivingEntity-broadcastItemBreak.patch} | 0 ...tomizable-wither-health-and-healing.patch} | 0 ...gling-special-MobSpawners-per-world.patch} | 0 ...patch => 0087-Raid-cooldown-setting.patch} | 0 ...-config-options-per-projectile-type.patch} | 0 ...able-zombie-aggressiveness-towards-.patch} | 0 ...-to-recipe-s-ExactChoice-ingredient.patch} | 0 ...y.patch => 0091-Flying-squids-Oh-my.patch} | 0 ...patch => 0092-Infinity-bow-settings.patch} | 0 ...=> 0093-Configurable-daylight-cycle.patch} | 0 ...e-and-mending-enchantments-together.patch} | 2 +- ...5-Furnace-uses-lava-from-underneath.patch} | 0 ...ws-should-not-reset-despawn-counter.patch} | 0 ...e-add-farmland-mechanics-from-Alpha.patch} | 0 ...ustable-breeding-cooldown-to-config.patch} | 0 ...-entity-breeding-times-configurable.patch} | 2 +- ...es-from-item-forms-of-entities-to-e.patch} | 0 ...when-using-a-Name-Tag-on-an-Armor-S.patch} | 0 ...lowing-Endermen-to-despawn-even-whi.patch} | 0 ...03-Add-configurable-snowball-damage.patch} | 0 ...4-Changeable-Mob-Left-Handed-Chance.patch} | 0 ...=> 0105-Add-boat-fall-damage-config.patch} | 0 ...0106-Snow-Golem-rate-of-fire-config.patch} | 0 ...-Configurable-disable-give-dropping.patch} | 2 +- ...illager-Clerics-to-farm-Nether-Wart.patch} | 0 ...ied-Piglin-death-always-counting-as.patch} | 0 ...le-chance-for-wolves-to-spawn-rabid.patch} | 0 ...1-Configurable-default-collar-color.patch} | 2 +- ...tch => 0112-Phantom-flames-on-swoop.patch} | 0 ...-to-open-even-with-a-solid-block-on.patch} | 0 ...SBar.patch => 0114-Implement-TPSBar.patch} | 2 +- ...h => 0115-Striders-give-saddle-back.patch} | 0 ...tch => 0116-PlayerBookTooLargeEvent.patch} | 2 +- ...herite-armor-grants-fire-resistance.patch} | 2 +- ...efing-bypass-to-everything-affected.patch} | 0 ...llow-Note-Block-sounds-when-blocked.patch} | 0 ...120-Add-EntityTeleportHinderedEvent.patch} | 0 ... => 0121-Farmland-trampling-changes.patch} | 0 ...2-Movement-options-for-armor-stands.patch} | 0 ....patch => 0123-Fix-stuck-in-portals.patch} | 0 ...ggle-for-water-sensitive-mob-damage.patch} | 4 +- ...5-Config-to-always-tame-in-Creative.patch} | 0 ... 0126-End-crystal-explosion-options.patch} | 0 ...ther-Ender-Dragon-can-ride-vehicles.patch} | 0 ...atch => 0128-Dont-run-with-scissors.patch} | 10 +- ...nch-Man.patch => 0129-One-Punch-Man.patch} | 0 ...r-Pearl-cooldown-damage-and-Endermi.patch} | 0 ...to-ignore-nearby-mobs-when-sleeping.patch} | 0 ...d-back-player-spawned-endermite-API.patch} | 0 ...n-aggressiveness-towards-Endermites.patch} | 0 ...Dragon-Head-wearers-and-stare-aggro.patch} | 0 ...ig.patch => 0135-Tick-fluids-config.patch} | 0 ...36-Config-to-disable-Llama-caravans.patch} | 0 ...g-to-make-Creepers-explode-on-death.patch} | 0 ...rable-ravager-griefable-blocks-list.patch} | 0 ...139-Sneak-to-bulk-process-composter.patch} | 0 ...h => 0140-Config-for-skipping-night.patch} | 0 ...141-Add-config-for-villager-trading.patch} | 0 ...=> 0142-Allow-infinity-on-crossbows.patch} | 4 +- ...ngs.patch => 0143-Drowning-Settings.patch} | 2 +- ...reak-individual-slabs-when-sneaking.patch} | 0 ...to-disable-hostile-mob-spawn-on-ice.patch} | 0 ...g-to-show-Armor-Stand-arms-on-spawn.patch} | 0 ...tion-to-make-doors-require-redstone.patch} | 0 ...Config-to-allow-for-unsafe-enchants.patch} | 4 +- ...0149-Configurable-sponge-absorption.patch} | 0 ...ch => 0150-Projectile-offset-config.patch} | 2 +- ...or-powered-rail-activation-distance.patch} | 0 ...> 0152-Piglin-portal-spawn-modifier.patch} | 0 ...Config-to-change-max-number-of-bees.patch} | 2 +- ...-Config-for-wither-explosion-radius.patch} | 0 ... => 0155-Gamemode-extra-permissions.patch} | 2 +- ...0156-Configurable-piston-push-limit.patch} | 0 ...157-Configurable-broadcast-settings.patch} | 2 +- ... => 0158-Configurable-mob-blindness.patch} | 2 +- ...hidden-players-from-entity-selector.patch} | 2 +- ...-to-impact-Creeper-explosion-radius.patch} | 0 ... 0161-Iron-golem-calm-anger-options.patch} | 0 ...ots.patch => 0162-Breedable-parrots.patch} | 0 ...gurable-powered-rail-boost-modifier.patch} | 0 ...ge-multiplier-critical-damage-value.patch} | 2 +- ...n-to-disable-dragon-egg-teleporting.patch} | 0 ...fig-for-unverified-username-message.patch} | 2 +- ...-anvil-cumulative-cost-configurable.patch} | 2 +- ...e-can-work-when-raining-or-at-night.patch} | 0 ...69-API-for-any-mob-to-burn-daylight.patch} | 2 +- ...h => 0170-Config-MobEffect-by-world.patch} | 0 ...eacon-Activation-Range-Configurable.patch} | 2 +- ...ke-lightning-rod-range-configurable.patch} | 2 +- ...fter-eating-food-fills-hunger-bar-c.patch} | 2 +- ...ayer-join-full-server-by-permission.patch} | 0 ...> 0175-Add-portal-permission-bypass.patch} | 2 +- ...6-Shulker-spawn-from-bullet-options.patch} | 0 ...ating-glow-berries-adds-glow-effect.patch} | 0 ...-Option-to-make-drowned-break-doors.patch} | 0 ...nfigurable-hunger-starvation-damage.patch} | 0 ...patch => 0180-Enhance-SysoutCatcher.patch} | 0 ...nd.patch => 0181-Add-uptime-command.patch} | 2 +- ...tch => 0182-Tool-actionable-options.patch} | 0 ...3-Store-placer-on-Block-when-placed.patch} | 2 +- ...oner-API.patch => 0184-Summoner-API.patch} | 0 ...mizable-sleeping-actionbar-messages.patch} | 2 +- ...-shulker-box-items-from-dropping-co.patch} | 0 ...tch => 0187-Big-dripleaf-tilt-delay.patch} | 0 ...0188-Player-ridable-in-water-option.patch} | 2 +- ...-Enderman-teleport-on-projectile-hi.patch} | 0 ...d.patch => 0190-Add-compass-command.patch} | 2 +- ...h => 0191-Toggle-for-kinetic-damage.patch} | 2 +- ...-Option-for-disable-observer-clocks.patch} | 0 ...zeable-Zombie-Villager-curing-times.patch} | 0 ...for-sponges-to-work-on-lava-and-mud.patch} | 0 ...195-Toggle-for-Wither-s-spawn-sound.patch} | 0 ...-breaks-from-solid-neighbors-config.patch} | 0 ...move-curse-of-binding-with-weakness.patch} | 0 ...0198-Conduit-behavior-configuration.patch} | 0 ...patch => 0199-Cauldron-fill-chances.patch} | 0 ...o-allow-mobs-to-pathfind-over-rails.patch} | 0 ... 0201-Shulker-change-color-with-dye.patch} | 0 ... => 0202-Extended-OfflinePlayer-API.patch} | 0 ...he-ability-to-add-combustible-items.patch} | 2 +- ...in-and-thunder-should-stop-on-sleep.patch} | 0 ...-blocks-to-grow-into-trees-naturall.patch} | 0 ...-right-click-to-use-exp-for-mending.patch} | 4 +- ...urally-aggressive-to-players-chance.patch} | 0 ...urally-aggressive-to-players-chance.patch} | 0 ...r-beds-to-explode-on-villager-sleep.patch} | 0 ...Halloween-options-and-optimizations.patch} | 2 +- ...atch => 0211-Config-for-grindstones.patch} | 2 +- ....patch => 0212-UPnP-Port-Forwarding.patch} | 2 +- ...Campfire-option-for-lit-when-placed.patch} | 0 ...tinguish-fire-blocks-with-snowballs.patch} | 0 ...on-to-disable-zombie-villagers-cure.patch} | 0 ...nt-BlockEntity-Lore-and-DisplayName.patch} | 0 .../0217-Signs-allow-color-codes.patch | 20 +- ...-and-twisting-vines-configurable-ma.patch} | 0 ...=> 0219-Mobs-always-drop-experience.patch} | 278 +++++++++--------- ...ne-API.patch => 0220-Grindstone-API.patch} | 0 ...e-to-replant-crops-and-nether-warts.patch} | 2 +- ...urtle-eggs-random-tick-crack-chance.patch} | 4 +- ...=> 0223-Mob-head-visibility-percent.patch} | 18 +- ...able-valid-characters-for-usernames.patch} | 0 ...Shears-can-have-looting-enchantment.patch} | 0 ...Stop-bees-from-dying-after-stinging.patch} | 6 +- ...ounts-in-beehives-to-Purpur-clients.patch} | 0 ...onfigurable-farmland-trample-height.patch} | 2 +- ...onfigurable-player-pickup-exp-delay.patch} | 2 +- ...ng.patch => 0230-Allow-void-trading.patch} | 2 +- ...h => 0231-Configurable-phantom-size.patch} | 6 +- ....patch => 0232-Max-joins-per-second.patch} | 0 ...figurable-minimum-demand-for-trades.patch} | 6 +- ... => 0234-Lobotomize-stuck-villagers.patch} | 6 +- ...ion-for-villager-display-trade-item.patch} | 6 +- ...wner-not-spawning-water-animals-cor.patch} | 4 +- ...ig-for-mob-last-hurt-by-player-time.patch} | 2 +- ...=> 0238-Anvil-repair-damage-options.patch} | 2 +- ...-turtle-egg-trampling-with-feather-.patch} | 4 +- ...d-toggle-for-enchant-level-clamping.patch} | 0 ...kip-junit-tests-for-purpur-commands.patch} | 0 ...rable-search-radius-for-villagers-t.patch} | 6 +- ...ge.patch => 0243-Stonecutter-damage.patch} | 4 +- ...le-damage-settings-for-magma-blocks.patch} | 2 +- ...245-Add-config-for-snow-on-blue-ice.patch} | 2 +- ... => 0246-Skeletons-eat-wither-roses.patch} | 6 +- ...47-Enchantment-Table-Persists-Lapis.patch} | 4 +- ...ofiler.patch => 0248-Spark-Profiler.patch} | 0 ...-disable-kick-for-out-of-order-chat.patch} | 4 +- ...for-sculk-shrieker-can_summon-state.patch} | 8 +- ...=> 0251-Config-to-not-let-coral-die.patch} | 2 +- ...ch => 0252-Add-local-difficulty-api.patch} | 0 ...253-Add-toggle-for-RNG-manipulation.patch} | 2 +- ...imings.patch => 0254-Remove-Timings.patch} | 8 +- ...atch => 0255-Remove-Mojang-Profiler.patch} | 2 +- ...r-output-for-invalid-movement-kicks.patch} | 4 +- ...d-Bee-API.patch => 0257-Add-Bee-API.patch} | 0 ...-API.patch => 0258-Debug-Marker-API.patch} | 0 ...g-option-to-ignore-creative-players.patch} | 2 +- ...60-Add-skeleton-bow-accuracy-option.patch} | 6 +- ....patch => 0261-Add-death-screen-API.patch} | 0 ...2-Implement-ram-and-rambar-commands.patch} | 4 +- ...n-to-fix-MC-3304-projectile-looting.patch} | 2 +- ...Configurable-block-blast-resistance.patch} | 0 ...gurable-block-fall-damage-modifiers.patch} | 0 ...uage-API.patch => 0266-Language-API.patch} | 2 +- ... 0267-Milk-Keeps-Beneficial-Effects.patch} | 2 +- ...s-not-looking-up-and-down-when-stra.patch} | 0 ...d-log-suppression-for-LibraryLoader.patch} | 0 ...ow-creeper-to-encircle-target-when-.patch} | 6 +- ...API.patch => 0271-Fire-Immunity-API.patch} | 0 ...eport-to-spawn-on-nether-ceiling-da.patch} | 2 +- ...t.patch => 0273-Added-got-ram-event.patch} | 0 ... 0274-Log-skipped-entity-s-position.patch} | 0 ....patch => 0275-End-Crystal-Cramming.patch} | 2 +- ...eacon-effects-when-covered-by-tinte.patch} | 2 +- ...ute-clamping-and-armor-limit-config.patch} | 0 ...ig-to-remove-explosion-radius-clamp.patch} | 2 +- ...ble-sugarcane-cactus-and-netherwart.patch} | 2 +- ....patch => 0280-Add-PreExplodeEvents.patch} | 0 ...1-Improve-output-of-plugins-command.patch} | 0 ...atch => 0282-Add-mending-multiplier.patch} | 2 +- ....patch => 0283-Make-GUI-Great-Again.patch} | 0 ...ee-API.patch => 0284-Stored-Bee-API.patch} | 0 ...patch => 0285-Shears-can-defuse-TNT.patch} | 4 +- ...-API.patch => 0286-Explorer-Map-API.patch} | 0 ...Option-Ocelot-Spawn-Under-Sea-Level.patch} | 6 +- ...-piglins-to-ignore-gold-trimmed-arm.patch} | 6 +- ...ways-showing-item-in-player-death-m.patch} | 0 ...0290-place-end-crystal-on-any-block.patch} | 2 +- ...able-the-copper-oxidation-proximity.patch} | 2 +- ...2-register-minecraft-debug-commands.patch} | 0 ...Configurable-villager-search-radius.patch} | 6 +- .../0071-Allow-color-codes-in-books.patch | 77 ----- 227 files changed, 381 insertions(+), 369 deletions(-) create mode 100644 patches/server/0068-Allow-color-codes-in-books.patch rename patches/server/{0068-Entity-lifespan.patch => 0069-Entity-lifespan.patch} (97%) rename patches/server/{0069-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch => 0070-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch} (100%) rename patches/server/{0070-Squid-EAR-immunity.patch => 0071-Squid-EAR-immunity.patch} (100%) rename patches/server/{0071-Phantoms-burn-in-light.patch => 0072-Phantoms-burn-in-light.patch} (100%) rename patches/server/{0072-Configurable-villager-breeding.patch => 0073-Configurable-villager-breeding.patch} (100%) rename patches/server/{0073-Redstone-deactivates-spawners.patch => 0074-Redstone-deactivates-spawners.patch} (100%) rename patches/server/{0074-Totems-work-in-inventory.patch => 0075-Totems-work-in-inventory.patch} (100%) rename patches/server/{0075-Add-vindicator-johnny-spawn-chance.patch => 0076-Add-vindicator-johnny-spawn-chance.patch} (100%) rename patches/server/{0076-Dispensers-place-anvils-option.patch => 0077-Dispensers-place-anvils-option.patch} (100%) rename patches/server/{0077-Allow-anvil-colors.patch => 0078-Allow-anvil-colors.patch} (100%) rename patches/server/{0078-Add-option-to-disable-dolphin-treasure-searching.patch => 0079-Add-option-to-disable-dolphin-treasure-searching.patch} (100%) rename patches/server/{0079-Short-enderman-height.patch => 0080-Short-enderman-height.patch} (96%) rename patches/server/{0080-Stop-squids-floating-on-top-of-water.patch => 0081-Stop-squids-floating-on-top-of-water.patch} (100%) rename patches/server/{0081-Crying-obsidian-valid-for-portal-frames.patch => 0082-Crying-obsidian-valid-for-portal-frames.patch} (96%) rename patches/server/{0082-Entities-can-use-portals-configuration.patch => 0083-Entities-can-use-portals-configuration.patch} (100%) rename patches/server/{0083-LivingEntity-broadcastItemBreak.patch => 0084-LivingEntity-broadcastItemBreak.patch} (100%) rename patches/server/{0084-Customizable-wither-health-and-healing.patch => 0085-Customizable-wither-health-and-healing.patch} (100%) rename patches/server/{0085-Allow-toggling-special-MobSpawners-per-world.patch => 0086-Allow-toggling-special-MobSpawners-per-world.patch} (100%) rename patches/server/{0086-Raid-cooldown-setting.patch => 0087-Raid-cooldown-setting.patch} (100%) rename patches/server/{0087-Despawn-rate-config-options-per-projectile-type.patch => 0088-Despawn-rate-config-options-per-projectile-type.patch} (100%) rename patches/server/{0088-Add-option-to-disable-zombie-aggressiveness-towards-.patch => 0089-Add-option-to-disable-zombie-aggressiveness-towards-.patch} (100%) rename patches/server/{0089-Add-predicate-to-recipe-s-ExactChoice-ingredient.patch => 0090-Add-predicate-to-recipe-s-ExactChoice-ingredient.patch} (100%) rename patches/server/{0090-Flying-squids-Oh-my.patch => 0091-Flying-squids-Oh-my.patch} (100%) rename patches/server/{0091-Infinity-bow-settings.patch => 0092-Infinity-bow-settings.patch} (100%) rename patches/server/{0092-Configurable-daylight-cycle.patch => 0093-Configurable-daylight-cycle.patch} (100%) rename patches/server/{0093-Allow-infinite-and-mending-enchantments-together.patch => 0094-Allow-infinite-and-mending-enchantments-together.patch} (96%) rename patches/server/{0094-Furnace-uses-lava-from-underneath.patch => 0095-Furnace-uses-lava-from-underneath.patch} (100%) rename patches/server/{0095-Arrows-should-not-reset-despawn-counter.patch => 0096-Arrows-should-not-reset-despawn-counter.patch} (100%) rename patches/server/{0096-Ability-to-re-add-farmland-mechanics-from-Alpha.patch => 0097-Ability-to-re-add-farmland-mechanics-from-Alpha.patch} (100%) rename patches/server/{0097-Add-adjustable-breeding-cooldown-to-config.patch => 0098-Add-adjustable-breeding-cooldown-to-config.patch} (100%) rename patches/server/{0098-Make-entity-breeding-times-configurable.patch => 0099-Make-entity-breeding-times-configurable.patch} (99%) rename patches/server/{0099-Apply-display-names-from-item-forms-of-entities-to-e.patch => 0100-Apply-display-names-from-item-forms-of-entities-to-e.patch} (100%) rename patches/server/{0100-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch => 0101-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch} (100%) rename patches/server/{0101-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch => 0102-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch} (100%) rename patches/server/{0102-Add-configurable-snowball-damage.patch => 0103-Add-configurable-snowball-damage.patch} (100%) rename patches/server/{0103-Changeable-Mob-Left-Handed-Chance.patch => 0104-Changeable-Mob-Left-Handed-Chance.patch} (100%) rename patches/server/{0104-Add-boat-fall-damage-config.patch => 0105-Add-boat-fall-damage-config.patch} (100%) rename patches/server/{0105-Snow-Golem-rate-of-fire-config.patch => 0106-Snow-Golem-rate-of-fire-config.patch} (100%) rename patches/server/{0106-EMC-Configurable-disable-give-dropping.patch => 0107-EMC-Configurable-disable-give-dropping.patch} (95%) rename patches/server/{0107-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch => 0108-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch} (100%) rename patches/server/{0108-Toggle-for-Zombified-Piglin-death-always-counting-as.patch => 0109-Toggle-for-Zombified-Piglin-death-always-counting-as.patch} (100%) rename patches/server/{0109-Configurable-chance-for-wolves-to-spawn-rabid.patch => 0110-Configurable-chance-for-wolves-to-spawn-rabid.patch} (100%) rename patches/server/{0110-Configurable-default-collar-color.patch => 0111-Configurable-default-collar-color.patch} (97%) rename patches/server/{0111-Phantom-flames-on-swoop.patch => 0112-Phantom-flames-on-swoop.patch} (100%) rename patches/server/{0112-Option-for-chests-to-open-even-with-a-solid-block-on.patch => 0113-Option-for-chests-to-open-even-with-a-solid-block-on.patch} (100%) rename patches/server/{0113-Implement-TPSBar.patch => 0114-Implement-TPSBar.patch} (99%) rename patches/server/{0114-Striders-give-saddle-back.patch => 0115-Striders-give-saddle-back.patch} (100%) rename patches/server/{0115-PlayerBookTooLargeEvent.patch => 0116-PlayerBookTooLargeEvent.patch} (96%) rename patches/server/{0116-Full-netherite-armor-grants-fire-resistance.patch => 0117-Full-netherite-armor-grants-fire-resistance.patch} (97%) rename patches/server/{0117-Add-mobGriefing-bypass-to-everything-affected.patch => 0118-Add-mobGriefing-bypass-to-everything-affected.patch} (100%) rename patches/server/{0118-Config-to-allow-Note-Block-sounds-when-blocked.patch => 0119-Config-to-allow-Note-Block-sounds-when-blocked.patch} (100%) rename patches/server/{0119-Add-EntityTeleportHinderedEvent.patch => 0120-Add-EntityTeleportHinderedEvent.patch} (100%) rename patches/server/{0120-Farmland-trampling-changes.patch => 0121-Farmland-trampling-changes.patch} (100%) rename patches/server/{0121-Movement-options-for-armor-stands.patch => 0122-Movement-options-for-armor-stands.patch} (100%) rename patches/server/{0122-Fix-stuck-in-portals.patch => 0123-Fix-stuck-in-portals.patch} (100%) rename patches/server/{0123-Toggle-for-water-sensitive-mob-damage.patch => 0124-Toggle-for-water-sensitive-mob-damage.patch} (99%) rename patches/server/{0124-Config-to-always-tame-in-Creative.patch => 0125-Config-to-always-tame-in-Creative.patch} (100%) rename patches/server/{0125-End-crystal-explosion-options.patch => 0126-End-crystal-explosion-options.patch} (100%) rename patches/server/{0126-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch => 0127-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch} (100%) rename patches/server/{0127-Dont-run-with-scissors.patch => 0128-Dont-run-with-scissors.patch} (96%) rename patches/server/{0128-One-Punch-Man.patch => 0129-One-Punch-Man.patch} (100%) rename patches/server/{0129-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch => 0130-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch} (100%) rename patches/server/{0130-Config-to-ignore-nearby-mobs-when-sleeping.patch => 0131-Config-to-ignore-nearby-mobs-when-sleeping.patch} (100%) rename patches/server/{0131-Add-back-player-spawned-endermite-API.patch => 0132-Add-back-player-spawned-endermite-API.patch} (100%) rename patches/server/{0132-Config-Enderman-aggressiveness-towards-Endermites.patch => 0133-Config-Enderman-aggressiveness-towards-Endermites.patch} (100%) rename patches/server/{0133-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch => 0134-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch} (100%) rename patches/server/{0134-Tick-fluids-config.patch => 0135-Tick-fluids-config.patch} (100%) rename patches/server/{0135-Config-to-disable-Llama-caravans.patch => 0136-Config-to-disable-Llama-caravans.patch} (100%) rename patches/server/{0136-Config-to-make-Creepers-explode-on-death.patch => 0137-Config-to-make-Creepers-explode-on-death.patch} (100%) rename patches/server/{0137-Configurable-ravager-griefable-blocks-list.patch => 0138-Configurable-ravager-griefable-blocks-list.patch} (100%) rename patches/server/{0138-Sneak-to-bulk-process-composter.patch => 0139-Sneak-to-bulk-process-composter.patch} (100%) rename patches/server/{0139-Config-for-skipping-night.patch => 0140-Config-for-skipping-night.patch} (100%) rename patches/server/{0140-Add-config-for-villager-trading.patch => 0141-Add-config-for-villager-trading.patch} (100%) rename patches/server/{0141-Allow-infinity-on-crossbows.patch => 0142-Allow-infinity-on-crossbows.patch} (92%) rename patches/server/{0142-Drowning-Settings.patch => 0143-Drowning-Settings.patch} (97%) rename patches/server/{0143-Break-individual-slabs-when-sneaking.patch => 0144-Break-individual-slabs-when-sneaking.patch} (100%) rename patches/server/{0144-Config-to-disable-hostile-mob-spawn-on-ice.patch => 0145-Config-to-disable-hostile-mob-spawn-on-ice.patch} (100%) rename patches/server/{0145-Config-to-show-Armor-Stand-arms-on-spawn.patch => 0146-Config-to-show-Armor-Stand-arms-on-spawn.patch} (100%) rename patches/server/{0146-Option-to-make-doors-require-redstone.patch => 0147-Option-to-make-doors-require-redstone.patch} (100%) rename patches/server/{0147-Config-to-allow-for-unsafe-enchants.patch => 0148-Config-to-allow-for-unsafe-enchants.patch} (97%) rename patches/server/{0148-Configurable-sponge-absorption.patch => 0149-Configurable-sponge-absorption.patch} (100%) rename patches/server/{0149-Projectile-offset-config.patch => 0150-Projectile-offset-config.patch} (99%) rename patches/server/{0150-Config-for-powered-rail-activation-distance.patch => 0151-Config-for-powered-rail-activation-distance.patch} (100%) rename patches/server/{0151-Piglin-portal-spawn-modifier.patch => 0152-Piglin-portal-spawn-modifier.patch} (100%) rename patches/server/{0152-Config-to-change-max-number-of-bees.patch => 0153-Config-to-change-max-number-of-bees.patch} (96%) rename patches/server/{0153-Config-for-wither-explosion-radius.patch => 0154-Config-for-wither-explosion-radius.patch} (100%) rename patches/server/{0154-Gamemode-extra-permissions.patch => 0155-Gamemode-extra-permissions.patch} (98%) rename patches/server/{0155-Configurable-piston-push-limit.patch => 0156-Configurable-piston-push-limit.patch} (100%) rename patches/server/{0156-Configurable-broadcast-settings.patch => 0157-Configurable-broadcast-settings.patch} (97%) rename patches/server/{0157-Configurable-mob-blindness.patch => 0158-Configurable-mob-blindness.patch} (97%) rename patches/server/{0158-Hide-hidden-players-from-entity-selector.patch => 0159-Hide-hidden-players-from-entity-selector.patch} (98%) rename patches/server/{0159-Config-for-health-to-impact-Creeper-explosion-radius.patch => 0160-Config-for-health-to-impact-Creeper-explosion-radius.patch} (100%) rename patches/server/{0160-Iron-golem-calm-anger-options.patch => 0161-Iron-golem-calm-anger-options.patch} (100%) rename patches/server/{0161-Breedable-parrots.patch => 0162-Breedable-parrots.patch} (100%) rename patches/server/{0162-Configurable-powered-rail-boost-modifier.patch => 0163-Configurable-powered-rail-boost-modifier.patch} (100%) rename patches/server/{0163-Add-config-change-multiplier-critical-damage-value.patch => 0164-Add-config-change-multiplier-critical-damage-value.patch} (96%) rename patches/server/{0164-Option-to-disable-dragon-egg-teleporting.patch => 0165-Option-to-disable-dragon-egg-teleporting.patch} (100%) rename patches/server/{0165-Config-for-unverified-username-message.patch => 0166-Config-for-unverified-username-message.patch} (97%) rename patches/server/{0166-Make-anvil-cumulative-cost-configurable.patch => 0167-Make-anvil-cumulative-cost-configurable.patch} (95%) rename patches/server/{0167-Bee-can-work-when-raining-or-at-night.patch => 0168-Bee-can-work-when-raining-or-at-night.patch} (100%) rename patches/server/{0168-API-for-any-mob-to-burn-daylight.patch => 0169-API-for-any-mob-to-burn-daylight.patch} (99%) rename patches/server/{0169-Config-MobEffect-by-world.patch => 0170-Config-MobEffect-by-world.patch} (100%) rename patches/server/{0170-Beacon-Activation-Range-Configurable.patch => 0171-Beacon-Activation-Range-Configurable.patch} (96%) rename patches/server/{0171-Make-lightning-rod-range-configurable.patch => 0172-Make-lightning-rod-range-configurable.patch} (96%) rename patches/server/{0172-Burp-delay-burp-after-eating-food-fills-hunger-bar-c.patch => 0173-Burp-delay-burp-after-eating-food-fills-hunger-bar-c.patch} (97%) rename patches/server/{0173-Allow-player-join-full-server-by-permission.patch => 0174-Allow-player-join-full-server-by-permission.patch} (100%) rename patches/server/{0174-Add-portal-permission-bypass.patch => 0175-Add-portal-permission-bypass.patch} (95%) rename patches/server/{0175-Shulker-spawn-from-bullet-options.patch => 0176-Shulker-spawn-from-bullet-options.patch} (100%) rename patches/server/{0176-Eating-glow-berries-adds-glow-effect.patch => 0177-Eating-glow-berries-adds-glow-effect.patch} (100%) rename patches/server/{0177-Option-to-make-drowned-break-doors.patch => 0178-Option-to-make-drowned-break-doors.patch} (100%) rename patches/server/{0178-Configurable-hunger-starvation-damage.patch => 0179-Configurable-hunger-starvation-damage.patch} (100%) rename patches/server/{0179-Enhance-SysoutCatcher.patch => 0180-Enhance-SysoutCatcher.patch} (100%) rename patches/server/{0180-Add-uptime-command.patch => 0181-Add-uptime-command.patch} (98%) rename patches/server/{0181-Tool-actionable-options.patch => 0182-Tool-actionable-options.patch} (100%) rename patches/server/{0182-Store-placer-on-Block-when-placed.patch => 0183-Store-placer-on-Block-when-placed.patch} (96%) rename patches/server/{0183-Summoner-API.patch => 0184-Summoner-API.patch} (100%) rename patches/server/{0184-Customizable-sleeping-actionbar-messages.patch => 0185-Customizable-sleeping-actionbar-messages.patch} (98%) rename patches/server/{0185-option-to-disable-shulker-box-items-from-dropping-co.patch => 0186-option-to-disable-shulker-box-items-from-dropping-co.patch} (100%) rename patches/server/{0186-Big-dripleaf-tilt-delay.patch => 0187-Big-dripleaf-tilt-delay.patch} (100%) rename patches/server/{0187-Player-ridable-in-water-option.patch => 0188-Player-ridable-in-water-option.patch} (96%) rename patches/server/{0188-Config-to-disable-Enderman-teleport-on-projectile-hi.patch => 0189-Config-to-disable-Enderman-teleport-on-projectile-hi.patch} (100%) rename patches/server/{0189-Add-compass-command.patch => 0190-Add-compass-command.patch} (99%) rename patches/server/{0190-Toggle-for-kinetic-damage.patch => 0191-Toggle-for-kinetic-damage.patch} (95%) rename patches/server/{0191-Add-Option-for-disable-observer-clocks.patch => 0192-Add-Option-for-disable-observer-clocks.patch} (100%) rename patches/server/{0192-Customizeable-Zombie-Villager-curing-times.patch => 0193-Customizeable-Zombie-Villager-curing-times.patch} (100%) rename patches/server/{0193-Option-for-sponges-to-work-on-lava-and-mud.patch => 0194-Option-for-sponges-to-work-on-lava-and-mud.patch} (100%) rename patches/server/{0194-Toggle-for-Wither-s-spawn-sound.patch => 0195-Toggle-for-Wither-s-spawn-sound.patch} (100%) rename patches/server/{0195-Cactus-breaks-from-solid-neighbors-config.patch => 0196-Cactus-breaks-from-solid-neighbors-config.patch} (100%) rename patches/server/{0196-Config-to-remove-curse-of-binding-with-weakness.patch => 0197-Config-to-remove-curse-of-binding-with-weakness.patch} (100%) rename patches/server/{0197-Conduit-behavior-configuration.patch => 0198-Conduit-behavior-configuration.patch} (100%) rename patches/server/{0198-Cauldron-fill-chances.patch => 0199-Cauldron-fill-chances.patch} (100%) rename patches/server/{0199-Config-to-allow-mobs-to-pathfind-over-rails.patch => 0200-Config-to-allow-mobs-to-pathfind-over-rails.patch} (100%) rename patches/server/{0200-Shulker-change-color-with-dye.patch => 0201-Shulker-change-color-with-dye.patch} (100%) rename patches/server/{0201-Extended-OfflinePlayer-API.patch => 0202-Extended-OfflinePlayer-API.patch} (100%) rename patches/server/{0202-Added-the-ability-to-add-combustible-items.patch => 0203-Added-the-ability-to-add-combustible-items.patch} (97%) rename patches/server/{0203-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch => 0204-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch} (100%) rename patches/server/{0204-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch => 0205-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch} (100%) rename patches/server/{0205-Shift-right-click-to-use-exp-for-mending.patch => 0206-Shift-right-click-to-use-exp-for-mending.patch} (96%) rename patches/server/{0206-Dolphins-naturally-aggressive-to-players-chance.patch => 0207-Dolphins-naturally-aggressive-to-players-chance.patch} (100%) rename patches/server/{0207-Cows-naturally-aggressive-to-players-chance.patch => 0208-Cows-naturally-aggressive-to-players-chance.patch} (100%) rename patches/server/{0208-Option-for-beds-to-explode-on-villager-sleep.patch => 0209-Option-for-beds-to-explode-on-villager-sleep.patch} (100%) rename patches/server/{0209-Halloween-options-and-optimizations.patch => 0210-Halloween-options-and-optimizations.patch} (98%) rename patches/server/{0210-Config-for-grindstones.patch => 0211-Config-for-grindstones.patch} (98%) rename patches/server/{0211-UPnP-Port-Forwarding.patch => 0212-UPnP-Port-Forwarding.patch} (97%) rename patches/server/{0212-Campfire-option-for-lit-when-placed.patch => 0213-Campfire-option-for-lit-when-placed.patch} (100%) rename patches/server/{0213-options-to-extinguish-fire-blocks-with-snowballs.patch => 0214-options-to-extinguish-fire-blocks-with-snowballs.patch} (100%) rename patches/server/{0214-Add-option-to-disable-zombie-villagers-cure.patch => 0215-Add-option-to-disable-zombie-villagers-cure.patch} (100%) rename patches/server/{0215-Persistent-BlockEntity-Lore-and-DisplayName.patch => 0216-Persistent-BlockEntity-Lore-and-DisplayName.patch} (100%) rename patches/{unapplied-server => server}/0217-Signs-allow-color-codes.patch (87%) rename patches/server/{0216-Kelp-cave-weeping-and-twisting-vines-configurable-ma.patch => 0218-Kelp-cave-weeping-and-twisting-vines-configurable-ma.patch} (100%) rename patches/server/{0217-Mobs-always-drop-experience.patch => 0219-Mobs-always-drop-experience.patch} (93%) rename patches/server/{0218-Grindstone-API.patch => 0220-Grindstone-API.patch} (100%) rename patches/server/{0219-Ability-for-hoe-to-replant-crops-and-nether-warts.patch => 0221-Ability-for-hoe-to-replant-crops-and-nether-warts.patch} (98%) rename patches/server/{0220-Turtle-eggs-random-tick-crack-chance.patch => 0222-Turtle-eggs-random-tick-crack-chance.patch} (93%) rename patches/server/{0221-Mob-head-visibility-percent.patch => 0223-Mob-head-visibility-percent.patch} (91%) rename patches/server/{0222-Configurable-valid-characters-for-usernames.patch => 0224-Configurable-valid-characters-for-usernames.patch} (100%) rename patches/server/{0223-Shears-can-have-looting-enchantment.patch => 0225-Shears-can-have-looting-enchantment.patch} (100%) rename patches/server/{0224-Stop-bees-from-dying-after-stinging.patch => 0226-Stop-bees-from-dying-after-stinging.patch} (90%) rename patches/server/{0225-Give-bee-counts-in-beehives-to-Purpur-clients.patch => 0227-Give-bee-counts-in-beehives-to-Purpur-clients.patch} (100%) rename patches/server/{0226-Configurable-farmland-trample-height.patch => 0228-Configurable-farmland-trample-height.patch} (97%) rename patches/server/{0227-Configurable-player-pickup-exp-delay.patch => 0229-Configurable-player-pickup-exp-delay.patch} (97%) rename patches/server/{0228-Allow-void-trading.patch => 0230-Allow-void-trading.patch} (96%) rename patches/server/{0229-Configurable-phantom-size.patch => 0231-Configurable-phantom-size.patch} (93%) rename patches/server/{0230-Max-joins-per-second.patch => 0232-Max-joins-per-second.patch} (100%) rename patches/server/{0231-Configurable-minimum-demand-for-trades.patch => 0233-Configurable-minimum-demand-for-trades.patch} (94%) rename patches/server/{0232-Lobotomize-stuck-villagers.patch => 0234-Lobotomize-stuck-villagers.patch} (97%) rename patches/server/{0233-Option-for-villager-display-trade-item.patch => 0235-Option-for-villager-display-trade-item.patch} (92%) rename patches/server/{0234-MC-238526-Fix-spawner-not-spawning-water-animals-cor.patch => 0236-MC-238526-Fix-spawner-not-spawning-water-animals-cor.patch} (93%) rename patches/server/{0235-Config-for-mob-last-hurt-by-player-time.patch => 0237-Config-for-mob-last-hurt-by-player-time.patch} (97%) rename patches/server/{0236-Anvil-repair-damage-options.patch => 0238-Anvil-repair-damage-options.patch} (98%) rename patches/server/{0237-Option-to-disable-turtle-egg-trampling-with-feather-.patch => 0239-Option-to-disable-turtle-egg-trampling-with-feather-.patch} (94%) rename patches/server/{0238-Add-toggle-for-enchant-level-clamping.patch => 0240-Add-toggle-for-enchant-level-clamping.patch} (100%) rename patches/server/{0239-Skip-junit-tests-for-purpur-commands.patch => 0241-Skip-junit-tests-for-purpur-commands.patch} (100%) rename patches/server/{0240-Implement-configurable-search-radius-for-villagers-t.patch => 0242-Implement-configurable-search-radius-for-villagers-t.patch} (93%) rename patches/server/{0241-Stonecutter-damage.patch => 0243-Stonecutter-damage.patch} (98%) rename patches/server/{0242-Configurable-damage-settings-for-magma-blocks.patch => 0244-Configurable-damage-settings-for-magma-blocks.patch} (96%) rename patches/server/{0243-Add-config-for-snow-on-blue-ice.patch => 0245-Add-config-for-snow-on-blue-ice.patch} (95%) rename patches/server/{0244-Skeletons-eat-wither-roses.patch => 0246-Skeletons-eat-wither-roses.patch} (96%) rename patches/server/{0245-Enchantment-Table-Persists-Lapis.patch => 0247-Enchantment-Table-Persists-Lapis.patch} (97%) rename patches/server/{0246-Spark-Profiler.patch => 0248-Spark-Profiler.patch} (100%) rename patches/server/{0247-Option-to-disable-kick-for-out-of-order-chat.patch => 0249-Option-to-disable-kick-for-out-of-order-chat.patch} (91%) rename patches/server/{0248-Config-for-sculk-shrieker-can_summon-state.patch => 0250-Config-for-sculk-shrieker-can_summon-state.patch} (86%) rename patches/server/{0249-Config-to-not-let-coral-die.patch => 0251-Config-to-not-let-coral-die.patch} (96%) rename patches/server/{0250-Add-local-difficulty-api.patch => 0252-Add-local-difficulty-api.patch} (100%) rename patches/server/{0251-Add-toggle-for-RNG-manipulation.patch => 0253-Add-toggle-for-RNG-manipulation.patch} (97%) rename patches/server/{0252-Remove-Timings.patch => 0254-Remove-Timings.patch} (99%) rename patches/server/{0253-Remove-Mojang-Profiler.patch => 0255-Remove-Mojang-Profiler.patch} (99%) rename patches/server/{0254-Add-more-logger-output-for-invalid-movement-kicks.patch => 0256-Add-more-logger-output-for-invalid-movement-kicks.patch} (94%) rename patches/server/{0255-Add-Bee-API.patch => 0257-Add-Bee-API.patch} (100%) rename patches/server/{0256-Debug-Marker-API.patch => 0258-Debug-Marker-API.patch} (100%) rename patches/server/{0257-mob-spawning-option-to-ignore-creative-players.patch => 0259-mob-spawning-option-to-ignore-creative-players.patch} (96%) rename patches/server/{0258-Add-skeleton-bow-accuracy-option.patch => 0260-Add-skeleton-bow-accuracy-option.patch} (94%) rename patches/server/{0259-Add-death-screen-API.patch => 0261-Add-death-screen-API.patch} (100%) rename patches/server/{0260-Implement-ram-and-rambar-commands.patch => 0262-Implement-ram-and-rambar-commands.patch} (99%) rename patches/server/{0261-Add-an-option-to-fix-MC-3304-projectile-looting.patch => 0263-Add-an-option-to-fix-MC-3304-projectile-looting.patch} (98%) rename patches/server/{0262-Configurable-block-blast-resistance.patch => 0264-Configurable-block-blast-resistance.patch} (100%) rename patches/server/{0263-Configurable-block-fall-damage-modifiers.patch => 0265-Configurable-block-fall-damage-modifiers.patch} (100%) rename patches/server/{0264-Language-API.patch => 0266-Language-API.patch} (93%) rename patches/server/{0265-Milk-Keeps-Beneficial-Effects.patch => 0267-Milk-Keeps-Beneficial-Effects.patch} (97%) rename patches/server/{0266-MC-121706-Fix-mobs-not-looking-up-and-down-when-stra.patch => 0268-MC-121706-Fix-mobs-not-looking-up-and-down-when-stra.patch} (100%) rename patches/server/{0267-Add-log-suppression-for-LibraryLoader.patch => 0269-Add-log-suppression-for-LibraryLoader.patch} (100%) rename patches/server/{0268-Add-option-to-allow-creeper-to-encircle-target-when-.patch => 0270-Add-option-to-allow-creeper-to-encircle-target-when-.patch} (92%) rename patches/server/{0269-Fire-Immunity-API.patch => 0271-Fire-Immunity-API.patch} (100%) rename patches/server/{0270-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch => 0272-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch} (96%) rename patches/server/{0271-Added-got-ram-event.patch => 0273-Added-got-ram-event.patch} (100%) rename patches/server/{0272-Log-skipped-entity-s-position.patch => 0274-Log-skipped-entity-s-position.patch} (100%) rename patches/server/{0273-End-Crystal-Cramming.patch => 0275-End-Crystal-Cramming.patch} (96%) rename patches/server/{0274-Option-to-allow-beacon-effects-when-covered-by-tinte.patch => 0276-Option-to-allow-beacon-effects-when-covered-by-tinte.patch} (97%) rename patches/server/{0275-Add-attribute-clamping-and-armor-limit-config.patch => 0277-Add-attribute-clamping-and-armor-limit-config.patch} (100%) rename patches/server/{0276-Config-to-remove-explosion-radius-clamp.patch => 0278-Config-to-remove-explosion-radius-clamp.patch} (95%) rename patches/server/{0277-bonemealable-sugarcane-cactus-and-netherwart.patch => 0279-bonemealable-sugarcane-cactus-and-netherwart.patch} (98%) rename patches/server/{0278-Add-PreExplodeEvents.patch => 0280-Add-PreExplodeEvents.patch} (100%) rename patches/server/{0279-Improve-output-of-plugins-command.patch => 0281-Improve-output-of-plugins-command.patch} (100%) rename patches/server/{0280-Add-mending-multiplier.patch => 0282-Add-mending-multiplier.patch} (96%) rename patches/server/{0281-Make-GUI-Great-Again.patch => 0283-Make-GUI-Great-Again.patch} (100%) rename patches/server/{0282-Stored-Bee-API.patch => 0284-Stored-Bee-API.patch} (100%) rename patches/server/{0283-Shears-can-defuse-TNT.patch => 0285-Shears-can-defuse-TNT.patch} (96%) rename patches/server/{0284-Explorer-Map-API.patch => 0286-Explorer-Map-API.patch} (100%) rename patches/server/{0285-Option-Ocelot-Spawn-Under-Sea-Level.patch => 0287-Option-Ocelot-Spawn-Under-Sea-Level.patch} (91%) rename patches/server/{0286-add-an-option-for-piglins-to-ignore-gold-trimmed-arm.patch => 0288-add-an-option-for-piglins-to-ignore-gold-trimmed-arm.patch} (93%) rename patches/server/{0287-Add-option-for-always-showing-item-in-player-death-m.patch => 0289-Add-option-for-always-showing-item-in-player-death-m.patch} (100%) rename patches/server/{0288-place-end-crystal-on-any-block.patch => 0290-place-end-crystal-on-any-block.patch} (96%) rename patches/server/{0289-Add-option-to-disable-the-copper-oxidation-proximity.patch => 0291-Add-option-to-disable-the-copper-oxidation-proximity.patch} (96%) rename patches/server/{0290-register-minecraft-debug-commands.patch => 0292-register-minecraft-debug-commands.patch} (100%) rename patches/server/{0291-Configurable-villager-search-radius.patch => 0293-Configurable-villager-search-radius.patch} (95%) delete mode 100644 patches/unapplied-server/0071-Allow-color-codes-in-books.patch diff --git a/patches/server/0068-Allow-color-codes-in-books.patch b/patches/server/0068-Allow-color-codes-in-books.patch new file mode 100644 index 000000000..2122c64dd --- /dev/null +++ b/patches/server/0068-Allow-color-codes-in-books.patch @@ -0,0 +1,89 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: William Blake Galbreath +Date: Tue, 3 Nov 2020 01:25:06 -0600 +Subject: [PATCH] Allow color codes in books + + +diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +index 510a4391463026dd0c896027a579a94174c24299..c647629ef404e983240577c87306bb76bf0cc4a5 100644 +--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java ++++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +@@ -1234,10 +1234,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl + + Objects.requireNonNull(list); + stream.forEach(list::add); ++ // Purpur start ++ boolean hasEditPerm = getCraftPlayer().hasPermission("purpur.book.color.edit"); ++ boolean hasSignPerm = hasEditPerm || getCraftPlayer().hasPermission("purpur.book.color.sign"); ++ // Purpur end + Consumer> consumer = optional.isPresent() ? (list1) -> { +- this.signBook((FilteredText) list1.get(0), list1.subList(1, list1.size()), i); ++ this.signBook((FilteredText) list1.get(0), list1.subList(1, list1.size()), i, hasSignPerm); // Purpur + } : (list1) -> { +- this.updateBookContents(list1, i); ++ this.updateBookContents(list1, i, hasEditPerm); // Purpur + }; + + this.filterTextPacket((List) list).thenAcceptAsync(consumer, this.server); +@@ -1245,13 +1249,18 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl + } + + private void updateBookContents(List pages, int slotId) { ++ // Purpur start ++ updateBookContents(pages, slotId, false); ++ } ++ private void updateBookContents(List pages, int slotId, boolean hasPerm) { ++ // Purpur end + // CraftBukkit start + ItemStack handItem = this.player.getInventory().getItem(slotId); + ItemStack itemstack = handItem.copy(); + // CraftBukkit end + + if (itemstack.is(Items.WRITABLE_BOOK)) { +- List> list1 = pages.stream().map(this::filterableFromOutgoing).toList(); ++ List> list1 = pages.stream().map(filteredText -> filterableFromOutgoing(filteredText).map(s -> color(s, hasPerm))).toList(); // Purpur + + itemstack.set(DataComponents.WRITABLE_BOOK_CONTENT, new WritableBookContent(list1)); + this.player.getInventory().setItem(slotId, CraftEventFactory.handleEditBookEvent(this.player, slotId, handItem, itemstack)); // CraftBukkit // Paper - Don't ignore result (see other callsite for handleEditBookEvent) +@@ -1259,6 +1268,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl + } + + private void signBook(FilteredText title, List pages, int slotId) { ++ // Purpur start ++ signBook(title, pages, slotId, false); ++ } ++ private void signBook(FilteredText title, List pages, int slotId, boolean hasPerm) { ++ // Purpur end + ItemStack itemstack = this.player.getInventory().getItem(slotId); + + if (itemstack.is(Items.WRITABLE_BOOK)) { +@@ -1266,10 +1280,10 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl + + itemstack1.remove(DataComponents.WRITABLE_BOOK_CONTENT); + List> list1 = (List>) (List) pages.stream().map((filteredtext1) -> { // CraftBukkit - decompile error +- return this.filterableFromOutgoing(filteredtext1).map(Component::literal); ++ return this.filterableFromOutgoing(filteredtext1).map(s -> hexColor(s, hasPerm)); // Purpur + }).toList(); + +- itemstack1.set(DataComponents.WRITTEN_BOOK_CONTENT, new WrittenBookContent(this.filterableFromOutgoing(title), this.player.getName().getString(), 0, list1, true)); ++ itemstack1.set(DataComponents.WRITTEN_BOOK_CONTENT, new WrittenBookContent(this.filterableFromOutgoing(title).map(s -> color(s, hasPerm)), this.player.getName().getString(), 0, list1, true)); // Purpur + CraftEventFactory.handleEditBookEvent(this.player, slotId, itemstack, itemstack1); // CraftBukkit + this.player.getInventory().setItem(slotId, itemstack); // CraftBukkit - event factory updates the hand book + } +@@ -1279,6 +1293,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl + return this.player.isTextFilteringEnabled() ? Filterable.passThrough(message.filteredOrEmpty()) : Filterable.from(message); + } + ++ // Purpur start ++ private Component hexColor(String str, boolean hasPerm) { ++ return hasPerm ? PaperAdventure.asVanilla(net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacyAmpersand().deserialize(str)) : Component.literal(str); ++ } ++ ++ private String color(String str, boolean hasPerm) { ++ return hasPerm ? org.bukkit.ChatColor.color(str, false) : str; ++ } ++ // Purpur end ++ + @Override + public void handleEntityTagQuery(ServerboundEntityTagQueryPacket packet) { + PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); diff --git a/patches/server/0068-Entity-lifespan.patch b/patches/server/0069-Entity-lifespan.patch similarity index 97% rename from patches/server/0068-Entity-lifespan.patch rename to patches/server/0069-Entity-lifespan.patch index b3567a6f3..de7376432 100644 --- a/patches/server/0068-Entity-lifespan.patch +++ b/patches/server/0069-Entity-lifespan.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Entity lifespan diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 510a4391463026dd0c896027a579a94174c24299..f7cded2bac3d58c3c5b3082cdff7d38577733646 100644 +index c647629ef404e983240577c87306bb76bf0cc4a5..e5df5583ef6084e59c8375c82c9909ff2d2bdc3f 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2800,6 +2800,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2824,6 +2824,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl AABB axisalignedbb = entity.getBoundingBox(); if (this.player.canInteractWithEntity(axisalignedbb, 1.0D)) { diff --git a/patches/server/0069-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch b/patches/server/0070-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch similarity index 100% rename from patches/server/0069-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch rename to patches/server/0070-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch diff --git a/patches/server/0070-Squid-EAR-immunity.patch b/patches/server/0071-Squid-EAR-immunity.patch similarity index 100% rename from patches/server/0070-Squid-EAR-immunity.patch rename to patches/server/0071-Squid-EAR-immunity.patch diff --git a/patches/server/0071-Phantoms-burn-in-light.patch b/patches/server/0072-Phantoms-burn-in-light.patch similarity index 100% rename from patches/server/0071-Phantoms-burn-in-light.patch rename to patches/server/0072-Phantoms-burn-in-light.patch diff --git a/patches/server/0072-Configurable-villager-breeding.patch b/patches/server/0073-Configurable-villager-breeding.patch similarity index 100% rename from patches/server/0072-Configurable-villager-breeding.patch rename to patches/server/0073-Configurable-villager-breeding.patch diff --git a/patches/server/0073-Redstone-deactivates-spawners.patch b/patches/server/0074-Redstone-deactivates-spawners.patch similarity index 100% rename from patches/server/0073-Redstone-deactivates-spawners.patch rename to patches/server/0074-Redstone-deactivates-spawners.patch diff --git a/patches/server/0074-Totems-work-in-inventory.patch b/patches/server/0075-Totems-work-in-inventory.patch similarity index 100% rename from patches/server/0074-Totems-work-in-inventory.patch rename to patches/server/0075-Totems-work-in-inventory.patch diff --git a/patches/server/0075-Add-vindicator-johnny-spawn-chance.patch b/patches/server/0076-Add-vindicator-johnny-spawn-chance.patch similarity index 100% rename from patches/server/0075-Add-vindicator-johnny-spawn-chance.patch rename to patches/server/0076-Add-vindicator-johnny-spawn-chance.patch diff --git a/patches/server/0076-Dispensers-place-anvils-option.patch b/patches/server/0077-Dispensers-place-anvils-option.patch similarity index 100% rename from patches/server/0076-Dispensers-place-anvils-option.patch rename to patches/server/0077-Dispensers-place-anvils-option.patch diff --git a/patches/server/0077-Allow-anvil-colors.patch b/patches/server/0078-Allow-anvil-colors.patch similarity index 100% rename from patches/server/0077-Allow-anvil-colors.patch rename to patches/server/0078-Allow-anvil-colors.patch diff --git a/patches/server/0078-Add-option-to-disable-dolphin-treasure-searching.patch b/patches/server/0079-Add-option-to-disable-dolphin-treasure-searching.patch similarity index 100% rename from patches/server/0078-Add-option-to-disable-dolphin-treasure-searching.patch rename to patches/server/0079-Add-option-to-disable-dolphin-treasure-searching.patch diff --git a/patches/server/0079-Short-enderman-height.patch b/patches/server/0080-Short-enderman-height.patch similarity index 96% rename from patches/server/0079-Short-enderman-height.patch rename to patches/server/0080-Short-enderman-height.patch index bd0c0369b..8bad988ef 100644 --- a/patches/server/0079-Short-enderman-height.patch +++ b/patches/server/0080-Short-enderman-height.patch @@ -31,7 +31,7 @@ index 89275ac02fcfab963b520efae6135d6f5ac13465..cb307a9419399e33a895376a584456f0 boolean flag = source.getDirectEntity() instanceof ThrownPotion; boolean flag1; diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index de202a20cdc133d68fb44c56ee017cca153e1cf8..98cadc2f78cc259e3e81958bdc89ef81b8b6b1c3 100644 +index 43f42895c745be0fb809db856083dbea5def5776..68b19f66b38ffecfa05aaa7ec1187fb0967ebd57 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -244,6 +244,12 @@ public class PurpurConfig { diff --git a/patches/server/0080-Stop-squids-floating-on-top-of-water.patch b/patches/server/0081-Stop-squids-floating-on-top-of-water.patch similarity index 100% rename from patches/server/0080-Stop-squids-floating-on-top-of-water.patch rename to patches/server/0081-Stop-squids-floating-on-top-of-water.patch diff --git a/patches/server/0081-Crying-obsidian-valid-for-portal-frames.patch b/patches/server/0082-Crying-obsidian-valid-for-portal-frames.patch similarity index 96% rename from patches/server/0081-Crying-obsidian-valid-for-portal-frames.patch rename to patches/server/0082-Crying-obsidian-valid-for-portal-frames.patch index 50348dfe0..f67874c24 100644 --- a/patches/server/0081-Crying-obsidian-valid-for-portal-frames.patch +++ b/patches/server/0082-Crying-obsidian-valid-for-portal-frames.patch @@ -18,7 +18,7 @@ index af24467ee37cfc06f692b3b02e68f6cfbaaa8d59..afe6b2170846273b41b694aa53dca4c3 private static final float SAFE_TRAVEL_MAX_ENTITY_XY = 4.0F; private static final double SAFE_TRAVEL_MAX_VERTICAL_DELTA = 1.0D; diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 98cadc2f78cc259e3e81958bdc89ef81b8b6b1c3..0f67955a289d904ea72f7c24d097f2f1c5a4a8f2 100644 +index 68b19f66b38ffecfa05aaa7ec1187fb0967ebd57..2f68cf2fc064a38ca059504a39d563d95d01643e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -212,6 +212,7 @@ public class PurpurConfig { diff --git a/patches/server/0082-Entities-can-use-portals-configuration.patch b/patches/server/0083-Entities-can-use-portals-configuration.patch similarity index 100% rename from patches/server/0082-Entities-can-use-portals-configuration.patch rename to patches/server/0083-Entities-can-use-portals-configuration.patch diff --git a/patches/server/0083-LivingEntity-broadcastItemBreak.patch b/patches/server/0084-LivingEntity-broadcastItemBreak.patch similarity index 100% rename from patches/server/0083-LivingEntity-broadcastItemBreak.patch rename to patches/server/0084-LivingEntity-broadcastItemBreak.patch diff --git a/patches/server/0084-Customizable-wither-health-and-healing.patch b/patches/server/0085-Customizable-wither-health-and-healing.patch similarity index 100% rename from patches/server/0084-Customizable-wither-health-and-healing.patch rename to patches/server/0085-Customizable-wither-health-and-healing.patch diff --git a/patches/server/0085-Allow-toggling-special-MobSpawners-per-world.patch b/patches/server/0086-Allow-toggling-special-MobSpawners-per-world.patch similarity index 100% rename from patches/server/0085-Allow-toggling-special-MobSpawners-per-world.patch rename to patches/server/0086-Allow-toggling-special-MobSpawners-per-world.patch diff --git a/patches/server/0086-Raid-cooldown-setting.patch b/patches/server/0087-Raid-cooldown-setting.patch similarity index 100% rename from patches/server/0086-Raid-cooldown-setting.patch rename to patches/server/0087-Raid-cooldown-setting.patch diff --git a/patches/server/0087-Despawn-rate-config-options-per-projectile-type.patch b/patches/server/0088-Despawn-rate-config-options-per-projectile-type.patch similarity index 100% rename from patches/server/0087-Despawn-rate-config-options-per-projectile-type.patch rename to patches/server/0088-Despawn-rate-config-options-per-projectile-type.patch diff --git a/patches/server/0088-Add-option-to-disable-zombie-aggressiveness-towards-.patch b/patches/server/0089-Add-option-to-disable-zombie-aggressiveness-towards-.patch similarity index 100% rename from patches/server/0088-Add-option-to-disable-zombie-aggressiveness-towards-.patch rename to patches/server/0089-Add-option-to-disable-zombie-aggressiveness-towards-.patch diff --git a/patches/server/0089-Add-predicate-to-recipe-s-ExactChoice-ingredient.patch b/patches/server/0090-Add-predicate-to-recipe-s-ExactChoice-ingredient.patch similarity index 100% rename from patches/server/0089-Add-predicate-to-recipe-s-ExactChoice-ingredient.patch rename to patches/server/0090-Add-predicate-to-recipe-s-ExactChoice-ingredient.patch diff --git a/patches/server/0090-Flying-squids-Oh-my.patch b/patches/server/0091-Flying-squids-Oh-my.patch similarity index 100% rename from patches/server/0090-Flying-squids-Oh-my.patch rename to patches/server/0091-Flying-squids-Oh-my.patch diff --git a/patches/server/0091-Infinity-bow-settings.patch b/patches/server/0092-Infinity-bow-settings.patch similarity index 100% rename from patches/server/0091-Infinity-bow-settings.patch rename to patches/server/0092-Infinity-bow-settings.patch diff --git a/patches/server/0092-Configurable-daylight-cycle.patch b/patches/server/0093-Configurable-daylight-cycle.patch similarity index 100% rename from patches/server/0092-Configurable-daylight-cycle.patch rename to patches/server/0093-Configurable-daylight-cycle.patch diff --git a/patches/server/0093-Allow-infinite-and-mending-enchantments-together.patch b/patches/server/0094-Allow-infinite-and-mending-enchantments-together.patch similarity index 96% rename from patches/server/0093-Allow-infinite-and-mending-enchantments-together.patch rename to patches/server/0094-Allow-infinite-and-mending-enchantments-together.patch index f3939fcb5..b5f4be4d7 100644 --- a/patches/server/0093-Allow-infinite-and-mending-enchantments-together.patch +++ b/patches/server/0094-Allow-infinite-and-mending-enchantments-together.patch @@ -17,7 +17,7 @@ index 81cc05c929d612898609965d82454b89cd18f9f5..fa73c3d4b58ad8379963a9866d8f09e1 } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 0f67955a289d904ea72f7c24d097f2f1c5a4a8f2..8f98f665ec20c2df23a6f8bd891c502aba9a6ada 100644 +index 2f68cf2fc064a38ca059504a39d563d95d01643e..6d621a93aaf94927fa6c73e649dcdb8bbbaadd2a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -246,6 +246,16 @@ public class PurpurConfig { diff --git a/patches/server/0094-Furnace-uses-lava-from-underneath.patch b/patches/server/0095-Furnace-uses-lava-from-underneath.patch similarity index 100% rename from patches/server/0094-Furnace-uses-lava-from-underneath.patch rename to patches/server/0095-Furnace-uses-lava-from-underneath.patch diff --git a/patches/server/0095-Arrows-should-not-reset-despawn-counter.patch b/patches/server/0096-Arrows-should-not-reset-despawn-counter.patch similarity index 100% rename from patches/server/0095-Arrows-should-not-reset-despawn-counter.patch rename to patches/server/0096-Arrows-should-not-reset-despawn-counter.patch diff --git a/patches/server/0096-Ability-to-re-add-farmland-mechanics-from-Alpha.patch b/patches/server/0097-Ability-to-re-add-farmland-mechanics-from-Alpha.patch similarity index 100% rename from patches/server/0096-Ability-to-re-add-farmland-mechanics-from-Alpha.patch rename to patches/server/0097-Ability-to-re-add-farmland-mechanics-from-Alpha.patch diff --git a/patches/server/0097-Add-adjustable-breeding-cooldown-to-config.patch b/patches/server/0098-Add-adjustable-breeding-cooldown-to-config.patch similarity index 100% rename from patches/server/0097-Add-adjustable-breeding-cooldown-to-config.patch rename to patches/server/0098-Add-adjustable-breeding-cooldown-to-config.patch diff --git a/patches/server/0098-Make-entity-breeding-times-configurable.patch b/patches/server/0099-Make-entity-breeding-times-configurable.patch similarity index 99% rename from patches/server/0098-Make-entity-breeding-times-configurable.patch rename to patches/server/0099-Make-entity-breeding-times-configurable.patch index a6b0bf3d5..5ef15b6c9 100644 --- a/patches/server/0098-Make-entity-breeding-times-configurable.patch +++ b/patches/server/0099-Make-entity-breeding-times-configurable.patch @@ -284,7 +284,7 @@ index b8dcf3d632c79585ec7e9f50fa040fa9fac5d7c5..a577ec78b2f5bca0166277c499da4fa7 this.entityData.set(Turtle.HOME_POS, pos.immutable()); // Paper - called with mutablepos... } diff --git a/src/main/java/net/minecraft/world/entity/animal/Wolf.java b/src/main/java/net/minecraft/world/entity/animal/Wolf.java -index 8aaac4e86ec6d9c40999f6198cda7d367ece54e3..4212c3921a4059c539ca37f9609ef50538bc1fae 100644 +index 3235ed40d502722e888656776ba1a218f198f53e..2267f8da1c27ff54b2ced59ef15eb45357b7075d 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java +++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java @@ -151,6 +151,11 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder { return blockposition1.above(1); diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 18e8a4a062eb57be001c38dbcddef74b0d5583cd..8b7d38e85f9b094dc6c421464b9385fbc8570d2c 100644 +index b10e0de76f618c545294873038ce29ee0c486d24..f3f8ca5f2b391860b2134e06784819aa0e78321e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -270,6 +270,7 @@ public class PurpurConfig { diff --git a/patches/server/0172-Burp-delay-burp-after-eating-food-fills-hunger-bar-c.patch b/patches/server/0173-Burp-delay-burp-after-eating-food-fills-hunger-bar-c.patch similarity index 97% rename from patches/server/0172-Burp-delay-burp-after-eating-food-fills-hunger-bar-c.patch rename to patches/server/0173-Burp-delay-burp-after-eating-food-fills-hunger-bar-c.patch index 2fe9cc01b..969b2d855 100644 --- a/patches/server/0172-Burp-delay-burp-after-eating-food-fills-hunger-bar-c.patch +++ b/patches/server/0173-Burp-delay-burp-after-eating-food-fills-hunger-bar-c.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Burp delay, burp after eating food fills hunger bar diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index f45794bf2b418f94961681bac8b0f39fbf6578de..b17b76eedf681f06e4db78a7117a6af9e3915c62 100644 +index bc994bbc4c7b66e6365739acb896aaa81fbcbd7e..ea3252a70c68f3c228417d8ed6d19d5669abb5fb 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -196,6 +196,7 @@ public abstract class Player extends LivingEntity { diff --git a/patches/server/0173-Allow-player-join-full-server-by-permission.patch b/patches/server/0174-Allow-player-join-full-server-by-permission.patch similarity index 100% rename from patches/server/0173-Allow-player-join-full-server-by-permission.patch rename to patches/server/0174-Allow-player-join-full-server-by-permission.patch diff --git a/patches/server/0174-Add-portal-permission-bypass.patch b/patches/server/0175-Add-portal-permission-bypass.patch similarity index 95% rename from patches/server/0174-Add-portal-permission-bypass.patch rename to patches/server/0175-Add-portal-permission-bypass.patch index e3910c754..7d5cd2bd7 100644 --- a/patches/server/0174-Add-portal-permission-bypass.patch +++ b/patches/server/0175-Add-portal-permission-bypass.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add portal permission bypass diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index b17b76eedf681f06e4db78a7117a6af9e3915c62..df33ad8ef6394042c2b617606c7c792fe3801632 100644 +index ea3252a70c68f3c228417d8ed6d19d5669abb5fb..458c14d4f298137ef1a333368644568a2c8a0b09 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -197,6 +197,7 @@ public abstract class Player extends LivingEntity { diff --git a/patches/server/0175-Shulker-spawn-from-bullet-options.patch b/patches/server/0176-Shulker-spawn-from-bullet-options.patch similarity index 100% rename from patches/server/0175-Shulker-spawn-from-bullet-options.patch rename to patches/server/0176-Shulker-spawn-from-bullet-options.patch diff --git a/patches/server/0176-Eating-glow-berries-adds-glow-effect.patch b/patches/server/0177-Eating-glow-berries-adds-glow-effect.patch similarity index 100% rename from patches/server/0176-Eating-glow-berries-adds-glow-effect.patch rename to patches/server/0177-Eating-glow-berries-adds-glow-effect.patch diff --git a/patches/server/0177-Option-to-make-drowned-break-doors.patch b/patches/server/0178-Option-to-make-drowned-break-doors.patch similarity index 100% rename from patches/server/0177-Option-to-make-drowned-break-doors.patch rename to patches/server/0178-Option-to-make-drowned-break-doors.patch diff --git a/patches/server/0178-Configurable-hunger-starvation-damage.patch b/patches/server/0179-Configurable-hunger-starvation-damage.patch similarity index 100% rename from patches/server/0178-Configurable-hunger-starvation-damage.patch rename to patches/server/0179-Configurable-hunger-starvation-damage.patch diff --git a/patches/server/0179-Enhance-SysoutCatcher.patch b/patches/server/0180-Enhance-SysoutCatcher.patch similarity index 100% rename from patches/server/0179-Enhance-SysoutCatcher.patch rename to patches/server/0180-Enhance-SysoutCatcher.patch diff --git a/patches/server/0180-Add-uptime-command.patch b/patches/server/0181-Add-uptime-command.patch similarity index 98% rename from patches/server/0180-Add-uptime-command.patch rename to patches/server/0181-Add-uptime-command.patch index 6c0c3dfa7..5f0236123 100644 --- a/patches/server/0180-Add-uptime-command.patch +++ b/patches/server/0181-Add-uptime-command.patch @@ -29,7 +29,7 @@ index b68db217c8765fa029244bf2701757bd31a5db2b..6d84eb68e3160f772d6832513df2bc4d public int autosavePeriod; public Commands vanillaCommandDispatcher; diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 8b7d38e85f9b094dc6c421464b9385fbc8570d2c..1419b0a639590bb8d34fb12410f5284548723e0c 100644 +index f3f8ca5f2b391860b2134e06784819aa0e78321e..16239aafded82b4f19f97ae5fd87c53b55a5ef53 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -184,6 +184,7 @@ public class PurpurConfig { diff --git a/patches/server/0181-Tool-actionable-options.patch b/patches/server/0182-Tool-actionable-options.patch similarity index 100% rename from patches/server/0181-Tool-actionable-options.patch rename to patches/server/0182-Tool-actionable-options.patch diff --git a/patches/server/0182-Store-placer-on-Block-when-placed.patch b/patches/server/0183-Store-placer-on-Block-when-placed.patch similarity index 96% rename from patches/server/0182-Store-placer-on-Block-when-placed.patch rename to patches/server/0183-Store-placer-on-Block-when-placed.patch index 814965366..eaf73e694 100644 --- a/patches/server/0182-Store-placer-on-Block-when-placed.patch +++ b/patches/server/0183-Store-placer-on-Block-when-placed.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Store placer on Block when placed diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 513e0309b525cac496daccac801d92d3dacf41bd..fb614432722ea27cd044d6cfd3c6a72f797979f1 100644 +index 1b829ad61a25ef1e18adefe291d91fdb7401956d..f93cb39c2664b74066bd9ac352137c11e612e5f9 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -475,6 +475,7 @@ public final class ItemStack implements DataComponentHolder { diff --git a/patches/server/0183-Summoner-API.patch b/patches/server/0184-Summoner-API.patch similarity index 100% rename from patches/server/0183-Summoner-API.patch rename to patches/server/0184-Summoner-API.patch diff --git a/patches/server/0184-Customizable-sleeping-actionbar-messages.patch b/patches/server/0185-Customizable-sleeping-actionbar-messages.patch similarity index 98% rename from patches/server/0184-Customizable-sleeping-actionbar-messages.patch rename to patches/server/0185-Customizable-sleeping-actionbar-messages.patch index 84c576f77..2834d4aee 100644 --- a/patches/server/0184-Customizable-sleeping-actionbar-messages.patch +++ b/patches/server/0185-Customizable-sleeping-actionbar-messages.patch @@ -63,7 +63,7 @@ index 2b10087cf34be4c36d8596d0263d68476bb1a521..7bb82c9b652a509c2bf1a43ed82a5da7 ((ServerLevel) this.level()).updateSleepingPlayerList(); diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 1419b0a639590bb8d34fb12410f5284548723e0c..45ce203e295d10d522851caefd049995d2d552a2 100644 +index 16239aafded82b4f19f97ae5fd87c53b55a5ef53..e4188163e7a9dda878e72ae84a1b5cb28c23510d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -186,6 +186,9 @@ public class PurpurConfig { diff --git a/patches/server/0185-option-to-disable-shulker-box-items-from-dropping-co.patch b/patches/server/0186-option-to-disable-shulker-box-items-from-dropping-co.patch similarity index 100% rename from patches/server/0185-option-to-disable-shulker-box-items-from-dropping-co.patch rename to patches/server/0186-option-to-disable-shulker-box-items-from-dropping-co.patch diff --git a/patches/server/0186-Big-dripleaf-tilt-delay.patch b/patches/server/0187-Big-dripleaf-tilt-delay.patch similarity index 100% rename from patches/server/0186-Big-dripleaf-tilt-delay.patch rename to patches/server/0187-Big-dripleaf-tilt-delay.patch diff --git a/patches/server/0187-Player-ridable-in-water-option.patch b/patches/server/0188-Player-ridable-in-water-option.patch similarity index 96% rename from patches/server/0187-Player-ridable-in-water-option.patch rename to patches/server/0188-Player-ridable-in-water-option.patch index db4001c3f..08cdecfce 100644 --- a/patches/server/0187-Player-ridable-in-water-option.patch +++ b/patches/server/0188-Player-ridable-in-water-option.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Player ridable in water option diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index df33ad8ef6394042c2b617606c7c792fe3801632..44ef706008a1477d2073c29f2c9d016bf91e15a6 100644 +index 458c14d4f298137ef1a333368644568a2c8a0b09..0460bdb52ce6b29cf57ef8f2d7f430e761c82d85 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -2073,6 +2073,13 @@ public abstract class Player extends LivingEntity { diff --git a/patches/server/0188-Config-to-disable-Enderman-teleport-on-projectile-hi.patch b/patches/server/0189-Config-to-disable-Enderman-teleport-on-projectile-hi.patch similarity index 100% rename from patches/server/0188-Config-to-disable-Enderman-teleport-on-projectile-hi.patch rename to patches/server/0189-Config-to-disable-Enderman-teleport-on-projectile-hi.patch diff --git a/patches/server/0189-Add-compass-command.patch b/patches/server/0190-Add-compass-command.patch similarity index 99% rename from patches/server/0189-Add-compass-command.patch rename to patches/server/0190-Add-compass-command.patch index 2f4edf5e9..a7c9fd136 100644 --- a/patches/server/0189-Add-compass-command.patch +++ b/patches/server/0190-Add-compass-command.patch @@ -59,7 +59,7 @@ index 7bb82c9b652a509c2bf1a43ed82a5da709fb2cb2..e9d9cb47221075447aac66dd30ce6e8f // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 45ce203e295d10d522851caefd049995d2d552a2..042fd443c98258240042d3ce1650f36e601d72e3 100644 +index e4188163e7a9dda878e72ae84a1b5cb28c23510d..b56afa30c04350b5e9ca4ea2d33f9e7c58559380 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -255,6 +255,11 @@ public class PurpurConfig { diff --git a/patches/server/0190-Toggle-for-kinetic-damage.patch b/patches/server/0191-Toggle-for-kinetic-damage.patch similarity index 95% rename from patches/server/0190-Toggle-for-kinetic-damage.patch rename to patches/server/0191-Toggle-for-kinetic-damage.patch index 38fea8cff..1addaa713 100644 --- a/patches/server/0190-Toggle-for-kinetic-damage.patch +++ b/patches/server/0191-Toggle-for-kinetic-damage.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Toggle for kinetic damage diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 79b782affc598abcd37a640a523f7bc35d1b3796..28718b44dc2bd98a5144ebcfd8be195a4715ccd7 100644 +index 54a612dd2fcdf6972f7580fbd814f461df07b7f6..549579f2bc2e1fd23ece1ead543e3e5242f52ce0 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -2993,6 +2993,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0191-Add-Option-for-disable-observer-clocks.patch b/patches/server/0192-Add-Option-for-disable-observer-clocks.patch similarity index 100% rename from patches/server/0191-Add-Option-for-disable-observer-clocks.patch rename to patches/server/0192-Add-Option-for-disable-observer-clocks.patch diff --git a/patches/server/0192-Customizeable-Zombie-Villager-curing-times.patch b/patches/server/0193-Customizeable-Zombie-Villager-curing-times.patch similarity index 100% rename from patches/server/0192-Customizeable-Zombie-Villager-curing-times.patch rename to patches/server/0193-Customizeable-Zombie-Villager-curing-times.patch diff --git a/patches/server/0193-Option-for-sponges-to-work-on-lava-and-mud.patch b/patches/server/0194-Option-for-sponges-to-work-on-lava-and-mud.patch similarity index 100% rename from patches/server/0193-Option-for-sponges-to-work-on-lava-and-mud.patch rename to patches/server/0194-Option-for-sponges-to-work-on-lava-and-mud.patch diff --git a/patches/server/0194-Toggle-for-Wither-s-spawn-sound.patch b/patches/server/0195-Toggle-for-Wither-s-spawn-sound.patch similarity index 100% rename from patches/server/0194-Toggle-for-Wither-s-spawn-sound.patch rename to patches/server/0195-Toggle-for-Wither-s-spawn-sound.patch diff --git a/patches/server/0195-Cactus-breaks-from-solid-neighbors-config.patch b/patches/server/0196-Cactus-breaks-from-solid-neighbors-config.patch similarity index 100% rename from patches/server/0195-Cactus-breaks-from-solid-neighbors-config.patch rename to patches/server/0196-Cactus-breaks-from-solid-neighbors-config.patch diff --git a/patches/server/0196-Config-to-remove-curse-of-binding-with-weakness.patch b/patches/server/0197-Config-to-remove-curse-of-binding-with-weakness.patch similarity index 100% rename from patches/server/0196-Config-to-remove-curse-of-binding-with-weakness.patch rename to patches/server/0197-Config-to-remove-curse-of-binding-with-weakness.patch diff --git a/patches/server/0197-Conduit-behavior-configuration.patch b/patches/server/0198-Conduit-behavior-configuration.patch similarity index 100% rename from patches/server/0197-Conduit-behavior-configuration.patch rename to patches/server/0198-Conduit-behavior-configuration.patch diff --git a/patches/server/0198-Cauldron-fill-chances.patch b/patches/server/0199-Cauldron-fill-chances.patch similarity index 100% rename from patches/server/0198-Cauldron-fill-chances.patch rename to patches/server/0199-Cauldron-fill-chances.patch diff --git a/patches/server/0199-Config-to-allow-mobs-to-pathfind-over-rails.patch b/patches/server/0200-Config-to-allow-mobs-to-pathfind-over-rails.patch similarity index 100% rename from patches/server/0199-Config-to-allow-mobs-to-pathfind-over-rails.patch rename to patches/server/0200-Config-to-allow-mobs-to-pathfind-over-rails.patch diff --git a/patches/server/0200-Shulker-change-color-with-dye.patch b/patches/server/0201-Shulker-change-color-with-dye.patch similarity index 100% rename from patches/server/0200-Shulker-change-color-with-dye.patch rename to patches/server/0201-Shulker-change-color-with-dye.patch diff --git a/patches/server/0201-Extended-OfflinePlayer-API.patch b/patches/server/0202-Extended-OfflinePlayer-API.patch similarity index 100% rename from patches/server/0201-Extended-OfflinePlayer-API.patch rename to patches/server/0202-Extended-OfflinePlayer-API.patch diff --git a/patches/server/0202-Added-the-ability-to-add-combustible-items.patch b/patches/server/0203-Added-the-ability-to-add-combustible-items.patch similarity index 97% rename from patches/server/0202-Added-the-ability-to-add-combustible-items.patch rename to patches/server/0203-Added-the-ability-to-add-combustible-items.patch index 79e543578..702e67fa0 100644 --- a/patches/server/0202-Added-the-ability-to-add-combustible-items.patch +++ b/patches/server/0203-Added-the-ability-to-add-combustible-items.patch @@ -51,7 +51,7 @@ index ce2c424068001eec16032361baa206f6a5aa5332..c02d638b8f117156c815821207a91c55 private int maxStack = MAX_STACK; public List transaction = new java.util.ArrayList(); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 6a61d03ca1e88f4d8fe66bfa6c29e1550b88a103..b113e54cbe8262b7d0d8bae156d00baf04486b32 100644 +index a52ddb9fe006c2cbaf34686fc53cfdbe5e70de01..f4b611754a0b4a14c31595bc2a5e8acf8bf849bc 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1589,6 +1589,19 @@ public final class CraftServer implements Server { diff --git a/patches/server/0203-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch b/patches/server/0204-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch similarity index 100% rename from patches/server/0203-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch rename to patches/server/0204-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch diff --git a/patches/server/0204-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch b/patches/server/0205-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch similarity index 100% rename from patches/server/0204-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch rename to patches/server/0205-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch diff --git a/patches/server/0205-Shift-right-click-to-use-exp-for-mending.patch b/patches/server/0206-Shift-right-click-to-use-exp-for-mending.patch similarity index 96% rename from patches/server/0205-Shift-right-click-to-use-exp-for-mending.patch rename to patches/server/0206-Shift-right-click-to-use-exp-for-mending.patch index 4a18dec59..07182adf0 100644 --- a/patches/server/0205-Shift-right-click-to-use-exp-for-mending.patch +++ b/patches/server/0206-Shift-right-click-to-use-exp-for-mending.patch @@ -36,10 +36,10 @@ index a810eaa7dc319f5ea69b239190ae91838bfad4ec..6d194797d8fe2cd6e5652d596f4bc66f + // Purpur end } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 939234ccd803f173afe74651a92ff3a1c5b29b85..395ad65503c87250c0e2fa8112208f26fd3681be 100644 +index cc3728902da9e10df2bb0e3edbb765bffd51d808..222436febf0b6ea93b57b8a4c0a98998a9430873 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2036,6 +2036,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2060,6 +2060,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl boolean cancelled; if (movingobjectposition == null || movingobjectposition.getType() != HitResult.Type.BLOCK) { diff --git a/patches/server/0206-Dolphins-naturally-aggressive-to-players-chance.patch b/patches/server/0207-Dolphins-naturally-aggressive-to-players-chance.patch similarity index 100% rename from patches/server/0206-Dolphins-naturally-aggressive-to-players-chance.patch rename to patches/server/0207-Dolphins-naturally-aggressive-to-players-chance.patch diff --git a/patches/server/0207-Cows-naturally-aggressive-to-players-chance.patch b/patches/server/0208-Cows-naturally-aggressive-to-players-chance.patch similarity index 100% rename from patches/server/0207-Cows-naturally-aggressive-to-players-chance.patch rename to patches/server/0208-Cows-naturally-aggressive-to-players-chance.patch diff --git a/patches/server/0208-Option-for-beds-to-explode-on-villager-sleep.patch b/patches/server/0209-Option-for-beds-to-explode-on-villager-sleep.patch similarity index 100% rename from patches/server/0208-Option-for-beds-to-explode-on-villager-sleep.patch rename to patches/server/0209-Option-for-beds-to-explode-on-villager-sleep.patch diff --git a/patches/server/0209-Halloween-options-and-optimizations.patch b/patches/server/0210-Halloween-options-and-optimizations.patch similarity index 98% rename from patches/server/0209-Halloween-options-and-optimizations.patch rename to patches/server/0210-Halloween-options-and-optimizations.patch index b27c2f8a8..95eff8c09 100644 --- a/patches/server/0209-Halloween-options-and-optimizations.patch +++ b/patches/server/0210-Halloween-options-and-optimizations.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Halloween options and optimizations diff --git a/src/main/java/net/minecraft/world/entity/ambient/Bat.java b/src/main/java/net/minecraft/world/entity/ambient/Bat.java -index 76b858d0ab2da7b4cdf39aa6692e2a005958fee2..f7ac3a5b0a7c93240f948394649ad6dba5a1e4b5 100644 +index a7847b6ca5b203fd693337928f31a9043be163d7..a50d58240c58a0fea4ae8fc24689870807103199 100644 --- a/src/main/java/net/minecraft/world/entity/ambient/Bat.java +++ b/src/main/java/net/minecraft/world/entity/ambient/Bat.java @@ -301,7 +301,7 @@ public class Bat extends AmbientCreature { diff --git a/patches/server/0210-Config-for-grindstones.patch b/patches/server/0211-Config-for-grindstones.patch similarity index 98% rename from patches/server/0210-Config-for-grindstones.patch rename to patches/server/0211-Config-for-grindstones.patch index c9d77067b..2dd7aa81b 100644 --- a/patches/server/0210-Config-for-grindstones.patch +++ b/patches/server/0211-Config-for-grindstones.patch @@ -123,7 +123,7 @@ index db9444dda248260372d96ce239a590e88a4c1142..5824636332eb35ae6bee9cc0661ee959 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 042fd443c98258240042d3ce1650f36e601d72e3..6653162444df443ca990a25fc8b9f3c336841efb 100644 +index b56afa30c04350b5e9ca4ea2d33f9e7c58559380..7f0a9a239791cfb1d721d24f907b89ae2dd4c64a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -309,6 +309,9 @@ public class PurpurConfig { diff --git a/patches/server/0211-UPnP-Port-Forwarding.patch b/patches/server/0212-UPnP-Port-Forwarding.patch similarity index 97% rename from patches/server/0211-UPnP-Port-Forwarding.patch rename to patches/server/0212-UPnP-Port-Forwarding.patch index 86b610183..6865e4805 100644 --- a/patches/server/0211-UPnP-Port-Forwarding.patch +++ b/patches/server/0212-UPnP-Port-Forwarding.patch @@ -67,7 +67,7 @@ index 8a132fcdeb620d2e7f1c0c8b9e592ff233cd0568..29af03b8690e4d402d1e4e4516e4dc73 // CraftBukkit start // this.setPlayerList(new DedicatedPlayerList(this, this.registries(), this.playerDataStorage)); // Spigot - moved up diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 6653162444df443ca990a25fc8b9f3c336841efb..64c62e4abefb7e95e881fa1d8918e43ae48eb1dd 100644 +index 7f0a9a239791cfb1d721d24f907b89ae2dd4c64a..f79d0e3907dd89ff0abf8220392bb4e23cf9003e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -419,4 +419,9 @@ public class PurpurConfig { diff --git a/patches/server/0212-Campfire-option-for-lit-when-placed.patch b/patches/server/0213-Campfire-option-for-lit-when-placed.patch similarity index 100% rename from patches/server/0212-Campfire-option-for-lit-when-placed.patch rename to patches/server/0213-Campfire-option-for-lit-when-placed.patch diff --git a/patches/server/0213-options-to-extinguish-fire-blocks-with-snowballs.patch b/patches/server/0214-options-to-extinguish-fire-blocks-with-snowballs.patch similarity index 100% rename from patches/server/0213-options-to-extinguish-fire-blocks-with-snowballs.patch rename to patches/server/0214-options-to-extinguish-fire-blocks-with-snowballs.patch diff --git a/patches/server/0214-Add-option-to-disable-zombie-villagers-cure.patch b/patches/server/0215-Add-option-to-disable-zombie-villagers-cure.patch similarity index 100% rename from patches/server/0214-Add-option-to-disable-zombie-villagers-cure.patch rename to patches/server/0215-Add-option-to-disable-zombie-villagers-cure.patch diff --git a/patches/server/0215-Persistent-BlockEntity-Lore-and-DisplayName.patch b/patches/server/0216-Persistent-BlockEntity-Lore-and-DisplayName.patch similarity index 100% rename from patches/server/0215-Persistent-BlockEntity-Lore-and-DisplayName.patch rename to patches/server/0216-Persistent-BlockEntity-Lore-and-DisplayName.patch diff --git a/patches/unapplied-server/0217-Signs-allow-color-codes.patch b/patches/server/0217-Signs-allow-color-codes.patch similarity index 87% rename from patches/unapplied-server/0217-Signs-allow-color-codes.patch rename to patches/server/0217-Signs-allow-color-codes.patch index 1fc5d7f64..f547212e5 100644 --- a/patches/unapplied-server/0217-Signs-allow-color-codes.patch +++ b/patches/server/0217-Signs-allow-color-codes.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Signs allow color codes diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 120a42a6057a9639b66be39099715a8bad1e06b5..4c603f774931b9d144420a115ad324bcb2eae26e 100644 +index e9d9cb47221075447aac66dd30ce6e8f08962cf5..635e6b46081ec0078b687818310e623cbbf1cc1f 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1683,6 +1683,7 @@ public class ServerPlayer extends Player { @@ -17,7 +17,7 @@ index 120a42a6057a9639b66be39099715a8bad1e06b5..4c603f774931b9d144420a115ad324bc this.connection.send(new ClientboundOpenSignEditorPacket(sign.getBlockPos(), front)); } diff --git a/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java -index a28be7a332659be655f419d969e0c64e659b6c21..2f5367fbca7b682eb0ffeab4171b66223f7e5dc6 100644 +index a28be7a332659be655f419d969e0c64e659b6c21..8cd812a25b1cc05ea14675658bf9c1503ebebd51 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java @@ -201,16 +201,31 @@ public class SignBlockEntity extends BlockEntity implements CommandSource { // C @@ -54,14 +54,14 @@ index a28be7a332659be655f419d969e0c64e659b6c21..2f5367fbca7b682eb0ffeab4171b6622 } } -@@ -350,6 +365,28 @@ public class SignBlockEntity extends BlockEntity implements CommandSource { // C - return ClientboundBlockEntityDataPacket.create(this); +@@ -345,6 +360,28 @@ public class SignBlockEntity extends BlockEntity implements CommandSource { // C + return new CommandSourceStack(commandSource, Vec3.atCenterOf(pos), Vec2.ZERO, (ServerLevel) world, 2, s, (Component) object, world.getServer(), player); // Paper - Fix commands from signs not firing command events } + // Purpur start + public ClientboundBlockEntityDataPacket getTranslatedUpdatePacket(boolean filtered, boolean front) { + final CompoundTag nbt = new CompoundTag(); -+ this.saveAdditional(nbt); ++ this.saveAdditional(nbt, this.getLevel().registryAccess()); + final Component[] lines = front ? frontText.getMessages(filtered) : backText.getMessages(filtered); + final String side = front ? "front_text" : "back_text"; + for (int i = 0; i < 4; i++) { @@ -76,18 +76,18 @@ index a28be7a332659be655f419d969e0c64e659b6c21..2f5367fbca7b682eb0ffeab4171b6622 + messagesNbt.set(i, net.minecraft.nbt.StringTag.valueOf(json)); + } + nbt.putString("PurpurEditor", "true"); -+ return ClientboundBlockEntityDataPacket.create(this, entity -> nbt); ++ return ClientboundBlockEntityDataPacket.create(this, (blockEntity, registryAccess) -> nbt); + } + // Purpur end + @Override - public CompoundTag getUpdateTag(HolderLookup.Provider registryLookup) { - return this.saveCustomOnly(registryLookup); + public ClientboundBlockEntityDataPacket getUpdatePacket() { + return ClientboundBlockEntityDataPacket.create(this); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index b4d5ae4025d315cfe0e19fa1b077d1c5956523ba..d807da2719c5677c200e5f017e4cf5a1c7fa0ce9 100644 +index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6fce1773a4b5008f3234e06b556bf12e140eb1c1 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1032,6 +1032,11 @@ public class PurpurWorldConfig { +@@ -1041,6 +1041,11 @@ public class PurpurWorldConfig { } } diff --git a/patches/server/0216-Kelp-cave-weeping-and-twisting-vines-configurable-ma.patch b/patches/server/0218-Kelp-cave-weeping-and-twisting-vines-configurable-ma.patch similarity index 100% rename from patches/server/0216-Kelp-cave-weeping-and-twisting-vines-configurable-ma.patch rename to patches/server/0218-Kelp-cave-weeping-and-twisting-vines-configurable-ma.patch diff --git a/patches/server/0217-Mobs-always-drop-experience.patch b/patches/server/0219-Mobs-always-drop-experience.patch similarity index 93% rename from patches/server/0217-Mobs-always-drop-experience.patch rename to patches/server/0219-Mobs-always-drop-experience.patch index dc153d2e5..9aaf8f194 100644 --- a/patches/server/0217-Mobs-always-drop-experience.patch +++ b/patches/server/0219-Mobs-always-drop-experience.patch @@ -21,7 +21,7 @@ index 70e3d583f7a039a5c67428ce9e8beb1922574c7b..3e2ea26c23e88c395856b65001f2895d protected ParticleOptions getInkParticle() { return ParticleTypes.GLOW_SQUID_INK; diff --git a/src/main/java/net/minecraft/world/entity/ambient/Bat.java b/src/main/java/net/minecraft/world/entity/ambient/Bat.java -index f7ac3a5b0a7c93240f948394649ad6dba5a1e4b5..274db35be501d1dd0c5407d350a37b04bf4fbb7e 100644 +index a50d58240c58a0fea4ae8fc24689870807103199..47a7c7f9527e1c4ea457eeafe0e11145653a871f 100644 --- a/src/main/java/net/minecraft/world/entity/ambient/Bat.java +++ b/src/main/java/net/minecraft/world/entity/ambient/Bat.java @@ -282,6 +282,11 @@ public class Bat extends AmbientCreature { @@ -389,7 +389,7 @@ index b146ac72584d998cee4279133b3b19051fbf14c9..01dc59695f295657b1cd7bb015558bfc this.entityData.set(Turtle.HOME_POS, pos.immutable()); // Paper - called with mutablepos... } diff --git a/src/main/java/net/minecraft/world/entity/animal/Wolf.java b/src/main/java/net/minecraft/world/entity/animal/Wolf.java -index 4a866ba9ac3ce9403d490f48df88ab334ae3e5ae..b12544d1280f39b6c365317a0f4965c8d65b6497 100644 +index 31b5d874fdc6f7d2eaabe877b32b64d360cb48e3..e1f6202df983be2510436538904a45beedbdc9c2 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java +++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java @@ -224,6 +224,11 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder magmaCubeMaxHealthCache = new HashMap<>(); public Map magmaCubeAttackDamageCache = new HashMap<>(); public boolean magmaCubeTakeDamageFromWater = false; @@ -1627,7 +1627,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 private void magmaCubeSettings() { magmaCubeRidable = getBoolean("mobs.magma_cube.ridable", magmaCubeRidable); magmaCubeRidableInWater = getBoolean("mobs.magma_cube.ridable-in-water", magmaCubeRidableInWater); -@@ -1883,6 +1942,7 @@ public class PurpurWorldConfig { +@@ -1888,6 +1947,7 @@ public class PurpurWorldConfig { magmaCubeMaxHealthCache.clear(); magmaCubeAttackDamageCache.clear(); magmaCubeTakeDamageFromWater = getBoolean("mobs.magma_cube.takes-damage-from-water", magmaCubeTakeDamageFromWater); @@ -1635,7 +1635,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 } public boolean mooshroomRidable = false; -@@ -1891,6 +1951,7 @@ public class PurpurWorldConfig { +@@ -1896,6 +1956,7 @@ public class PurpurWorldConfig { public double mooshroomMaxHealth = 10.0D; public int mooshroomBreedingTicks = 6000; public boolean mooshroomTakeDamageFromWater = false; @@ -1643,7 +1643,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 private void mooshroomSettings() { mooshroomRidable = getBoolean("mobs.mooshroom.ridable", mooshroomRidable); mooshroomRidableInWater = getBoolean("mobs.mooshroom.ridable-in-water", mooshroomRidableInWater); -@@ -1903,6 +1964,7 @@ public class PurpurWorldConfig { +@@ -1908,6 +1969,7 @@ public class PurpurWorldConfig { mooshroomMaxHealth = getDouble("mobs.mooshroom.attributes.max_health", mooshroomMaxHealth); mooshroomBreedingTicks = getInt("mobs.mooshroom.breeding-delay-ticks", mooshroomBreedingTicks); mooshroomTakeDamageFromWater = getBoolean("mobs.mooshroom.takes-damage-from-water", mooshroomTakeDamageFromWater); @@ -1651,7 +1651,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 } public boolean muleRidableInWater = false; -@@ -1914,6 +1976,7 @@ public class PurpurWorldConfig { +@@ -1919,6 +1981,7 @@ public class PurpurWorldConfig { public double muleMovementSpeedMax = 0.175D; public int muleBreedingTicks = 6000; public boolean muleTakeDamageFromWater = false; @@ -1659,7 +1659,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 private void muleSettings() { muleRidableInWater = getBoolean("mobs.mule.ridable-in-water", muleRidableInWater); if (PurpurConfig.version < 10) { -@@ -1931,6 +1994,7 @@ public class PurpurWorldConfig { +@@ -1936,6 +1999,7 @@ public class PurpurWorldConfig { muleMovementSpeedMax = getDouble("mobs.mule.attributes.movement_speed.max", muleMovementSpeedMax); muleBreedingTicks = getInt("mobs.mule.breeding-delay-ticks", muleBreedingTicks); muleTakeDamageFromWater = getBoolean("mobs.mule.takes-damage-from-water", muleTakeDamageFromWater); @@ -1667,7 +1667,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 } public boolean ocelotRidable = false; -@@ -1939,6 +2003,7 @@ public class PurpurWorldConfig { +@@ -1944,6 +2008,7 @@ public class PurpurWorldConfig { public double ocelotMaxHealth = 10.0D; public int ocelotBreedingTicks = 6000; public boolean ocelotTakeDamageFromWater = false; @@ -1675,7 +1675,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 private void ocelotSettings() { ocelotRidable = getBoolean("mobs.ocelot.ridable", ocelotRidable); ocelotRidableInWater = getBoolean("mobs.ocelot.ridable-in-water", ocelotRidableInWater); -@@ -1951,6 +2016,7 @@ public class PurpurWorldConfig { +@@ -1956,6 +2021,7 @@ public class PurpurWorldConfig { ocelotMaxHealth = getDouble("mobs.ocelot.attributes.max_health", ocelotMaxHealth); ocelotBreedingTicks = getInt("mobs.ocelot.breeding-delay-ticks", ocelotBreedingTicks); ocelotTakeDamageFromWater = getBoolean("mobs.ocelot.takes-damage-from-water", ocelotTakeDamageFromWater); @@ -1683,7 +1683,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 } public boolean pandaRidable = false; -@@ -1959,6 +2025,7 @@ public class PurpurWorldConfig { +@@ -1964,6 +2030,7 @@ public class PurpurWorldConfig { public double pandaMaxHealth = 20.0D; public int pandaBreedingTicks = 6000; public boolean pandaTakeDamageFromWater = false; @@ -1691,7 +1691,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 private void pandaSettings() { pandaRidable = getBoolean("mobs.panda.ridable", pandaRidable); pandaRidableInWater = getBoolean("mobs.panda.ridable-in-water", pandaRidableInWater); -@@ -1971,6 +2038,7 @@ public class PurpurWorldConfig { +@@ -1976,6 +2043,7 @@ public class PurpurWorldConfig { pandaMaxHealth = getDouble("mobs.panda.attributes.max_health", pandaMaxHealth); pandaBreedingTicks = getInt("mobs.panda.breeding-delay-ticks", pandaBreedingTicks); pandaTakeDamageFromWater = getBoolean("mobs.panda.takes-damage-from-water", pandaTakeDamageFromWater); @@ -1699,7 +1699,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 } public boolean parrotRidable = false; -@@ -1980,6 +2048,7 @@ public class PurpurWorldConfig { +@@ -1985,6 +2053,7 @@ public class PurpurWorldConfig { public double parrotMaxHealth = 6.0D; public boolean parrotTakeDamageFromWater = false; public boolean parrotBreedable = false; @@ -1707,7 +1707,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 private void parrotSettings() { parrotRidable = getBoolean("mobs.parrot.ridable", parrotRidable); parrotRidableInWater = getBoolean("mobs.parrot.ridable-in-water", parrotRidableInWater); -@@ -1993,6 +2062,7 @@ public class PurpurWorldConfig { +@@ -1998,6 +2067,7 @@ public class PurpurWorldConfig { parrotMaxHealth = getDouble("mobs.parrot.attributes.max_health", parrotMaxHealth); parrotTakeDamageFromWater = getBoolean("mobs.parrot.takes-damage-from-water", parrotTakeDamageFromWater); parrotBreedable = getBoolean("mobs.parrot.can-breed", parrotBreedable); @@ -1715,7 +1715,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 } public boolean phantomRidable = false; -@@ -2020,6 +2090,7 @@ public class PurpurWorldConfig { +@@ -2025,6 +2095,7 @@ public class PurpurWorldConfig { public boolean phantomBurnInDaylight = true; public boolean phantomFlamesOnSwoop = false; public boolean phantomTakeDamageFromWater = false; @@ -1723,7 +1723,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -2055,6 +2126,7 @@ public class PurpurWorldConfig { +@@ -2060,6 +2131,7 @@ public class PurpurWorldConfig { phantomIgnorePlayersWithTorch = getBoolean("mobs.phantom.ignore-players-with-torch", phantomIgnorePlayersWithTorch); phantomFlamesOnSwoop = getBoolean("mobs.phantom.flames-on-swoop", phantomFlamesOnSwoop); phantomTakeDamageFromWater = getBoolean("mobs.phantom.takes-damage-from-water", phantomTakeDamageFromWater); @@ -1731,7 +1731,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 } public boolean pigRidable = false; -@@ -2064,6 +2136,7 @@ public class PurpurWorldConfig { +@@ -2069,6 +2141,7 @@ public class PurpurWorldConfig { public boolean pigGiveSaddleBack = false; public int pigBreedingTicks = 6000; public boolean pigTakeDamageFromWater = false; @@ -1739,7 +1739,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 private void pigSettings() { pigRidable = getBoolean("mobs.pig.ridable", pigRidable); pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater); -@@ -2077,6 +2150,7 @@ public class PurpurWorldConfig { +@@ -2082,6 +2155,7 @@ public class PurpurWorldConfig { pigGiveSaddleBack = getBoolean("mobs.pig.give-saddle-back", pigGiveSaddleBack); pigBreedingTicks = getInt("mobs.pig.breeding-delay-ticks", pigBreedingTicks); pigTakeDamageFromWater = getBoolean("mobs.pig.takes-damage-from-water", pigTakeDamageFromWater); @@ -1747,7 +1747,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 } public boolean piglinRidable = false; -@@ -2086,6 +2160,7 @@ public class PurpurWorldConfig { +@@ -2091,6 +2165,7 @@ public class PurpurWorldConfig { public boolean piglinBypassMobGriefing = false; public boolean piglinTakeDamageFromWater = false; public int piglinPortalSpawnModifier = 2000; @@ -1755,7 +1755,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -2099,6 +2174,7 @@ public class PurpurWorldConfig { +@@ -2104,6 +2179,7 @@ public class PurpurWorldConfig { piglinBypassMobGriefing = getBoolean("mobs.piglin.bypass-mob-griefing", piglinBypassMobGriefing); piglinTakeDamageFromWater = getBoolean("mobs.piglin.takes-damage-from-water", piglinTakeDamageFromWater); piglinPortalSpawnModifier = getInt("mobs.piglin.portal-spawn-modifier", piglinPortalSpawnModifier); @@ -1763,7 +1763,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 } public boolean piglinBruteRidable = false; -@@ -2106,6 +2182,7 @@ public class PurpurWorldConfig { +@@ -2111,6 +2187,7 @@ public class PurpurWorldConfig { public boolean piglinBruteControllable = true; public double piglinBruteMaxHealth = 50.0D; public boolean piglinBruteTakeDamageFromWater = false; @@ -1771,7 +1771,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 private void piglinBruteSettings() { piglinBruteRidable = getBoolean("mobs.piglin_brute.ridable", piglinBruteRidable); piglinBruteRidableInWater = getBoolean("mobs.piglin_brute.ridable-in-water", piglinBruteRidableInWater); -@@ -2117,6 +2194,7 @@ public class PurpurWorldConfig { +@@ -2122,6 +2199,7 @@ public class PurpurWorldConfig { } piglinBruteMaxHealth = getDouble("mobs.piglin_brute.attributes.max_health", piglinBruteMaxHealth); piglinBruteTakeDamageFromWater = getBoolean("mobs.piglin_brute.takes-damage-from-water", piglinBruteTakeDamageFromWater); @@ -1779,7 +1779,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 } public boolean pillagerRidable = false; -@@ -2125,6 +2203,7 @@ public class PurpurWorldConfig { +@@ -2130,6 +2208,7 @@ public class PurpurWorldConfig { public double pillagerMaxHealth = 24.0D; public boolean pillagerBypassMobGriefing = false; public boolean pillagerTakeDamageFromWater = false; @@ -1787,7 +1787,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 private void pillagerSettings() { pillagerRidable = getBoolean("mobs.pillager.ridable", pillagerRidable); pillagerRidableInWater = getBoolean("mobs.pillager.ridable-in-water", pillagerRidableInWater); -@@ -2137,6 +2216,7 @@ public class PurpurWorldConfig { +@@ -2142,6 +2221,7 @@ public class PurpurWorldConfig { pillagerMaxHealth = getDouble("mobs.pillager.attributes.max_health", pillagerMaxHealth); pillagerBypassMobGriefing = getBoolean("mobs.pillager.bypass-mob-griefing", pillagerBypassMobGriefing); pillagerTakeDamageFromWater = getBoolean("mobs.pillager.takes-damage-from-water", pillagerTakeDamageFromWater); @@ -1795,7 +1795,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 } public boolean polarBearRidable = false; -@@ -2147,6 +2227,7 @@ public class PurpurWorldConfig { +@@ -2152,6 +2232,7 @@ public class PurpurWorldConfig { public Item polarBearBreedableItem = null; public int polarBearBreedingTicks = 6000; public boolean polarBearTakeDamageFromWater = false; @@ -1803,7 +1803,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 private void polarBearSettings() { polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable); polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater); -@@ -2162,12 +2243,14 @@ public class PurpurWorldConfig { +@@ -2167,12 +2248,14 @@ public class PurpurWorldConfig { if (item != Items.AIR) polarBearBreedableItem = item; polarBearBreedingTicks = getInt("mobs.polar_bear.breeding-delay-ticks", polarBearBreedingTicks); polarBearTakeDamageFromWater = getBoolean("mobs.polar_bear.takes-damage-from-water", polarBearTakeDamageFromWater); @@ -1818,7 +1818,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 private void pufferfishSettings() { pufferfishRidable = getBoolean("mobs.pufferfish.ridable", pufferfishRidable); pufferfishControllable = getBoolean("mobs.pufferfish.controllable", pufferfishControllable); -@@ -2178,6 +2261,7 @@ public class PurpurWorldConfig { +@@ -2183,6 +2266,7 @@ public class PurpurWorldConfig { } pufferfishMaxHealth = getDouble("mobs.pufferfish.attributes.max_health", pufferfishMaxHealth); pufferfishTakeDamageFromWater = getBoolean("mobs.pufferfish.takes-damage-from-water", pufferfishTakeDamageFromWater); @@ -1826,7 +1826,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 } public boolean rabbitRidable = false; -@@ -2189,6 +2273,7 @@ public class PurpurWorldConfig { +@@ -2194,6 +2278,7 @@ public class PurpurWorldConfig { public int rabbitBreedingTicks = 6000; public boolean rabbitBypassMobGriefing = false; public boolean rabbitTakeDamageFromWater = false; @@ -1834,7 +1834,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 private void rabbitSettings() { rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable); rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater); -@@ -2204,6 +2289,7 @@ public class PurpurWorldConfig { +@@ -2209,6 +2294,7 @@ public class PurpurWorldConfig { rabbitBreedingTicks = getInt("mobs.rabbit.breeding-delay-ticks", rabbitBreedingTicks); rabbitBypassMobGriefing = getBoolean("mobs.rabbit.bypass-mob-griefing", rabbitBypassMobGriefing); rabbitTakeDamageFromWater = getBoolean("mobs.rabbit.takes-damage-from-water", rabbitTakeDamageFromWater); @@ -1842,7 +1842,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 } public boolean ravagerRidable = false; -@@ -2213,6 +2299,7 @@ public class PurpurWorldConfig { +@@ -2218,6 +2304,7 @@ public class PurpurWorldConfig { public boolean ravagerBypassMobGriefing = false; public boolean ravagerTakeDamageFromWater = false; public List ravagerGriefableBlocks = new ArrayList<>(); @@ -1850,7 +1850,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 private void ravagerSettings() { ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable); ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater); -@@ -2242,12 +2329,14 @@ public class PurpurWorldConfig { +@@ -2247,12 +2334,14 @@ public class PurpurWorldConfig { ravagerGriefableBlocks.add(block); } }); @@ -1865,7 +1865,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 private void salmonSettings() { salmonRidable = getBoolean("mobs.salmon.ridable", salmonRidable); salmonControllable = getBoolean("mobs.salmon.controllable", salmonControllable); -@@ -2258,6 +2347,7 @@ public class PurpurWorldConfig { +@@ -2263,6 +2352,7 @@ public class PurpurWorldConfig { } salmonMaxHealth = getDouble("mobs.salmon.attributes.max_health", salmonMaxHealth); salmonTakeDamageFromWater = getBoolean("mobs.salmon.takes-damage-from-water", salmonTakeDamageFromWater); @@ -1873,7 +1873,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 } public boolean sheepRidable = false; -@@ -2267,6 +2357,7 @@ public class PurpurWorldConfig { +@@ -2272,6 +2362,7 @@ public class PurpurWorldConfig { public int sheepBreedingTicks = 6000; public boolean sheepBypassMobGriefing = false; public boolean sheepTakeDamageFromWater = false; @@ -1881,7 +1881,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 private void sheepSettings() { sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable); sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater); -@@ -2280,6 +2371,7 @@ public class PurpurWorldConfig { +@@ -2285,6 +2376,7 @@ public class PurpurWorldConfig { sheepBreedingTicks = getInt("mobs.sheep.breeding-delay-ticks", sheepBreedingTicks); sheepBypassMobGriefing = getBoolean("mobs.sheep.bypass-mob-griefing", sheepBypassMobGriefing); sheepTakeDamageFromWater = getBoolean("mobs.sheep.takes-damage-from-water", sheepTakeDamageFromWater); @@ -1889,7 +1889,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 } public boolean shulkerRidable = false; -@@ -2293,6 +2385,7 @@ public class PurpurWorldConfig { +@@ -2298,6 +2390,7 @@ public class PurpurWorldConfig { public String shulkerSpawnFromBulletNearbyEquation = "(nearby - 1) / 5.0"; public boolean shulkerSpawnFromBulletRandomColor = false; public boolean shulkerChangeColorWithDye = false; @@ -1897,7 +1897,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 private void shulkerSettings() { shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable); shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater); -@@ -2310,6 +2403,7 @@ public class PurpurWorldConfig { +@@ -2315,6 +2408,7 @@ public class PurpurWorldConfig { shulkerSpawnFromBulletNearbyEquation = getString("mobs.shulker.spawn-from-bullet.nearby-equation", shulkerSpawnFromBulletNearbyEquation); shulkerSpawnFromBulletRandomColor = getBoolean("mobs.shulker.spawn-from-bullet.random-color", shulkerSpawnFromBulletRandomColor); shulkerChangeColorWithDye = getBoolean("mobs.shulker.change-color-with-dye", shulkerChangeColorWithDye); @@ -1905,7 +1905,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 } public boolean silverfishRidable = false; -@@ -2318,6 +2412,7 @@ public class PurpurWorldConfig { +@@ -2323,6 +2417,7 @@ public class PurpurWorldConfig { public double silverfishMaxHealth = 8.0D; public boolean silverfishBypassMobGriefing = false; public boolean silverfishTakeDamageFromWater = false; @@ -1913,7 +1913,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 private void silverfishSettings() { silverfishRidable = getBoolean("mobs.silverfish.ridable", silverfishRidable); silverfishRidableInWater = getBoolean("mobs.silverfish.ridable-in-water", silverfishRidableInWater); -@@ -2330,6 +2425,7 @@ public class PurpurWorldConfig { +@@ -2335,6 +2430,7 @@ public class PurpurWorldConfig { silverfishMaxHealth = getDouble("mobs.silverfish.attributes.max_health", silverfishMaxHealth); silverfishBypassMobGriefing = getBoolean("mobs.silverfish.bypass-mob-griefing", silverfishBypassMobGriefing); silverfishTakeDamageFromWater = getBoolean("mobs.silverfish.takes-damage-from-water", silverfishTakeDamageFromWater); @@ -1921,7 +1921,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 } public boolean skeletonRidable = false; -@@ -2337,6 +2433,7 @@ public class PurpurWorldConfig { +@@ -2342,6 +2438,7 @@ public class PurpurWorldConfig { public boolean skeletonControllable = true; public double skeletonMaxHealth = 20.0D; public boolean skeletonTakeDamageFromWater = false; @@ -1929,7 +1929,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -2348,6 +2445,7 @@ public class PurpurWorldConfig { +@@ -2353,6 +2450,7 @@ public class PurpurWorldConfig { } skeletonMaxHealth = getDouble("mobs.skeleton.attributes.max_health", skeletonMaxHealth); skeletonTakeDamageFromWater = getBoolean("mobs.skeleton.takes-damage-from-water", skeletonTakeDamageFromWater); @@ -1937,7 +1937,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 } public boolean skeletonHorseRidable = false; -@@ -2360,6 +2458,7 @@ public class PurpurWorldConfig { +@@ -2365,6 +2463,7 @@ public class PurpurWorldConfig { public double skeletonHorseMovementSpeedMin = 0.2D; public double skeletonHorseMovementSpeedMax = 0.2D; public boolean skeletonHorseTakeDamageFromWater = false; @@ -1945,7 +1945,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 private void skeletonHorseSettings() { skeletonHorseRidable = getBoolean("mobs.skeleton_horse.ridable", skeletonHorseRidable); skeletonHorseRidableInWater = getBoolean("mobs.skeleton_horse.ridable-in-water", skeletonHorseRidableInWater); -@@ -2377,6 +2476,7 @@ public class PurpurWorldConfig { +@@ -2382,6 +2481,7 @@ public class PurpurWorldConfig { skeletonHorseMovementSpeedMin = getDouble("mobs.skeleton_horse.attributes.movement_speed.min", skeletonHorseMovementSpeedMin); skeletonHorseMovementSpeedMax = getDouble("mobs.skeleton_horse.attributes.movement_speed.max", skeletonHorseMovementSpeedMax); skeletonHorseTakeDamageFromWater = getBoolean("mobs.skeleton_horse.takes-damage-from-water", skeletonHorseTakeDamageFromWater); @@ -1953,7 +1953,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 } public boolean slimeRidable = false; -@@ -2387,6 +2487,7 @@ public class PurpurWorldConfig { +@@ -2392,6 +2492,7 @@ public class PurpurWorldConfig { public Map slimeMaxHealthCache = new HashMap<>(); public Map slimeAttackDamageCache = new HashMap<>(); public boolean slimeTakeDamageFromWater = false; @@ -1961,7 +1961,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 private void slimeSettings() { slimeRidable = getBoolean("mobs.slime.ridable", slimeRidable); slimeRidableInWater = getBoolean("mobs.slime.ridable-in-water", slimeRidableInWater); -@@ -2401,6 +2502,7 @@ public class PurpurWorldConfig { +@@ -2406,6 +2507,7 @@ public class PurpurWorldConfig { slimeMaxHealthCache.clear(); slimeAttackDamageCache.clear(); slimeTakeDamageFromWater = getBoolean("mobs.slime.takes-damage-from-water", slimeTakeDamageFromWater); @@ -1969,7 +1969,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 } public boolean snowGolemRidable = false; -@@ -2415,6 +2517,7 @@ public class PurpurWorldConfig { +@@ -2420,6 +2522,7 @@ public class PurpurWorldConfig { public double snowGolemAttackDistance = 1.25D; public boolean snowGolemBypassMobGriefing = false; public boolean snowGolemTakeDamageFromWater = true; @@ -1977,7 +1977,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -2433,6 +2536,7 @@ public class PurpurWorldConfig { +@@ -2438,6 +2541,7 @@ public class PurpurWorldConfig { snowGolemAttackDistance = getDouble("mobs.snow_golem.attack-distance", snowGolemAttackDistance); snowGolemBypassMobGriefing = getBoolean("mobs.snow_golem.bypass-mob-griefing", snowGolemBypassMobGriefing); snowGolemTakeDamageFromWater = getBoolean("mobs.snow_golem.takes-damage-from-water", snowGolemTakeDamageFromWater); @@ -1985,7 +1985,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 } public boolean snifferRidable = false; -@@ -2455,6 +2559,7 @@ public class PurpurWorldConfig { +@@ -2460,6 +2564,7 @@ public class PurpurWorldConfig { public double squidOffsetWaterCheck = 0.0D; public boolean squidsCanFly = false; public boolean squidTakeDamageFromWater = false; @@ -1993,7 +1993,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); squidControllable = getBoolean("mobs.squid.controllable", squidControllable); -@@ -2468,6 +2573,7 @@ public class PurpurWorldConfig { +@@ -2473,6 +2578,7 @@ public class PurpurWorldConfig { squidOffsetWaterCheck = getDouble("mobs.squid.water-offset-check", squidOffsetWaterCheck); squidsCanFly = getBoolean("mobs.squid.can-fly", squidsCanFly); squidTakeDamageFromWater = getBoolean("mobs.squid.takes-damage-from-water", squidTakeDamageFromWater); @@ -2001,7 +2001,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 } public boolean spiderRidable = false; -@@ -2475,6 +2581,7 @@ public class PurpurWorldConfig { +@@ -2480,6 +2586,7 @@ public class PurpurWorldConfig { public boolean spiderControllable = true; public double spiderMaxHealth = 16.0D; public boolean spiderTakeDamageFromWater = false; @@ -2009,7 +2009,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 private void spiderSettings() { spiderRidable = getBoolean("mobs.spider.ridable", spiderRidable); spiderRidableInWater = getBoolean("mobs.spider.ridable-in-water", spiderRidableInWater); -@@ -2486,6 +2593,7 @@ public class PurpurWorldConfig { +@@ -2491,6 +2598,7 @@ public class PurpurWorldConfig { } spiderMaxHealth = getDouble("mobs.spider.attributes.max_health", spiderMaxHealth); spiderTakeDamageFromWater = getBoolean("mobs.spider.takes-damage-from-water", spiderTakeDamageFromWater); @@ -2017,7 +2017,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 } public boolean strayRidable = false; -@@ -2493,6 +2601,7 @@ public class PurpurWorldConfig { +@@ -2498,6 +2606,7 @@ public class PurpurWorldConfig { public boolean strayControllable = true; public double strayMaxHealth = 20.0D; public boolean strayTakeDamageFromWater = false; @@ -2025,7 +2025,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 private void straySettings() { strayRidable = getBoolean("mobs.stray.ridable", strayRidable); strayRidableInWater = getBoolean("mobs.stray.ridable-in-water", strayRidableInWater); -@@ -2504,6 +2613,7 @@ public class PurpurWorldConfig { +@@ -2509,6 +2618,7 @@ public class PurpurWorldConfig { } strayMaxHealth = getDouble("mobs.stray.attributes.max_health", strayMaxHealth); strayTakeDamageFromWater = getBoolean("mobs.stray.takes-damage-from-water", strayTakeDamageFromWater); @@ -2033,7 +2033,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 } public boolean striderRidable = false; -@@ -2513,6 +2623,7 @@ public class PurpurWorldConfig { +@@ -2518,6 +2628,7 @@ public class PurpurWorldConfig { public int striderBreedingTicks = 6000; public boolean striderGiveSaddleBack = false; public boolean striderTakeDamageFromWater = true; @@ -2041,7 +2041,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -2526,6 +2637,7 @@ public class PurpurWorldConfig { +@@ -2531,6 +2642,7 @@ public class PurpurWorldConfig { striderBreedingTicks = getInt("mobs.strider.breeding-delay-ticks", striderBreedingTicks); striderGiveSaddleBack = getBoolean("mobs.strider.give-saddle-back", striderGiveSaddleBack); striderTakeDamageFromWater = getBoolean("mobs.strider.takes-damage-from-water", striderTakeDamageFromWater); @@ -2049,7 +2049,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 } public boolean tadpoleRidable = false; -@@ -2548,6 +2660,7 @@ public class PurpurWorldConfig { +@@ -2553,6 +2665,7 @@ public class PurpurWorldConfig { public double traderLlamaMovementSpeedMax = 0.175D; public int traderLlamaBreedingTicks = 6000; public boolean traderLlamaTakeDamageFromWater = false; @@ -2057,7 +2057,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 private void traderLlamaSettings() { traderLlamaRidable = getBoolean("mobs.trader_llama.ridable", traderLlamaRidable); traderLlamaRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", traderLlamaRidableInWater); -@@ -2567,12 +2680,14 @@ public class PurpurWorldConfig { +@@ -2572,12 +2685,14 @@ public class PurpurWorldConfig { traderLlamaMovementSpeedMax = getDouble("mobs.trader_llama.attributes.movement_speed.max", traderLlamaMovementSpeedMax); traderLlamaBreedingTicks = getInt("mobs.trader_llama.breeding-delay-ticks", traderLlamaBreedingTicks); traderLlamaTakeDamageFromWater = getBoolean("mobs.trader_llama.takes-damage-from-water", traderLlamaTakeDamageFromWater); @@ -2072,7 +2072,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 private void tropicalFishSettings() { tropicalFishRidable = getBoolean("mobs.tropical_fish.ridable", tropicalFishRidable); tropicalFishControllable = getBoolean("mobs.tropical_fish.controllable", tropicalFishControllable); -@@ -2583,6 +2698,7 @@ public class PurpurWorldConfig { +@@ -2588,6 +2703,7 @@ public class PurpurWorldConfig { } tropicalFishMaxHealth = getDouble("mobs.tropical_fish.attributes.max_health", tropicalFishMaxHealth); tropicalFishTakeDamageFromWater = getBoolean("mobs.tropical_fish.takes-damage-from-water", tropicalFishTakeDamageFromWater); @@ -2080,7 +2080,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 } public boolean turtleRidable = false; -@@ -2591,6 +2707,7 @@ public class PurpurWorldConfig { +@@ -2596,6 +2712,7 @@ public class PurpurWorldConfig { public double turtleMaxHealth = 30.0D; public int turtleBreedingTicks = 6000; public boolean turtleTakeDamageFromWater = false; @@ -2088,7 +2088,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 private void turtleSettings() { turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable); turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater); -@@ -2603,6 +2720,7 @@ public class PurpurWorldConfig { +@@ -2608,6 +2725,7 @@ public class PurpurWorldConfig { turtleMaxHealth = getDouble("mobs.turtle.attributes.max_health", turtleMaxHealth); turtleBreedingTicks = getInt("mobs.turtle.breeding-delay-ticks", turtleBreedingTicks); turtleTakeDamageFromWater = getBoolean("mobs.turtle.takes-damage-from-water", turtleTakeDamageFromWater); @@ -2096,7 +2096,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 } public boolean vexRidable = false; -@@ -2611,6 +2729,7 @@ public class PurpurWorldConfig { +@@ -2616,6 +2734,7 @@ public class PurpurWorldConfig { public double vexMaxY = 320D; public double vexMaxHealth = 14.0D; public boolean vexTakeDamageFromWater = false; @@ -2104,7 +2104,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 private void vexSettings() { vexRidable = getBoolean("mobs.vex.ridable", vexRidable); vexRidableInWater = getBoolean("mobs.vex.ridable-in-water", vexRidableInWater); -@@ -2623,6 +2742,7 @@ public class PurpurWorldConfig { +@@ -2628,6 +2747,7 @@ public class PurpurWorldConfig { } vexMaxHealth = getDouble("mobs.vex.attributes.max_health", vexMaxHealth); vexTakeDamageFromWater = getBoolean("mobs.vex.takes-damage-from-water", vexTakeDamageFromWater); @@ -2112,7 +2112,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 } public boolean villagerRidable = false; -@@ -2638,6 +2758,7 @@ public class PurpurWorldConfig { +@@ -2643,6 +2763,7 @@ public class PurpurWorldConfig { public boolean villagerBypassMobGriefing = false; public boolean villagerTakeDamageFromWater = false; public boolean villagerAllowTrading = true; @@ -2120,7 +2120,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2657,6 +2778,7 @@ public class PurpurWorldConfig { +@@ -2662,6 +2783,7 @@ public class PurpurWorldConfig { villagerBypassMobGriefing = getBoolean("mobs.villager.bypass-mob-griefing", villagerBypassMobGriefing); villagerTakeDamageFromWater = getBoolean("mobs.villager.takes-damage-from-water", villagerTakeDamageFromWater); villagerAllowTrading = getBoolean("mobs.villager.allow-trading", villagerAllowTrading); @@ -2128,7 +2128,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 } public boolean vindicatorRidable = false; -@@ -2665,6 +2787,7 @@ public class PurpurWorldConfig { +@@ -2670,6 +2792,7 @@ public class PurpurWorldConfig { public double vindicatorMaxHealth = 24.0D; public double vindicatorJohnnySpawnChance = 0D; public boolean vindicatorTakeDamageFromWater = false; @@ -2136,7 +2136,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 private void vindicatorSettings() { vindicatorRidable = getBoolean("mobs.vindicator.ridable", vindicatorRidable); vindicatorRidableInWater = getBoolean("mobs.vindicator.ridable-in-water", vindicatorRidableInWater); -@@ -2677,6 +2800,7 @@ public class PurpurWorldConfig { +@@ -2682,6 +2805,7 @@ public class PurpurWorldConfig { vindicatorMaxHealth = getDouble("mobs.vindicator.attributes.max_health", vindicatorMaxHealth); vindicatorJohnnySpawnChance = getDouble("mobs.vindicator.johnny.spawn-chance", vindicatorJohnnySpawnChance); vindicatorTakeDamageFromWater = getBoolean("mobs.vindicator.takes-damage-from-water", vindicatorTakeDamageFromWater); @@ -2144,7 +2144,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 } public boolean wanderingTraderRidable = false; -@@ -2687,6 +2811,7 @@ public class PurpurWorldConfig { +@@ -2692,6 +2816,7 @@ public class PurpurWorldConfig { public boolean wanderingTraderCanBeLeashed = false; public boolean wanderingTraderTakeDamageFromWater = false; public boolean wanderingTraderAllowTrading = true; @@ -2152,7 +2152,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -2701,6 +2826,7 @@ public class PurpurWorldConfig { +@@ -2706,6 +2831,7 @@ public class PurpurWorldConfig { wanderingTraderCanBeLeashed = getBoolean("mobs.wandering_trader.can-be-leashed", wanderingTraderCanBeLeashed); wanderingTraderTakeDamageFromWater = getBoolean("mobs.wandering_trader.takes-damage-from-water", wanderingTraderTakeDamageFromWater); wanderingTraderAllowTrading = getBoolean("mobs.wandering_trader.allow-trading", wanderingTraderAllowTrading); @@ -2160,7 +2160,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 } public boolean wardenRidable = false; -@@ -2717,6 +2843,7 @@ public class PurpurWorldConfig { +@@ -2722,6 +2848,7 @@ public class PurpurWorldConfig { public boolean witchControllable = true; public double witchMaxHealth = 26.0D; public boolean witchTakeDamageFromWater = false; @@ -2168,7 +2168,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 private void witchSettings() { witchRidable = getBoolean("mobs.witch.ridable", witchRidable); witchRidableInWater = getBoolean("mobs.witch.ridable-in-water", witchRidableInWater); -@@ -2728,6 +2855,7 @@ public class PurpurWorldConfig { +@@ -2733,6 +2860,7 @@ public class PurpurWorldConfig { } witchMaxHealth = getDouble("mobs.witch.attributes.max_health", witchMaxHealth); witchTakeDamageFromWater = getBoolean("mobs.witch.takes-damage-from-water", witchTakeDamageFromWater); @@ -2176,7 +2176,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 } public boolean witherRidable = false; -@@ -2742,6 +2870,7 @@ public class PurpurWorldConfig { +@@ -2747,6 +2875,7 @@ public class PurpurWorldConfig { public boolean witherCanRideVehicles = false; public float witherExplosionRadius = 1.0F; public boolean witherPlaySpawnSound = true; @@ -2184,7 +2184,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -2764,6 +2893,7 @@ public class PurpurWorldConfig { +@@ -2769,6 +2898,7 @@ public class PurpurWorldConfig { witherCanRideVehicles = getBoolean("mobs.wither.can-ride-vehicles", witherCanRideVehicles); witherExplosionRadius = (float) getDouble("mobs.wither.explosion-radius", witherExplosionRadius); witherPlaySpawnSound = getBoolean("mobs.wither.play-spawn-sound", witherPlaySpawnSound); @@ -2192,7 +2192,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 } public boolean witherSkeletonRidable = false; -@@ -2771,6 +2901,7 @@ public class PurpurWorldConfig { +@@ -2776,6 +2906,7 @@ public class PurpurWorldConfig { public boolean witherSkeletonControllable = true; public double witherSkeletonMaxHealth = 20.0D; public boolean witherSkeletonTakeDamageFromWater = false; @@ -2200,7 +2200,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 private void witherSkeletonSettings() { witherSkeletonRidable = getBoolean("mobs.wither_skeleton.ridable", witherSkeletonRidable); witherSkeletonRidableInWater = getBoolean("mobs.wither_skeleton.ridable-in-water", witherSkeletonRidableInWater); -@@ -2782,6 +2913,7 @@ public class PurpurWorldConfig { +@@ -2787,6 +2918,7 @@ public class PurpurWorldConfig { } witherSkeletonMaxHealth = getDouble("mobs.wither_skeleton.attributes.max_health", witherSkeletonMaxHealth); witherSkeletonTakeDamageFromWater = getBoolean("mobs.wither_skeleton.takes-damage-from-water", witherSkeletonTakeDamageFromWater); @@ -2208,7 +2208,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 } public boolean wolfRidable = false; -@@ -2793,6 +2925,7 @@ public class PurpurWorldConfig { +@@ -2798,6 +2930,7 @@ public class PurpurWorldConfig { public double wolfNaturalRabid = 0.0D; public int wolfBreedingTicks = 6000; public boolean wolfTakeDamageFromWater = false; @@ -2216,7 +2216,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 private void wolfSettings() { wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater); -@@ -2812,6 +2945,7 @@ public class PurpurWorldConfig { +@@ -2817,6 +2950,7 @@ public class PurpurWorldConfig { wolfNaturalRabid = getDouble("mobs.wolf.spawn-rabid-chance", wolfNaturalRabid); wolfBreedingTicks = getInt("mobs.wolf.breeding-delay-ticks", wolfBreedingTicks); wolfTakeDamageFromWater = getBoolean("mobs.wolf.takes-damage-from-water", wolfTakeDamageFromWater); @@ -2224,7 +2224,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 } public boolean zoglinRidable = false; -@@ -2819,6 +2953,7 @@ public class PurpurWorldConfig { +@@ -2824,6 +2958,7 @@ public class PurpurWorldConfig { public boolean zoglinControllable = true; public double zoglinMaxHealth = 40.0D; public boolean zoglinTakeDamageFromWater = false; @@ -2232,7 +2232,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 private void zoglinSettings() { zoglinRidable = getBoolean("mobs.zoglin.ridable", zoglinRidable); zoglinRidableInWater = getBoolean("mobs.zoglin.ridable-in-water", zoglinRidableInWater); -@@ -2830,6 +2965,7 @@ public class PurpurWorldConfig { +@@ -2835,6 +2970,7 @@ public class PurpurWorldConfig { } zoglinMaxHealth = getDouble("mobs.zoglin.attributes.max_health", zoglinMaxHealth); zoglinTakeDamageFromWater = getBoolean("mobs.zoglin.takes-damage-from-water", zoglinTakeDamageFromWater); @@ -2240,7 +2240,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 } public boolean zombieRidable = false; -@@ -2843,6 +2979,7 @@ public class PurpurWorldConfig { +@@ -2848,6 +2984,7 @@ public class PurpurWorldConfig { public boolean zombieAggressiveTowardsVillagerWhenLagging = true; public boolean zombieBypassMobGriefing = false; public boolean zombieTakeDamageFromWater = false; @@ -2248,7 +2248,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -2860,6 +2997,7 @@ public class PurpurWorldConfig { +@@ -2865,6 +3002,7 @@ public class PurpurWorldConfig { zombieAggressiveTowardsVillagerWhenLagging = getBoolean("mobs.zombie.aggressive-towards-villager-when-lagging", zombieAggressiveTowardsVillagerWhenLagging); zombieBypassMobGriefing = getBoolean("mobs.zombie.bypass-mob-griefing", zombieBypassMobGriefing); zombieTakeDamageFromWater = getBoolean("mobs.zombie.takes-damage-from-water", zombieTakeDamageFromWater); @@ -2256,7 +2256,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 } public boolean zombieHorseRidable = false; -@@ -2873,6 +3011,7 @@ public class PurpurWorldConfig { +@@ -2878,6 +3016,7 @@ public class PurpurWorldConfig { public double zombieHorseMovementSpeedMax = 0.2D; public double zombieHorseSpawnChance = 0.0D; public boolean zombieHorseTakeDamageFromWater = false; @@ -2264,7 +2264,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 private void zombieHorseSettings() { zombieHorseRidable = getBoolean("mobs.zombie_horse.ridable", zombieHorseRidable); zombieHorseRidableInWater = getBoolean("mobs.zombie_horse.ridable-in-water", zombieHorseRidableInWater); -@@ -2891,6 +3030,7 @@ public class PurpurWorldConfig { +@@ -2896,6 +3035,7 @@ public class PurpurWorldConfig { zombieHorseMovementSpeedMax = getDouble("mobs.zombie_horse.attributes.movement_speed.max", zombieHorseMovementSpeedMax); zombieHorseSpawnChance = getDouble("mobs.zombie_horse.spawn-chance", zombieHorseSpawnChance); zombieHorseTakeDamageFromWater = getBoolean("mobs.zombie_horse.takes-damage-from-water", zombieHorseTakeDamageFromWater); @@ -2272,7 +2272,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 } public boolean zombieVillagerRidable = false; -@@ -2905,6 +3045,7 @@ public class PurpurWorldConfig { +@@ -2910,6 +3050,7 @@ public class PurpurWorldConfig { public int zombieVillagerCuringTimeMin = 3600; public int zombieVillagerCuringTimeMax = 6000; public boolean zombieVillagerCureEnabled = true; @@ -2280,7 +2280,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -2923,6 +3064,7 @@ public class PurpurWorldConfig { +@@ -2928,6 +3069,7 @@ public class PurpurWorldConfig { zombieVillagerCuringTimeMin = getInt("mobs.zombie_villager.curing_time.min", zombieVillagerCuringTimeMin); zombieVillagerCuringTimeMax = getInt("mobs.zombie_villager.curing_time.max", zombieVillagerCuringTimeMax); zombieVillagerCureEnabled = getBoolean("mobs.zombie_villager.cure.enabled", zombieVillagerCureEnabled); @@ -2288,7 +2288,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 } public boolean zombifiedPiglinRidable = false; -@@ -2935,6 +3077,7 @@ public class PurpurWorldConfig { +@@ -2940,6 +3082,7 @@ public class PurpurWorldConfig { public boolean zombifiedPiglinJockeyTryExistingChickens = true; public boolean zombifiedPiglinCountAsPlayerKillWhenAngry = true; public boolean zombifiedPiglinTakeDamageFromWater = false; @@ -2296,7 +2296,7 @@ index abe3614f2286db8945bc6c4eadd01ec8a7f93555..6e4990ef903e7a492da953662a2a2a99 private void zombifiedPiglinSettings() { zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); -@@ -2951,6 +3094,7 @@ public class PurpurWorldConfig { +@@ -2956,6 +3099,7 @@ public class PurpurWorldConfig { zombifiedPiglinJockeyTryExistingChickens = getBoolean("mobs.zombified_piglin.jockey.try-existing-chickens", zombifiedPiglinJockeyTryExistingChickens); zombifiedPiglinCountAsPlayerKillWhenAngry = getBoolean("mobs.zombified_piglin.count-as-player-kill-when-angry", zombifiedPiglinCountAsPlayerKillWhenAngry); zombifiedPiglinTakeDamageFromWater = getBoolean("mobs.zombified_piglin.takes-damage-from-water", zombifiedPiglinTakeDamageFromWater); diff --git a/patches/server/0218-Grindstone-API.patch b/patches/server/0220-Grindstone-API.patch similarity index 100% rename from patches/server/0218-Grindstone-API.patch rename to patches/server/0220-Grindstone-API.patch diff --git a/patches/server/0219-Ability-for-hoe-to-replant-crops-and-nether-warts.patch b/patches/server/0221-Ability-for-hoe-to-replant-crops-and-nether-warts.patch similarity index 98% rename from patches/server/0219-Ability-for-hoe-to-replant-crops-and-nether-warts.patch rename to patches/server/0221-Ability-for-hoe-to-replant-crops-and-nether-warts.patch index ade478c77..9b761a70a 100644 --- a/patches/server/0219-Ability-for-hoe-to-replant-crops-and-nether-warts.patch +++ b/patches/server/0221-Ability-for-hoe-to-replant-crops-and-nether-warts.patch @@ -74,7 +74,7 @@ index acbd60a2f162fe0e254e36d0e8e7face3fc8a7b3..da1c7999ca64199387054de46489d3ff + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 6e4990ef903e7a492da953662a2a2a99b051baca..d766e9da3cc01c82681c7d96426b705c9449724d 100644 +index fd8c8c6e563662926002fb1c72aaea0ba2999cdb..b492b7f6c8c959fa379bd75d5d89e99065421e93 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -548,6 +548,8 @@ public class PurpurWorldConfig { diff --git a/patches/server/0220-Turtle-eggs-random-tick-crack-chance.patch b/patches/server/0222-Turtle-eggs-random-tick-crack-chance.patch similarity index 93% rename from patches/server/0220-Turtle-eggs-random-tick-crack-chance.patch rename to patches/server/0222-Turtle-eggs-random-tick-crack-chance.patch index 04a62a12f..0e08edaa4 100644 --- a/patches/server/0220-Turtle-eggs-random-tick-crack-chance.patch +++ b/patches/server/0222-Turtle-eggs-random-tick-crack-chance.patch @@ -18,10 +18,10 @@ index 0c732cfbd9ce50198a3f85ae8ef2263d7ae0bc1a..2f0e8aeb9c45853fca12ddd78a7d5181 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index d766e9da3cc01c82681c7d96426b705c9449724d..e4c1fe03e5ca7fa91ca7fc26eb0ba12e18d009a4 100644 +index b492b7f6c8c959fa379bd75d5d89e99065421e93..9ed53d42189f7f7562ed96b4af39a02db2cb2ff5 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1070,11 +1070,13 @@ public class PurpurWorldConfig { +@@ -1075,11 +1075,13 @@ public class PurpurWorldConfig { public boolean turtleEggsBreakFromItems = false; public boolean turtleEggsBreakFromMinecarts = false; public boolean turtleEggsBypassMobGriefing = false; diff --git a/patches/server/0221-Mob-head-visibility-percent.patch b/patches/server/0223-Mob-head-visibility-percent.patch similarity index 91% rename from patches/server/0221-Mob-head-visibility-percent.patch rename to patches/server/0223-Mob-head-visibility-percent.patch index 91020ffb9..fb48f5b3b 100644 --- a/patches/server/0221-Mob-head-visibility-percent.patch +++ b/patches/server/0223-Mob-head-visibility-percent.patch @@ -32,10 +32,10 @@ index 549579f2bc2e1fd23ece1ead543e3e5242f52ce0..119d2e57995fa20f34b88963b93c945f // Purpur start if (entity instanceof LivingEntity entityliving) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index e4c1fe03e5ca7fa91ca7fc26eb0ba12e18d009a4..efcf075ec700e0d9f85a2e8b86580bc693dedf71 100644 +index 9ed53d42189f7f7562ed96b4af39a02db2cb2ff5..77ee5bc60d953e72c6695ce1ce19276f61ae2057 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1364,6 +1364,7 @@ public class PurpurWorldConfig { +@@ -1369,6 +1369,7 @@ public class PurpurWorldConfig { public boolean creeperExplodeWhenKilled = false; public boolean creeperHealthRadius = false; public boolean creeperAlwaysDropExp = false; @@ -43,7 +43,7 @@ index e4c1fe03e5ca7fa91ca7fc26eb0ba12e18d009a4..efcf075ec700e0d9f85a2e8b86580bc6 private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -1381,6 +1382,7 @@ public class PurpurWorldConfig { +@@ -1386,6 +1387,7 @@ public class PurpurWorldConfig { creeperExplodeWhenKilled = getBoolean("mobs.creeper.explode-when-killed", creeperExplodeWhenKilled); creeperHealthRadius = getBoolean("mobs.creeper.health-impacts-explosion", creeperHealthRadius); creeperAlwaysDropExp = getBoolean("mobs.creeper.always-drop-exp", creeperAlwaysDropExp); @@ -51,7 +51,7 @@ index e4c1fe03e5ca7fa91ca7fc26eb0ba12e18d009a4..efcf075ec700e0d9f85a2e8b86580bc6 } public boolean dolphinRidable = false; -@@ -2167,6 +2169,7 @@ public class PurpurWorldConfig { +@@ -2172,6 +2174,7 @@ public class PurpurWorldConfig { public boolean piglinTakeDamageFromWater = false; public int piglinPortalSpawnModifier = 2000; public boolean piglinAlwaysDropExp = false; @@ -59,7 +59,7 @@ index e4c1fe03e5ca7fa91ca7fc26eb0ba12e18d009a4..efcf075ec700e0d9f85a2e8b86580bc6 private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -2181,6 +2184,7 @@ public class PurpurWorldConfig { +@@ -2186,6 +2189,7 @@ public class PurpurWorldConfig { piglinTakeDamageFromWater = getBoolean("mobs.piglin.takes-damage-from-water", piglinTakeDamageFromWater); piglinPortalSpawnModifier = getInt("mobs.piglin.portal-spawn-modifier", piglinPortalSpawnModifier); piglinAlwaysDropExp = getBoolean("mobs.piglin.always-drop-exp", piglinAlwaysDropExp); @@ -67,7 +67,7 @@ index e4c1fe03e5ca7fa91ca7fc26eb0ba12e18d009a4..efcf075ec700e0d9f85a2e8b86580bc6 } public boolean piglinBruteRidable = false; -@@ -2440,6 +2444,7 @@ public class PurpurWorldConfig { +@@ -2445,6 +2449,7 @@ public class PurpurWorldConfig { public double skeletonMaxHealth = 20.0D; public boolean skeletonTakeDamageFromWater = false; public boolean skeletonAlwaysDropExp = false; @@ -75,7 +75,7 @@ index e4c1fe03e5ca7fa91ca7fc26eb0ba12e18d009a4..efcf075ec700e0d9f85a2e8b86580bc6 private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -2452,6 +2457,7 @@ public class PurpurWorldConfig { +@@ -2457,6 +2462,7 @@ public class PurpurWorldConfig { skeletonMaxHealth = getDouble("mobs.skeleton.attributes.max_health", skeletonMaxHealth); skeletonTakeDamageFromWater = getBoolean("mobs.skeleton.takes-damage-from-water", skeletonTakeDamageFromWater); skeletonAlwaysDropExp = getBoolean("mobs.skeleton.always-drop-exp", skeletonAlwaysDropExp); @@ -83,7 +83,7 @@ index e4c1fe03e5ca7fa91ca7fc26eb0ba12e18d009a4..efcf075ec700e0d9f85a2e8b86580bc6 } public boolean skeletonHorseRidable = false; -@@ -2986,6 +2992,7 @@ public class PurpurWorldConfig { +@@ -2991,6 +2997,7 @@ public class PurpurWorldConfig { public boolean zombieBypassMobGriefing = false; public boolean zombieTakeDamageFromWater = false; public boolean zombieAlwaysDropExp = false; @@ -91,7 +91,7 @@ index e4c1fe03e5ca7fa91ca7fc26eb0ba12e18d009a4..efcf075ec700e0d9f85a2e8b86580bc6 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -3004,6 +3011,7 @@ public class PurpurWorldConfig { +@@ -3009,6 +3016,7 @@ public class PurpurWorldConfig { zombieBypassMobGriefing = getBoolean("mobs.zombie.bypass-mob-griefing", zombieBypassMobGriefing); zombieTakeDamageFromWater = getBoolean("mobs.zombie.takes-damage-from-water", zombieTakeDamageFromWater); zombieAlwaysDropExp = getBoolean("mobs.zombie.always-drop-exp", zombieAlwaysDropExp); diff --git a/patches/server/0222-Configurable-valid-characters-for-usernames.patch b/patches/server/0224-Configurable-valid-characters-for-usernames.patch similarity index 100% rename from patches/server/0222-Configurable-valid-characters-for-usernames.patch rename to patches/server/0224-Configurable-valid-characters-for-usernames.patch diff --git a/patches/server/0223-Shears-can-have-looting-enchantment.patch b/patches/server/0225-Shears-can-have-looting-enchantment.patch similarity index 100% rename from patches/server/0223-Shears-can-have-looting-enchantment.patch rename to patches/server/0225-Shears-can-have-looting-enchantment.patch diff --git a/patches/server/0224-Stop-bees-from-dying-after-stinging.patch b/patches/server/0226-Stop-bees-from-dying-after-stinging.patch similarity index 90% rename from patches/server/0224-Stop-bees-from-dying-after-stinging.patch rename to patches/server/0226-Stop-bees-from-dying-after-stinging.patch index 141ed0451..43b8cccca 100644 --- a/patches/server/0224-Stop-bees-from-dying-after-stinging.patch +++ b/patches/server/0226-Stop-bees-from-dying-after-stinging.patch @@ -17,10 +17,10 @@ index 926c30db9b28a30fe5d6c8d20f3972dec0d7b4d0..221c0051c7a0e20c1b7a464df26eb63c ++this.timeSinceSting; if (this.timeSinceSting % 5 == 0 && this.random.nextInt(Mth.clamp(1200 - this.timeSinceSting, 1, 1200)) == 0) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index efcf075ec700e0d9f85a2e8b86580bc693dedf71..32bf6874734bc1a34675298c473ef0b87a232010 100644 +index 77ee5bc60d953e72c6695ce1ce19276f61ae2057..c57bf82ab2ef1827b76f57ed8aff9aee08706fb3 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1165,6 +1165,7 @@ public class PurpurWorldConfig { +@@ -1170,6 +1170,7 @@ public class PurpurWorldConfig { public boolean beeCanWorkAtNight = false; public boolean beeCanWorkInRain = false; public boolean beeAlwaysDropExp = false; @@ -28,7 +28,7 @@ index efcf075ec700e0d9f85a2e8b86580bc693dedf71..32bf6874734bc1a34675298c473ef0b8 private void beeSettings() { beeRidable = getBoolean("mobs.bee.ridable", beeRidable); beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater); -@@ -1181,6 +1182,7 @@ public class PurpurWorldConfig { +@@ -1186,6 +1187,7 @@ public class PurpurWorldConfig { beeCanWorkAtNight = getBoolean("mobs.bee.can-work-at-night", beeCanWorkAtNight); beeCanWorkInRain = getBoolean("mobs.bee.can-work-in-rain", beeCanWorkInRain); beeAlwaysDropExp = getBoolean("mobs.bee.always-drop-exp", beeAlwaysDropExp); diff --git a/patches/server/0225-Give-bee-counts-in-beehives-to-Purpur-clients.patch b/patches/server/0227-Give-bee-counts-in-beehives-to-Purpur-clients.patch similarity index 100% rename from patches/server/0225-Give-bee-counts-in-beehives-to-Purpur-clients.patch rename to patches/server/0227-Give-bee-counts-in-beehives-to-Purpur-clients.patch diff --git a/patches/server/0226-Configurable-farmland-trample-height.patch b/patches/server/0228-Configurable-farmland-trample-height.patch similarity index 97% rename from patches/server/0226-Configurable-farmland-trample-height.patch rename to patches/server/0228-Configurable-farmland-trample-height.patch index cac8e6958..0501b9fda 100644 --- a/patches/server/0226-Configurable-farmland-trample-height.patch +++ b/patches/server/0228-Configurable-farmland-trample-height.patch @@ -35,7 +35,7 @@ index 12a0c69f8fec30fad64cbb00af2ca1bbf0ea5153..d0ec0722496ed931b48c4e7076fddbb1 org.bukkit.event.Cancellable cancellable; if (entity instanceof Player) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 32bf6874734bc1a34675298c473ef0b87a232010..d2eed1d2695b0baf3bec82cb4220f2f9390b3228 100644 +index c57bf82ab2ef1827b76f57ed8aff9aee08706fb3..ed600eacc335f9468db65e0ebde622451ab7a6a8 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -968,6 +968,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0227-Configurable-player-pickup-exp-delay.patch b/patches/server/0229-Configurable-player-pickup-exp-delay.patch similarity index 97% rename from patches/server/0227-Configurable-player-pickup-exp-delay.patch rename to patches/server/0229-Configurable-player-pickup-exp-delay.patch index be59bd6d2..ce253f4c1 100644 --- a/patches/server/0227-Configurable-player-pickup-exp-delay.patch +++ b/patches/server/0229-Configurable-player-pickup-exp-delay.patch @@ -35,7 +35,7 @@ index 0460bdb52ce6b29cf57ef8f2d7f430e761c82d85..845c4af5d5d38d54de4a1b20fe32bf5d } else if (!entity.isRemoved()) { this.touch(entity); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index d2eed1d2695b0baf3bec82cb4220f2f9390b3228..62c1ca38ab9f5fe748ac802b9cd15576736fd16f 100644 +index ed600eacc335f9468db65e0ebde622451ab7a6a8..ae3e4547a7bd00432d51ead5bdef5703499c297f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -428,6 +428,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0228-Allow-void-trading.patch b/patches/server/0230-Allow-void-trading.patch similarity index 96% rename from patches/server/0228-Allow-void-trading.patch rename to patches/server/0230-Allow-void-trading.patch index 3296179f1..6230ad656 100644 --- a/patches/server/0228-Allow-void-trading.patch +++ b/patches/server/0230-Allow-void-trading.patch @@ -18,7 +18,7 @@ index 42db3e64b120b753e98a0fd7e3f56c7d28256fd2..ae2b9732b2795ea7faec96af4c27ccb0 } // Paper end - Fix merchant inventory not closing on entity removal diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 62c1ca38ab9f5fe748ac802b9cd15576736fd16f..72d97b4ee263f52b91bb901a9443c7fcbd0ad458 100644 +index ae3e4547a7bd00432d51ead5bdef5703499c297f..38f417bde3e05124a9ebc23c2c5ea2f4d9d7cefe 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -429,6 +429,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0229-Configurable-phantom-size.patch b/patches/server/0231-Configurable-phantom-size.patch similarity index 93% rename from patches/server/0229-Configurable-phantom-size.patch rename to patches/server/0231-Configurable-phantom-size.patch index 18e9653ec..be3b119dc 100644 --- a/patches/server/0229-Configurable-phantom-size.patch +++ b/patches/server/0231-Configurable-phantom-size.patch @@ -22,10 +22,10 @@ index 0d81540d048cd4a08962bd24d3bdd49db708f83f..26077bd6eeedbdae84613188cb0f336a } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 72d97b4ee263f52b91bb901a9443c7fcbd0ad458..5b2cce70f98cd381bf0745bbc267d38a394afc74 100644 +index 38f417bde3e05124a9ebc23c2c5ea2f4d9d7cefe..b66b8eda76779e3e5807907dc3ce28e4504299a0 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2107,6 +2107,8 @@ public class PurpurWorldConfig { +@@ -2112,6 +2112,8 @@ public class PurpurWorldConfig { public boolean phantomFlamesOnSwoop = false; public boolean phantomTakeDamageFromWater = false; public boolean phantomAlwaysDropExp = false; @@ -34,7 +34,7 @@ index 72d97b4ee263f52b91bb901a9443c7fcbd0ad458..5b2cce70f98cd381bf0745bbc267d38a private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -2143,6 +2145,13 @@ public class PurpurWorldConfig { +@@ -2148,6 +2150,13 @@ public class PurpurWorldConfig { phantomFlamesOnSwoop = getBoolean("mobs.phantom.flames-on-swoop", phantomFlamesOnSwoop); phantomTakeDamageFromWater = getBoolean("mobs.phantom.takes-damage-from-water", phantomTakeDamageFromWater); phantomAlwaysDropExp = getBoolean("mobs.phantom.always-drop-exp", phantomAlwaysDropExp); diff --git a/patches/server/0230-Max-joins-per-second.patch b/patches/server/0232-Max-joins-per-second.patch similarity index 100% rename from patches/server/0230-Max-joins-per-second.patch rename to patches/server/0232-Max-joins-per-second.patch diff --git a/patches/server/0231-Configurable-minimum-demand-for-trades.patch b/patches/server/0233-Configurable-minimum-demand-for-trades.patch similarity index 94% rename from patches/server/0231-Configurable-minimum-demand-for-trades.patch rename to patches/server/0233-Configurable-minimum-demand-for-trades.patch index da87e474d..19a768732 100644 --- a/patches/server/0231-Configurable-minimum-demand-for-trades.patch +++ b/patches/server/0233-Configurable-minimum-demand-for-trades.patch @@ -40,10 +40,10 @@ index 0efc8d997b34302c3e0a5d7ec73a11a940dbeefe..af157881d440b34cfe79fbc9b03cc9ef public ItemStack assemble() { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 5b2cce70f98cd381bf0745bbc267d38a394afc74..a4bfd2b0e9b98c64c4309a7f660ed01c30ef09f0 100644 +index b66b8eda76779e3e5807907dc3ce28e4504299a0..e9bd0ab6bdfe6662ac26732bb91c3c21e91c4225 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2788,6 +2788,7 @@ public class PurpurWorldConfig { +@@ -2793,6 +2793,7 @@ public class PurpurWorldConfig { public boolean villagerTakeDamageFromWater = false; public boolean villagerAllowTrading = true; public boolean villagerAlwaysDropExp = false; @@ -51,7 +51,7 @@ index 5b2cce70f98cd381bf0745bbc267d38a394afc74..a4bfd2b0e9b98c64c4309a7f660ed01c private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2808,6 +2809,7 @@ public class PurpurWorldConfig { +@@ -2813,6 +2814,7 @@ public class PurpurWorldConfig { villagerTakeDamageFromWater = getBoolean("mobs.villager.takes-damage-from-water", villagerTakeDamageFromWater); villagerAllowTrading = getBoolean("mobs.villager.allow-trading", villagerAllowTrading); villagerAlwaysDropExp = getBoolean("mobs.villager.always-drop-exp", villagerAlwaysDropExp); diff --git a/patches/server/0232-Lobotomize-stuck-villagers.patch b/patches/server/0234-Lobotomize-stuck-villagers.patch similarity index 97% rename from patches/server/0232-Lobotomize-stuck-villagers.patch rename to patches/server/0234-Lobotomize-stuck-villagers.patch index 0561660f0..bcb788061 100644 --- a/patches/server/0232-Lobotomize-stuck-villagers.patch +++ b/patches/server/0234-Lobotomize-stuck-villagers.patch @@ -104,10 +104,10 @@ index 6c15d40979fd3e3d246a447c432b321fbf29ada3..6ace76a829c88e2e747dbbcce0a6582c + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index a4bfd2b0e9b98c64c4309a7f660ed01c30ef09f0..62de4877eb54fcb11a4f29e08b1b738a0fcd4076 100644 +index e9bd0ab6bdfe6662ac26732bb91c3c21e91c4225..bf5c8eb060d88681166d4fff1704c8c63e6327ab 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2789,6 +2789,9 @@ public class PurpurWorldConfig { +@@ -2794,6 +2794,9 @@ public class PurpurWorldConfig { public boolean villagerAllowTrading = true; public boolean villagerAlwaysDropExp = false; public int villagerMinimumDemand = 0; @@ -117,7 +117,7 @@ index a4bfd2b0e9b98c64c4309a7f660ed01c30ef09f0..62de4877eb54fcb11a4f29e08b1b738a private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2810,6 +2813,18 @@ public class PurpurWorldConfig { +@@ -2815,6 +2818,18 @@ public class PurpurWorldConfig { villagerAllowTrading = getBoolean("mobs.villager.allow-trading", villagerAllowTrading); villagerAlwaysDropExp = getBoolean("mobs.villager.always-drop-exp", villagerAlwaysDropExp); villagerMinimumDemand = getInt("mobs.villager.minimum-demand", villagerMinimumDemand); diff --git a/patches/server/0233-Option-for-villager-display-trade-item.patch b/patches/server/0235-Option-for-villager-display-trade-item.patch similarity index 92% rename from patches/server/0233-Option-for-villager-display-trade-item.patch rename to patches/server/0235-Option-for-villager-display-trade-item.patch index ecce9cc98..2742b5219 100644 --- a/patches/server/0233-Option-for-villager-display-trade-item.patch +++ b/patches/server/0235-Option-for-villager-display-trade-item.patch @@ -17,10 +17,10 @@ index 18dad0825616c4167a0a7555689ee64910a87e09..6945992491027d43eca4f1ca697ad45c && this.lookTime > 0 && entity.getBrain().getMemory(MemoryModuleType.INTERACTION_TARGET).isPresent(); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 62de4877eb54fcb11a4f29e08b1b738a0fcd4076..cc004ccc5bf2e2c2f908fc6d59f3cb7647da3fc9 100644 +index bf5c8eb060d88681166d4fff1704c8c63e6327ab..aec0e4eec5095c12c7f52e5f955a6a04d05c9819 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2792,6 +2792,7 @@ public class PurpurWorldConfig { +@@ -2797,6 +2797,7 @@ public class PurpurWorldConfig { public boolean villagerLobotomizeEnabled = false; public int villagerLobotomizeCheckInterval = 100; public boolean villagerLobotomizeWaitUntilTradeLocked = false; @@ -28,7 +28,7 @@ index 62de4877eb54fcb11a4f29e08b1b738a0fcd4076..cc004ccc5bf2e2c2f908fc6d59f3cb76 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2825,6 +2826,7 @@ public class PurpurWorldConfig { +@@ -2830,6 +2831,7 @@ public class PurpurWorldConfig { villagerLobotomizeEnabled = getBoolean("mobs.villager.lobotomize.enabled", villagerLobotomizeEnabled); villagerLobotomizeCheckInterval = getInt("mobs.villager.lobotomize.check-interval", villagerLobotomizeCheckInterval); villagerLobotomizeWaitUntilTradeLocked = getBoolean("mobs.villager.lobotomize.wait-until-trade-locked", villagerLobotomizeWaitUntilTradeLocked); diff --git a/patches/server/0234-MC-238526-Fix-spawner-not-spawning-water-animals-cor.patch b/patches/server/0236-MC-238526-Fix-spawner-not-spawning-water-animals-cor.patch similarity index 93% rename from patches/server/0234-MC-238526-Fix-spawner-not-spawning-water-animals-cor.patch rename to patches/server/0236-MC-238526-Fix-spawner-not-spawning-water-animals-cor.patch index 451414c52..e9256eddd 100644 --- a/patches/server/0234-MC-238526-Fix-spawner-not-spawning-water-animals-cor.patch +++ b/patches/server/0236-MC-238526-Fix-spawner-not-spawning-water-animals-cor.patch @@ -17,10 +17,10 @@ index 6f22705072fecbe91196e4966fca2eeec060f120..ed2ae44f7cef5aed17d10cc8a7df0a22 } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index cc004ccc5bf2e2c2f908fc6d59f3cb7647da3fc9..3388478292e8e445f6da2ede9c44884467d551b7 100644 +index aec0e4eec5095c12c7f52e5f955a6a04d05c9819..05307f584d96b95e9b81239316a256310422c039 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1057,8 +1057,10 @@ public class PurpurWorldConfig { +@@ -1062,8 +1062,10 @@ public class PurpurWorldConfig { } public boolean spawnerDeactivateByRedstone = false; diff --git a/patches/server/0235-Config-for-mob-last-hurt-by-player-time.patch b/patches/server/0237-Config-for-mob-last-hurt-by-player-time.patch similarity index 97% rename from patches/server/0235-Config-for-mob-last-hurt-by-player-time.patch rename to patches/server/0237-Config-for-mob-last-hurt-by-player-time.patch index ce8f814a7..ae1b68e82 100644 --- a/patches/server/0235-Config-for-mob-last-hurt-by-player-time.patch +++ b/patches/server/0237-Config-for-mob-last-hurt-by-player-time.patch @@ -38,7 +38,7 @@ index 1a8a76aa31bd1d1670be6e9cada162c540084cf9..b452ebbe11145987fb5e66b399938984 // Paper end diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 3388478292e8e445f6da2ede9c44884467d551b7..8f5ec67822c4e1619784e6efbc70d726692d13c5 100644 +index 05307f584d96b95e9b81239316a256310422c039..389aac3c02c16bbfe3f266e66e53f6107b27e4dd 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -143,6 +143,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0236-Anvil-repair-damage-options.patch b/patches/server/0238-Anvil-repair-damage-options.patch similarity index 98% rename from patches/server/0236-Anvil-repair-damage-options.patch rename to patches/server/0238-Anvil-repair-damage-options.patch index 59081445d..1d67d451e 100644 --- a/patches/server/0236-Anvil-repair-damage-options.patch +++ b/patches/server/0238-Anvil-repair-damage-options.patch @@ -63,7 +63,7 @@ index 923357251ad950ec4f893e8771fcfa99de8a60c5..78a341ac80806f86f2ca0bd895fb091a protected InteractionResult useWithoutItem(BlockState state, Level world, BlockPos pos, Player player, BlockHitResult hit) { if (world.isClientSide) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 8f5ec67822c4e1619784e6efbc70d726692d13c5..8e66301da7706679c480f29843a6828bb5d93c07 100644 +index 389aac3c02c16bbfe3f266e66e53f6107b27e4dd..fbb2ecbf00395175d7660c5a9fe4987db9ce13b1 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -829,9 +829,13 @@ public class PurpurWorldConfig { diff --git a/patches/server/0237-Option-to-disable-turtle-egg-trampling-with-feather-.patch b/patches/server/0239-Option-to-disable-turtle-egg-trampling-with-feather-.patch similarity index 94% rename from patches/server/0237-Option-to-disable-turtle-egg-trampling-with-feather-.patch rename to patches/server/0239-Option-to-disable-turtle-egg-trampling-with-feather-.patch index dbdd44bfc..79abce6ed 100644 --- a/patches/server/0237-Option-to-disable-turtle-egg-trampling-with-feather-.patch +++ b/patches/server/0239-Option-to-disable-turtle-egg-trampling-with-feather-.patch @@ -24,10 +24,10 @@ index 2f0e8aeb9c45853fca12ddd78a7d51813a600e67..08ba90f760abb9fb62311dddd7b5bdbd return world.purpurConfig.turtleEggsBypassMobGriefing || world.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING); // Purpur end diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 8e66301da7706679c480f29843a6828bb5d93c07..8d5cedccedc8c8bcd32a4313c95bfa4f738c5259 100644 +index fbb2ecbf00395175d7660c5a9fe4987db9ce13b1..ebce13b3a25f26c22bbe8a25d38b76027b630401 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1085,12 +1085,14 @@ public class PurpurWorldConfig { +@@ -1090,12 +1090,14 @@ public class PurpurWorldConfig { public boolean turtleEggsBreakFromMinecarts = false; public boolean turtleEggsBypassMobGriefing = false; public int turtleEggsRandomTickCrackChance = 500; diff --git a/patches/server/0238-Add-toggle-for-enchant-level-clamping.patch b/patches/server/0240-Add-toggle-for-enchant-level-clamping.patch similarity index 100% rename from patches/server/0238-Add-toggle-for-enchant-level-clamping.patch rename to patches/server/0240-Add-toggle-for-enchant-level-clamping.patch diff --git a/patches/server/0239-Skip-junit-tests-for-purpur-commands.patch b/patches/server/0241-Skip-junit-tests-for-purpur-commands.patch similarity index 100% rename from patches/server/0239-Skip-junit-tests-for-purpur-commands.patch rename to patches/server/0241-Skip-junit-tests-for-purpur-commands.patch diff --git a/patches/server/0240-Implement-configurable-search-radius-for-villagers-t.patch b/patches/server/0242-Implement-configurable-search-radius-for-villagers-t.patch similarity index 93% rename from patches/server/0240-Implement-configurable-search-radius-for-villagers-t.patch rename to patches/server/0242-Implement-configurable-search-radius-for-villagers-t.patch index 02e278df0..fbf0fc98e 100644 --- a/patches/server/0240-Implement-configurable-search-radius-for-villagers-t.patch +++ b/patches/server/0242-Implement-configurable-search-radius-for-villagers-t.patch @@ -18,10 +18,10 @@ index dd74825c04543ae8c0bb1ab5eef6c8a152b621fd..dcf580d852ede8ea01f5d91944a224ec AABB axisalignedbb = this.getBoundingBox().inflate(10.0D, 10.0D, 10.0D); List list = world.getEntitiesOfClass(Villager.class, axisalignedbb); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 8d5cedccedc8c8bcd32a4313c95bfa4f738c5259..78ce078a2b85f68d5c43fdf39ed4d60c8f10f65f 100644 +index ebce13b3a25f26c22bbe8a25d38b76027b630401..31497cad3276cc2e9bd5a0e745619eb04fecf25a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2803,6 +2803,8 @@ public class PurpurWorldConfig { +@@ -2808,6 +2808,8 @@ public class PurpurWorldConfig { public int villagerLobotomizeCheckInterval = 100; public boolean villagerLobotomizeWaitUntilTradeLocked = false; public boolean villagerDisplayTradeItem = true; @@ -30,7 +30,7 @@ index 8d5cedccedc8c8bcd32a4313c95bfa4f738c5259..78ce078a2b85f68d5c43fdf39ed4d60c private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2837,6 +2839,8 @@ public class PurpurWorldConfig { +@@ -2842,6 +2844,8 @@ public class PurpurWorldConfig { villagerLobotomizeCheckInterval = getInt("mobs.villager.lobotomize.check-interval", villagerLobotomizeCheckInterval); villagerLobotomizeWaitUntilTradeLocked = getBoolean("mobs.villager.lobotomize.wait-until-trade-locked", villagerLobotomizeWaitUntilTradeLocked); villagerDisplayTradeItem = getBoolean("mobs.villager.display-trade-item", villagerDisplayTradeItem); diff --git a/patches/server/0241-Stonecutter-damage.patch b/patches/server/0243-Stonecutter-damage.patch similarity index 98% rename from patches/server/0241-Stonecutter-damage.patch rename to patches/server/0243-Stonecutter-damage.patch index b0d080371..16c3d43be 100644 --- a/patches/server/0241-Stonecutter-damage.patch +++ b/patches/server/0243-Stonecutter-damage.patch @@ -143,10 +143,10 @@ index 7462474f7eff9f50644d0b7ceac341f237c93df0..cb8f67f0ad3531b110613c0ffb3c0cc2 public static boolean advancementOnlyBroadcastToAffectedPlayer = false; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 78ce078a2b85f68d5c43fdf39ed4d60c8f10f65f..d1fd7727b7ada1ac1390a7eb1832c35706d8b209 100644 +index 31497cad3276cc2e9bd5a0e745619eb04fecf25a..37f638b7f1fe63a2b8e44b40a4ef6f6f419684fc 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1080,6 +1080,11 @@ public class PurpurWorldConfig { +@@ -1085,6 +1085,11 @@ public class PurpurWorldConfig { spongeAbsorbsWaterFromMud = getBoolean("blocks.sponge.absorbs-water-from-mud", spongeAbsorbsWaterFromMud); } diff --git a/patches/server/0242-Configurable-damage-settings-for-magma-blocks.patch b/patches/server/0244-Configurable-damage-settings-for-magma-blocks.patch similarity index 96% rename from patches/server/0242-Configurable-damage-settings-for-magma-blocks.patch rename to patches/server/0244-Configurable-damage-settings-for-magma-blocks.patch index 6296cfecd..dc19fb56d 100644 --- a/patches/server/0242-Configurable-damage-settings-for-magma-blocks.patch +++ b/patches/server/0244-Configurable-damage-settings-for-magma-blocks.patch @@ -18,7 +18,7 @@ index 77bbdc15472d656fd40e841a70e34d3d31580819..55ae530fac54236ea5614f8e92c30feb } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index d1fd7727b7ada1ac1390a7eb1832c35706d8b209..1d0accb74cedf842fb6f8e726943b9ddee582e4a 100644 +index 37f638b7f1fe63a2b8e44b40a4ef6f6f419684fc..8e95fce5be2c9ba2893b2ccc60a2fd6ea2927a62 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -1026,6 +1026,13 @@ public class PurpurWorldConfig { diff --git a/patches/server/0243-Add-config-for-snow-on-blue-ice.patch b/patches/server/0245-Add-config-for-snow-on-blue-ice.patch similarity index 95% rename from patches/server/0243-Add-config-for-snow-on-blue-ice.patch rename to patches/server/0245-Add-config-for-snow-on-blue-ice.patch index a09a64e07..543e3dec5 100644 --- a/patches/server/0243-Add-config-for-snow-on-blue-ice.patch +++ b/patches/server/0245-Add-config-for-snow-on-blue-ice.patch @@ -22,7 +22,7 @@ index 93e8e5107ac047c1f2579b4fe6b0a202edb695f6..f82d275aac7bf3949d3dcc412c7e39e1 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 1d0accb74cedf842fb6f8e726943b9ddee582e4a..335cb3101af8fdf7b8518f847cf54d06e079459e 100644 +index 8e95fce5be2c9ba2893b2ccc60a2fd6ea2927a62..59cabf7be670c05af5c5a24080fb65e318f5a843 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -1007,9 +1007,11 @@ public class PurpurWorldConfig { diff --git a/patches/server/0244-Skeletons-eat-wither-roses.patch b/patches/server/0246-Skeletons-eat-wither-roses.patch similarity index 96% rename from patches/server/0244-Skeletons-eat-wither-roses.patch rename to patches/server/0246-Skeletons-eat-wither-roses.patch index a79e1c466..63e86f8d5 100644 --- a/patches/server/0244-Skeletons-eat-wither-roses.patch +++ b/patches/server/0246-Skeletons-eat-wither-roses.patch @@ -94,10 +94,10 @@ index 1aae461eed332fe31c1449c47d0928f655c740da..9eb6ed001bfc578311300977dda6f3f1 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 335cb3101af8fdf7b8518f847cf54d06e079459e..3745acb6de975db70c78493907eb8784d3a10d75 100644 +index 59cabf7be670c05af5c5a24080fb65e318f5a843..e7f825ae88c7752468537c7df8c8fec6c1e0c983 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2486,6 +2486,7 @@ public class PurpurWorldConfig { +@@ -2491,6 +2491,7 @@ public class PurpurWorldConfig { public boolean skeletonTakeDamageFromWater = false; public boolean skeletonAlwaysDropExp = false; public double skeletonHeadVisibilityPercent = 0.5D; @@ -105,7 +105,7 @@ index 335cb3101af8fdf7b8518f847cf54d06e079459e..3745acb6de975db70c78493907eb8784 private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -2499,6 +2500,7 @@ public class PurpurWorldConfig { +@@ -2504,6 +2505,7 @@ public class PurpurWorldConfig { skeletonTakeDamageFromWater = getBoolean("mobs.skeleton.takes-damage-from-water", skeletonTakeDamageFromWater); skeletonAlwaysDropExp = getBoolean("mobs.skeleton.always-drop-exp", skeletonAlwaysDropExp); skeletonHeadVisibilityPercent = getDouble("mobs.skeleton.head-visibility-percent", skeletonHeadVisibilityPercent); diff --git a/patches/server/0245-Enchantment-Table-Persists-Lapis.patch b/patches/server/0247-Enchantment-Table-Persists-Lapis.patch similarity index 97% rename from patches/server/0245-Enchantment-Table-Persists-Lapis.patch rename to patches/server/0247-Enchantment-Table-Persists-Lapis.patch index f420bb114..b419a33d8 100644 --- a/patches/server/0245-Enchantment-Table-Persists-Lapis.patch +++ b/patches/server/0247-Enchantment-Table-Persists-Lapis.patch @@ -137,10 +137,10 @@ index d47bc2f54c4722a0b8c419b99ee57eb3cb25d750..fdeabdcc781b605d6f3ee18528fd380f + // Purpur } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 3745acb6de975db70c78493907eb8784d3a10d75..71795b553145ae497c31947f5fbb03574a860767 100644 +index e7f825ae88c7752468537c7df8c8fec6c1e0c983..38f161e102c5202c79108ad150ff42af1a75658c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1523,6 +1523,11 @@ public class PurpurWorldConfig { +@@ -1528,6 +1528,11 @@ public class PurpurWorldConfig { elderGuardianAlwaysDropExp = getBoolean("mobs.elder_guardian.always-drop-exp", elderGuardianAlwaysDropExp); } diff --git a/patches/server/0246-Spark-Profiler.patch b/patches/server/0248-Spark-Profiler.patch similarity index 100% rename from patches/server/0246-Spark-Profiler.patch rename to patches/server/0248-Spark-Profiler.patch diff --git a/patches/server/0247-Option-to-disable-kick-for-out-of-order-chat.patch b/patches/server/0249-Option-to-disable-kick-for-out-of-order-chat.patch similarity index 91% rename from patches/server/0247-Option-to-disable-kick-for-out-of-order-chat.patch rename to patches/server/0249-Option-to-disable-kick-for-out-of-order-chat.patch index ea255b08c..d9f7ab48b 100644 --- a/patches/server/0247-Option-to-disable-kick-for-out-of-order-chat.patch +++ b/patches/server/0249-Option-to-disable-kick-for-out-of-order-chat.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Option to disable kick for out of order chat diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 395ad65503c87250c0e2fa8112208f26fd3681be..7b28ec1c6d87bad32b46c6ac6cf9e97d06ccedf9 100644 +index 222436febf0b6ea93b57b8a4c0a98998a9430873..e54be01cb1629616c2952ea99c6f28f09a592773 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1698,7 +1698,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1722,7 +1722,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl do { if (!iterator.hasNext()) { diff --git a/patches/server/0248-Config-for-sculk-shrieker-can_summon-state.patch b/patches/server/0250-Config-for-sculk-shrieker-can_summon-state.patch similarity index 86% rename from patches/server/0248-Config-for-sculk-shrieker-can_summon-state.patch rename to patches/server/0250-Config-for-sculk-shrieker-can_summon-state.patch index 43c83bb39..555f9bb73 100644 --- a/patches/server/0248-Config-for-sculk-shrieker-can_summon-state.patch +++ b/patches/server/0250-Config-for-sculk-shrieker-can_summon-state.patch @@ -18,7 +18,7 @@ index b6b367492ebe2af3e63381bef935c6077f6ddb27..09f34c30d9a03751ed826b26375ac5ae @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 71795b553145ae497c31947f5fbb03574a860767..c94463436d3bb8c6658f489746db450896fd14fa 100644 +index 38f161e102c5202c79108ad150ff42af1a75658c..6dc3d5a420005a859560ebb85009183b446a0531 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -1066,6 +1066,11 @@ public class PurpurWorldConfig { @@ -30,6 +30,6 @@ index 71795b553145ae497c31947f5fbb03574a860767..c94463436d3bb8c6658f489746db4508 + sculkShriekerCanSummonDefault = getBoolean("blocks.sculk_shrieker.can-summon-default", sculkShriekerCanSummonDefault); + } + - public boolean slabHalfBreak = false; - private void slabSettings() { - slabHalfBreak = getBoolean("blocks.slab.break-individual-slabs-when-sneaking", slabHalfBreak); + public boolean signAllowColors = false; + private void signSettings() { + signAllowColors = getBoolean("blocks.sign.allow-colors", signAllowColors); diff --git a/patches/server/0249-Config-to-not-let-coral-die.patch b/patches/server/0251-Config-to-not-let-coral-die.patch similarity index 96% rename from patches/server/0249-Config-to-not-let-coral-die.patch rename to patches/server/0251-Config-to-not-let-coral-die.patch index 1532269c0..42fbf00c7 100644 --- a/patches/server/0249-Config-to-not-let-coral-die.patch +++ b/patches/server/0251-Config-to-not-let-coral-die.patch @@ -29,7 +29,7 @@ index 81fe0dea8e6e23c4a78f07fc2f9c0d68cd683f11..bff97b7d3909f2ec9e58a341b901b374 int i = aenumdirection.length; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index c94463436d3bb8c6658f489746db450896fd14fa..7b447d350029ecdb5a6539e15d3adbc4dcb05c59 100644 +index 6dc3d5a420005a859560ebb85009183b446a0531..9e884018d72ad9b63b8968551223451ecc09b547 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -913,6 +913,11 @@ public class PurpurWorldConfig { diff --git a/patches/server/0250-Add-local-difficulty-api.patch b/patches/server/0252-Add-local-difficulty-api.patch similarity index 100% rename from patches/server/0250-Add-local-difficulty-api.patch rename to patches/server/0252-Add-local-difficulty-api.patch diff --git a/patches/server/0251-Add-toggle-for-RNG-manipulation.patch b/patches/server/0253-Add-toggle-for-RNG-manipulation.patch similarity index 97% rename from patches/server/0251-Add-toggle-for-RNG-manipulation.patch rename to patches/server/0253-Add-toggle-for-RNG-manipulation.patch index 2e00d9f13..996a45aaf 100644 --- a/patches/server/0251-Add-toggle-for-RNG-manipulation.patch +++ b/patches/server/0253-Add-toggle-for-RNG-manipulation.patch @@ -33,7 +33,7 @@ index b86676ebcd6c301e5dd857d8e84e1db2c1da416b..cb950ba3ee3bdfe0ff7acdb94c7ee233 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 7b447d350029ecdb5a6539e15d3adbc4dcb05c59..add6e4eb827831478b33502aeb74a230bcd072fb 100644 +index 9e884018d72ad9b63b8968551223451ecc09b547..f50c26f02bc7c95f7b1228588aff68296290c21b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -212,9 +212,11 @@ public class PurpurWorldConfig { diff --git a/patches/server/0252-Remove-Timings.patch b/patches/server/0254-Remove-Timings.patch similarity index 99% rename from patches/server/0252-Remove-Timings.patch rename to patches/server/0254-Remove-Timings.patch index 5886e2d73..b59617ff9 100644 --- a/patches/server/0252-Remove-Timings.patch +++ b/patches/server/0254-Remove-Timings.patch @@ -632,10 +632,10 @@ index ae2b9732b2795ea7faec96af4c27ccb04f772307..a84a9218838fb42c49a00c0d5f28e9e4 } else if (close) { chunkproviderserver.close(false); } // Paper - rewrite chunk system diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 9d8bd9b96904f1ad4d9e8cee2983ab10cc2c1128..5af792bc9910d373afc02f61a8b38ac3f22d0906 100644 +index e54be01cb1629616c2952ea99c6f28f09a592773..a3e29942d3db9e5e63c839b4e32394639f60b680 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2513,7 +2513,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2537,7 +2537,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl public void handleCommand(String s) { // Paper - private -> public org.spigotmc.AsyncCatcher.catchOp("Command Dispatched Async: " + s); // Paper - Add async catcher @@ -644,7 +644,7 @@ index 9d8bd9b96904f1ad4d9e8cee2983ab10cc2c1128..5af792bc9910d373afc02f61a8b38ac3 if ( org.spigotmc.SpigotConfig.logCommands ) // Spigot this.LOGGER.info(this.player.getScoreboardName() + " issued server command: " + s); -@@ -2523,7 +2523,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2547,7 +2547,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl this.cserver.getPluginManager().callEvent(event); if (event.isCancelled()) { @@ -653,7 +653,7 @@ index 9d8bd9b96904f1ad4d9e8cee2983ab10cc2c1128..5af792bc9910d373afc02f61a8b38ac3 return; } -@@ -2536,7 +2536,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2560,7 +2560,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl java.util.logging.Logger.getLogger(ServerGamePacketListenerImpl.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); return; } finally { diff --git a/patches/server/0253-Remove-Mojang-Profiler.patch b/patches/server/0255-Remove-Mojang-Profiler.patch similarity index 99% rename from patches/server/0253-Remove-Mojang-Profiler.patch rename to patches/server/0255-Remove-Mojang-Profiler.patch index 482365b9c..9f7c152f3 100644 --- a/patches/server/0253-Remove-Mojang-Profiler.patch +++ b/patches/server/0255-Remove-Mojang-Profiler.patch @@ -826,7 +826,7 @@ index a84a9218838fb42c49a00c0d5f28e9e486fc7dac..f72af2feb74626abbdfbfd090c153574 while (iterator.hasNext()) { diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index e9d9cb47221075447aac66dd30ce6e8f08962cf5..826b7e2bb897609a084555632f691ddb38882058 100644 +index 635e6b46081ec0078b687818310e623cbbf1cc1f..ad9d42e886bc1e2529ca13990626169ab2354898 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1317,7 +1317,7 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0254-Add-more-logger-output-for-invalid-movement-kicks.patch b/patches/server/0256-Add-more-logger-output-for-invalid-movement-kicks.patch similarity index 94% rename from patches/server/0254-Add-more-logger-output-for-invalid-movement-kicks.patch rename to patches/server/0256-Add-more-logger-output-for-invalid-movement-kicks.patch index 65a2020b9..90fbc22da 100644 --- a/patches/server/0254-Add-more-logger-output-for-invalid-movement-kicks.patch +++ b/patches/server/0256-Add-more-logger-output-for-invalid-movement-kicks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add more logger output for invalid movement kicks diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 0b36f161f10bbc0a4afefe28b80ef1de1ef16b3b..6d9242bc79526ebe4fdfe1f5d0ded429da2a9f95 100644 +index a3e29942d3db9e5e63c839b4e32394639f60b680..478f3bba5e0768c8ab800d7cb591f07db1bc20da 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -753,6 +753,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -16,7 +16,7 @@ index 0b36f161f10bbc0a4afefe28b80ef1de1ef16b3b..6d9242bc79526ebe4fdfe1f5d0ded429 return; } -@@ -1334,8 +1335,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1358,8 +1359,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @Override public void handleMovePlayer(ServerboundMovePlayerPacket packet) { PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); diff --git a/patches/server/0255-Add-Bee-API.patch b/patches/server/0257-Add-Bee-API.patch similarity index 100% rename from patches/server/0255-Add-Bee-API.patch rename to patches/server/0257-Add-Bee-API.patch diff --git a/patches/server/0256-Debug-Marker-API.patch b/patches/server/0258-Debug-Marker-API.patch similarity index 100% rename from patches/server/0256-Debug-Marker-API.patch rename to patches/server/0258-Debug-Marker-API.patch diff --git a/patches/server/0257-mob-spawning-option-to-ignore-creative-players.patch b/patches/server/0259-mob-spawning-option-to-ignore-creative-players.patch similarity index 96% rename from patches/server/0257-mob-spawning-option-to-ignore-creative-players.patch rename to patches/server/0259-mob-spawning-option-to-ignore-creative-players.patch index 3b71d823b..e7d688571 100644 --- a/patches/server/0257-mob-spawning-option-to-ignore-creative-players.patch +++ b/patches/server/0259-mob-spawning-option-to-ignore-creative-players.patch @@ -18,7 +18,7 @@ index 35e94c06361795d032f995e8282f8b35c075dae7..0f90a6803851eba51e164772c984b1cd if (entityhuman != null) { double d2 = entityhuman.distanceToSqr(d0, (double) i, d1); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index add6e4eb827831478b33502aeb74a230bcd072fb..79577d858edda20329e91520e0c0f66254272838 100644 +index f50c26f02bc7c95f7b1228588aff68296290c21b..8763375984c9cbd9d4862a0130602e11a55292f5 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -385,6 +385,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0258-Add-skeleton-bow-accuracy-option.patch b/patches/server/0260-Add-skeleton-bow-accuracy-option.patch similarity index 94% rename from patches/server/0258-Add-skeleton-bow-accuracy-option.patch rename to patches/server/0260-Add-skeleton-bow-accuracy-option.patch index af8f5577b..3f012cd02 100644 --- a/patches/server/0258-Add-skeleton-bow-accuracy-option.patch +++ b/patches/server/0260-Add-skeleton-bow-accuracy-option.patch @@ -18,10 +18,10 @@ index 8515e6360c1630385884a60f652f65fdefeaf540..e80307198b051cbcd9f72b36e4592768 org.bukkit.event.entity.EntityShootBowEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callEntityShootBowEvent(this, this.getMainHandItem(), entityarrow.getPickupItem(), entityarrow, net.minecraft.world.InteractionHand.MAIN_HAND, 0.8F, true); // Paper if (event.isCancelled()) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 79577d858edda20329e91520e0c0f66254272838..4cf4d2c3fef588cc4fbda4d27a08c7e34f11c1e6 100644 +index 8763375984c9cbd9d4862a0130602e11a55292f5..7b028800a99d627a9efcd2a718e281ab7a67cfad 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2506,6 +2506,8 @@ public class PurpurWorldConfig { +@@ -2511,6 +2511,8 @@ public class PurpurWorldConfig { public boolean skeletonAlwaysDropExp = false; public double skeletonHeadVisibilityPercent = 0.5D; public int skeletonFeedWitherRoses = 0; @@ -30,7 +30,7 @@ index 79577d858edda20329e91520e0c0f66254272838..4cf4d2c3fef588cc4fbda4d27a08c7e3 private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -2520,6 +2522,18 @@ public class PurpurWorldConfig { +@@ -2525,6 +2527,18 @@ public class PurpurWorldConfig { skeletonAlwaysDropExp = getBoolean("mobs.skeleton.always-drop-exp", skeletonAlwaysDropExp); skeletonHeadVisibilityPercent = getDouble("mobs.skeleton.head-visibility-percent", skeletonHeadVisibilityPercent); skeletonFeedWitherRoses = getInt("mobs.skeleton.feed-wither-roses", skeletonFeedWitherRoses); diff --git a/patches/server/0259-Add-death-screen-API.patch b/patches/server/0261-Add-death-screen-API.patch similarity index 100% rename from patches/server/0259-Add-death-screen-API.patch rename to patches/server/0261-Add-death-screen-API.patch diff --git a/patches/server/0260-Implement-ram-and-rambar-commands.patch b/patches/server/0262-Implement-ram-and-rambar-commands.patch similarity index 99% rename from patches/server/0260-Implement-ram-and-rambar-commands.patch rename to patches/server/0262-Implement-ram-and-rambar-commands.patch index 845f5a78e..ec2e7056f 100644 --- a/patches/server/0260-Implement-ram-and-rambar-commands.patch +++ b/patches/server/0262-Implement-ram-and-rambar-commands.patch @@ -18,7 +18,7 @@ index d3c42c19a051fb3a670e541fc746b55717192a91..13dfb3e506d50c0b191baf5d05bbfc28 if (environment.includeIntegrated) { diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 826b7e2bb897609a084555632f691ddb38882058..42a623254bd2886d09eb0cfeb01dd12d0dda19cf 100644 +index ad9d42e886bc1e2529ca13990626169ab2354898..d7e4a9fe9676563845d9981523bff1a7ff12282c 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -301,6 +301,7 @@ public class ServerPlayer extends Player { @@ -45,7 +45,7 @@ index 826b7e2bb897609a084555632f691ddb38882058..42a623254bd2886d09eb0cfeb01dd12d nbt.putBoolean("Purpur.TPSBar", this.tpsBar); // Purpur nbt.putBoolean("Purpur.CompassBar", this.compassBar); // Purpur } -@@ -3022,5 +3025,13 @@ public class ServerPlayer extends Player { +@@ -3023,5 +3026,13 @@ public class ServerPlayer extends Player { public void compassBar(boolean compassBar) { this.compassBar = compassBar; } diff --git a/patches/server/0261-Add-an-option-to-fix-MC-3304-projectile-looting.patch b/patches/server/0263-Add-an-option-to-fix-MC-3304-projectile-looting.patch similarity index 98% rename from patches/server/0261-Add-an-option-to-fix-MC-3304-projectile-looting.patch rename to patches/server/0263-Add-an-option-to-fix-MC-3304-projectile-looting.patch index 66fc363c9..6755dbff9 100644 --- a/patches/server/0261-Add-an-option-to-fix-MC-3304-projectile-looting.patch +++ b/patches/server/0263-Add-an-option-to-fix-MC-3304-projectile-looting.patch @@ -30,7 +30,7 @@ index 342eaa0e3b053e9b39dc58fa92cd18cac446a844..06f7bc4d8d6679d6625a8d392777722f return this.knockback; } diff --git a/src/main/java/net/minecraft/world/item/ProjectileWeaponItem.java b/src/main/java/net/minecraft/world/item/ProjectileWeaponItem.java -index f91ce87491b18f4f4ae6458192d1f320b308102a..aec96d297401b705ca2af97904739afdf1134574 100644 +index d27e83c08c45b8514207f26e48ceb1a91ded94be..8f01772a7b06b2acf96a3f922cb9b481f634680b 100644 --- a/src/main/java/net/minecraft/world/item/ProjectileWeaponItem.java +++ b/src/main/java/net/minecraft/world/item/ProjectileWeaponItem.java @@ -131,6 +131,14 @@ public abstract class ProjectileWeaponItem extends Item { diff --git a/patches/server/0262-Configurable-block-blast-resistance.patch b/patches/server/0264-Configurable-block-blast-resistance.patch similarity index 100% rename from patches/server/0262-Configurable-block-blast-resistance.patch rename to patches/server/0264-Configurable-block-blast-resistance.patch diff --git a/patches/server/0263-Configurable-block-fall-damage-modifiers.patch b/patches/server/0265-Configurable-block-fall-damage-modifiers.patch similarity index 100% rename from patches/server/0263-Configurable-block-fall-damage-modifiers.patch rename to patches/server/0265-Configurable-block-fall-damage-modifiers.patch diff --git a/patches/server/0264-Language-API.patch b/patches/server/0266-Language-API.patch similarity index 93% rename from patches/server/0264-Language-API.patch rename to patches/server/0266-Language-API.patch index 32b0743ed..f52f1175a 100644 --- a/patches/server/0264-Language-API.patch +++ b/patches/server/0266-Language-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Language API diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index dcb9d516e8078da4a51a716080ef9a442f6cdb67..8d754bf77cb88d8ddf964f3221183e4097f06d13 100644 +index 5285433e69cb34d0b856f3e81bf1888aa30eb6f3..19937ffa2c93cb75ea8dba58dd5a8214adc035fa 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -403,6 +403,20 @@ public final class CraftServer implements Server { diff --git a/patches/server/0265-Milk-Keeps-Beneficial-Effects.patch b/patches/server/0267-Milk-Keeps-Beneficial-Effects.patch similarity index 97% rename from patches/server/0265-Milk-Keeps-Beneficial-Effects.patch rename to patches/server/0267-Milk-Keeps-Beneficial-Effects.patch index de09bd418..6014c1a99 100644 --- a/patches/server/0265-Milk-Keeps-Beneficial-Effects.patch +++ b/patches/server/0267-Milk-Keeps-Beneficial-Effects.patch @@ -30,7 +30,7 @@ index 62f5e5cfe5745deced2811d14d0c7ebb2c2c6948..c1e573758539a151452b12466339ccf8 this.goalSelector.addGoal(1, new TradeWithPlayerGoal(this)); this.goalSelector.addGoal(1, new AvoidEntityGoal<>(this, Zombie.class, 8.0F, 0.5D, 0.5D)); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 4cf4d2c3fef588cc4fbda4d27a08c7e34f11c1e6..80b329b028f5224ce6a9d9ea64c92c633548fcb8 100644 +index 7b028800a99d627a9efcd2a718e281ab7a67cfad..fabe1529ca30dabb93287dfae4cc15ea8c11f69f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -128,6 +128,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0266-MC-121706-Fix-mobs-not-looking-up-and-down-when-stra.patch b/patches/server/0268-MC-121706-Fix-mobs-not-looking-up-and-down-when-stra.patch similarity index 100% rename from patches/server/0266-MC-121706-Fix-mobs-not-looking-up-and-down-when-stra.patch rename to patches/server/0268-MC-121706-Fix-mobs-not-looking-up-and-down-when-stra.patch diff --git a/patches/server/0267-Add-log-suppression-for-LibraryLoader.patch b/patches/server/0269-Add-log-suppression-for-LibraryLoader.patch similarity index 100% rename from patches/server/0267-Add-log-suppression-for-LibraryLoader.patch rename to patches/server/0269-Add-log-suppression-for-LibraryLoader.patch diff --git a/patches/server/0268-Add-option-to-allow-creeper-to-encircle-target-when-.patch b/patches/server/0270-Add-option-to-allow-creeper-to-encircle-target-when-.patch similarity index 92% rename from patches/server/0268-Add-option-to-allow-creeper-to-encircle-target-when-.patch rename to patches/server/0270-Add-option-to-allow-creeper-to-encircle-target-when-.patch index 7f9529f5f..9e62843de 100644 --- a/patches/server/0268-Add-option-to-allow-creeper-to-encircle-target-when-.patch +++ b/patches/server/0270-Add-option-to-allow-creeper-to-encircle-target-when-.patch @@ -24,10 +24,10 @@ index 137ec75ee803789deb7b1ca93dd9369c9af362b9..ca95d25af3e9a0536868b0c7fd8e7d2f } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 80b329b028f5224ce6a9d9ea64c92c633548fcb8..396721bdc1a2bc58bd9d475d454d8f558299ac03 100644 +index fabe1529ca30dabb93287dfae4cc15ea8c11f69f..6d4d76eff2372edd7ecceb619c3b6650bd779fa2 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1413,6 +1413,7 @@ public class PurpurWorldConfig { +@@ -1418,6 +1418,7 @@ public class PurpurWorldConfig { public boolean creeperHealthRadius = false; public boolean creeperAlwaysDropExp = false; public double creeperHeadVisibilityPercent = 0.5D; @@ -35,7 +35,7 @@ index 80b329b028f5224ce6a9d9ea64c92c633548fcb8..396721bdc1a2bc58bd9d475d454d8f55 private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -1431,6 +1432,7 @@ public class PurpurWorldConfig { +@@ -1436,6 +1437,7 @@ public class PurpurWorldConfig { creeperHealthRadius = getBoolean("mobs.creeper.health-impacts-explosion", creeperHealthRadius); creeperAlwaysDropExp = getBoolean("mobs.creeper.always-drop-exp", creeperAlwaysDropExp); creeperHeadVisibilityPercent = getDouble("mobs.creeper.head-visibility-percent", creeperHeadVisibilityPercent); diff --git a/patches/server/0269-Fire-Immunity-API.patch b/patches/server/0271-Fire-Immunity-API.patch similarity index 100% rename from patches/server/0269-Fire-Immunity-API.patch rename to patches/server/0271-Fire-Immunity-API.patch diff --git a/patches/server/0270-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch b/patches/server/0272-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch similarity index 96% rename from patches/server/0270-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch rename to patches/server/0272-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch index 502e40e86..5935e653e 100644 --- a/patches/server/0270-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch +++ b/patches/server/0272-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch @@ -17,7 +17,7 @@ index 7a27388b5155e7b2478b0daa02cb616829a5d4a2..3aae4fa4176c0bf170f4532ae187e312 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 396721bdc1a2bc58bd9d475d454d8f558299ac03..4ec1c7efc14edc4245c141bf75f00066dd329ecf 100644 +index 6d4d76eff2372edd7ecceb619c3b6650bd779fa2..7a86b8a64d79128176cf0c40133494d88a50a561 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -425,6 +425,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0271-Added-got-ram-event.patch b/patches/server/0273-Added-got-ram-event.patch similarity index 100% rename from patches/server/0271-Added-got-ram-event.patch rename to patches/server/0273-Added-got-ram-event.patch diff --git a/patches/server/0272-Log-skipped-entity-s-position.patch b/patches/server/0274-Log-skipped-entity-s-position.patch similarity index 100% rename from patches/server/0272-Log-skipped-entity-s-position.patch rename to patches/server/0274-Log-skipped-entity-s-position.patch diff --git a/patches/server/0273-End-Crystal-Cramming.patch b/patches/server/0275-End-Crystal-Cramming.patch similarity index 96% rename from patches/server/0273-End-Crystal-Cramming.patch rename to patches/server/0275-End-Crystal-Cramming.patch index 0b23b567e..52622f80c 100644 --- a/patches/server/0273-End-Crystal-Cramming.patch +++ b/patches/server/0275-End-Crystal-Cramming.patch @@ -17,7 +17,7 @@ index 8c6ce06a1845832c8b0de654657788d2daf6b71b..15ca426701f1fc821da94a4dee577fdb // Purpur start diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 4ec1c7efc14edc4245c141bf75f00066dd329ecf..c2a1038235d4883bf4440c90e13c2d9fc399178b 100644 +index 7a86b8a64d79128176cf0c40133494d88a50a561..c89ca099f47450b78402af968ef6b8fdd82f7c75 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -956,6 +956,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0274-Option-to-allow-beacon-effects-when-covered-by-tinte.patch b/patches/server/0276-Option-to-allow-beacon-effects-when-covered-by-tinte.patch similarity index 97% rename from patches/server/0274-Option-to-allow-beacon-effects-when-covered-by-tinte.patch rename to patches/server/0276-Option-to-allow-beacon-effects-when-covered-by-tinte.patch index 747628bc0..3932a3d94 100644 --- a/patches/server/0274-Option-to-allow-beacon-effects-when-covered-by-tinte.patch +++ b/patches/server/0276-Option-to-allow-beacon-effects-when-covered-by-tinte.patch @@ -36,7 +36,7 @@ index 2b9cc89a2e71b523c90bbfa987b0f8352efff95a..5ad48d2003fbd83e60f6faa685324961 BeaconBlockEntity.playSound(world, pos, SoundEvents.BEACON_AMBIENT); } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index c2a1038235d4883bf4440c90e13c2d9fc399178b..5b54dcf2d352aa4f998d887fe2d8455b396794a2 100644 +index c89ca099f47450b78402af968ef6b8fdd82f7c75..5e92560383bed578e0f4ece60dc1758913a9fd91 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -855,11 +855,13 @@ public class PurpurWorldConfig { diff --git a/patches/server/0275-Add-attribute-clamping-and-armor-limit-config.patch b/patches/server/0277-Add-attribute-clamping-and-armor-limit-config.patch similarity index 100% rename from patches/server/0275-Add-attribute-clamping-and-armor-limit-config.patch rename to patches/server/0277-Add-attribute-clamping-and-armor-limit-config.patch diff --git a/patches/server/0276-Config-to-remove-explosion-radius-clamp.patch b/patches/server/0278-Config-to-remove-explosion-radius-clamp.patch similarity index 95% rename from patches/server/0276-Config-to-remove-explosion-radius-clamp.patch rename to patches/server/0278-Config-to-remove-explosion-radius-clamp.patch index 33bb5f8c5..f846613e7 100644 --- a/patches/server/0276-Config-to-remove-explosion-radius-clamp.patch +++ b/patches/server/0278-Config-to-remove-explosion-radius-clamp.patch @@ -27,7 +27,7 @@ index 6379b3b8e633d1a16532b4664e53fa5afa616ab6..69d8ff6a97335b6fe4b20a8229a77f25 } // CraftBukkit end diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 5b54dcf2d352aa4f998d887fe2d8455b396794a2..77308b060ef41c4782ef8fa92556e41c4bc8dcb0 100644 +index 5e92560383bed578e0f4ece60dc1758913a9fd91..5b658bb3d48c9fb8e080728a89fb931c7be978a6 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -221,6 +221,11 @@ public class PurpurWorldConfig { diff --git a/patches/server/0277-bonemealable-sugarcane-cactus-and-netherwart.patch b/patches/server/0279-bonemealable-sugarcane-cactus-and-netherwart.patch similarity index 98% rename from patches/server/0277-bonemealable-sugarcane-cactus-and-netherwart.patch rename to patches/server/0279-bonemealable-sugarcane-cactus-and-netherwart.patch index ff664b460..78c156054 100644 --- a/patches/server/0277-bonemealable-sugarcane-cactus-and-netherwart.patch +++ b/patches/server/0279-bonemealable-sugarcane-cactus-and-netherwart.patch @@ -137,7 +137,7 @@ index c48c622e92cedeaa46b929c7adfedec98dd5a3fb..6449b5c424443b5f0ee7e3fce8034494 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 77308b060ef41c4782ef8fa92556e41c4bc8dcb0..7af01c62e227e4a82b97b14aec8194f5b7cf481f 100644 +index 5b658bb3d48c9fb8e080728a89fb931c7be978a6..8c7508fc6163a73740aedbe9c4dee2d21c4fa0fa 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -909,8 +909,20 @@ public class PurpurWorldConfig { diff --git a/patches/server/0278-Add-PreExplodeEvents.patch b/patches/server/0280-Add-PreExplodeEvents.patch similarity index 100% rename from patches/server/0278-Add-PreExplodeEvents.patch rename to patches/server/0280-Add-PreExplodeEvents.patch diff --git a/patches/server/0279-Improve-output-of-plugins-command.patch b/patches/server/0281-Improve-output-of-plugins-command.patch similarity index 100% rename from patches/server/0279-Improve-output-of-plugins-command.patch rename to patches/server/0281-Improve-output-of-plugins-command.patch diff --git a/patches/server/0280-Add-mending-multiplier.patch b/patches/server/0282-Add-mending-multiplier.patch similarity index 96% rename from patches/server/0280-Add-mending-multiplier.patch rename to patches/server/0282-Add-mending-multiplier.patch index 3ea944ada..ce3c80474 100644 --- a/patches/server/0280-Add-mending-multiplier.patch +++ b/patches/server/0282-Add-mending-multiplier.patch @@ -27,7 +27,7 @@ index ce608784e0e35b67dde377436aaf42c956ce0644..f5debc8ddc496cd3e2d8b253511ee5cc public int getValue() { return this.value; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 7af01c62e227e4a82b97b14aec8194f5b7cf481f..7fe4cb6bea84ad24ec2f1d7fe2f21fecbb0fc348 100644 +index 8c7508fc6163a73740aedbe9c4dee2d21c4fa0fa..03819b5d991d91c2e7f5e2eae50e1a7e4197336b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -119,6 +119,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0281-Make-GUI-Great-Again.patch b/patches/server/0283-Make-GUI-Great-Again.patch similarity index 100% rename from patches/server/0281-Make-GUI-Great-Again.patch rename to patches/server/0283-Make-GUI-Great-Again.patch diff --git a/patches/server/0282-Stored-Bee-API.patch b/patches/server/0284-Stored-Bee-API.patch similarity index 100% rename from patches/server/0282-Stored-Bee-API.patch rename to patches/server/0284-Stored-Bee-API.patch diff --git a/patches/server/0283-Shears-can-defuse-TNT.patch b/patches/server/0285-Shears-can-defuse-TNT.patch similarity index 96% rename from patches/server/0283-Shears-can-defuse-TNT.patch rename to patches/server/0285-Shears-can-defuse-TNT.patch index 8716633da..5fb2d5add 100644 --- a/patches/server/0283-Shears-can-defuse-TNT.patch +++ b/patches/server/0285-Shears-can-defuse-TNT.patch @@ -42,10 +42,10 @@ index f1f352ec0e51f5db59254841a06c176c5a876fc9..dff0e7b08b973a1b29f916e63d3e4778 + // Purpur end - Shears can defuse TNT } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 7fe4cb6bea84ad24ec2f1d7fe2f21fecbb0fc348..15e0e921e60e11d74b0a58135c81a040731f5c7e 100644 +index 03819b5d991d91c2e7f5e2eae50e1a7e4197336b..bd1ae536d975b5a3c54063834fd05255f15d8dad 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -3277,4 +3277,11 @@ public class PurpurWorldConfig { +@@ -3282,4 +3282,11 @@ public class PurpurWorldConfig { cauldronDripstoneWaterFillChance = (float) getDouble("blocks.cauldron.fill-chances.dripstone-water", cauldronDripstoneWaterFillChance); cauldronDripstoneLavaFillChance = (float) getDouble("blocks.cauldron.fill-chances.dripstone-lava", cauldronDripstoneLavaFillChance); } diff --git a/patches/server/0284-Explorer-Map-API.patch b/patches/server/0286-Explorer-Map-API.patch similarity index 100% rename from patches/server/0284-Explorer-Map-API.patch rename to patches/server/0286-Explorer-Map-API.patch diff --git a/patches/server/0285-Option-Ocelot-Spawn-Under-Sea-Level.patch b/patches/server/0287-Option-Ocelot-Spawn-Under-Sea-Level.patch similarity index 91% rename from patches/server/0285-Option-Ocelot-Spawn-Under-Sea-Level.patch rename to patches/server/0287-Option-Ocelot-Spawn-Under-Sea-Level.patch index c51e83db2..5d79d6bf5 100644 --- a/patches/server/0285-Option-Ocelot-Spawn-Under-Sea-Level.patch +++ b/patches/server/0287-Option-Ocelot-Spawn-Under-Sea-Level.patch @@ -18,10 +18,10 @@ index 5668aca08732e317c7bccacf1cfaae7d8666bce6..07dc8a43f4e8c54a94696b84896d32f6 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 15e0e921e60e11d74b0a58135c81a040731f5c7e..bab93aaa84e4cd0a8c6e3a6dede84fd497d63d03 100644 +index bd1ae536d975b5a3c54063834fd05255f15d8dad..0f4a926937d07f76144cd1146b48bfdadaf887b5 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2092,6 +2092,7 @@ public class PurpurWorldConfig { +@@ -2097,6 +2097,7 @@ public class PurpurWorldConfig { public int ocelotBreedingTicks = 6000; public boolean ocelotTakeDamageFromWater = false; public boolean ocelotAlwaysDropExp = false; @@ -29,7 +29,7 @@ index 15e0e921e60e11d74b0a58135c81a040731f5c7e..bab93aaa84e4cd0a8c6e3a6dede84fd4 private void ocelotSettings() { ocelotRidable = getBoolean("mobs.ocelot.ridable", ocelotRidable); ocelotRidableInWater = getBoolean("mobs.ocelot.ridable-in-water", ocelotRidableInWater); -@@ -2105,6 +2106,7 @@ public class PurpurWorldConfig { +@@ -2110,6 +2111,7 @@ public class PurpurWorldConfig { ocelotBreedingTicks = getInt("mobs.ocelot.breeding-delay-ticks", ocelotBreedingTicks); ocelotTakeDamageFromWater = getBoolean("mobs.ocelot.takes-damage-from-water", ocelotTakeDamageFromWater); ocelotAlwaysDropExp = getBoolean("mobs.ocelot.always-drop-exp", ocelotAlwaysDropExp); diff --git a/patches/server/0286-add-an-option-for-piglins-to-ignore-gold-trimmed-arm.patch b/patches/server/0288-add-an-option-for-piglins-to-ignore-gold-trimmed-arm.patch similarity index 93% rename from patches/server/0286-add-an-option-for-piglins-to-ignore-gold-trimmed-arm.patch rename to patches/server/0288-add-an-option-for-piglins-to-ignore-gold-trimmed-arm.patch index f1049a992..8f0bc4e20 100644 --- a/patches/server/0286-add-an-option-for-piglins-to-ignore-gold-trimmed-arm.patch +++ b/patches/server/0288-add-an-option-for-piglins-to-ignore-gold-trimmed-arm.patch @@ -29,10 +29,10 @@ index e25af9af8f87e6762716749c367658bf6bda9e34..b7d5c0b0e3741fcf04c4bac21a82fc41 piglin.getBrain().eraseMemory(MemoryModuleType.WALK_TARGET); piglin.getNavigation().stop(); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index bab93aaa84e4cd0a8c6e3a6dede84fd497d63d03..3092afc7ed608a36edddc6a149b25742ffd38fb8 100644 +index 0f4a926937d07f76144cd1146b48bfdadaf887b5..27eadd84aed6d109e278b0ee450fc2c302f61aba 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2261,6 +2261,7 @@ public class PurpurWorldConfig { +@@ -2266,6 +2266,7 @@ public class PurpurWorldConfig { public int piglinPortalSpawnModifier = 2000; public boolean piglinAlwaysDropExp = false; public double piglinHeadVisibilityPercent = 0.5D; @@ -40,7 +40,7 @@ index bab93aaa84e4cd0a8c6e3a6dede84fd497d63d03..3092afc7ed608a36edddc6a149b25742 private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -2276,6 +2277,7 @@ public class PurpurWorldConfig { +@@ -2281,6 +2282,7 @@ public class PurpurWorldConfig { piglinPortalSpawnModifier = getInt("mobs.piglin.portal-spawn-modifier", piglinPortalSpawnModifier); piglinAlwaysDropExp = getBoolean("mobs.piglin.always-drop-exp", piglinAlwaysDropExp); piglinHeadVisibilityPercent = getDouble("mobs.piglin.head-visibility-percent", piglinHeadVisibilityPercent); diff --git a/patches/server/0287-Add-option-for-always-showing-item-in-player-death-m.patch b/patches/server/0289-Add-option-for-always-showing-item-in-player-death-m.patch similarity index 100% rename from patches/server/0287-Add-option-for-always-showing-item-in-player-death-m.patch rename to patches/server/0289-Add-option-for-always-showing-item-in-player-death-m.patch diff --git a/patches/server/0288-place-end-crystal-on-any-block.patch b/patches/server/0290-place-end-crystal-on-any-block.patch similarity index 96% rename from patches/server/0288-place-end-crystal-on-any-block.patch rename to patches/server/0290-place-end-crystal-on-any-block.patch index fb2f41d56..8bf62f530 100644 --- a/patches/server/0288-place-end-crystal-on-any-block.patch +++ b/patches/server/0290-place-end-crystal-on-any-block.patch @@ -18,7 +18,7 @@ index dd1bdb4bb87a3a59c229ba76b36841d199717624..54607cea2622f259aedfe425b60e2317 } else { BlockPos blockposition1 = blockposition.above(); final BlockPos aboveBlockPosition = blockposition1; // Paper - OBFHELPER diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 3092afc7ed608a36edddc6a149b25742ffd38fb8..fd596f0e27ecf722cdd90797f4c3ed5b8b4e10e3 100644 +index 27eadd84aed6d109e278b0ee450fc2c302f61aba..81c4b22a4fb7cbc2601966b646bb20294b46313e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -978,6 +978,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0289-Add-option-to-disable-the-copper-oxidation-proximity.patch b/patches/server/0291-Add-option-to-disable-the-copper-oxidation-proximity.patch similarity index 96% rename from patches/server/0289-Add-option-to-disable-the-copper-oxidation-proximity.patch rename to patches/server/0291-Add-option-to-disable-the-copper-oxidation-proximity.patch index ec825696c..8d565ec61 100644 --- a/patches/server/0289-Add-option-to-disable-the-copper-oxidation-proximity.patch +++ b/patches/server/0291-Add-option-to-disable-the-copper-oxidation-proximity.patch @@ -18,7 +18,7 @@ index daae7fd6e0148cfba8e359d990748a0c83a3376e..0e06b1bcd906e92c083dc74d56d6d0a2 return random.nextFloat() < f1 ? this.getNext(state) : Optional.empty(); } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index fd596f0e27ecf722cdd90797f4c3ed5b8b4e10e3..3bf9d778f826f30ed7ccdfc81336f21fa3307fcd 100644 +index 81c4b22a4fb7cbc2601966b646bb20294b46313e..43d91390274c8cc8863e0aceb20837415b915166 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -146,6 +146,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0290-register-minecraft-debug-commands.patch b/patches/server/0292-register-minecraft-debug-commands.patch similarity index 100% rename from patches/server/0290-register-minecraft-debug-commands.patch rename to patches/server/0292-register-minecraft-debug-commands.patch diff --git a/patches/server/0291-Configurable-villager-search-radius.patch b/patches/server/0293-Configurable-villager-search-radius.patch similarity index 95% rename from patches/server/0291-Configurable-villager-search-radius.patch rename to patches/server/0293-Configurable-villager-search-radius.patch index d7bc61eb5..819b508a2 100644 --- a/patches/server/0291-Configurable-villager-search-radius.patch +++ b/patches/server/0293-Configurable-villager-search-radius.patch @@ -31,10 +31,10 @@ index 92731b6b593289e9f583c9b705b219e81fcd8e73..9104d7010bda6f9f73b478c11490ef9c // Paper end - optimise POI access if (path != null && path.canReach()) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 3bf9d778f826f30ed7ccdfc81336f21fa3307fcd..7a9a5985b1429c25467db732678d0658aafcfafa 100644 +index 43d91390274c8cc8863e0aceb20837415b915166..710511db0e882d9795c2a1ff31570fbb05fbb0f1 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2891,6 +2891,8 @@ public class PurpurWorldConfig { +@@ -2896,6 +2896,8 @@ public class PurpurWorldConfig { public boolean villagerDisplayTradeItem = true; public int villagerSpawnIronGolemRadius = 0; public int villagerSpawnIronGolemLimit = 0; @@ -43,7 +43,7 @@ index 3bf9d778f826f30ed7ccdfc81336f21fa3307fcd..7a9a5985b1429c25467db732678d0658 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2927,6 +2929,8 @@ public class PurpurWorldConfig { +@@ -2932,6 +2934,8 @@ public class PurpurWorldConfig { villagerDisplayTradeItem = getBoolean("mobs.villager.display-trade-item", villagerDisplayTradeItem); villagerSpawnIronGolemRadius = getInt("mobs.villager.spawn-iron-golem.radius", villagerSpawnIronGolemRadius); villagerSpawnIronGolemLimit = getInt("mobs.villager.spawn-iron-golem.limit", villagerSpawnIronGolemLimit); diff --git a/patches/unapplied-server/0071-Allow-color-codes-in-books.patch b/patches/unapplied-server/0071-Allow-color-codes-in-books.patch deleted file mode 100644 index 0be3d03d3..000000000 --- a/patches/unapplied-server/0071-Allow-color-codes-in-books.patch +++ /dev/null @@ -1,77 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: William Blake Galbreath -Date: Tue, 3 Nov 2020 01:25:06 -0600 -Subject: [PATCH] Allow color codes in books - - -diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 56589f5c674670534ecf0b97c73c97e302716b9c..39950e314ee9373c9b2a7a70dac1977ee7a303bf 100644 ---- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1245,13 +1245,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl - itemstack1.setTag(nbttagcompound.copy()); - } - -+ // Purpur start -+ boolean hasPerm = getCraftPlayer().hasPermission("purpur.book.color.edit") || getCraftPlayer().hasPermission("purpur.book.color.sign"); - itemstack1.addTagElement("author", StringTag.valueOf(this.player.getName().getString())); - if (this.player.isTextFilteringEnabled()) { -- itemstack1.addTagElement("title", StringTag.valueOf(title.filteredOrEmpty())); -+ itemstack1.addTagElement("title", StringTag.valueOf(color(title.filteredOrEmpty(), hasPerm))); - } else { -- itemstack1.addTagElement("filtered_title", StringTag.valueOf(title.filteredOrEmpty())); -- itemstack1.addTagElement("title", StringTag.valueOf(title.raw())); -+ itemstack1.addTagElement("filtered_title", StringTag.valueOf(color(title.filteredOrEmpty(), hasPerm))); -+ itemstack1.addTagElement("title", StringTag.valueOf(color(title.raw(), hasPerm))); - } -+ // Purpur end - - this.updateBookPages(pages, (s) -> { - return Component.Serializer.toJson(Component.literal(s)); -@@ -1263,10 +1266,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl - private void updateBookPages(List list, UnaryOperator unaryoperator, ItemStack itemstack, int slot, ItemStack handItem) { // CraftBukkit - ListTag nbttaglist = new ListTag(); - -+ // Purpur start -+ boolean hasPerm = getCraftPlayer().hasPermission("purpur.book.color.edit"); - if (this.player.isTextFilteringEnabled()) { -- Stream stream = list.stream().map((filteredtext) -> { // CraftBukkit - decompile error -- return StringTag.valueOf((String) unaryoperator.apply(filteredtext.filteredOrEmpty())); -+ Stream stream = list.stream().map(s -> color(s.filteredOrEmpty(), hasPerm, false)).map((s) -> { // CraftBukkit - decompile error -+ return StringTag.valueOf((String) unaryoperator.apply(s)); - }); -+ // Purpur end - - Objects.requireNonNull(nbttaglist); - stream.forEach(nbttaglist::add); -@@ -1276,11 +1282,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl - - for (int j = list.size(); i < j; ++i) { - FilteredText filteredtext = (FilteredText) list.get(i); -- String s = filteredtext.raw(); -+ String s = color(filteredtext.raw(), hasPerm, false); // Purpur - - nbttaglist.add(StringTag.valueOf((String) unaryoperator.apply(s))); - if (filteredtext.isFiltered()) { -- nbttagcompound.putString(String.valueOf(i), (String) unaryoperator.apply(filteredtext.filteredOrEmpty())); -+ nbttagcompound.putString(String.valueOf(i), (String) unaryoperator.apply((String) color(filteredtext.filteredOrEmpty(), hasPerm, false))); // Purpur - } - } - -@@ -1293,6 +1299,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl - this.player.getInventory().setItem(slot, CraftEventFactory.handleEditBookEvent(this.player, slot, handItem, itemstack)); // CraftBukkit // Paper - Don't ignore result (see other callsite for handleEditBookEvent) - } - -+ // Purpur start -+ private String color(String str, boolean hasPerm) { -+ return color(str, hasPerm, true); -+ } -+ -+ private String color(String str, boolean hasPerm, boolean parseHex) { -+ return hasPerm ? org.bukkit.ChatColor.color(str, parseHex) : str; -+ } -+ // Purpur end -+ - @Override - public void handleEntityTagQuery(ServerboundEntityTagQuery packet) { - PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel());