From d5d756bc32c8afd1f5616a9d4ff899ec3a27b877 Mon Sep 17 00:00:00 2001 From: Encode42 Date: Thu, 11 Nov 2021 02:02:17 -0500 Subject: [PATCH] Updated Upstream (Paper & Airplane) Upstream has released updates that appear to apply and compile correctly Paper Changes: PaperMC/Paper@c1b4899 Fix dupe uuid check on entity add (#6735) PaperMC/Paper@3f043f7 Async catch modifications to critical entity state PaperMC/Paper@bc43f40 Update jline and TCA (#6829) PaperMC/Paper@d9e2817 Update paperweight to 1.1.13 (#6866) PaperMC/Paper@3e310e0 Remove redundant and unneeded repos, reorder repos (#6867) PaperMC/Paper@485d15f Update paperweight to 1.1.14 (#6868) PaperMC/Paper@09d50a9 Added missing mappings (#6810) PaperMC/Paper@0968cdd Move async catches back to where they were (#6869) PaperMC/Paper@6f71b7c Deduplicate strings in ObfHelper (#6841) PaperMC/Paper@ada930b Updated Upstream (Bukkit/CraftBukkit) (#6872) PaperMC/Paper@06d82e0 Cache palette array (#6767) PaperMC/Paper@70fe58d Expose the potential player cause of a lightning (#6782) PaperMC/Paper@c20c9d3 Fix CraftNamespacedKey shenanigans (#6825) PaperMC/Paper@29bb5a9 Add PlayerDeathEvent#getPlayer for clarity (#6859) PaperMC/Paper@124d079 Fix issues with mob conversion (#6831) PaperMC/Paper@22b0238 Add API for checking if a zombie has the option to break doors (#6855) PaperMC/Paper@5af80b0 Add isCollidable methods to various places (#6870) PaperMC/Paper@32ba088 Fix setPatternColor on tropical fish bucket meta (#6877) PaperMC/Paper@87121ce Move `getTrackedPlayers` up from Player to Entity (#6569) PaperMC/Paper@a923e33 Make despawn distance configs per-category, improve per category spawn limit config (#6717) PaperMC/Paper@3f17694 Goat ram API (#6336) PaperMC/Paper@cc2ecbc Add Raw Byte Entity Serialization (#6826) Airplane Changes: TECHNOVE/Airplane@e47949b Ty Penple <3 TECHNOVE/Airplane@86fee6b Update upstream --- build.gradle.kts | 4 +- gradle.properties | 2 +- patches/api/0004-Purpur-client-support.patch | 4 +- patches/api/0006-Ridables.patch | 6 +- patches/api/0009-AFK-API.patch | 4 +- .../api/0016-Player-invulnerabilities.patch | 4 +- .../0018-ItemStack-convenience-methods.patch | 4 +- ...oc-warnings-missing-param-and-return.patch | 24 +-- ...-Add-unsafe-Entity-serialization-API.patch | 80 -------- ...n-change-for-adventure-deprecations.patch} | 34 ++-- ...tment-target-for-bows-and-crossbows.patch} | 0 ...> 0035-Iron-golem-poppy-calms-anger.patch} | 0 ...36-API-for-any-mob-to-burn-daylight.patch} | 8 +- ...atch => 0037-Flying-Fall-Damage-API.patch} | 4 +- ...d-back-player-spawned-endermite-API.patch} | 0 ... 0039-Fix-default-permission-system.patch} | 0 ...oner-API.patch => 0040-Summoner-API.patch} | 0 ...-version-command-output-for-console.patch} | 0 ...mpt-parameters-to-resource-pack-api.patch} | 4 +- ... => 0043-Extended-OfflinePlayer-API.patch} | 0 ...he-ability-to-add-combustible-items.patch} | 0 .../server/0001-Airplane-Server-Changes.patch | 173 ++++-------------- ...-Airplane-defaults-closer-to-vanilla.patch | 6 +- patches/server/0003-Rebrand.patch | 24 +-- patches/server/0004-Purpur-config-files.patch | 18 +- .../server/0005-Purpur-client-support.patch | 8 +- .../0006-Component-related-conveniences.patch | 6 +- patches/server/0007-Ridables.patch | 38 ++-- patches/server/0009-Timings-stuff.patch | 8 +- patches/server/0012-AFK-API.patch | 8 +- .../0014-Configurable-server-mod-name.patch | 4 +- .../0015-LivingEntity-safeFallDistance.patch | 6 +- patches/server/0016-Lagging-threshold.patch | 6 +- .../0019-Player-invulnerabilities.patch | 8 +- ...-Minecart-settings-and-WASD-controls.patch | 6 +- .../0055-Configurable-TPS-Catchup.patch | 4 +- .../0065-Add-canSaveToDisk-to-Entity.patch | 6 +- ...0069-Add-5-second-tps-average-in-tps.patch | 8 +- ...Stop-squids-floating-on-top-of-water.patch | 4 +- ...tities-can-use-portals-configuration.patch | 6 +- ...0100-LivingEntity-broadcastItemBreak.patch | 4 +- ...ptimise-player-list-ticksSpread-out-.patch | 4 +- patches/server/0136-Implement-TPSBar.patch | 6 +- ...0143-Add-EntityTeleportHinderedEvent.patch | 6 +- .../server/0147-Fix-stuck-in-portals.patch | 6 +- ...-Add-unsafe-Entity-serialization-API.patch | 111 ----------- ...ther-Ender-Dragon-can-ride-vehicles.patch} | 0 ...atch => 0152-Dont-run-with-scissors.patch} | 2 +- ...nch-Man.patch => 0153-One-Punch-Man.patch} | 2 +- ...154-Add-config-for-snow-on-blue-ice.patch} | 0 ...r-Pearl-cooldown-damage-and-Endermi.patch} | 0 ...to-ignore-nearby-mobs-when-sleeping.patch} | 2 +- ...d-back-player-spawned-endermite-API.patch} | 0 ...n-aggressiveness-towards-Endermites.patch} | 0 ...Dragon-Head-wearers-and-stare-aggro.patch} | 0 ...ig.patch => 0160-Tick-fluids-config.patch} | 0 ...61-Config-to-disable-Llama-caravans.patch} | 0 ...g-to-make-Creepers-explode-on-death.patch} | 0 ...rable-ravager-griefable-blocks-list.patch} | 0 ...164-Sneak-to-bulk-process-composter.patch} | 0 ...h => 0165-Config-for-skipping-night.patch} | 2 +- ...166-Add-config-for-villager-trading.patch} | 0 ...=> 0167-Allow-infinity-on-crossbows.patch} | 0 ...ngs.patch => 0168-Drowning-Settings.patch} | 6 +- ...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} | 0 ...0174-Configurable-sponge-absorption.patch} | 0 ...ch => 0175-Projectile-offset-config.patch} | 0 ...or-powered-rail-activation-distance.patch} | 0 ...> 0177-Piglin-portal-spawn-modifier.patch} | 0 ...Config-to-change-max-number-of-bees.patch} | 0 ...le-damage-settings-for-magma-blocks.patch} | 2 +- ...-Config-for-wither-explosion-radius.patch} | 0 ... => 0181-Gamemode-extra-permissions.patch} | 0 ...ng-the-blocks-that-turn-into-dirt-p.patch} | 0 ...0183-Configurable-piston-push-limit.patch} | 0 ...184-Configurable-broadcast-settings.patch} | 4 +- ...-6278.patch => 0185-Fix-SPIGOT-6278.patch} | 0 ... => 0186-Configurable-mob-blindness.patch} | 2 +- ...hidden-players-from-entity-selector.patch} | 0 ...-to-impact-Creeper-explosion-radius.patch} | 0 ...> 0189-Iron-golem-poppy-calms-anger.patch} | 0 ...ots.patch => 0190-Breedable-parrots.patch} | 0 ...gurable-powered-rail-boost-modifier.patch} | 0 ...ge-multiplier-critical-damage-value.patch} | 0 ...n-to-disable-dragon-egg-teleporting.patch} | 0 ...fig-for-unverified-username-message.patch} | 0 ...-anvil-cumulative-cost-configurable.patch} | 0 ...6-ShulkerBox-allow-oversized-stacks.patch} | 0 ...e-can-work-when-raining-or-at-night.patch} | 0 ...98-API-for-any-mob-to-burn-daylight.patch} | 29 +-- ...dvancement-triggers-on-entity-death.patch} | 4 +- ...h => 0200-Config-MobEffect-by-world.patch} | 0 ...eacon-Activation-Range-Configurable.patch} | 0 ...0202-Add-toggle-for-sand-duping-fix.patch} | 0 ...gle-for-end-portal-safe-teleporting.patch} | 4 +- ...atch => 0204-Flying-Fall-Damage-API.patch} | 4 +- ...ke-lightning-rod-range-configurable.patch} | 2 +- ...ng-food-fills-hunger-bar-completely.patch} | 0 ...ayer-join-full-server-by-permission.patch} | 0 ...ermission-bypass-for-portal-waiting.patch} | 0 ...9-Shulker-spawn-from-bullet-options.patch} | 0 ...ating-glow-berries-adds-glow-effect.patch} | 0 ...-Option-to-make-drowned-break-doors.patch} | 4 +- ...nfigurable-hunger-starvation-damage.patch} | 0 ...-System.out-calls-to-plugin-loggers.patch} | 2 +- ...h => 0214-Armor-click-equip-options.patch} | 0 ...nd.patch => 0215-Add-uptime-command.patch} | 2 +- ...atch => 0216-Structure-seed-options.patch} | 0 ...tch => 0217-Tool-actionable-options.patch} | 0 ...8-Store-placer-on-Block-when-placed.patch} | 0 ...oner-API.patch => 0219-Summoner-API.patch} | 0 ...mizable-sleeping-actionbar-messages.patch} | 2 +- ...-shulker-box-items-from-dropping-co.patch} | 0 ...222-Silk-touchable-budding-amethyst.patch} | 0 ...tch => 0223-Big-dripleaf-tilt-delay.patch} | 2 +- ...0224-Player-ridable-in-water-option.patch} | 0 ...-Enderman-teleport-on-projectile-hi.patch} | 0 ...ue-Crash-with-Plugin-or-Datapack-Ge.patch} | 0 ...d.patch => 0227-Add-compass-command.patch} | 2 +- ...nt-horses-from-standing-with-riders.patch} | 0 ...h => 0229-Toggle-for-kinetic-damage.patch} | 2 +- ...-Option-for-disable-observer-clocks.patch} | 0 ...zeable-Zombie-Villager-curing-times.patch} | 0 ...-Option-for-sponges-to-work-on-lava.patch} | 0 ...233-Toggle-for-Wither-s-spawn-sound.patch} | 0 ...-breaks-from-solid-neighbors-config.patch} | 0 ...move-curse-of-binding-with-weakness.patch} | 0 ...0236-Conduit-behavior-configuration.patch} | 0 ...patch => 0237-Cauldron-fill-chances.patch} | 0 ...o-allow-mobs-to-pathfind-over-rails.patch} | 0 ...mpt-parameters-to-resource-pack-api.patch} | 4 +- ... 0240-Shulker-change-color-with-dye.patch} | 0 ... => 0241-Extended-OfflinePlayer-API.patch} | 4 +- ...he-ability-to-add-combustible-items.patch} | 4 +- ...in-and-thunder-should-stop-on-sleep.patch} | 2 +- ...-blocks-to-grow-into-trees-naturall.patch} | 0 ...-right-click-to-use-exp-for-mending.patch} | 2 +- ...urally-aggressive-to-players-chance.patch} | 0 ...urally-aggressive-to-players-chance.patch} | 0 ...r-beds-to-explode-on-villager-sleep.patch} | 0 ... 0249-horses-tempted-by-gold-config.patch} | 0 ...=> 0250-llama-tempted-by-hay-config.patch} | 0 ...Halloween-options-and-optimizations.patch} | 2 +- ...fig-for-Grindstones-ignoring-curses.patch} | 0 ....patch => 0253-UPnP-Port-Forwarding.patch} | 4 +- ...Campfire-option-for-lit-when-placed.patch} | 0 ...tinguish-fire-blocks-with-snowballs.patch} | 0 ...on-to-disable-zombie-villagers-cure.patch} | 0 152 files changed, 235 insertions(+), 534 deletions(-) delete mode 100644 patches/api/0033-Add-unsafe-Entity-serialization-API.patch rename patches/api/{0034-Conflict-on-change-for-adventure-deprecations.patch => 0033-Conflict-on-change-for-adventure-deprecations.patch} (97%) rename patches/api/{0035-Add-enchantment-target-for-bows-and-crossbows.patch => 0034-Add-enchantment-target-for-bows-and-crossbows.patch} (100%) rename patches/api/{0036-Iron-golem-poppy-calms-anger.patch => 0035-Iron-golem-poppy-calms-anger.patch} (100%) rename patches/api/{0037-API-for-any-mob-to-burn-daylight.patch => 0036-API-for-any-mob-to-burn-daylight.patch} (82%) rename patches/api/{0038-Flying-Fall-Damage-API.patch => 0037-Flying-Fall-Damage-API.patch} (87%) rename patches/api/{0039-Add-back-player-spawned-endermite-API.patch => 0038-Add-back-player-spawned-endermite-API.patch} (100%) rename patches/api/{0040-Fix-default-permission-system.patch => 0039-Fix-default-permission-system.patch} (100%) rename patches/api/{0041-Summoner-API.patch => 0040-Summoner-API.patch} (100%) rename patches/api/{0042-Clean-up-version-command-output-for-console.patch => 0041-Clean-up-version-command-output-for-console.patch} (100%) rename patches/api/{0043-Add-force-and-prompt-parameters-to-resource-pack-api.patch => 0042-Add-force-and-prompt-parameters-to-resource-pack-api.patch} (97%) rename patches/api/{0044-Extended-OfflinePlayer-API.patch => 0043-Extended-OfflinePlayer-API.patch} (100%) rename patches/api/{0045-Added-the-ability-to-add-combustible-items.patch => 0044-Added-the-ability-to-add-combustible-items.patch} (100%) delete mode 100644 patches/server/0151-Add-unsafe-Entity-serialization-API.patch rename patches/server/{0152-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch => 0151-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch} (100%) rename patches/server/{0153-Dont-run-with-scissors.patch => 0152-Dont-run-with-scissors.patch} (98%) rename patches/server/{0154-One-Punch-Man.patch => 0153-One-Punch-Man.patch} (96%) rename patches/server/{0155-Add-config-for-snow-on-blue-ice.patch => 0154-Add-config-for-snow-on-blue-ice.patch} (100%) rename patches/server/{0156-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch => 0155-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch} (100%) rename patches/server/{0157-Config-to-ignore-nearby-mobs-when-sleeping.patch => 0156-Config-to-ignore-nearby-mobs-when-sleeping.patch} (96%) rename patches/server/{0158-Add-back-player-spawned-endermite-API.patch => 0157-Add-back-player-spawned-endermite-API.patch} (100%) rename patches/server/{0159-Config-Enderman-aggressiveness-towards-Endermites.patch => 0158-Config-Enderman-aggressiveness-towards-Endermites.patch} (100%) rename patches/server/{0160-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch => 0159-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch} (100%) rename patches/server/{0161-Tick-fluids-config.patch => 0160-Tick-fluids-config.patch} (100%) rename patches/server/{0162-Config-to-disable-Llama-caravans.patch => 0161-Config-to-disable-Llama-caravans.patch} (100%) rename patches/server/{0163-Config-to-make-Creepers-explode-on-death.patch => 0162-Config-to-make-Creepers-explode-on-death.patch} (100%) rename patches/server/{0164-Configurable-ravager-griefable-blocks-list.patch => 0163-Configurable-ravager-griefable-blocks-list.patch} (100%) rename patches/server/{0165-Sneak-to-bulk-process-composter.patch => 0164-Sneak-to-bulk-process-composter.patch} (100%) rename patches/server/{0166-Config-for-skipping-night.patch => 0165-Config-for-skipping-night.patch} (96%) rename patches/server/{0167-Add-config-for-villager-trading.patch => 0166-Add-config-for-villager-trading.patch} (100%) rename patches/server/{0168-Allow-infinity-on-crossbows.patch => 0167-Allow-infinity-on-crossbows.patch} (100%) rename patches/server/{0169-Drowning-Settings.patch => 0168-Drowning-Settings.patch} (93%) rename patches/server/{0170-Break-individual-slabs-when-sneaking.patch => 0169-Break-individual-slabs-when-sneaking.patch} (100%) rename patches/server/{0171-Config-to-disable-hostile-mob-spawn-on-ice.patch => 0170-Config-to-disable-hostile-mob-spawn-on-ice.patch} (100%) rename patches/server/{0172-Config-to-show-Armor-Stand-arms-on-spawn.patch => 0171-Config-to-show-Armor-Stand-arms-on-spawn.patch} (100%) rename patches/server/{0173-Option-to-make-doors-require-redstone.patch => 0172-Option-to-make-doors-require-redstone.patch} (100%) rename patches/server/{0174-Config-to-allow-for-unsafe-enchants.patch => 0173-Config-to-allow-for-unsafe-enchants.patch} (100%) rename patches/server/{0175-Configurable-sponge-absorption.patch => 0174-Configurable-sponge-absorption.patch} (100%) rename patches/server/{0176-Projectile-offset-config.patch => 0175-Projectile-offset-config.patch} (100%) rename patches/server/{0177-Config-for-powered-rail-activation-distance.patch => 0176-Config-for-powered-rail-activation-distance.patch} (100%) rename patches/server/{0178-Piglin-portal-spawn-modifier.patch => 0177-Piglin-portal-spawn-modifier.patch} (100%) rename patches/server/{0179-Config-to-change-max-number-of-bees.patch => 0178-Config-to-change-max-number-of-bees.patch} (100%) rename patches/server/{0180-Configurable-damage-settings-for-magma-blocks.patch => 0179-Configurable-damage-settings-for-magma-blocks.patch} (97%) rename patches/server/{0181-Config-for-wither-explosion-radius.patch => 0180-Config-for-wither-explosion-radius.patch} (100%) rename patches/server/{0182-Gamemode-extra-permissions.patch => 0181-Gamemode-extra-permissions.patch} (100%) rename patches/server/{0183-Config-for-changing-the-blocks-that-turn-into-dirt-p.patch => 0182-Config-for-changing-the-blocks-that-turn-into-dirt-p.patch} (100%) rename patches/server/{0184-Configurable-piston-push-limit.patch => 0183-Configurable-piston-push-limit.patch} (100%) rename patches/server/{0185-Configurable-broadcast-settings.patch => 0184-Configurable-broadcast-settings.patch} (94%) rename patches/server/{0186-Fix-SPIGOT-6278.patch => 0185-Fix-SPIGOT-6278.patch} (100%) rename patches/server/{0187-Configurable-mob-blindness.patch => 0186-Configurable-mob-blindness.patch} (96%) rename patches/server/{0188-Hide-hidden-players-from-entity-selector.patch => 0187-Hide-hidden-players-from-entity-selector.patch} (100%) rename patches/server/{0189-Config-for-health-to-impact-Creeper-explosion-radius.patch => 0188-Config-for-health-to-impact-Creeper-explosion-radius.patch} (100%) rename patches/server/{0190-Iron-golem-poppy-calms-anger.patch => 0189-Iron-golem-poppy-calms-anger.patch} (100%) rename patches/server/{0191-Breedable-parrots.patch => 0190-Breedable-parrots.patch} (100%) rename patches/server/{0192-Configurable-powered-rail-boost-modifier.patch => 0191-Configurable-powered-rail-boost-modifier.patch} (100%) rename patches/server/{0193-Add-config-change-multiplier-critical-damage-value.patch => 0192-Add-config-change-multiplier-critical-damage-value.patch} (100%) rename patches/server/{0194-Option-to-disable-dragon-egg-teleporting.patch => 0193-Option-to-disable-dragon-egg-teleporting.patch} (100%) rename patches/server/{0195-Config-for-unverified-username-message.patch => 0194-Config-for-unverified-username-message.patch} (100%) rename patches/server/{0196-Make-anvil-cumulative-cost-configurable.patch => 0195-Make-anvil-cumulative-cost-configurable.patch} (100%) rename patches/server/{0197-ShulkerBox-allow-oversized-stacks.patch => 0196-ShulkerBox-allow-oversized-stacks.patch} (100%) rename patches/server/{0198-Bee-can-work-when-raining-or-at-night.patch => 0197-Bee-can-work-when-raining-or-at-night.patch} (100%) rename patches/server/{0199-API-for-any-mob-to-burn-daylight.patch => 0198-API-for-any-mob-to-burn-daylight.patch} (94%) rename patches/server/{0200-Fix-advancement-triggers-on-entity-death.patch => 0199-Fix-advancement-triggers-on-entity-death.patch} (97%) rename patches/server/{0201-Config-MobEffect-by-world.patch => 0200-Config-MobEffect-by-world.patch} (100%) rename patches/server/{0202-Beacon-Activation-Range-Configurable.patch => 0201-Beacon-Activation-Range-Configurable.patch} (100%) rename patches/server/{0203-Add-toggle-for-sand-duping-fix.patch => 0202-Add-toggle-for-sand-duping-fix.patch} (100%) rename patches/server/{0204-Add-toggle-for-end-portal-safe-teleporting.patch => 0203-Add-toggle-for-end-portal-safe-teleporting.patch} (95%) rename patches/server/{0205-Flying-Fall-Damage-API.patch => 0204-Flying-Fall-Damage-API.patch} (92%) rename patches/server/{0206-Make-lightning-rod-range-configurable.patch => 0205-Make-lightning-rod-range-configurable.patch} (96%) rename patches/server/{0207-Burp-after-eating-food-fills-hunger-bar-completely.patch => 0206-Burp-after-eating-food-fills-hunger-bar-completely.patch} (100%) rename patches/server/{0208-Allow-player-join-full-server-by-permission.patch => 0207-Allow-player-join-full-server-by-permission.patch} (100%) rename patches/server/{0209-Add-permission-bypass-for-portal-waiting.patch => 0208-Add-permission-bypass-for-portal-waiting.patch} (100%) rename patches/server/{0210-Shulker-spawn-from-bullet-options.patch => 0209-Shulker-spawn-from-bullet-options.patch} (100%) rename patches/server/{0211-Eating-glow-berries-adds-glow-effect.patch => 0210-Eating-glow-berries-adds-glow-effect.patch} (100%) rename patches/server/{0212-Option-to-make-drowned-break-doors.patch => 0211-Option-to-make-drowned-break-doors.patch} (95%) rename patches/server/{0213-Configurable-hunger-starvation-damage.patch => 0212-Configurable-hunger-starvation-damage.patch} (100%) rename patches/server/{0214-Redirect-System.out-calls-to-plugin-loggers.patch => 0213-Redirect-System.out-calls-to-plugin-loggers.patch} (98%) rename patches/server/{0215-Armor-click-equip-options.patch => 0214-Armor-click-equip-options.patch} (100%) rename patches/server/{0216-Add-uptime-command.patch => 0215-Add-uptime-command.patch} (98%) rename patches/server/{0217-Structure-seed-options.patch => 0216-Structure-seed-options.patch} (100%) rename patches/server/{0218-Tool-actionable-options.patch => 0217-Tool-actionable-options.patch} (100%) rename patches/server/{0219-Store-placer-on-Block-when-placed.patch => 0218-Store-placer-on-Block-when-placed.patch} (100%) rename patches/server/{0220-Summoner-API.patch => 0219-Summoner-API.patch} (100%) rename patches/server/{0221-Customizable-sleeping-actionbar-messages.patch => 0220-Customizable-sleeping-actionbar-messages.patch} (97%) rename patches/server/{0222-option-to-disable-shulker-box-items-from-dropping-co.patch => 0221-option-to-disable-shulker-box-items-from-dropping-co.patch} (100%) rename patches/server/{0223-Silk-touchable-budding-amethyst.patch => 0222-Silk-touchable-budding-amethyst.patch} (100%) rename patches/server/{0224-Big-dripleaf-tilt-delay.patch => 0223-Big-dripleaf-tilt-delay.patch} (96%) rename patches/server/{0225-Player-ridable-in-water-option.patch => 0224-Player-ridable-in-water-option.patch} (100%) rename patches/server/{0226-Config-to-disable-Enderman-teleport-on-projectile-hi.patch => 0225-Config-to-disable-Enderman-teleport-on-projectile-hi.patch} (100%) rename patches/server/{0227-Fix-Important-Issue-Crash-with-Plugin-or-Datapack-Ge.patch => 0226-Fix-Important-Issue-Crash-with-Plugin-or-Datapack-Ge.patch} (100%) rename patches/server/{0228-Add-compass-command.patch => 0227-Add-compass-command.patch} (99%) rename patches/server/{0229-Config-to-prevent-horses-from-standing-with-riders.patch => 0228-Config-to-prevent-horses-from-standing-with-riders.patch} (100%) rename patches/server/{0230-Toggle-for-kinetic-damage.patch => 0229-Toggle-for-kinetic-damage.patch} (96%) rename patches/server/{0231-Add-Option-for-disable-observer-clocks.patch => 0230-Add-Option-for-disable-observer-clocks.patch} (100%) rename patches/server/{0232-Customizeable-Zombie-Villager-curing-times.patch => 0231-Customizeable-Zombie-Villager-curing-times.patch} (100%) rename patches/server/{0233-Option-for-sponges-to-work-on-lava.patch => 0232-Option-for-sponges-to-work-on-lava.patch} (100%) rename patches/server/{0234-Toggle-for-Wither-s-spawn-sound.patch => 0233-Toggle-for-Wither-s-spawn-sound.patch} (100%) rename patches/server/{0235-Cactus-breaks-from-solid-neighbors-config.patch => 0234-Cactus-breaks-from-solid-neighbors-config.patch} (100%) rename patches/server/{0236-Config-to-remove-curse-of-binding-with-weakness.patch => 0235-Config-to-remove-curse-of-binding-with-weakness.patch} (100%) rename patches/server/{0237-Conduit-behavior-configuration.patch => 0236-Conduit-behavior-configuration.patch} (100%) rename patches/server/{0238-Cauldron-fill-chances.patch => 0237-Cauldron-fill-chances.patch} (100%) rename patches/server/{0239-Config-to-allow-mobs-to-pathfind-over-rails.patch => 0238-Config-to-allow-mobs-to-pathfind-over-rails.patch} (100%) rename patches/server/{0240-Add-force-and-prompt-parameters-to-resource-pack-api.patch => 0239-Add-force-and-prompt-parameters-to-resource-pack-api.patch} (92%) rename patches/server/{0241-Shulker-change-color-with-dye.patch => 0240-Shulker-change-color-with-dye.patch} (100%) rename patches/server/{0242-Extended-OfflinePlayer-API.patch => 0241-Extended-OfflinePlayer-API.patch} (98%) rename patches/server/{0243-Added-the-ability-to-add-combustible-items.patch => 0242-Added-the-ability-to-add-combustible-items.patch} (95%) rename patches/server/{0244-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch => 0243-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch} (97%) rename patches/server/{0245-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch => 0244-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch} (100%) rename patches/server/{0246-Shift-right-click-to-use-exp-for-mending.patch => 0245-Shift-right-click-to-use-exp-for-mending.patch} (98%) rename patches/server/{0247-Dolphins-naturally-aggressive-to-players-chance.patch => 0246-Dolphins-naturally-aggressive-to-players-chance.patch} (100%) rename patches/server/{0248-Cows-naturally-aggressive-to-players-chance.patch => 0247-Cows-naturally-aggressive-to-players-chance.patch} (100%) rename patches/server/{0249-Option-for-beds-to-explode-on-villager-sleep.patch => 0248-Option-for-beds-to-explode-on-villager-sleep.patch} (100%) rename patches/server/{0250-horses-tempted-by-gold-config.patch => 0249-horses-tempted-by-gold-config.patch} (100%) rename patches/server/{0251-llama-tempted-by-hay-config.patch => 0250-llama-tempted-by-hay-config.patch} (100%) rename patches/server/{0252-Halloween-options-and-optimizations.patch => 0251-Halloween-options-and-optimizations.patch} (98%) rename patches/server/{0253-Config-for-Grindstones-ignoring-curses.patch => 0252-Config-for-Grindstones-ignoring-curses.patch} (100%) rename patches/server/{0254-UPnP-Port-Forwarding.patch => 0253-UPnP-Port-Forwarding.patch} (96%) rename patches/server/{0255-Campfire-option-for-lit-when-placed.patch => 0254-Campfire-option-for-lit-when-placed.patch} (100%) rename patches/server/{0256-options-to-extinguish-fire-blocks-with-snowballs.patch => 0255-options-to-extinguish-fire-blocks-with-snowballs.patch} (100%) rename patches/server/{0257-Add-option-to-disable-zombie-villagers-cure.patch => 0256-Add-option-to-disable-zombie-villagers-cure.patch} (100%) diff --git a/build.gradle.kts b/build.gradle.kts index 2688deff1..6ecce7edc 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,7 +1,7 @@ plugins { java - id("com.github.johnrengelman.shadow") version "7.0.0" apply false - id("io.papermc.paperweight.patcher") version "1.1.12" + id("com.github.johnrengelman.shadow") version "7.1.0" apply false + id("io.papermc.paperweight.patcher") version "1.1.14" } repositories { diff --git a/gradle.properties b/gradle.properties index 1580a9efa..1d20de164 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,7 +4,7 @@ version = 1.17.1-R0.1-SNAPSHOT mcVersion = 1.17.1 packageVersion = 1_17_R1 -paperCommit = 744dd8ce79fb3321d71ebcf88691282f39c30826 +paperCommit = cc2ecbc407e3e1b496938c2b2e66b53dba6e4d94 org.gradle.caching = true org.gradle.parallel = true diff --git a/patches/api/0004-Purpur-client-support.patch b/patches/api/0004-Purpur-client-support.patch index 6f0da4a34..05495d9be 100644 --- a/patches/api/0004-Purpur-client-support.patch +++ b/patches/api/0004-Purpur-client-support.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Purpur client support diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 3e8cd3971ac8256a40d9b85cd7514998c965512c..56ffd7b4d791e5656447d11a47446a4759e775e3 100644 +index 9a6e410206852029f1fea0c4409352d5743dcf64..0e21d2cf8fd2fc4eacce20413967adbc3f29ad9a 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -2295,4 +2295,13 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2291,4 +2291,13 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM @Override Spigot spigot(); // Spigot end diff --git a/patches/api/0006-Ridables.patch b/patches/api/0006-Ridables.patch index 1b9ef99a6..c88e50c56 100644 --- a/patches/api/0006-Ridables.patch +++ b/patches/api/0006-Ridables.patch @@ -173,12 +173,12 @@ index 0000000000000000000000000000000000000000..c0ec5a130985e8da4cc9e596a6b70503 + } +} diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index b02704b0535522c5535b560105eec2885fdd3e77..a8feed523e4fbf56679166c71e3576b2e978df8c 100644 +index 350384ba10435b1115e4386a78d8145f748b6b29..d6604c7db12a98c83ae703bf768ac370dc15c336 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -761,4 +761,35 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -795,4 +795,35 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent */ - public boolean isTicking(); + public boolean spawnAt(@NotNull Location location, @NotNull org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason reason); // Paper end + + // Purpur start diff --git a/patches/api/0009-AFK-API.patch b/patches/api/0009-AFK-API.patch index 8906440a3..a91be2d10 100644 --- a/patches/api/0009-AFK-API.patch +++ b/patches/api/0009-AFK-API.patch @@ -81,10 +81,10 @@ index 0000000000000000000000000000000000000000..0c8b3e5e4ba412624357ea5662a78862 + } +} diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 56ffd7b4d791e5656447d11a47446a4759e775e3..6619d9109089d427e3eaec1f8c18dce23d6b7802 100644 +index 0e21d2cf8fd2fc4eacce20413967adbc3f29ad9a..c86ece55ea81d86412e5bb8952e1df265e325845 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -2303,5 +2303,24 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2299,5 +2299,24 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @return True if Player uses Purpur Client */ public boolean usesPurpurClient(); diff --git a/patches/api/0016-Player-invulnerabilities.patch b/patches/api/0016-Player-invulnerabilities.patch index fbdc7f086..9e8ff7b7d 100644 --- a/patches/api/0016-Player-invulnerabilities.patch +++ b/patches/api/0016-Player-invulnerabilities.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Player invulnerabilities diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 6619d9109089d427e3eaec1f8c18dce23d6b7802..e6b25b745fa46393fd3ce2949c5336673e552320 100644 +index c86ece55ea81d86412e5bb8952e1df265e325845..9bc534cdb64ed772429a32468e9a1fbfda0e93c9 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -2322,5 +2322,26 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2318,5 +2318,26 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * Reset the idle timer back to 0 */ void resetIdleTimer(); diff --git a/patches/api/0018-ItemStack-convenience-methods.patch b/patches/api/0018-ItemStack-convenience-methods.patch index a3b1a8419..f17c8ff41 100644 --- a/patches/api/0018-ItemStack-convenience-methods.patch +++ b/patches/api/0018-ItemStack-convenience-methods.patch @@ -5,10 +5,10 @@ Subject: [PATCH] ItemStack convenience methods diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java -index ed6dfb28f8f434680fc8eacbe49a9d0b6cf9be83..a128b647367487f6ba597d9a34378085a18bd8d1 100644 +index f1ff88a5db58eed6087c3e9e6c211a95e00f35b4..bc243e68c5965b62594cc5e1e7e8050731f88765 100644 --- a/src/main/java/org/bukkit/Material.java +++ b/src/main/java/org/bukkit/Material.java -@@ -9826,4 +9826,40 @@ public enum Material implements Keyed, net.kyori.adventure.translation.Translata +@@ -9836,4 +9836,40 @@ public enum Material implements Keyed, net.kyori.adventure.translation.Translata // } } diff --git a/patches/api/0028-Fix-javadoc-warnings-missing-param-and-return.patch b/patches/api/0028-Fix-javadoc-warnings-missing-param-and-return.patch index e336c22d3..37410b577 100644 --- a/patches/api/0028-Fix-javadoc-warnings-missing-param-and-return.patch +++ b/patches/api/0028-Fix-javadoc-warnings-missing-param-and-return.patch @@ -503,7 +503,7 @@ index c6b478fe41dcd6017571c68f3114442f3c9f6415..cc82fdb614110d32b8efb1d3d8a33777 @NotNull diff --git a/src/main/java/org/bukkit/UnsafeValues.java b/src/main/java/org/bukkit/UnsafeValues.java -index 0b15fe8b5da29bf691c394098f0203a49504242e..919c76a2d95d77571572855b5688914d0f387846 100644 +index 014c9984018ad5e51a26228a137e1ba4eb3e80c8..a39c0da1663f53b828bb35e662dd81df63b9d045 100644 --- a/src/main/java/org/bukkit/UnsafeValues.java +++ b/src/main/java/org/bukkit/UnsafeValues.java @@ -87,6 +87,8 @@ public interface UnsafeValues { @@ -515,7 +515,7 @@ index 0b15fe8b5da29bf691c394098f0203a49504242e..919c76a2d95d77571572855b5688914d */ default com.destroystokyo.paper.util.VersionFetcher getVersionFetcher() { return new com.destroystokyo.paper.util.VersionFetcher.DummyVersionFetcher(); -@@ -105,6 +107,8 @@ public interface UnsafeValues { +@@ -113,6 +115,8 @@ public interface UnsafeValues { /** * Return the translation key for the Material, so the client can translate it into the active * locale when using a {@link net.kyori.adventure.text.TranslatableComponent}. @@ -524,7 +524,7 @@ index 0b15fe8b5da29bf691c394098f0203a49504242e..919c76a2d95d77571572855b5688914d * @return the translation key */ String getTranslationKey(Material mat); -@@ -112,6 +116,8 @@ public interface UnsafeValues { +@@ -120,6 +124,8 @@ public interface UnsafeValues { /** * Return the translation key for the Block, so the client can translate it into the active * locale when using a {@link net.kyori.adventure.text.TranslatableComponent}. @@ -533,7 +533,7 @@ index 0b15fe8b5da29bf691c394098f0203a49504242e..919c76a2d95d77571572855b5688914d * @return the translation key */ String getTranslationKey(org.bukkit.block.Block block); -@@ -120,6 +126,8 @@ public interface UnsafeValues { +@@ -128,6 +134,8 @@ public interface UnsafeValues { * Return the translation key for the EntityType, so the client can translate it into the active * locale when using a {@link net.kyori.adventure.text.TranslatableComponent}.
* This is null, when the EntityType isn't known to NMS (custom entities) @@ -542,7 +542,7 @@ index 0b15fe8b5da29bf691c394098f0203a49504242e..919c76a2d95d77571572855b5688914d * @return the translation key */ String getTranslationKey(org.bukkit.entity.EntityType type); -@@ -135,6 +143,8 @@ public interface UnsafeValues { +@@ -143,6 +151,8 @@ public interface UnsafeValues { * Creates and returns the next EntityId available. *

* Use this when sending custom packets, so that there are no collisions on the client or server. @@ -588,7 +588,7 @@ index 14986911b4d0099ea2c91ab2196a771b7dee4c50..d1eed20ea3b27f0800a08b42b62aac40 @NotNull public static WorldCreator ofKey(@NotNull NamespacedKey worldKey) { diff --git a/src/main/java/org/bukkit/block/Block.java b/src/main/java/org/bukkit/block/Block.java -index 0006a5a53dfa9fc81c608423e8740a9c820659a3..1eac84f8abf71029e9e0626a9fa93446f9d0df02 100644 +index 70caaf05be813ba390412714ba0a39981edc2475..c4729769893fd3243ad60f4ad1bb3d7563ff775f 100644 --- a/src/main/java/org/bukkit/block/Block.java +++ b/src/main/java/org/bukkit/block/Block.java @@ -184,6 +184,9 @@ public interface Block extends Metadatable, net.kyori.adventure.translation.Tran @@ -787,7 +787,7 @@ index 9e7f42caab1204036f4203354c115fd40c6def92..f76ddd80f9fc926f73b1cc50f0a2767a /** diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index a8feed523e4fbf56679166c71e3576b2e978df8c..6fbfddf950e0db559fc804f27ba4a9761dcaf25c 100644 +index d6604c7db12a98c83ae703bf768ac370dc15c336..5c4247dce077f4886f3c2c9a4ab7fae3d18fe99e 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java @@ -668,6 +668,9 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent @@ -850,7 +850,7 @@ index a8feed523e4fbf56679166c71e3576b2e978df8c..6fbfddf950e0db559fc804f27ba4a976 + * @return True if entity is ticking */ public boolean isTicking(); - // Paper end + diff --git a/src/main/java/org/bukkit/entity/EntityType.java b/src/main/java/org/bukkit/entity/EntityType.java index 48aa290dbcf93715ce58d56d6cf3216948f2f3f2..cf5e2f8cfe425172f5c194689e2d923b109c6929 100644 --- a/src/main/java/org/bukkit/entity/EntityType.java @@ -893,7 +893,7 @@ index 812af884d0601645e254ac29613323d2fd92a112..c1b1ac9210eaaa02dad0449aac867efb /** diff --git a/src/main/java/org/bukkit/entity/LightningStrike.java b/src/main/java/org/bukkit/entity/LightningStrike.java -index 2c81a3f685588431a3c7675c84b35a28975232af..efb308c82580722e5106d5d1c7512d99c38e536a 100644 +index 6f5b6901032eb03606c4566b24459a03baac0c73..9dc1f27d3b36e112d2e79d93b3e49c3999c1bd97 100644 --- a/src/main/java/org/bukkit/entity/LightningStrike.java +++ b/src/main/java/org/bukkit/entity/LightningStrike.java @@ -15,6 +15,9 @@ public interface LightningStrike extends Entity { @@ -921,10 +921,10 @@ index a6a7429ed2e1eefb2b12b7480ed74fcc3963a864..e8027e1d505dda6effbb1698550016e8 NORMAL(false), diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index e6b25b745fa46393fd3ce2949c5336673e552320..9bbb69ebd6035464da0a5ce8c742054224b53bfc 100644 +index 9bc534cdb64ed772429a32468e9a1fbfda0e93c9..8645cf0dd055b68d7ce49aaf93e4d6c680feca8a 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -2117,6 +2117,8 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2121,6 +2121,8 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM void resetCooldown(); /** @@ -933,7 +933,7 @@ index e6b25b745fa46393fd3ce2949c5336673e552320..9bbb69ebd6035464da0a5ce8c7420542 * @return the client option value of the player */ @NotNull -@@ -2156,6 +2158,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2152,6 +2154,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM // Paper end // Spigot start diff --git a/patches/api/0033-Add-unsafe-Entity-serialization-API.patch b/patches/api/0033-Add-unsafe-Entity-serialization-API.patch deleted file mode 100644 index f8b412a1f..000000000 --- a/patches/api/0033-Add-unsafe-Entity-serialization-API.patch +++ /dev/null @@ -1,80 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Mariell Hoversholm -Date: Sat, 9 Jan 2021 21:21:27 +0100 -Subject: [PATCH] Add unsafe Entity serialization API - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . - -diff --git a/src/main/java/org/bukkit/UnsafeValues.java b/src/main/java/org/bukkit/UnsafeValues.java -index 919c76a2d95d77571572855b5688914d0f387846..df8469f5a8e4262652e04bdd2eddf5fabe5277f2 100644 ---- a/src/main/java/org/bukkit/UnsafeValues.java -+++ b/src/main/java/org/bukkit/UnsafeValues.java -@@ -211,4 +211,28 @@ public interface UnsafeValues { - */ - @org.jetbrains.annotations.NotNull org.bukkit.attribute.Attributable getDefaultEntityAttributes(@org.jetbrains.annotations.NotNull NamespacedKey entityKey); - // Paper end -+ -+ // Purpur start -+ -+ /** -+ * Serialize entity to byte array -+ * -+ * @param entity entity to serialize -+ * @return serialized entity -+ */ -+ byte[] serializeEntity(org.bukkit.entity.Entity entity); -+ -+ /** -+ * Deserialize an entity from byte array -+ *

-+ * The entity is not automatically spawned in the world. You will have to spawn -+ * the entity yourself with {@link org.bukkit.entity.Entity#spawnAt(Location)} or -+ * {@link org.bukkit.entity.Entity#spawnAt(Location, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason)} -+ * -+ * @param data serialized entity -+ * @param world world entity belongs in -+ * @return deserialized entity -+ */ -+ org.bukkit.entity.Entity deserializeEntity(byte[] data, org.bukkit.World world); -+ // Purpur end - } -diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index 6fbfddf950e0db559fc804f27ba4a9761dcaf25c..892fc137c8c35dc111f739e4ebe66be42229c5d8 100644 ---- a/src/main/java/org/bukkit/entity/Entity.java -+++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -808,5 +808,24 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent - * @return True if ridable in water - */ - boolean isRidableInWater(); -+ -+ /** -+ * Spawn this entity in the world at the given {@link Location} with the default spawn reason. -+ * -+ * @param location The location at which to spawn the entity. -+ * @return Whether the entity was successfully spawned. -+ */ -+ default boolean spawnAt(@NotNull Location location) { -+ return spawnAt(location, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.DEFAULT); -+ } -+ -+ /** -+ * Spawn this entity in the world at the given {@link Location} with the reason given. -+ * -+ * @param location The location at which to spawn the entity. -+ * @param spawnReason The reason for which the entity was spawned. -+ * @return Whether the entity was successfully spawned. -+ */ -+ boolean spawnAt(@NotNull Location location, @NotNull org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason spawnReason); - // Purpur end - } diff --git a/patches/api/0034-Conflict-on-change-for-adventure-deprecations.patch b/patches/api/0033-Conflict-on-change-for-adventure-deprecations.patch similarity index 97% rename from patches/api/0034-Conflict-on-change-for-adventure-deprecations.patch rename to patches/api/0033-Conflict-on-change-for-adventure-deprecations.patch index b2554e8fc..397cd68d8 100644 --- a/patches/api/0034-Conflict-on-change-for-adventure-deprecations.patch +++ b/patches/api/0033-Conflict-on-change-for-adventure-deprecations.patch @@ -170,10 +170,10 @@ index c8d37184d8e882a4084a1bfef85faa330588600b..46bae5c13ce2b973b114682f6a338981 /** diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 9bbb69ebd6035464da0a5ce8c742054224b53bfc..c1670adf70a2edcd7ceed1aed7dc223d439489f5 100644 +index 8645cf0dd055b68d7ce49aaf93e4d6c680feca8a..6bb80577801e4d37b213f7c160bd3c09f8b43db5 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -75,7 +75,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -74,7 +74,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @return the friendly name * @deprecated in favour of {@link #displayName()} */ @@ -182,7 +182,7 @@ index 9bbb69ebd6035464da0a5ce8c742054224b53bfc..c1670adf70a2edcd7ceed1aed7dc223d @NotNull public String getDisplayName(); -@@ -89,7 +89,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -88,7 +88,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @param name The new display name. * @deprecated in favour of {@link #displayName(net.kyori.adventure.text.Component)} */ @@ -191,7 +191,7 @@ index 9bbb69ebd6035464da0a5ce8c742054224b53bfc..c1670adf70a2edcd7ceed1aed7dc223d public void setDisplayName(@Nullable String name); // Paper start -@@ -130,7 +130,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -129,7 +129,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @deprecated in favour of {@link #playerListName()} */ @NotNull @@ -200,7 +200,7 @@ index 9bbb69ebd6035464da0a5ce8c742054224b53bfc..c1670adf70a2edcd7ceed1aed7dc223d public String getPlayerListName(); /** -@@ -141,7 +141,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -140,7 +140,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @param name new player list name * @deprecated in favour of {@link #playerListName(net.kyori.adventure.text.Component)} */ @@ -209,7 +209,7 @@ index 9bbb69ebd6035464da0a5ce8c742054224b53bfc..c1670adf70a2edcd7ceed1aed7dc223d public void setPlayerListName(@Nullable String name); /** -@@ -150,7 +150,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -149,7 +149,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @return player list header or null * @deprecated in favour of {@link #playerListHeader()} */ @@ -218,7 +218,7 @@ index 9bbb69ebd6035464da0a5ce8c742054224b53bfc..c1670adf70a2edcd7ceed1aed7dc223d @Nullable public String getPlayerListHeader(); -@@ -160,7 +160,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -159,7 +159,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @return player list header or null * @deprecated in favour of {@link #playerListFooter()} */ @@ -227,7 +227,7 @@ index 9bbb69ebd6035464da0a5ce8c742054224b53bfc..c1670adf70a2edcd7ceed1aed7dc223d @Nullable public String getPlayerListFooter(); -@@ -170,7 +170,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -169,7 +169,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @param header player list header, null for empty * @deprecated in favour of {@link #sendPlayerListHeader(net.kyori.adventure.text.Component)} */ @@ -236,7 +236,7 @@ index 9bbb69ebd6035464da0a5ce8c742054224b53bfc..c1670adf70a2edcd7ceed1aed7dc223d public void setPlayerListHeader(@Nullable String header); /** -@@ -179,7 +179,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -178,7 +178,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @param footer player list footer, null for empty * @deprecated in favour of {@link #sendPlayerListFooter(net.kyori.adventure.text.Component)} */ @@ -245,7 +245,7 @@ index 9bbb69ebd6035464da0a5ce8c742054224b53bfc..c1670adf70a2edcd7ceed1aed7dc223d public void setPlayerListFooter(@Nullable String footer); /** -@@ -190,7 +190,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -189,7 +189,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @param footer player list footer, null for empty * @deprecated in favour of {@link #sendPlayerListHeaderAndFooter(net.kyori.adventure.text.Component, net.kyori.adventure.text.Component)} */ @@ -254,7 +254,7 @@ index 9bbb69ebd6035464da0a5ce8c742054224b53bfc..c1670adf70a2edcd7ceed1aed7dc223d public void setPlayerListHeaderFooter(@Nullable String header, @Nullable String footer); /** -@@ -230,7 +230,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -229,7 +229,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @param message kick message * @deprecated in favour of {@link #kick(net.kyori.adventure.text.Component)} */ @@ -263,7 +263,7 @@ index 9bbb69ebd6035464da0a5ce8c742054224b53bfc..c1670adf70a2edcd7ceed1aed7dc223d public void kickPlayer(@Nullable String message); // Paper start -@@ -673,7 +673,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -677,7 +677,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @throws IllegalArgumentException if lines is non-null and has a length less than 4 * @deprecated in favour of {@link #sendSignChange(org.bukkit.Location, java.util.List)} */ @@ -272,7 +272,7 @@ index 9bbb69ebd6035464da0a5ce8c742054224b53bfc..c1670adf70a2edcd7ceed1aed7dc223d public void sendSignChange(@NotNull Location loc, @Nullable String[] lines) throws IllegalArgumentException; /** -@@ -694,7 +694,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -698,7 +698,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @throws IllegalArgumentException if lines is non-null and has a length less than 4 * @deprecated in favour of {@link #sendSignChange(org.bukkit.Location, java.util.List, org.bukkit.DyeColor)} */ @@ -281,7 +281,7 @@ index 9bbb69ebd6035464da0a5ce8c742054224b53bfc..c1670adf70a2edcd7ceed1aed7dc223d public void sendSignChange(@NotNull Location loc, @Nullable String[] lines, @NotNull DyeColor dyeColor) throws IllegalArgumentException; /** -@@ -1867,7 +1867,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1871,7 +1871,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @deprecated in favour of {@link #locale()} */ @NotNull @@ -335,10 +335,10 @@ index 1f79f704abf339150df08900b8ea7da4cefef258..004106913655446774f875015cb79863 adventure$lines.set(index, line != null ? org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().deserialize(line) : null); // Paper } diff --git a/src/main/java/org/bukkit/event/entity/PlayerDeathEvent.java b/src/main/java/org/bukkit/event/entity/PlayerDeathEvent.java -index 3d45d2e41aad6992b40a22030f2a63baeec78757..3cecfe9f7c253ab474829c612cca2dc05fd5d111 100644 +index 8175e5329f7fb6da4c7faf695162b51492114dc3..839fea07e3b3fe486cd8f7f8fa5d2593ed54594e 100644 --- a/src/main/java/org/bukkit/event/entity/PlayerDeathEvent.java +++ b/src/main/java/org/bukkit/event/entity/PlayerDeathEvent.java -@@ -151,7 +151,7 @@ public class PlayerDeathEvent extends EntityDeathEvent { +@@ -162,7 +162,7 @@ public class PlayerDeathEvent extends EntityDeathEvent { * @param deathMessage Message to appear to other players on the server. * @deprecated in favour of {@link #deathMessage(net.kyori.adventure.text.Component)} */ @@ -347,7 +347,7 @@ index 3d45d2e41aad6992b40a22030f2a63baeec78757..3cecfe9f7c253ab474829c612cca2dc0 public void setDeathMessage(@Nullable String deathMessage) { this.deathMessage = deathMessage; this.adventure$deathMessage = deathMessage != null ? org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().deserialize(deathMessage) : net.kyori.adventure.text.Component.empty(); // Paper -@@ -164,7 +164,7 @@ public class PlayerDeathEvent extends EntityDeathEvent { +@@ -175,7 +175,7 @@ public class PlayerDeathEvent extends EntityDeathEvent { * @deprecated in favour of {@link #deathMessage()} */ @Nullable diff --git a/patches/api/0035-Add-enchantment-target-for-bows-and-crossbows.patch b/patches/api/0034-Add-enchantment-target-for-bows-and-crossbows.patch similarity index 100% rename from patches/api/0035-Add-enchantment-target-for-bows-and-crossbows.patch rename to patches/api/0034-Add-enchantment-target-for-bows-and-crossbows.patch diff --git a/patches/api/0036-Iron-golem-poppy-calms-anger.patch b/patches/api/0035-Iron-golem-poppy-calms-anger.patch similarity index 100% rename from patches/api/0036-Iron-golem-poppy-calms-anger.patch rename to patches/api/0035-Iron-golem-poppy-calms-anger.patch diff --git a/patches/api/0037-API-for-any-mob-to-burn-daylight.patch b/patches/api/0036-API-for-any-mob-to-burn-daylight.patch similarity index 82% rename from patches/api/0037-API-for-any-mob-to-burn-daylight.patch rename to patches/api/0036-API-for-any-mob-to-burn-daylight.patch index 52033b3d7..88ac3cb9d 100644 --- a/patches/api/0037-API-for-any-mob-to-burn-daylight.patch +++ b/patches/api/0036-API-for-any-mob-to-burn-daylight.patch @@ -6,13 +6,13 @@ Subject: [PATCH] API for any mob to burn daylight Co-authored by: Encode42 diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index 892fc137c8c35dc111f739e4ebe66be42229c5d8..a365998c2c359fb6cd535ebf0f2d893943b87b75 100644 +index 5c4247dce077f4886f3c2c9a4ab7fae3d18fe99e..5912a2a8ccbaf4bb4a0fcb5fa87a08b1e31c276c 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -827,5 +827,12 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent - * @return Whether the entity was successfully spawned. +@@ -842,5 +842,12 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent + * @return True if ridable in water */ - boolean spawnAt(@NotNull Location location, @NotNull org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason spawnReason); + boolean isRidableInWater(); + + /** + * Checks if the entity is in daylight diff --git a/patches/api/0038-Flying-Fall-Damage-API.patch b/patches/api/0037-Flying-Fall-Damage-API.patch similarity index 87% rename from patches/api/0038-Flying-Fall-Damage-API.patch rename to patches/api/0037-Flying-Fall-Damage-API.patch index b4b22cca2..a091e4e84 100644 --- a/patches/api/0038-Flying-Fall-Damage-API.patch +++ b/patches/api/0037-Flying-Fall-Damage-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Flying Fall Damage API diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index c1670adf70a2edcd7ceed1aed7dc223d439489f5..566c8f8b505c3bfc23044a836083a00b92cacedd 100644 +index 6bb80577801e4d37b213f7c160bd3c09f8b43db5..639b2e49ffdf9c9bc20f7af177614b35699ac539 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -2348,5 +2348,19 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2344,5 +2344,19 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @param invulnerableTicks Invulnerable ticks remaining */ void setSpawnInvulnerableTicks(int invulnerableTicks); diff --git a/patches/api/0039-Add-back-player-spawned-endermite-API.patch b/patches/api/0038-Add-back-player-spawned-endermite-API.patch similarity index 100% rename from patches/api/0039-Add-back-player-spawned-endermite-API.patch rename to patches/api/0038-Add-back-player-spawned-endermite-API.patch diff --git a/patches/api/0040-Fix-default-permission-system.patch b/patches/api/0039-Fix-default-permission-system.patch similarity index 100% rename from patches/api/0040-Fix-default-permission-system.patch rename to patches/api/0039-Fix-default-permission-system.patch diff --git a/patches/api/0041-Summoner-API.patch b/patches/api/0040-Summoner-API.patch similarity index 100% rename from patches/api/0041-Summoner-API.patch rename to patches/api/0040-Summoner-API.patch diff --git a/patches/api/0042-Clean-up-version-command-output-for-console.patch b/patches/api/0041-Clean-up-version-command-output-for-console.patch similarity index 100% rename from patches/api/0042-Clean-up-version-command-output-for-console.patch rename to patches/api/0041-Clean-up-version-command-output-for-console.patch diff --git a/patches/api/0043-Add-force-and-prompt-parameters-to-resource-pack-api.patch b/patches/api/0042-Add-force-and-prompt-parameters-to-resource-pack-api.patch similarity index 97% rename from patches/api/0043-Add-force-and-prompt-parameters-to-resource-pack-api.patch rename to patches/api/0042-Add-force-and-prompt-parameters-to-resource-pack-api.patch index bc6b7b414..29a0d8be8 100644 --- a/patches/api/0043-Add-force-and-prompt-parameters-to-resource-pack-api.patch +++ b/patches/api/0042-Add-force-and-prompt-parameters-to-resource-pack-api.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add force and prompt parameters to resource pack api diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 566c8f8b505c3bfc23044a836083a00b92cacedd..033cf450dcfb02e57d0875d0117086e6fe615c32 100644 +index 639b2e49ffdf9c9bc20f7af177614b35699ac539..2d8ade668c63a72f42ae8e4cdbece22c3686b721 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -1490,6 +1490,88 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1494,6 +1494,88 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM */ public void setResourcePack(@NotNull String url, @NotNull byte[] hash); diff --git a/patches/api/0044-Extended-OfflinePlayer-API.patch b/patches/api/0043-Extended-OfflinePlayer-API.patch similarity index 100% rename from patches/api/0044-Extended-OfflinePlayer-API.patch rename to patches/api/0043-Extended-OfflinePlayer-API.patch diff --git a/patches/api/0045-Added-the-ability-to-add-combustible-items.patch b/patches/api/0044-Added-the-ability-to-add-combustible-items.patch similarity index 100% rename from patches/api/0045-Added-the-ability-to-add-combustible-items.patch rename to patches/api/0044-Added-the-ability-to-add-combustible-items.patch diff --git a/patches/server/0001-Airplane-Server-Changes.patch b/patches/server/0001-Airplane-Server-Changes.patch index 4480f9231..27a4d3a2b 100644 --- a/patches/server/0001-Airplane-Server-Changes.patch +++ b/patches/server/0001-Airplane-Server-Changes.patch @@ -19,10 +19,10 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/build.gradle.kts b/build.gradle.kts -index 13f89bdaf1ada33060b1ee4d6f2860ec194b68a4..0bd09bd56968660437a94ec078a13ee78339fa0e 100644 +index e067c69fea1dec79ef8e97cad1c74020b6a3a235..fd3528be3d90733e826bcbeae967b95cedf92dfe 100644 --- a/build.gradle.kts +++ b/build.gradle.kts -@@ -25,8 +25,8 @@ repositories { +@@ -22,8 +22,8 @@ repositories { } dependencies { @@ -31,10 +31,10 @@ index 13f89bdaf1ada33060b1ee4d6f2860ec194b68a4..0bd09bd56968660437a94ec078a13ee7 + implementation(project(":Airplane-API")) // Airplane // Paper + implementation("io.papermc.paper:paper-mojangapi:1.17.1-R0.1-SNAPSHOT") // Airplane // Paper start - implementation("org.jline:jline-terminal-jansi:3.12.1") - implementation("net.minecrell:terminalconsoleappender:1.2.0") -@@ -61,6 +61,13 @@ dependencies { - implementation("org.quiltmc:tiny-mappings-parser:0.3.0") // Paper - needed to read mappings for stacktrace deobfuscation + implementation("org.jline:jline-terminal-jansi:3.21.0") + implementation("net.minecrell:terminalconsoleappender:1.3.0") +@@ -57,6 +57,13 @@ dependencies { + implementation("net.fabricmc:mapping-io:0.3.0") // Paper - needed to read mappings for stacktrace deobfuscation implementation("com.velocitypowered:velocity-native:1.1.0-SNAPSHOT") // Paper + implementation("com.github.technove:AIR:fe3dbb4420") // Airplane - config @@ -47,7 +47,7 @@ index 13f89bdaf1ada33060b1ee4d6f2860ec194b68a4..0bd09bd56968660437a94ec078a13ee7 testImplementation("io.github.classgraph:classgraph:4.8.47") // Paper - mob goal test testImplementation("junit:junit:4.13.1") testImplementation("org.hamcrest:hamcrest-library:1.3") -@@ -79,6 +86,7 @@ tasks.jar { +@@ -75,6 +82,7 @@ tasks.jar { "Main-Class" to "org.bukkit.craftbukkit.Main", "Implementation-Title" to "CraftBukkit", "Implementation-Version" to "git-Paper-$implementationVersion", @@ -55,7 +55,7 @@ index 13f89bdaf1ada33060b1ee4d6f2860ec194b68a4..0bd09bd56968660437a94ec078a13ee7 "Implementation-Vendor" to date, // Paper "Specification-Title" to "Bukkit", "Specification-Version" to project.version, -@@ -136,6 +144,22 @@ relocation { +@@ -133,6 +141,22 @@ relocation { } } @@ -115,10 +115,10 @@ index 218f5bafeed8551b55b91c7fccaf6935c8b631ca..f5d01bce4d5547b4aeca96b7962b2090 metrics.addCustomChart(new Metrics.DrilldownPie("java_version", () -> { Map> map = new HashMap<>(); diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java -index 0277627e97b51e20470ccf578cee48470e06a34b..6a30338648214c98b05feb5a628dbdc6b2683ff9 100644 +index 2509a170b8ddd812ad5be49e5345ec5a3c0cf2b8..6cda37d340bfc6f76cbb3bdaa3ffb6d3cf90da9f 100644 --- a/src/main/java/com/destroystokyo/paper/PaperConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java -@@ -202,16 +202,26 @@ public class PaperConfig { +@@ -205,16 +205,26 @@ public class PaperConfig { public static String timingsServerName; private static void timings() { boolean timings = getBoolean("timings.enabled", true); @@ -146,32 +146,6 @@ index 0277627e97b51e20470ccf578cee48470e06a34b..6a30338648214c98b05feb5a628dbdc6 int timingHistoryInterval = getInt("timings.history-interval", 300); int timingHistoryLength = getInt("timings.history-length", 3600); timingsServerName = getString("timings.server-name", "Unknown Server"); -diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index c2d8294ffeff017a6ec9e7725b50eaef8eb75dfd..6b7006829dde81840bd305ee775d26c9f1ef24f7 100644 ---- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -268,6 +268,9 @@ public class PaperWorldConfig { - - public int softDespawnDistance; - public int hardDespawnDistance; -+ // Airplane start - separate squared values -+ public int softDespawnDistanceSq; -+ public int hardDespawnDistanceSq; - private void despawnDistances() { - softDespawnDistance = getInt("despawn-ranges.soft", 32); // 32^2 = 1024, Minecraft Default - hardDespawnDistance = getInt("despawn-ranges.hard", 128); // 128^2 = 16384, Minecraft Default -@@ -278,8 +281,9 @@ public class PaperWorldConfig { - - log("Living Entity Despawn Ranges: Soft: " + softDespawnDistance + " Hard: " + hardDespawnDistance); - -- softDespawnDistance = softDespawnDistance*softDespawnDistance; -- hardDespawnDistance = hardDespawnDistance*hardDespawnDistance; -+ softDespawnDistanceSq = softDespawnDistance*softDespawnDistance; -+ hardDespawnDistanceSq = hardDespawnDistance*hardDespawnDistance; -+ // Airplane end - } - - public boolean keepSpawnInMemory; diff --git a/src/main/java/gg/airplane/AirplaneCommand.java b/src/main/java/gg/airplane/AirplaneCommand.java new file mode 100644 index 0000000000000000000000000000000000000000..89c89e633f14b5820147e734b1b7ad8cadfdce80 @@ -774,10 +748,10 @@ index 0000000000000000000000000000000000000000..f9a71ff3edd7e7b6cda680e5a156373b +} diff --git a/src/main/java/gg/airplane/entity/CollisionCache.java b/src/main/java/gg/airplane/entity/CollisionCache.java new file mode 100644 -index 0000000000000000000000000000000000000000..87e162cc30da9346190c7daeb19cc74049b5377e +index 0000000000000000000000000000000000000000..f67e19ad737a7a6b29e58aad59b1367574609efe --- /dev/null +++ b/src/main/java/gg/airplane/entity/CollisionCache.java -@@ -0,0 +1,258 @@ +@@ -0,0 +1,263 @@ +package gg.airplane.entity; + +import io.papermc.paper.util.CollisionUtil; @@ -794,7 +768,6 @@ index 0000000000000000000000000000000000000000..87e162cc30da9346190c7daeb19cc740 +import net.minecraft.world.level.chunk.LevelChunkSection; +import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.shapes.CollisionContext; -+import net.minecraft.world.phys.shapes.EntityCollisionContext; +import net.minecraft.world.phys.shapes.Shapes; +import net.minecraft.world.phys.shapes.VoxelShape; +import org.bukkit.craftbukkit.util.UnsafeList; @@ -808,7 +781,8 @@ index 0000000000000000000000000000000000000000..87e162cc30da9346190c7daeb19cc740 + +public class CollisionCache { + -+ private static record BlockEntry(int x, int y, int z, BlockState state){} ++ private static record BlockEntry(int x, int y, int z, BlockState state) { ++ } + + @NotNull + private final Entity entity; @@ -867,11 +841,12 @@ index 0000000000000000000000000000000000000000..87e162cc30da9346190c7daeb19cc740 + if (checkOnly) { + for (int i = 0, length = this.blocks.size(); i < length; i++) { + BlockEntry blockEntry = this.blocks.unsafeGet(i); ++ mutablePos.set(blockEntry.x, blockEntry.y, blockEntry.z); + VoxelShape voxelshape2 = blockEntry.state.getCollisionShape(this.entity.level, mutablePos, collisionShape); + if (voxelshape2 != Shapes.empty()) { + VoxelShape voxelshape3 = voxelshape2.move((double) blockEntry.x, (double) blockEntry.y, (double) blockEntry.z); + -+ if (voxelshape3.intersects(aabb) && predicate.test(blockEntry.state, mutablePos.set(blockEntry.x, blockEntry.y, blockEntry.z))) { ++ if (voxelshape3.intersects(aabb) && predicate.test(blockEntry.state, mutablePos)) { + return true; + } + } @@ -879,6 +854,7 @@ index 0000000000000000000000000000000000000000..87e162cc30da9346190c7daeb19cc740 + } else { + for (int i = 0, length = this.blocks.size(); i < length; i++) { + BlockEntry blockEntry = this.blocks.unsafeGet(i); ++ mutablePos.set(blockEntry.x, blockEntry.y, blockEntry.z); + VoxelShape voxelshape2 = blockEntry.state.getCollisionShape(this.entity.level, mutablePos, collisionShape); + + if (voxelshape2 != Shapes.empty()) { @@ -1011,11 +987,14 @@ index 0000000000000000000000000000000000000000..87e162cc30da9346190c7daeb19cc740 + collisionShape = CollisionContext.of(entity); + } + VoxelShape voxelshape2 = blockData.getCollisionShape(this.entity.level, mutablePos, collisionShape); ++ ++ if (voxelshape2 != Shapes.empty() || blockData.getBlock() == Blocks.MOVING_PISTON) { ++ this.blocks.add(new BlockEntry(blockX, blockY, blockZ, blockData)); ++ } ++ + if (voxelshape2 != Shapes.empty()) { + VoxelShape voxelshape3 = voxelshape2.move((double) blockX, (double) blockY, (double) blockZ); + -+ this.blocks.add(new BlockEntry(blockX, blockY, blockZ, blockData)); -+ + ret |= CollisionUtil.addBoxesToIfIntersects(voxelshape3, aabb, into); + } + } @@ -2241,10 +2220,10 @@ index 505546d32eea4682452dbac02311433157f6a30e..5c7b9ad379f3c272e15648dd16f4df92 public static CompletableFuture> sequenceFailFast(List> futures) { diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 7636b0ae9031e06fd8b4a0c359a45a17e6e075de..49821f441886b4de2cac5b1b13981e2161992f98 100644 +index f274e40681d47a4ca421107c0d76c527279ce682..ff6ab10a1bc11ecc2d83255e51508ea70344b455 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1726,7 +1726,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop tag, double d0) { @@ -2634,7 +2613,7 @@ index 2ce32495758abf64eeeeeea1cdbf4904be77b697..e4e9d7286a91155b55915b9046704b08 double d1 = 0.0D; boolean flag = this.isPushedByFluid(); boolean flag1 = false; -@@ -3847,14 +3876,62 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n +@@ -3856,14 +3885,62 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n int k1 = 0; BlockPos.MutableBlockPos blockposition_mutableblockposition = new BlockPos.MutableBlockPos(); @@ -2703,7 +2682,7 @@ index 2ce32495758abf64eeeeeea1cdbf4904be77b697..e4e9d7286a91155b55915b9046704b08 if (d2 >= axisalignedbb.minY) { flag1 = true; -@@ -3871,9 +3948,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n +@@ -3880,9 +3957,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n } } } @@ -2729,7 +2708,7 @@ index 1c446dba5de89698397041ee38a2e1a00bec8a56..03371c99c34ba4b2ffde3f6da36f171b public final String id; diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index cbdff14b26f67b5040c13659f9d64d9ec4c7eaed..71fefe3956c1e4458dd4b441f90902a3ed0cdf24 100644 +index 465dab588e770bf4d1e645e1f451a066f388014a..df12ba04df24e1c70c43e00283ea2a78ae2ca422 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -142,7 +142,6 @@ import org.bukkit.event.entity.EntityTeleportEvent; @@ -2774,7 +2753,7 @@ index cbdff14b26f67b5040c13659f9d64d9ec4c7eaed..71fefe3956c1e4458dd4b441f90902a3 } diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 8a864238e154e2131834d013652746b7e7a78c97..6051fd771dd989f2903b854b6564252a847a74e3 100644 +index 55d07e70a67e08bab3a7a66076c980986736e5b8..b247d9dc2b2f5b4a6e87ca35e2a08f9be4e7a7b4 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -207,10 +207,10 @@ public abstract class Mob extends LivingEntity { @@ -2790,26 +2769,6 @@ index 8a864238e154e2131834d013652746b7e7a78c97..6051fd771dd989f2903b854b6564252a this.targetSelector.tick(); } } -@@ -801,16 +801,16 @@ public abstract class Mob extends LivingEntity { - int i = this.getType().getCategory().getDespawnDistance(); - int j = i * i; - -- if (d0 > (double) level.paperConfig.hardDespawnDistance) { // CraftBukkit - remove isTypeNotPersistent() check // Paper - custom despawn distances -+ if (d0 > (double) level.paperConfig.hardDespawnDistanceSq) { // CraftBukkit - remove isTypeNotPersistent() check // Paper - custom despawn distances // Airplane - this.discard(); - } - - int k = this.getType().getCategory().getNoDespawnDistance(); - int l = k * k; - -- if (this.noActionTime > 600 && this.random.nextInt(800) == 0 && d0 > level.paperConfig.softDespawnDistance) { // CraftBukkit - remove isTypeNotPersistent() check // Paper - custom despawn distances -+ if (this.noActionTime > 600 && this.random.nextInt(800) == 0 && d0 > level.paperConfig.softDespawnDistanceSq) { // CraftBukkit - remove isTypeNotPersistent() check // Paper - custom despawn distances // Airplane - this.discard(); -- } else if (d0 < level.paperConfig.softDespawnDistance) { // Paper - custom despawn distances -+ } else if (d0 < level.paperConfig.softDespawnDistanceSq) { // Paper - custom despawn distances // Airplane - this.noActionTime = 0; - } - } @@ -838,9 +838,11 @@ public abstract class Mob extends LivingEntity { this.sensing.tick(); this.level.getProfiler().pop(); @@ -3023,7 +2982,7 @@ index 2b8725087fd3bfeca7162bda2783fdacd13a8390..16adf07774d568852b289ae8507779dd this.level.getProfiler().pop(); this.level.getProfiler().push("axolotlActivityUpdate"); diff --git a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java -index 32d0387b6c66462ca965add78a562dec3c4b95a9..82a363c5141cd00eec9b7e03e7ac6522b9b3c527 100644 +index c7e24da48aaff9fbd1a8272483231744326e3a8e..5eceec2802a14b59ed60c600622d1f76ff6a77fa 100644 --- a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java +++ b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java @@ -144,9 +144,11 @@ public class Goat extends Animal { @@ -3560,7 +3519,7 @@ index f936e9f9a9fa655fa997d6862b5ed54c04169d35..24d772c18d5a448154909e4a51964ba2 } diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java -index bacd75f67f783f49208a74501cc7e6e7485010a4..dc613142603fca4cf5c8e47c084e1439d0450424 100644 +index d63d89960839b506e240349043ab77c4d81ca71a..a0db30970adebb244ff41913e8ec1df1eb472a4d 100644 --- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java +++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java @@ -418,12 +418,12 @@ public final class NaturalSpawner { @@ -3944,58 +3903,6 @@ index 72e3264dc74822f746fb84fec0be400047d2d9f5..831e2dbe530daf63ac9e681a92af2740 } }); -diff --git a/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java b/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java -index c9e942669458668a184aaec3bc0a5509dd6ab5f0..178e56ffc87ea2beb4d84d1f278f4acf90102379 100644 ---- a/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java -+++ b/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java -@@ -263,13 +263,17 @@ public class PalettedContainer implements PaletteResize { - - } - -+ // Airplane start - allow reusing int array - public synchronized void write(CompoundTag nbt, String paletteKey, String dataKey) { // Paper - synchronize -+ this.write(nbt, paletteKey, dataKey, new int[4096]); -+ } -+ public synchronized void write(CompoundTag nbt, String paletteKey, String dataKey, int[] is) { // Paper - synchronize // Airplane end - try { - this.acquire(); - HashMapPalette hashMapPalette = new HashMapPalette<>(this.registry, this.bits, this.dummyPaletteResize, this.reader, this.writer); - T object = this.defaultValue; - int i = hashMapPalette.idFor(this.defaultValue); -- int[] is = new int[4096]; -+ //int[] is = new int[4096]; // Airplane - - for(int j = 0; j < 4096; ++j) { - T object2 = this.get(j); -diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java -index 7921ee2786d0d6a60d43786b20efc03a0f9178e3..9ea4229f58679c6c833762fc6a50471445ff0b9d 100644 ---- a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java -+++ b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java -@@ -500,6 +500,7 @@ public class ChunkSerializer { - return new AsyncSaveData(blockLight, skyLight, blockTickListSerialized, fluidTickListSerialized, blockEntitiesSerialized, world.getGameTime()); - } - -+ private static final ThreadLocal paletteArray = ThreadLocal.withInitial(() -> new int[4096]); // Airplane - public static CompoundTag write(ServerLevel world, ChunkAccess chunk) { - return saveChunk(world, chunk, null); - } -@@ -533,6 +534,7 @@ public class ChunkSerializer { - ThreadedLevelLightEngine lightenginethreaded = world.getChunkSource().getLightEngine(); - boolean flag = chunk.isLightCorrect(); - -+ int[] is = paletteArray.get(); // Airplane - use cached - for (int i = lightenginethreaded.getMinLightSection(); i < lightenginethreaded.getMaxLightSection(); ++i) { - int finalI = i; // CraftBukkit - decompile errors - LevelChunkSection chunksection = (LevelChunkSection) Arrays.stream(achunksection).filter((chunksection1) -> { -@@ -547,7 +549,7 @@ public class ChunkSerializer { - - nbttagcompound2.putByte("Y", (byte) (i & 255)); - if (chunksection != LevelChunk.EMPTY_SECTION) { -- chunksection.getStates().write(nbttagcompound2, "Palette", "BlockStates"); -+ chunksection.getStates().write(nbttagcompound2, "Palette", "BlockStates", is); // Airplane - reuse array - } - - // Paper start - replace light engine diff --git a/src/main/java/net/minecraft/world/level/entity/LevelEntityGetter.java b/src/main/java/net/minecraft/world/level/entity/LevelEntityGetter.java index da1ad0b2679e392ed81b50c15f012c63cb5c939e..81e83022421e2c311c32f6e6007cfc0c82efb822 100644 --- a/src/main/java/net/minecraft/world/level/entity/LevelEntityGetter.java @@ -4023,10 +3930,10 @@ index 3b13f6ea36a3bfecabe09221eb5c48dddab119db..c02b9104c0cc1a7319cca29d5e32a5c2 @Override public T get(int id) { diff --git a/src/main/java/net/minecraft/world/level/entity/PersistentEntitySectionManager.java b/src/main/java/net/minecraft/world/level/entity/PersistentEntitySectionManager.java -index 9681e397588a8abc4150b991e546fa79b5635c87..646385d0bef31f43a7273fa78ec696dfc761093c 100644 +index 8cb246863e06c5b95ba1442e2ec47095026c4f39..5a72ce41cc57578498c4a072a1eb04ac28958afe 100644 --- a/src/main/java/net/minecraft/world/level/entity/PersistentEntitySectionManager.java +++ b/src/main/java/net/minecraft/world/level/entity/PersistentEntitySectionManager.java -@@ -606,6 +606,12 @@ public class PersistentEntitySectionManager implements A +@@ -627,6 +627,12 @@ public class PersistentEntitySectionManager implements A PersistentEntitySectionManager.this.knownUuids.remove(this.entity.getUUID()); this.entity.setLevelCallback(PersistentEntitySectionManager.Callback.NULL); PersistentEntitySectionManager.this.removeSectionIfEmpty(this.currentSectionKey, this.currentSection); @@ -4251,7 +4158,7 @@ index fcb7bd9f3b6b6ada0f2e5692bce32ab76b8798a7..61c2096f2c034dbc3ad33b193b058c7d } } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index cfbde4c1220b0d6081a3e4ad2375e0d7bfb2ef40..ae2c4388eddef529fba5d5eae354ee15c6e36c9d 100644 +index 99a94898316b0601f55b333c15a9926eae24f8a2..c3a256d0ccb9fb44a5a1f9ffa2d48542ef4e857b 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -251,7 +251,7 @@ import javax.annotation.Nullable; // Paper @@ -4325,7 +4232,7 @@ index 909b2c98e7a9117d2f737245e4661792ffafb744..9da898c6f44832b4421b8c2745e3121b @Override diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index dcaa189c17dd928d7a19e820ec2ff521e7243b7a..25bb190bf7e08539a3590ee35a01f1d816e48d83 100644 +index 424f3a9a645d57ad43c52932f5b388b5f146b9f0..d68872771c5d29afc19bf7cd74e970c714267b87 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java @@ -394,7 +394,7 @@ public final class CraftMagicNumbers implements UnsafeValues { diff --git a/patches/server/0002-Change-Airplane-defaults-closer-to-vanilla.patch b/patches/server/0002-Change-Airplane-defaults-closer-to-vanilla.patch index 12b2ec104..bec62909f 100644 --- a/patches/server/0002-Change-Airplane-defaults-closer-to-vanilla.patch +++ b/patches/server/0002-Change-Airplane-defaults-closer-to-vanilla.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Change Airplane defaults closer to vanilla diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java -index 25f1656a47037b0245cdd32e475b41e64dbad1de..c6dd2567ac88c7bfff0a23201752fa6561f2565b 100644 +index 6cda37d340bfc6f76cbb3bdaa3ffb6d3cf90da9f..3ed3f8124ca302b0527788d80fd5a4a87d206534 100644 --- a/src/main/java/com/destroystokyo/paper/PaperConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java -@@ -202,7 +202,7 @@ public class PaperConfig { +@@ -205,7 +205,7 @@ public class PaperConfig { public static String timingsServerName; private static void timings() { boolean timings = getBoolean("timings.enabled", true); @@ -17,7 +17,7 @@ index 25f1656a47037b0245cdd32e475b41e64dbad1de..c6dd2567ac88c7bfff0a23201752fa65 boolean reallyEnableTimings = getBoolean("timings.really-enabled", false); if (timings && !reallyEnableTimings) { Bukkit.getLogger().log(Level.WARNING, "[Airplane] To improve performance, timings have been disabled by default"); -@@ -210,7 +210,7 @@ public class PaperConfig { +@@ -213,7 +213,7 @@ public class PaperConfig { Bukkit.getLogger().log(Level.WARNING, "[Airplane] If you would like to disable this message, either set timings.really-enabled to true or timings.enabled to false."); } timings = reallyEnableTimings; diff --git a/patches/server/0003-Rebrand.patch b/patches/server/0003-Rebrand.patch index adf268d76..3c750fda7 100644 --- a/patches/server/0003-Rebrand.patch +++ b/patches/server/0003-Rebrand.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Rebrand diff --git a/build.gradle.kts b/build.gradle.kts -index 0bd09bd56968660437a94ec078a13ee78339fa0e..dc6c416bb2145bb684e1dedda626263d423cba67 100644 +index fd3528be3d90733e826bcbeae967b95cedf92dfe..7168672c9d38f0f30ee8a683df7f60d686bada23 100644 --- a/build.gradle.kts +++ b/build.gradle.kts -@@ -25,7 +25,7 @@ repositories { +@@ -22,7 +22,7 @@ repositories { } dependencies { @@ -16,17 +16,17 @@ index 0bd09bd56968660437a94ec078a13ee78339fa0e..dc6c416bb2145bb684e1dedda626263d + implementation(project(":Purpur-API")) // Airplane // Purpur implementation("io.papermc.paper:paper-mojangapi:1.17.1-R0.1-SNAPSHOT") // Airplane // Paper start - implementation("org.jline:jline-terminal-jansi:3.12.1") -@@ -57,6 +57,8 @@ dependencies { + implementation("org.jline:jline-terminal-jansi:3.21.0") +@@ -53,6 +53,8 @@ dependencies { + runtimeOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.7.0") - implementation("co.aikar:cleaner:1.0-SNAPSHOT") // Paper implementation("io.netty:netty-all:4.1.65.Final") // Paper + implementation("cat.inspiracio:rhino-js-engine:1.7.7.1") // Purpur + implementation("dev.omega24:upnp4j:1.0") // Purpur - implementation("org.quiltmc:tiny-mappings-parser:0.3.0") // Paper - needed to read mappings for stacktrace deobfuscation + implementation("net.fabricmc:mapping-io:0.3.0") // Paper - needed to read mappings for stacktrace deobfuscation implementation("com.velocitypowered:velocity-native:1.1.0-SNAPSHOT") // Paper -@@ -85,8 +87,7 @@ tasks.jar { +@@ -81,8 +83,7 @@ tasks.jar { attributes( "Main-Class" to "org.bukkit.craftbukkit.Main", "Implementation-Title" to "CraftBukkit", @@ -36,7 +36,7 @@ index 0bd09bd56968660437a94ec078a13ee78339fa0e..dc6c416bb2145bb684e1dedda626263d "Implementation-Vendor" to date, // Paper "Specification-Title" to "Bukkit", "Specification-Version" to project.version, -@@ -228,7 +229,7 @@ tasks.test { +@@ -225,7 +226,7 @@ tasks.test { fun TaskContainer.registerRunTask( name: String, block: JavaExec.() -> Unit ): TaskProvider = register(name) { @@ -112,10 +112,10 @@ index e0b1f0671d16ddddcb6725acd25a1d1d69e42701..8c3c68465197fafc14849dc38a572e30 .completer(new ConsoleCommandCompleter(this.server)) .option(LineReader.Option.COMPLETE_IN_WORD, true); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 49821f441886b4de2cac5b1b13981e2161992f98..bb0f7c631b4889e95a87214fbc0537a0e420d87f 100644 +index ff6ab10a1bc11ecc2d83255e51508ea70344b455..0834a1247fead6600ad92b782e09a3622c2e576f 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1726,7 +1726,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { Map> map = new HashMap<>(); -diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java -index 675d1d36ece42c1afafb497eae677e8f2546dfc2..a40bdc726fba1640a0d5e6950e964852c4206313 100644 ---- a/src/main/java/com/destroystokyo/paper/PaperConfig.java -+++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java -@@ -118,6 +118,11 @@ public class PaperConfig { - } - } - -+ // Purpur start - public save method for config migration -+ saveConfig(); -+ } -+ public static void saveConfig() { -+ // Purpur end - try { - config.save(CONFIG_FILE); - } catch (IOException ex) { diff --git a/src/main/java/net/minecraft/commands/CommandSourceStack.java b/src/main/java/net/minecraft/commands/CommandSourceStack.java index 71e29d29ed5c2d61832e2f124967bb223708406f..224669ecaad37ac2f16900700eea40ef52d938a5 100644 --- a/src/main/java/net/minecraft/commands/CommandSourceStack.java @@ -460,7 +444,7 @@ index 0000000000000000000000000000000000000000..6e7f56fe2b78d7a09d5d130f2c88338f + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index f8bdba7d03d93d309b687261a33bcc76287a184b..a98661c72a1b2b5ef2ff17be6639559e113176dd 100644 +index 20111504d88cd10ce68a6b9bfffe5d976b0feb33..665314f2707a6b12a5c2d932681844e6928cd233 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -924,6 +924,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0005-Purpur-client-support.patch b/patches/server/0005-Purpur-client-support.patch index 15f9bf94a..6770717da 100644 --- a/patches/server/0005-Purpur-client-support.patch +++ b/patches/server/0005-Purpur-client-support.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Purpur client support diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 11f46c1b8f4c8414e0667d1873542c17d6e01f2a..54dc872b1d448c8895313b216d6cd1c9836a5160 100644 +index 78fda0c982810b8b881a87099f355247566e513a..88b141e2d5518e5cbe43a48e209d85d4a51319e8 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -258,6 +258,7 @@ public class ServerPlayer extends Player { @@ -17,7 +17,7 @@ index 11f46c1b8f4c8414e0667d1873542c17d6e01f2a..54dc872b1d448c8895313b216d6cd1c9 public double lastEntitySpawnRadiusSquared; // Paper - optimise isOutsideRange, this field is in blocks public final com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet cachedSingleHashSet; // Paper diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 029c21d9416520469548293f9a2ec0c056507d05..f6f12392e119a4742591d8043a0a51fc35a719c5 100644 +index 744f7b717f14a070d5a4be0b35e7f422694fb407..eaffd394a6207d424882e49f07fb989e201b35d7 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -3119,6 +3119,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser @@ -43,10 +43,10 @@ index 029c21d9416520469548293f9a2ec0c056507d05..f6f12392e119a4742591d8043a0a51fc try { byte[] data = new byte[packet.data.readableBytes()]; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index c64911651f3d736c83cc83996de04920b091cc57..f497d54966a985d6877b3cd6e0ad5f86e20a345d 100644 +index 4ff4143f3a7cd89ef92f4b8882fa3e5addfe0f06..614efd4204eb0cb712964c71566ad7e2c609c439 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2585,4 +2585,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2577,4 +2577,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player { return this.spigot; } // Spigot end diff --git a/patches/server/0006-Component-related-conveniences.patch b/patches/server/0006-Component-related-conveniences.patch index fbf58a2b6..f29ad4fc6 100644 --- a/patches/server/0006-Component-related-conveniences.patch +++ b/patches/server/0006-Component-related-conveniences.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Component related conveniences diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 54dc872b1d448c8895313b216d6cd1c9836a5160..c1091ab7069fa3dd934409da23d404a7747b1a11 100644 +index 88b141e2d5518e5cbe43a48e209d85d4a51319e8..6c241da9f2711aeade0f3863e4e2bab1f6b242af 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1678,6 +1678,26 @@ public class ServerPlayer extends Player { @@ -103,10 +103,10 @@ index eaa005c1c9b4386bcdbe1d6eb28c3eca7635066c..b0ff18e420d064db81f4e8f3a383e1d2 this.server.sendMessage(message, sender); Iterator iterator = this.players.iterator(); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index d35cdcf2ee7568ad5caf52588db54e9c6f607d4b..7a954d7495636a27149a55b58436183e18e028dd 100644 +index b938d8d1e13a68b3895fcec3523daecbc3c6628e..7d17bfd793a53cb44e319ef980c1d9d5b711cd36 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3620,6 +3620,34 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n +@@ -3629,6 +3629,34 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n return SlotAccess.NULL; } diff --git a/patches/server/0007-Ridables.patch b/patches/server/0007-Ridables.patch index 4df45173d..bcb47134b 100644 --- a/patches/server/0007-Ridables.patch +++ b/patches/server/0007-Ridables.patch @@ -22,10 +22,10 @@ index 0cc0242d981586413bcc349df6e6fd3bc09710f1..ae394b3d8b8a157d345e102f5997058d super(x, y, z); } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index bb0f7c631b4889e95a87214fbc0537a0e420d87f..0a076780868ed1bd15c36dd88de85a0d5de87c7a 100644 +index 0834a1247fead6600ad92b782e09a3622c2e576f..cba432eba35ab42d91eb8f498fff2adff76d11f7 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1604,6 +1604,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0; // Paper worldserver.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper @@ -34,7 +34,7 @@ index bb0f7c631b4889e95a87214fbc0537a0e420d87f..0a076780868ed1bd15c36dd88de85a0d this.profiler.push(() -> { diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index ce146c771b8e38eb24e9372058f238920ec88882..1f10746e79373c269a904d23046003af6c3f6352 100644 +index 1ae7a10df7460f223413c38ac6bd85dba15fb347..2a7e46b4f65dd4d90dbfa6fdf608b5496fa743c7 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -200,6 +200,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -46,7 +46,7 @@ index ce146c771b8e38eb24e9372058f238920ec88882..1f10746e79373c269a904d23046003af return new Throwable(entity + " Added to world at " + new java.util.Date()); } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index c1091ab7069fa3dd934409da23d404a7747b1a11..0cd8e3b3af0dc9c8445672ea86cf5113dd51d3e8 100644 +index 6c241da9f2711aeade0f3863e4e2bab1f6b242af..6c7628bb6f7f46555650195b19318c7f338825ae 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -664,6 +664,15 @@ public class ServerPlayer extends Player { @@ -73,7 +73,7 @@ index c1091ab7069fa3dd934409da23d404a7747b1a11..0cd8e3b3af0dc9c8445672ea86cf5113 + } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index f6f12392e119a4742591d8043a0a51fc35a719c5..94fa47af7f3fe98cac637190e533102c94499268 100644 +index eaffd394a6207d424882e49f07fb989e201b35d7..11c29157ec68c50ad98f502a41b442657a6f9242 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2426,6 +2426,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser @@ -86,7 +86,7 @@ index f6f12392e119a4742591d8043a0a51fc35a719c5..94fa47af7f3fe98cac637190e533102c if ((entity instanceof AbstractFish && origItem != null && origItem.asItem() == Items.WATER_BUCKET) && (event.isCancelled() || ServerGamePacketListenerImpl.this.player.getInventory().getSelected() == null || ServerGamePacketListenerImpl.this.player.getInventory().getSelected().getItem() != origItem)) { ServerGamePacketListenerImpl.this.send(new ClientboundAddMobPacket((AbstractFish) entity)); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 7a954d7495636a27149a55b58436183e18e028dd..643f0c878352fd205f928aaa083cde59c911f926 100644 +index 7d17bfd793a53cb44e319ef980c1d9d5b711cd36..141a5c6e78b33a6e99d18d98982d9f7747768263 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -230,7 +230,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n @@ -107,7 +107,7 @@ index 7a954d7495636a27149a55b58436183e18e028dd..643f0c878352fd205f928aaa083cde59 private float eyeHeight; public boolean isInPowderSnow; public boolean wasInPowderSnow; -@@ -2637,6 +2637,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n +@@ -2646,6 +2646,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n this.passengers = ImmutableList.copyOf(list); } @@ -120,7 +120,7 @@ index 7a954d7495636a27149a55b58436183e18e028dd..643f0c878352fd205f928aaa083cde59 } return true; // CraftBukkit } -@@ -2677,6 +2683,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n +@@ -2686,6 +2692,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n return false; } // Spigot end @@ -135,7 +135,7 @@ index 7a954d7495636a27149a55b58436183e18e028dd..643f0c878352fd205f928aaa083cde59 if (this.passengers.size() == 1 && this.passengers.get(0) == entity) { this.passengers = ImmutableList.of(); } else { -@@ -4336,4 +4350,41 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n +@@ -4345,4 +4359,41 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n return ((ServerChunkCache) level.getChunkSource()).isPositionTicking(this); } // Paper end @@ -201,7 +201,7 @@ index 94f7f8238c01d203d28640c56e35deab2bf17bbc..f0c30ab5e32e78850d402aa4bc7d4266 protected ParticleOptions getInkParticle() { return ParticleTypes.GLOW_SQUID_INK; diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 71fefe3956c1e4458dd4b441f90902a3ed0cdf24..15421740e66f61a818348f57f0d68db69d3577ce 100644 +index df12ba04df24e1c70c43e00283ea2a78ae2ca422..48e53c2aacb462556c5496af8155337519bde8f6 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -219,9 +219,9 @@ public abstract class LivingEntity extends Entity { @@ -262,7 +262,7 @@ index 71fefe3956c1e4458dd4b441f90902a3ed0cdf24..15421740e66f61a818348f57f0d68db6 // Paper end if (!this.level.isClientSide && this.isSensitiveToWater() && this.isInWaterRainOrBubble()) { diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 6051fd771dd989f2903b854b6564252a847a74e3..6106274009fcd8b43373e2fa9080183d6f6e36b3 100644 +index b247d9dc2b2f5b4a6e87ca35e2a08f9be4e7a7b4..50363ad00da106a70a53678dd35aad6cb7ceabd2 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -140,6 +140,8 @@ public abstract class Mob extends LivingEntity { @@ -1433,7 +1433,7 @@ index ae21d260b2d4673eb4aa56a82e1043d20507adb2..3950dd170edee24f4a2effc1946e17b3 this.goalSelector.addGoal(2, new SitWhenOrderedToGoal(this)); this.goalSelector.addGoal(2, new FollowOwnerGoal(this, 1.0D, 5.0F, 1.0F, true)); diff --git a/src/main/java/net/minecraft/world/entity/animal/Pig.java b/src/main/java/net/minecraft/world/entity/animal/Pig.java -index 53eaafad559cd6413bb1e10d07374da0ab907ec6..2afacf7a5d15f821e42d98f542dae41c025386d3 100644 +index e4d811025a000f6d12ab8587de293e929c8fd970..812d188cea9059f0ce5dd25b2649f30a5dfcea85 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Pig.java +++ b/src/main/java/net/minecraft/world/entity/animal/Pig.java @@ -65,9 +65,22 @@ public class Pig extends Animal implements ItemSteerable, Saddleable { @@ -2075,7 +2075,7 @@ index 16adf07774d568852b289ae8507779dd78110fc3..a2e0d4653d1a1905d58c684368edf6ce } diff --git a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java -index 82a363c5141cd00eec9b7e03e7ac6522b9b3c527..86e022ef4e3f198e3d36c24ed7179cfe3d9e79a0 100644 +index 5eceec2802a14b59ed60c600622d1f76ff6a77fa..9e581e4df521e8fea5a438e9df79c435224c9418 100644 --- a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java +++ b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java @@ -72,6 +72,18 @@ public class Goat extends Animal { @@ -2914,7 +2914,7 @@ index bbca035b89c2334e65abc46dd76234c833ac222d..9f3c6d6a33fa59cad7ffa40d63b14001 } // Paper end diff --git a/src/main/java/net/minecraft/world/entity/monster/Drowned.java b/src/main/java/net/minecraft/world/entity/monster/Drowned.java -index 8a9a9bfa95db08d063a6409f2e4cf2aa26ec3b0b..071c77039371688180a189f7715f3d0b62f2287a 100644 +index 275275f4f167522126dc1dc6128716c87f71a4d9..defcc32e6b16ca7672fc01dea4738af33088c207 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Drowned.java +++ b/src/main/java/net/minecraft/world/entity/monster/Drowned.java @@ -69,6 +69,18 @@ public class Drowned extends Zombie implements RangedAttackMob { @@ -3716,7 +3716,7 @@ index aec7dd2df77efeaf65d9fe08adc668030dfe08e2..44d8ef55d47ff63589e6b47210f460a0 this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, Player.class, true)); } diff --git a/src/main/java/net/minecraft/world/entity/monster/Skeleton.java b/src/main/java/net/minecraft/world/entity/monster/Skeleton.java -index 116709ba2b298268ac806e6e45f2e910ca600706..8bfcfbae5046e3089b85194cfb1fe1a57d285647 100644 +index 1eeaf0cc9b00afd54f38f9cb50404ec9f9ba51f8..909a7bffcd0d7432f0714417c286fb75b6b951b9 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Skeleton.java +++ b/src/main/java/net/minecraft/world/entity/monster/Skeleton.java @@ -25,6 +25,18 @@ public class Skeleton extends AbstractSkeleton { @@ -4211,7 +4211,7 @@ index 0ee254552dadd40db7b6427df8b5b34caa90379c..175ff8a67b4ac28efef112bd75508a05 this.level.getProfiler().pop(); this.updateActivity(); diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java -index 0235cf791a3a5b0e5dc515b405c0263438ffaf7e..9d911c5e217207e3030f9dec2daef64ae5d09e7f 100644 +index 8da494792786fd80be50efc4cbb56caeae18d004..e752c877bdeef46753aab92f6484c45bc3e31ed4 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java +++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java @@ -107,11 +107,25 @@ public class Zombie extends Monster { @@ -5717,11 +5717,11 @@ index 0000000000000000000000000000000000000000..8eefb7b7eb33aecf48ac206d3f0139e0 + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 2712aa554383a3b2b742c945e2f0be7ee96eea69..f8811514c155f743f6e93c9a88721903fdb1bddd 100644 +index 0bd800e1aeda87689a6c56ee6fadda381c74a4ff..ac89af911596955ac87882069b7010b66ed05adf 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -1264,4 +1264,27 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { - return getHandle().isTicking(); +@@ -1287,4 +1287,27 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { + return !entity.valid && entity.level.addEntity(entity, reason); } // Paper end + diff --git a/patches/server/0009-Timings-stuff.patch b/patches/server/0009-Timings-stuff.patch index 6c1b56a8c..fea523ed8 100644 --- a/patches/server/0009-Timings-stuff.patch +++ b/patches/server/0009-Timings-stuff.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Timings stuff diff --git a/src/main/java/co/aikar/timings/TimingsExport.java b/src/main/java/co/aikar/timings/TimingsExport.java -index da6a5b1b2f5203a0fab8e4fccd727951df7c9c9a..bca3bc0b8687940dff181bab6a5a2a3c11423358 100644 +index 6e8001c7ff6497c9e5c274a5fe85cc204f3ba4c5..c5803537b23d44bad5f447bd2f98d54226d3e80e 100644 --- a/src/main/java/co/aikar/timings/TimingsExport.java +++ b/src/main/java/co/aikar/timings/TimingsExport.java @@ -226,10 +226,14 @@ public class TimingsExport extends Thread { @@ -46,10 +46,10 @@ index da6a5b1b2f5203a0fab8e4fccd727951df7c9c9a..bca3bc0b8687940dff181bab6a5a2a3c JSONObject object = new JSONObject(); diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java -index 3781e7c23347a5860c448a94bd01cb90979d9d4a..977363508e090ede5191f7dbc4c258bfb0a9c911 100644 +index 3ed3f8124ca302b0527788d80fd5a4a87d206534..f5ec3cd3823b363c7213f2c9fc3d85b324fce09d 100644 --- a/src/main/java/com/destroystokyo/paper/PaperConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java -@@ -217,7 +217,7 @@ public class PaperConfig { +@@ -215,7 +215,7 @@ public class PaperConfig { timings = reallyEnableTimings; // Airplane end */ // Purpur end boolean verboseTimings = getBoolean("timings.verbose", true); @@ -59,7 +59,7 @@ index 3781e7c23347a5860c448a94bd01cb90979d9d4a..977363508e090ede5191f7dbc4c258bf TimingsManager.url += "/"; } diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 41134227b3902f6e008f1db7b0803a1f81e7fd6e..b634d1a67b741feadf3f8fda5439a501fef3d132 100644 +index f5cdf3338411650add4a2eb41e0412182b1f6fdf..8747593597ed270400ef3d3f6b141a0fb370f1b4 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -161,4 +161,17 @@ public class PurpurConfig { diff --git a/patches/server/0012-AFK-API.patch b/patches/server/0012-AFK-API.patch index 046e60a27..b1f591625 100644 --- a/patches/server/0012-AFK-API.patch +++ b/patches/server/0012-AFK-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] AFK API diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 0cd8e3b3af0dc9c8445672ea86cf5113dd51d3e8..a414d11f9bdf1d3432bcbecb6574f8fafd4478bb 100644 +index 6c7628bb6f7f46555650195b19318c7f338825ae..f819cc4f5e6e2d5c820a840fa76226ea381b96d6 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1953,8 +1953,58 @@ public class ServerPlayer extends Player { @@ -68,7 +68,7 @@ index 0cd8e3b3af0dc9c8445672ea86cf5113dd51d3e8..a414d11f9bdf1d3432bcbecb6574f8fa return this.stats; } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 94fa47af7f3fe98cac637190e533102c94499268..d12d2db33d26dc9ea582f0eaa9930f25f8c2744b 100644 +index 11c29157ec68c50ad98f502a41b442657a6f9242..46e9cb07fe046bb80a0ef96c33f1c81de989b3df 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -294,6 +294,20 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser @@ -263,7 +263,7 @@ index 20215510857b8e49ea0c93d35eddfbad7cd355b0..996171e7271e62e72c0b2b213c21caf5 public boolean untamedTamablesAreRidable = true; public boolean useNightVisionWhenRiding = false; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index f497d54966a985d6877b3cd6e0ad5f86e20a345d..e28ad069f6f4aef78810171ef56448497849c6bc 100644 +index 614efd4204eb0cb712964c71566ad7e2c609c439..bd68d2509fe08955eaab08a73924d6d58064c2b7 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -424,10 +424,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -283,7 +283,7 @@ index f497d54966a985d6877b3cd6e0ad5f86e20a345d..e28ad069f6f4aef78810171ef5644849 for (ServerPlayer player : (List) server.getHandle().players) { if (player.getBukkitEntity().canSee(this)) { player.connection.send(new ClientboundPlayerInfoPacket(ClientboundPlayerInfoPacket.Action.UPDATE_DISPLAY_NAME, this.getHandle())); -@@ -2591,5 +2596,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2583,5 +2588,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { public boolean usesPurpurClient() { return getHandle().purpurClient; } diff --git a/patches/server/0014-Configurable-server-mod-name.patch b/patches/server/0014-Configurable-server-mod-name.patch index db7be2490..f2b34e6fe 100644 --- a/patches/server/0014-Configurable-server-mod-name.patch +++ b/patches/server/0014-Configurable-server-mod-name.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Configurable server mod name diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 0a076780868ed1bd15c36dd88de85a0d5de87c7a..18df1cd4405f73b37c577b3b4495af06ec0de372 100644 +index cba432eba35ab42d91eb8f498fff2adff76d11f7..7c73c149574f40e8474056fb3a6604c29e84db8e 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1727,7 +1727,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop public - protected final boolean hasCollision; + public final boolean hasCollision; protected final float explosionResistance; protected final boolean isRandomlyTicking; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java diff --git a/patches/server/0055-Configurable-TPS-Catchup.patch b/patches/server/0055-Configurable-TPS-Catchup.patch index ca0893f04..b656913ea 100644 --- a/patches/server/0055-Configurable-TPS-Catchup.patch +++ b/patches/server/0055-Configurable-TPS-Catchup.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Configurable TPS Catchup diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 819c942d3663b9486fb11c13e572285d8761f4e0..efa6043ebec5655b4a0a0e6d96bc07b75aca461a 100644 +index 1d9aa96588faff8e79c0a8fec891c5c1af27f4e9..c287e069e325ab61f251494150059ef982577d00 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1281,7 +1281,13 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { diff --git a/patches/server/0069-Add-5-second-tps-average-in-tps.patch b/patches/server/0069-Add-5-second-tps-average-in-tps.patch index a137283f1..535bc5a6f 100644 --- a/patches/server/0069-Add-5-second-tps-average-in-tps.patch +++ b/patches/server/0069-Add-5-second-tps-average-in-tps.patch @@ -27,7 +27,7 @@ index fa56cd09102a89692b42f1d14257990508c5c720..f9251183df72ddc56662fd3f02acf216 setListData(vector); } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index efa6043ebec5655b4a0a0e6d96bc07b75aca461a..05d3cabf2ea49b378d9a2189fa7168fab9968f2a 100644 +index c287e069e325ab61f251494150059ef982577d00..67543c4a191c81e322391d36e2f51341767e9b03 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -305,7 +305,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop packet) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index f2ba626bb16d3b94b28e6d5cffc257caf8875195..4c6c2f1fbbdbb950ab5ef363d0106105991afcf9 100644 +index e72e2ec797526772dc9c490739f5b45e4d135c89..303de40046ac0e5802a0061a1118ee95897b6bfc 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1570,7 +1570,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1577,7 +1577,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override public boolean canSee(Player player) { diff --git a/patches/server/0136-Implement-TPSBar.patch b/patches/server/0136-Implement-TPSBar.patch index 68de54f73..275c46c66 100644 --- a/patches/server/0136-Implement-TPSBar.patch +++ b/patches/server/0136-Implement-TPSBar.patch @@ -17,10 +17,10 @@ index 4308cf798c7f97532ee56369a11afe4dbf7a898f..d734addd622f6d429a79df08310bce56 if (environment.includeIntegrated) { diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 05d3cabf2ea49b378d9a2189fa7168fab9968f2a..ed9b986a0a2e6e918406392437c354aa48a563e4 100644 +index 67543c4a191c81e322391d36e2f51341767e9b03..a1820f28dcf8f3d641b01e1e7e74b3104782ed8b 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1139,6 +1139,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop -Date: Sat, 9 Jan 2021 21:22:58 +0100 -Subject: [PATCH] Add unsafe Entity serialization API - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . - -diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 501f9310bdc13b6d38dcdda4ad7fdfd19216d6e6..5ae88a924b2f2cfd714bd693eebc708e7c029ee8 100644 ---- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -1290,5 +1290,12 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { - public boolean isRidableInWater() { - return getHandle().rideableUnderWater(); - } -+ -+ @Override -+ public boolean spawnAt(Location location, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason spawnReason) { -+ entity.level = ((CraftWorld) location.getWorld()).getHandle(); -+ entity.absMoveTo(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch()); -+ return !entity.valid && entity.level.addEntity(entity, spawnReason); -+ } - // Purpur end - } -diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index c912788886031ed2b34c1ef909a29aacfd2cd915..3a1ad1c0bd3be8ad7e7d7efb836bb18edbc7e4a6 100644 ---- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -@@ -407,9 +407,14 @@ public final class CraftMagicNumbers implements UnsafeValues { - Preconditions.checkNotNull(item, "null cannot be serialized"); - Preconditions.checkArgument(item.getType() != Material.AIR, "air cannot be serialized"); - -+ // Purpur start - rework NBT <-> bytes -+ return serializeNbtToBytes(CraftItemStack.asNMSCopy(item).save(new CompoundTag()), true); -+ } -+ -+ public byte[] serializeNbtToBytes(CompoundTag compound, boolean addDataVersion) { -+ if (addDataVersion) compound.putInt("DataVersion", getDataVersion()); - java.io.ByteArrayOutputStream outputStream = new java.io.ByteArrayOutputStream(); -- CompoundTag compound = (item instanceof CraftItemStack ? ((CraftItemStack) item).handle : CraftItemStack.asNMSCopy(item)).save(new CompoundTag()); -- compound.putInt("DataVersion", getDataVersion()); -+ // Purpur end - try { - net.minecraft.nbt.NbtIo.writeCompressed( - compound, -@@ -427,21 +432,52 @@ public final class CraftMagicNumbers implements UnsafeValues { - Preconditions.checkNotNull(data, "null cannot be deserialized"); - Preconditions.checkArgument(data.length > 0, "cannot deserialize nothing"); - -+ // Purpur start - rework NBT <-> bytes -+ CompoundTag compound = deserializeNbtFromBytes(data, true); -+ Dynamic converted = DataFixers.getDataFixer().update(References.ITEM_STACK, new Dynamic<>(NbtOps.INSTANCE, compound), compound.getInt("DataVersion"), getDataVersion()); -+ return net.minecraft.world.item.ItemStack.of((CompoundTag) converted.getValue()).asBukkitMirror(); -+ } -+ -+ public CompoundTag deserializeNbtFromBytes(byte[] data, boolean verifyDataVersion) { -+ // Purpur end - try { - CompoundTag compound = net.minecraft.nbt.NbtIo.readCompressed( - new java.io.ByteArrayInputStream(data) - ); -+ if (verifyDataVersion) { // Purpur - int dataVersion = compound.getInt("DataVersion"); - - Preconditions.checkArgument(dataVersion <= getDataVersion(), "Newer version! Server downgrades are not supported!"); -- Dynamic converted = DataFixers.getDataFixer().update(References.ITEM_STACK, new Dynamic(NbtOps.INSTANCE, compound), dataVersion, getDataVersion()); -- return CraftItemStack.asCraftMirror(net.minecraft.world.item.ItemStack.of((CompoundTag) converted.getValue())); -+ } // Purpur -+ return compound; // Purpur - } catch (IOException ex) { - com.destroystokyo.paper.util.SneakyThrow.sneaky(ex); - throw new RuntimeException(); - } - } - -+ // Purpur start -+ @Override -+ public byte[] serializeEntity(org.bukkit.entity.Entity entity) { -+ Preconditions.checkNotNull(entity, "null cannot be serialized"); -+ Preconditions.checkArgument(entity instanceof org.bukkit.craftbukkit.entity.CraftEntity, "non-CraftEntity cannot be serialized"); -+ CompoundTag compound = new CompoundTag(); -+ compound.putString("id", ((org.bukkit.craftbukkit.entity.CraftEntity) entity).getHandle().getMinecraftKeyString()); -+ return serializeNbtToBytes(((org.bukkit.craftbukkit.entity.CraftEntity) entity).getHandle().saveWithoutId(compound), true); -+ } -+ -+ @Override -+ public org.bukkit.entity.Entity deserializeEntity(byte[] data, org.bukkit.World world) { -+ CompoundTag compound = deserializeNbtFromBytes(data, true); -+ Dynamic converted = DataFixers.getDataFixer().update(References.ENTITY, new Dynamic<>(NbtOps.INSTANCE, compound), compound.getInt("DataVersion"), getDataVersion()); -+ compound = (CompoundTag) converted.getValue(); -+ compound.remove("UUID"); // Make the server make a new UUID for this entity; makes entities always spawnable. -+ return net.minecraft.world.entity.EntityType.create(compound, ((org.bukkit.craftbukkit.CraftWorld) world).getHandle()) -+ .orElseThrow(() -> new IllegalArgumentException("unknown ID was found for the data; did you downgrade?")) -+ .getBukkitEntity(); -+ } -+ // Purpur end -+ - @Override - public String getTranslationKey(Material mat) { - if (mat.isBlock()) { diff --git a/patches/server/0152-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch b/patches/server/0151-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch similarity index 100% rename from patches/server/0152-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch rename to patches/server/0151-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch diff --git a/patches/server/0153-Dont-run-with-scissors.patch b/patches/server/0152-Dont-run-with-scissors.patch similarity index 98% rename from patches/server/0153-Dont-run-with-scissors.patch rename to patches/server/0152-Dont-run-with-scissors.patch index 09d8ac165..45e7442ea 100644 --- a/patches/server/0153-Dont-run-with-scissors.patch +++ b/patches/server/0152-Dont-run-with-scissors.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Dont run with scissors! diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 114d15b61928ad1b659dc36367a9cc66cb1165b8..0118796efe4ee2d89315dfb4a40ead13d2f46a44 100644 +index da9aee42243e21f8d379dfc95f9904b9a3b05805..2daf8dc51b78f4466f41136c2d99be6dc0981eb2 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1574,6 +1574,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser diff --git a/patches/server/0154-One-Punch-Man.patch b/patches/server/0153-One-Punch-Man.patch similarity index 96% rename from patches/server/0154-One-Punch-Man.patch rename to patches/server/0153-One-Punch-Man.patch index 287daea23..dbe397eac 100644 --- a/patches/server/0154-One-Punch-Man.patch +++ b/patches/server/0153-One-Punch-Man.patch @@ -5,7 +5,7 @@ Subject: [PATCH] One Punch Man! diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index a5d69e5b87d7a22ab4aa7305099d9db8c1794a5c..140180d0be9f14a10bf7ac9f4bc16bf183ee700e 100644 +index 76d3d5d4c955f59feec825ae2107cc9257e21906..202463f4878861bc87cc18c1c152b5634b52d305 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -2137,6 +2137,20 @@ public abstract class LivingEntity extends Entity { diff --git a/patches/server/0155-Add-config-for-snow-on-blue-ice.patch b/patches/server/0154-Add-config-for-snow-on-blue-ice.patch similarity index 100% rename from patches/server/0155-Add-config-for-snow-on-blue-ice.patch rename to patches/server/0154-Add-config-for-snow-on-blue-ice.patch diff --git a/patches/server/0156-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch b/patches/server/0155-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch similarity index 100% rename from patches/server/0156-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch rename to patches/server/0155-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch diff --git a/patches/server/0157-Config-to-ignore-nearby-mobs-when-sleeping.patch b/patches/server/0156-Config-to-ignore-nearby-mobs-when-sleeping.patch similarity index 96% rename from patches/server/0157-Config-to-ignore-nearby-mobs-when-sleeping.patch rename to patches/server/0156-Config-to-ignore-nearby-mobs-when-sleeping.patch index ba141582c..5f20eb564 100644 --- a/patches/server/0157-Config-to-ignore-nearby-mobs-when-sleeping.patch +++ b/patches/server/0156-Config-to-ignore-nearby-mobs-when-sleeping.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Config to ignore nearby mobs when sleeping diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 33e36a80edbc80f0f562842ed690dccc13cc2e94..af22f5b80fd8d7aba8d12d84196a57e8f054fec2 100644 +index 878654d5e65d4318aaad27b00a6df1662b5946de..696eddee3524a4b18caa3990b6da3ad20537627c 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1305,7 +1305,7 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0158-Add-back-player-spawned-endermite-API.patch b/patches/server/0157-Add-back-player-spawned-endermite-API.patch similarity index 100% rename from patches/server/0158-Add-back-player-spawned-endermite-API.patch rename to patches/server/0157-Add-back-player-spawned-endermite-API.patch diff --git a/patches/server/0159-Config-Enderman-aggressiveness-towards-Endermites.patch b/patches/server/0158-Config-Enderman-aggressiveness-towards-Endermites.patch similarity index 100% rename from patches/server/0159-Config-Enderman-aggressiveness-towards-Endermites.patch rename to patches/server/0158-Config-Enderman-aggressiveness-towards-Endermites.patch diff --git a/patches/server/0160-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch b/patches/server/0159-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch similarity index 100% rename from patches/server/0160-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch rename to patches/server/0159-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch diff --git a/patches/server/0161-Tick-fluids-config.patch b/patches/server/0160-Tick-fluids-config.patch similarity index 100% rename from patches/server/0161-Tick-fluids-config.patch rename to patches/server/0160-Tick-fluids-config.patch diff --git a/patches/server/0162-Config-to-disable-Llama-caravans.patch b/patches/server/0161-Config-to-disable-Llama-caravans.patch similarity index 100% rename from patches/server/0162-Config-to-disable-Llama-caravans.patch rename to patches/server/0161-Config-to-disable-Llama-caravans.patch diff --git a/patches/server/0163-Config-to-make-Creepers-explode-on-death.patch b/patches/server/0162-Config-to-make-Creepers-explode-on-death.patch similarity index 100% rename from patches/server/0163-Config-to-make-Creepers-explode-on-death.patch rename to patches/server/0162-Config-to-make-Creepers-explode-on-death.patch diff --git a/patches/server/0164-Configurable-ravager-griefable-blocks-list.patch b/patches/server/0163-Configurable-ravager-griefable-blocks-list.patch similarity index 100% rename from patches/server/0164-Configurable-ravager-griefable-blocks-list.patch rename to patches/server/0163-Configurable-ravager-griefable-blocks-list.patch diff --git a/patches/server/0165-Sneak-to-bulk-process-composter.patch b/patches/server/0164-Sneak-to-bulk-process-composter.patch similarity index 100% rename from patches/server/0165-Sneak-to-bulk-process-composter.patch rename to patches/server/0164-Sneak-to-bulk-process-composter.patch diff --git a/patches/server/0166-Config-for-skipping-night.patch b/patches/server/0165-Config-for-skipping-night.patch similarity index 96% rename from patches/server/0166-Config-for-skipping-night.patch rename to patches/server/0165-Config-for-skipping-night.patch index 518f0e33d..7b6967f29 100644 --- a/patches/server/0166-Config-for-skipping-night.patch +++ b/patches/server/0165-Config-for-skipping-night.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Config for skipping night diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 54481445beb1f409e4ad8c5a83d210cb5119abcb..aab9dbe91b44408e5b530e32eddac4ffd6ee3b1d 100644 +index a88ad3f8d2de09221d9d039fc9d61f843a259f65..bbfca53639169d2070719cfbbc8f31079bd8a876 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -716,7 +716,7 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0167-Add-config-for-villager-trading.patch b/patches/server/0166-Add-config-for-villager-trading.patch similarity index 100% rename from patches/server/0167-Add-config-for-villager-trading.patch rename to patches/server/0166-Add-config-for-villager-trading.patch diff --git a/patches/server/0168-Allow-infinity-on-crossbows.patch b/patches/server/0167-Allow-infinity-on-crossbows.patch similarity index 100% rename from patches/server/0168-Allow-infinity-on-crossbows.patch rename to patches/server/0167-Allow-infinity-on-crossbows.patch diff --git a/patches/server/0169-Drowning-Settings.patch b/patches/server/0168-Drowning-Settings.patch similarity index 93% rename from patches/server/0169-Drowning-Settings.patch rename to patches/server/0168-Drowning-Settings.patch index 9f34d443b..a54bc5fab 100644 --- a/patches/server/0169-Drowning-Settings.patch +++ b/patches/server/0168-Drowning-Settings.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Drowning Settings diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 3c5347c0d4b65ced4b942504b1cdb8aab53016a5..3a010a01c6cfd5307b1856bb9d70e81cabe45a65 100644 +index 015228191d81340856bf76135adc494ccacd0f76..d2ad2c7aedc7f026c211b3115828c21a116ab0a9 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -525,7 +525,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n @@ -17,7 +17,7 @@ index 3c5347c0d4b65ced4b942504b1cdb8aab53016a5..3a010a01c6cfd5307b1856bb9d70e81c this.entityData.define(Entity.DATA_CUSTOM_NAME_VISIBLE, false); this.entityData.define(Entity.DATA_CUSTOM_NAME, Optional.empty()); this.entityData.define(Entity.DATA_SILENT, false); -@@ -2968,7 +2968,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n +@@ -2977,7 +2977,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n } public int getMaxAirSupply() { @@ -27,7 +27,7 @@ index 3c5347c0d4b65ced4b942504b1cdb8aab53016a5..3a010a01c6cfd5307b1856bb9d70e81c public int getAirSupply() { diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 140180d0be9f14a10bf7ac9f4bc16bf183ee700e..c2a4a872cca89912b7cb85af790a5001a9705b99 100644 +index 202463f4878861bc87cc18c1c152b5634b52d305..e77ef361cb57841f5fafc2b528e8fe0916180438 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -424,7 +424,7 @@ public abstract class LivingEntity extends Entity { diff --git a/patches/server/0170-Break-individual-slabs-when-sneaking.patch b/patches/server/0169-Break-individual-slabs-when-sneaking.patch similarity index 100% rename from patches/server/0170-Break-individual-slabs-when-sneaking.patch rename to patches/server/0169-Break-individual-slabs-when-sneaking.patch diff --git a/patches/server/0171-Config-to-disable-hostile-mob-spawn-on-ice.patch b/patches/server/0170-Config-to-disable-hostile-mob-spawn-on-ice.patch similarity index 100% rename from patches/server/0171-Config-to-disable-hostile-mob-spawn-on-ice.patch rename to patches/server/0170-Config-to-disable-hostile-mob-spawn-on-ice.patch diff --git a/patches/server/0172-Config-to-show-Armor-Stand-arms-on-spawn.patch b/patches/server/0171-Config-to-show-Armor-Stand-arms-on-spawn.patch similarity index 100% rename from patches/server/0172-Config-to-show-Armor-Stand-arms-on-spawn.patch rename to patches/server/0171-Config-to-show-Armor-Stand-arms-on-spawn.patch diff --git a/patches/server/0173-Option-to-make-doors-require-redstone.patch b/patches/server/0172-Option-to-make-doors-require-redstone.patch similarity index 100% rename from patches/server/0173-Option-to-make-doors-require-redstone.patch rename to patches/server/0172-Option-to-make-doors-require-redstone.patch diff --git a/patches/server/0174-Config-to-allow-for-unsafe-enchants.patch b/patches/server/0173-Config-to-allow-for-unsafe-enchants.patch similarity index 100% rename from patches/server/0174-Config-to-allow-for-unsafe-enchants.patch rename to patches/server/0173-Config-to-allow-for-unsafe-enchants.patch diff --git a/patches/server/0175-Configurable-sponge-absorption.patch b/patches/server/0174-Configurable-sponge-absorption.patch similarity index 100% rename from patches/server/0175-Configurable-sponge-absorption.patch rename to patches/server/0174-Configurable-sponge-absorption.patch diff --git a/patches/server/0176-Projectile-offset-config.patch b/patches/server/0175-Projectile-offset-config.patch similarity index 100% rename from patches/server/0176-Projectile-offset-config.patch rename to patches/server/0175-Projectile-offset-config.patch diff --git a/patches/server/0177-Config-for-powered-rail-activation-distance.patch b/patches/server/0176-Config-for-powered-rail-activation-distance.patch similarity index 100% rename from patches/server/0177-Config-for-powered-rail-activation-distance.patch rename to patches/server/0176-Config-for-powered-rail-activation-distance.patch diff --git a/patches/server/0178-Piglin-portal-spawn-modifier.patch b/patches/server/0177-Piglin-portal-spawn-modifier.patch similarity index 100% rename from patches/server/0178-Piglin-portal-spawn-modifier.patch rename to patches/server/0177-Piglin-portal-spawn-modifier.patch diff --git a/patches/server/0179-Config-to-change-max-number-of-bees.patch b/patches/server/0178-Config-to-change-max-number-of-bees.patch similarity index 100% rename from patches/server/0179-Config-to-change-max-number-of-bees.patch rename to patches/server/0178-Config-to-change-max-number-of-bees.patch diff --git a/patches/server/0180-Configurable-damage-settings-for-magma-blocks.patch b/patches/server/0179-Configurable-damage-settings-for-magma-blocks.patch similarity index 97% rename from patches/server/0180-Configurable-damage-settings-for-magma-blocks.patch rename to patches/server/0179-Configurable-damage-settings-for-magma-blocks.patch index 3fcaf5206..1f2e6feb4 100644 --- a/patches/server/0180-Configurable-damage-settings-for-magma-blocks.patch +++ b/patches/server/0179-Configurable-damage-settings-for-magma-blocks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configurable damage settings for magma blocks diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 3a010a01c6cfd5307b1856bb9d70e81cabe45a65..d3d6dc230674a4c6f9c388b131e1feb42660d865 100644 +index d2ad2c7aedc7f026c211b3115828c21a116ab0a9..cfcc776fce49bbdc72072eceb4968510e6fd6f36 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1035,7 +1035,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n diff --git a/patches/server/0181-Config-for-wither-explosion-radius.patch b/patches/server/0180-Config-for-wither-explosion-radius.patch similarity index 100% rename from patches/server/0181-Config-for-wither-explosion-radius.patch rename to patches/server/0180-Config-for-wither-explosion-radius.patch diff --git a/patches/server/0182-Gamemode-extra-permissions.patch b/patches/server/0181-Gamemode-extra-permissions.patch similarity index 100% rename from patches/server/0182-Gamemode-extra-permissions.patch rename to patches/server/0181-Gamemode-extra-permissions.patch diff --git a/patches/server/0183-Config-for-changing-the-blocks-that-turn-into-dirt-p.patch b/patches/server/0182-Config-for-changing-the-blocks-that-turn-into-dirt-p.patch similarity index 100% rename from patches/server/0183-Config-for-changing-the-blocks-that-turn-into-dirt-p.patch rename to patches/server/0182-Config-for-changing-the-blocks-that-turn-into-dirt-p.patch diff --git a/patches/server/0184-Configurable-piston-push-limit.patch b/patches/server/0183-Configurable-piston-push-limit.patch similarity index 100% rename from patches/server/0184-Configurable-piston-push-limit.patch rename to patches/server/0183-Configurable-piston-push-limit.patch diff --git a/patches/server/0185-Configurable-broadcast-settings.patch b/patches/server/0184-Configurable-broadcast-settings.patch similarity index 94% rename from patches/server/0185-Configurable-broadcast-settings.patch rename to patches/server/0184-Configurable-broadcast-settings.patch index 8b7fd4012..0094565b2 100644 --- a/patches/server/0185-Configurable-broadcast-settings.patch +++ b/patches/server/0184-Configurable-broadcast-settings.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configurable broadcast settings diff --git a/src/main/java/net/minecraft/server/PlayerAdvancements.java b/src/main/java/net/minecraft/server/PlayerAdvancements.java -index c46df052a5a39d92688f51377ee1f7b5b5b36faa..d7d2a975386cecb0d50b4f7ed37de8ad20ca9bad 100644 +index 945fb3200d52b83eaee2e62d6db5c43e088218eb..a87a532ce9e69bf4a90aac73ad51e4a88b8e141e 100644 --- a/src/main/java/net/minecraft/server/PlayerAdvancements.java +++ b/src/main/java/net/minecraft/server/PlayerAdvancements.java @@ -301,6 +301,7 @@ public class PlayerAdvancements { @@ -17,7 +17,7 @@ index c46df052a5a39d92688f51377ee1f7b5b5b36faa..d7d2a975386cecb0d50b4f7ed37de8ad // Paper end } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index af22f5b80fd8d7aba8d12d84196a57e8f054fec2..674c6ffbec5874d3581d3d02683d9e5c38bff269 100644 +index 696eddee3524a4b18caa3990b6da3ad20537627c..176168d37000fe439593bd0cfc0a07d29577b474 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -881,6 +881,7 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0186-Fix-SPIGOT-6278.patch b/patches/server/0185-Fix-SPIGOT-6278.patch similarity index 100% rename from patches/server/0186-Fix-SPIGOT-6278.patch rename to patches/server/0185-Fix-SPIGOT-6278.patch diff --git a/patches/server/0187-Configurable-mob-blindness.patch b/patches/server/0186-Configurable-mob-blindness.patch similarity index 96% rename from patches/server/0187-Configurable-mob-blindness.patch rename to patches/server/0186-Configurable-mob-blindness.patch index 2582dada2..32ea5fb70 100644 --- a/patches/server/0187-Configurable-mob-blindness.patch +++ b/patches/server/0186-Configurable-mob-blindness.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Configurable mob blindness Ported from https://github.com/raltsmc/mobblindness diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index c2a4a872cca89912b7cb85af790a5001a9705b99..66f15b3450ccdc36451a21a91d9a6ddaec6c05ba 100644 +index e77ef361cb57841f5fafc2b528e8fe0916180438..baf1bfd19192f84499dab4eb7e263161a8d000f2 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -991,6 +991,17 @@ public abstract class LivingEntity extends Entity { diff --git a/patches/server/0188-Hide-hidden-players-from-entity-selector.patch b/patches/server/0187-Hide-hidden-players-from-entity-selector.patch similarity index 100% rename from patches/server/0188-Hide-hidden-players-from-entity-selector.patch rename to patches/server/0187-Hide-hidden-players-from-entity-selector.patch diff --git a/patches/server/0189-Config-for-health-to-impact-Creeper-explosion-radius.patch b/patches/server/0188-Config-for-health-to-impact-Creeper-explosion-radius.patch similarity index 100% rename from patches/server/0189-Config-for-health-to-impact-Creeper-explosion-radius.patch rename to patches/server/0188-Config-for-health-to-impact-Creeper-explosion-radius.patch diff --git a/patches/server/0190-Iron-golem-poppy-calms-anger.patch b/patches/server/0189-Iron-golem-poppy-calms-anger.patch similarity index 100% rename from patches/server/0190-Iron-golem-poppy-calms-anger.patch rename to patches/server/0189-Iron-golem-poppy-calms-anger.patch diff --git a/patches/server/0191-Breedable-parrots.patch b/patches/server/0190-Breedable-parrots.patch similarity index 100% rename from patches/server/0191-Breedable-parrots.patch rename to patches/server/0190-Breedable-parrots.patch diff --git a/patches/server/0192-Configurable-powered-rail-boost-modifier.patch b/patches/server/0191-Configurable-powered-rail-boost-modifier.patch similarity index 100% rename from patches/server/0192-Configurable-powered-rail-boost-modifier.patch rename to patches/server/0191-Configurable-powered-rail-boost-modifier.patch diff --git a/patches/server/0193-Add-config-change-multiplier-critical-damage-value.patch b/patches/server/0192-Add-config-change-multiplier-critical-damage-value.patch similarity index 100% rename from patches/server/0193-Add-config-change-multiplier-critical-damage-value.patch rename to patches/server/0192-Add-config-change-multiplier-critical-damage-value.patch diff --git a/patches/server/0194-Option-to-disable-dragon-egg-teleporting.patch b/patches/server/0193-Option-to-disable-dragon-egg-teleporting.patch similarity index 100% rename from patches/server/0194-Option-to-disable-dragon-egg-teleporting.patch rename to patches/server/0193-Option-to-disable-dragon-egg-teleporting.patch diff --git a/patches/server/0195-Config-for-unverified-username-message.patch b/patches/server/0194-Config-for-unverified-username-message.patch similarity index 100% rename from patches/server/0195-Config-for-unverified-username-message.patch rename to patches/server/0194-Config-for-unverified-username-message.patch diff --git a/patches/server/0196-Make-anvil-cumulative-cost-configurable.patch b/patches/server/0195-Make-anvil-cumulative-cost-configurable.patch similarity index 100% rename from patches/server/0196-Make-anvil-cumulative-cost-configurable.patch rename to patches/server/0195-Make-anvil-cumulative-cost-configurable.patch diff --git a/patches/server/0197-ShulkerBox-allow-oversized-stacks.patch b/patches/server/0196-ShulkerBox-allow-oversized-stacks.patch similarity index 100% rename from patches/server/0197-ShulkerBox-allow-oversized-stacks.patch rename to patches/server/0196-ShulkerBox-allow-oversized-stacks.patch diff --git a/patches/server/0198-Bee-can-work-when-raining-or-at-night.patch b/patches/server/0197-Bee-can-work-when-raining-or-at-night.patch similarity index 100% rename from patches/server/0198-Bee-can-work-when-raining-or-at-night.patch rename to patches/server/0197-Bee-can-work-when-raining-or-at-night.patch diff --git a/patches/server/0199-API-for-any-mob-to-burn-daylight.patch b/patches/server/0198-API-for-any-mob-to-burn-daylight.patch similarity index 94% rename from patches/server/0199-API-for-any-mob-to-burn-daylight.patch rename to patches/server/0198-API-for-any-mob-to-burn-daylight.patch index d38677b72..dd3c56089 100644 --- a/patches/server/0199-API-for-any-mob-to-burn-daylight.patch +++ b/patches/server/0198-API-for-any-mob-to-burn-daylight.patch @@ -6,10 +6,10 @@ Subject: [PATCH] API for any mob to burn daylight Co-authored by: Encode42 diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index d3d6dc230674a4c6f9c388b131e1feb42660d865..840e60987e4ba4b49088b82e35ecc5a1ddcc29e5 100644 +index cfcc776fce49bbdc72072eceb4968510e6fd6f36..17179e00c75aa3d37d57235e068703a2eea43d91 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -4400,5 +4400,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n +@@ -4409,5 +4409,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n public boolean canSaveToDisk() { return true; } @@ -29,7 +29,7 @@ index d3d6dc230674a4c6f9c388b131e1feb42660d865..840e60987e4ba4b49088b82e35ecc5a1 // Purpur end } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 66f15b3450ccdc36451a21a91d9a6ddaec6c05ba..47d9560f4f092e999488a735f6ef9987d4bab0c0 100644 +index baf1bfd19192f84499dab4eb7e263161a8d000f2..8feff873c7bcce3530814b19f01719bab7837fa8 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -264,6 +264,7 @@ public abstract class LivingEntity extends Entity { @@ -89,7 +89,7 @@ index 66f15b3450ccdc36451a21a91d9a6ddaec6c05ba..47d9560f4f092e999488a735f6ef9987 public boolean isSensitiveToWater() { diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 91081d8aa571f54a2f56b4dd341e9559f0a2e27a..02a227e1239ca3a1d54d746ea14b6ae7b12d1cd0 100644 +index 5500560f8b0b7de0a00f3528032fcab9f91726b7..d3807e4e75f20cd8c7afc17ce0d1e66abe404e90 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -1643,17 +1643,7 @@ public abstract class Mob extends LivingEntity { @@ -257,7 +257,7 @@ index 59548f2a7683d4990c8fff668b462d7a1cdf969a..7706dbc824b6ff8a00f72f5890cc95ec public void setShouldBurnInDay(boolean shouldBurnInDay) { this.shouldBurnInDay = shouldBurnInDay; } // Paper end diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java -index d0023f76e0c4b5d9db261416192ba7f0b1dca772..4ccc743cba68f9af2d1663a28bfe94d48e478c97 100644 +index 673e6e91290b3e7840d00d06c15906a014d72b42..6c253894866b870e79e110efd7eaf306aa5d7af5 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java +++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java @@ -96,11 +96,12 @@ public class Zombie extends Monster { @@ -333,25 +333,26 @@ index d0023f76e0c4b5d9db261416192ba7f0b1dca772..4ccc743cba68f9af2d1663a28bfe94d4 // Paper end diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 5ae88a924b2f2cfd714bd693eebc708e7c029ee8..b75661886bafcfa340c5ac388401aa3c1cda78a9 100644 +index b8fb34df77ffd1f4ef2db63717e3acf2ab592fb6..47554042c83127f1f37e9b0881ef7c7796edd35a 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -1297,5 +1297,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { - entity.absMoveTo(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch()); - return !entity.valid && entity.level.addEntity(entity, spawnReason); +@@ -197,6 +197,11 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { + this.entity = entity; } -+ + + @Override + public boolean isInDaylight() { + return getHandle().isSunBurnTick(); + } - // Purpur end - } ++ + public static CraftEntity getEntity(CraftServer server, Entity entity) { + /* + * Order is *EXTREMELY* important -- keep it right! =D diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 7a888d9c464f080297fa27e39837734a06b013a9..9ecf1ef7e876418d2b454d6cd8ac8739194acfaa 100644 +index be1f7cf667b5c9b2e691397bfc2e316b7ba84251..a59d71769db5452f9e16c514928dce20d1b99408 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -@@ -933,5 +933,15 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { +@@ -937,5 +937,15 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { if (slot == null) return; getHandle().broadcastBreakEvent(org.bukkit.craftbukkit.CraftEquipmentSlot.getNMS(slot)); } diff --git a/patches/server/0200-Fix-advancement-triggers-on-entity-death.patch b/patches/server/0199-Fix-advancement-triggers-on-entity-death.patch similarity index 97% rename from patches/server/0200-Fix-advancement-triggers-on-entity-death.patch rename to patches/server/0199-Fix-advancement-triggers-on-entity-death.patch index fbf99dcfa..bd3980419 100644 --- a/patches/server/0200-Fix-advancement-triggers-on-entity-death.patch +++ b/patches/server/0199-Fix-advancement-triggers-on-entity-death.patch @@ -16,7 +16,7 @@ restoring it back to the entity just before the criterion triggers run and then finally clearing the equipment again right after the criterion is done. diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 47d9560f4f092e999488a735f6ef9987d4bab0c0..51b6c005db04ba60a3766bc6072ef311eab53992 100644 +index 8feff873c7bcce3530814b19f01719bab7837fa8..597a99e30741eeae339043240c4e80e4818399ca 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1661,10 +1661,13 @@ public abstract class LivingEntity extends Entity { @@ -47,7 +47,7 @@ index 47d9560f4f092e999488a735f6ef9987d4bab0c0..51b6c005db04ba60a3766bc6072ef311 CompoundTag nbttagcompound = stack.getTag(); diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 02a227e1239ca3a1d54d746ea14b6ae7b12d1cd0..74e73e52139445dd2090cfd3abdbf22497a7b4da 100644 +index d3807e4e75f20cd8c7afc17ce0d1e66abe404e90..50526fd30e84f8812454c264afd79f11c2190a35 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -1026,6 +1026,41 @@ public abstract class Mob extends LivingEntity { diff --git a/patches/server/0201-Config-MobEffect-by-world.patch b/patches/server/0200-Config-MobEffect-by-world.patch similarity index 100% rename from patches/server/0201-Config-MobEffect-by-world.patch rename to patches/server/0200-Config-MobEffect-by-world.patch diff --git a/patches/server/0202-Beacon-Activation-Range-Configurable.patch b/patches/server/0201-Beacon-Activation-Range-Configurable.patch similarity index 100% rename from patches/server/0202-Beacon-Activation-Range-Configurable.patch rename to patches/server/0201-Beacon-Activation-Range-Configurable.patch diff --git a/patches/server/0203-Add-toggle-for-sand-duping-fix.patch b/patches/server/0202-Add-toggle-for-sand-duping-fix.patch similarity index 100% rename from patches/server/0203-Add-toggle-for-sand-duping-fix.patch rename to patches/server/0202-Add-toggle-for-sand-duping-fix.patch diff --git a/patches/server/0204-Add-toggle-for-end-portal-safe-teleporting.patch b/patches/server/0203-Add-toggle-for-end-portal-safe-teleporting.patch similarity index 95% rename from patches/server/0204-Add-toggle-for-end-portal-safe-teleporting.patch rename to patches/server/0203-Add-toggle-for-end-portal-safe-teleporting.patch index dc8b70d2d..c51d03d3e 100644 --- a/patches/server/0204-Add-toggle-for-end-portal-safe-teleporting.patch +++ b/patches/server/0203-Add-toggle-for-end-portal-safe-teleporting.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add toggle for end portal safe teleporting diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 840e60987e4ba4b49088b82e35ecc5a1ddcc29e5..e0f61b7515d4d6b8ca4b1be29923a268a1c4e6d3 100644 +index 17179e00c75aa3d37d57235e068703a2eea43d91..eb68e107654b04f257b01bfe722bf75b17775b84 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2785,7 +2785,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n +@@ -2794,7 +2794,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n } this.processPortalCooldown(); diff --git a/patches/server/0205-Flying-Fall-Damage-API.patch b/patches/server/0204-Flying-Fall-Damage-API.patch similarity index 92% rename from patches/server/0205-Flying-Fall-Damage-API.patch rename to patches/server/0204-Flying-Fall-Damage-API.patch index 32d7c3146..4bfabba05 100644 --- a/patches/server/0205-Flying-Fall-Damage-API.patch +++ b/patches/server/0204-Flying-Fall-Damage-API.patch @@ -26,10 +26,10 @@ index 0c0d4ec5893f082a8b4071a627a64c7b88fd0067..3b5c1bf87268dc10719c3f8e3e8c105f } else { if (fallDistance >= 2.0F) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 3368b953b364faf2cde8e242d59fa8c6febc105f..2ab44b6524b9fb9f415092659ea3750b57b4c0c4 100644 +index 2fe84d9d7b0a829baefdb9fad7ba02d336ba5254..f93887579837a9cfc6699c0b481ac60f16a31770 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2636,5 +2636,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2628,5 +2628,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player { public void setSpawnInvulnerableTicks(int spawnInvulnerableTime) { getHandle().spawnInvulnerableTime = spawnInvulnerableTime; } diff --git a/patches/server/0206-Make-lightning-rod-range-configurable.patch b/patches/server/0205-Make-lightning-rod-range-configurable.patch similarity index 96% rename from patches/server/0206-Make-lightning-rod-range-configurable.patch rename to patches/server/0205-Make-lightning-rod-range-configurable.patch index 4ef03238d..e85474454 100644 --- a/patches/server/0206-Make-lightning-rod-range-configurable.patch +++ b/patches/server/0205-Make-lightning-rod-range-configurable.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Make lightning rod range configurable diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index aab9dbe91b44408e5b530e32eddac4ffd6ee3b1d..05a52fd9540e725b1b6feb2c472ae38a9da0ec1a 100644 +index bbfca53639169d2070719cfbbc8f31079bd8a876..91fe92f895d565fc743f834bbf2a42630914125d 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1012,7 +1012,7 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0207-Burp-after-eating-food-fills-hunger-bar-completely.patch b/patches/server/0206-Burp-after-eating-food-fills-hunger-bar-completely.patch similarity index 100% rename from patches/server/0207-Burp-after-eating-food-fills-hunger-bar-completely.patch rename to patches/server/0206-Burp-after-eating-food-fills-hunger-bar-completely.patch diff --git a/patches/server/0208-Allow-player-join-full-server-by-permission.patch b/patches/server/0207-Allow-player-join-full-server-by-permission.patch similarity index 100% rename from patches/server/0208-Allow-player-join-full-server-by-permission.patch rename to patches/server/0207-Allow-player-join-full-server-by-permission.patch diff --git a/patches/server/0209-Add-permission-bypass-for-portal-waiting.patch b/patches/server/0208-Add-permission-bypass-for-portal-waiting.patch similarity index 100% rename from patches/server/0209-Add-permission-bypass-for-portal-waiting.patch rename to patches/server/0208-Add-permission-bypass-for-portal-waiting.patch diff --git a/patches/server/0210-Shulker-spawn-from-bullet-options.patch b/patches/server/0209-Shulker-spawn-from-bullet-options.patch similarity index 100% rename from patches/server/0210-Shulker-spawn-from-bullet-options.patch rename to patches/server/0209-Shulker-spawn-from-bullet-options.patch diff --git a/patches/server/0211-Eating-glow-berries-adds-glow-effect.patch b/patches/server/0210-Eating-glow-berries-adds-glow-effect.patch similarity index 100% rename from patches/server/0211-Eating-glow-berries-adds-glow-effect.patch rename to patches/server/0210-Eating-glow-berries-adds-glow-effect.patch diff --git a/patches/server/0212-Option-to-make-drowned-break-doors.patch b/patches/server/0211-Option-to-make-drowned-break-doors.patch similarity index 95% rename from patches/server/0212-Option-to-make-drowned-break-doors.patch rename to patches/server/0211-Option-to-make-drowned-break-doors.patch index 6a818c5d5..392d199f9 100644 --- a/patches/server/0212-Option-to-make-drowned-break-doors.patch +++ b/patches/server/0211-Option-to-make-drowned-break-doors.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Option to make drowned break doors diff --git a/src/main/java/net/minecraft/world/entity/monster/Drowned.java b/src/main/java/net/minecraft/world/entity/monster/Drowned.java -index 766dd7d70ea20c892ee9f084f2eb14c1c7b63451..30117b2b0e5d4c34c9fd1bbeccbd252bfce3cf85 100644 +index 729b4a414918b1f74c225e15b5c41dc0db2a9f5b..c69cf2d2778d73f6834208d20e5e0b1502a905c8 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Drowned.java +++ b/src/main/java/net/minecraft/world/entity/monster/Drowned.java @@ -30,6 +30,7 @@ import net.minecraft.world.entity.ai.goal.MoveToBlockGoal; @@ -27,7 +27,7 @@ index 766dd7d70ea20c892ee9f084f2eb14c1c7b63451..30117b2b0e5d4c34c9fd1bbeccbd252b @@ -166,7 +168,7 @@ public class Drowned extends Zombie implements RangedAttackMob { @Override - protected boolean supportsBreakDoorGoal() { + public boolean supportsBreakDoorGoal() { - return false; + return level.purpurConfig.drownedBreakDoors ? true : false; } diff --git a/patches/server/0213-Configurable-hunger-starvation-damage.patch b/patches/server/0212-Configurable-hunger-starvation-damage.patch similarity index 100% rename from patches/server/0213-Configurable-hunger-starvation-damage.patch rename to patches/server/0212-Configurable-hunger-starvation-damage.patch diff --git a/patches/server/0214-Redirect-System.out-calls-to-plugin-loggers.patch b/patches/server/0213-Redirect-System.out-calls-to-plugin-loggers.patch similarity index 98% rename from patches/server/0214-Redirect-System.out-calls-to-plugin-loggers.patch rename to patches/server/0213-Redirect-System.out-calls-to-plugin-loggers.patch index f076cd298..08a9f025d 100644 --- a/patches/server/0214-Redirect-System.out-calls-to-plugin-loggers.patch +++ b/patches/server/0213-Redirect-System.out-calls-to-plugin-loggers.patch @@ -91,7 +91,7 @@ index 0000000000000000000000000000000000000000..f88da0b86a683b25d429ceea4a36d6dd + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index f38fe2e10dd6893dc4dbce9647d59e1f39e94d11..b5dead20f18087c8ebbd564aa25a17c60c549107 100644 +index 9ad49a1cf4daa0a3c7f4a7360120d55be09a326b..47464536adb99db48f1e5d2c28ba371a11646812 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -291,7 +291,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0215-Armor-click-equip-options.patch b/patches/server/0214-Armor-click-equip-options.patch similarity index 100% rename from patches/server/0215-Armor-click-equip-options.patch rename to patches/server/0214-Armor-click-equip-options.patch diff --git a/patches/server/0216-Add-uptime-command.patch b/patches/server/0215-Add-uptime-command.patch similarity index 98% rename from patches/server/0216-Add-uptime-command.patch rename to patches/server/0215-Add-uptime-command.patch index 953fc9350..a77ea2d9e 100644 --- a/patches/server/0216-Add-uptime-command.patch +++ b/patches/server/0215-Add-uptime-command.patch @@ -17,7 +17,7 @@ index d734addd622f6d429a79df08310bce562db3425e..d298e70100741808d466d7113eb268fb } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index ed9b986a0a2e6e918406392437c354aa48a563e4..80e81d4482f4e4451150d3d3cc8fe244be35d6e9 100644 +index a1820f28dcf8f3d641b01e1e7e74b3104782ed8b..d71b5595dc2795f48007c07ce59bb5b19a80ff52 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -295,6 +295,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 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 b5dead20f18087c8ebbd564aa25a17c60c549107..bb9aff9f3067b6249447287f5d9f9c6fe86c88d5 100644 +index 47464536adb99db48f1e5d2c28ba371a11646812..171207e4ba1a21143ea1db8b1d3646df50256484 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1418,6 +1418,19 @@ public final class CraftServer implements Server { diff --git a/patches/server/0244-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch b/patches/server/0243-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch similarity index 97% rename from patches/server/0244-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch rename to patches/server/0243-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch index 93dd0a704..cbe2902f0 100644 --- a/patches/server/0244-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch +++ b/patches/server/0243-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Option for if rain and thunder should stop on sleep diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 54c80d7ebb67598cc1b77d259f3b3fcaa35eca7e..87875413ba3781d3e100bd735afaa16ccf686027 100644 +index 1203129171a5a3da9ef67f6a1b94ea8622cbfbb4..5787558d17d8fbb912b317f90e1a45f3c75678f5 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1113,6 +1113,7 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0245-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch b/patches/server/0244-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch similarity index 100% rename from patches/server/0245-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch rename to patches/server/0244-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch diff --git a/patches/server/0246-Shift-right-click-to-use-exp-for-mending.patch b/patches/server/0245-Shift-right-click-to-use-exp-for-mending.patch similarity index 98% rename from patches/server/0246-Shift-right-click-to-use-exp-for-mending.patch rename to patches/server/0245-Shift-right-click-to-use-exp-for-mending.patch index 949cec637..8ce9be83c 100644 --- a/patches/server/0246-Shift-right-click-to-use-exp-for-mending.patch +++ b/patches/server/0245-Shift-right-click-to-use-exp-for-mending.patch @@ -36,7 +36,7 @@ index a61c0ca02b085d1ab2587d54c9fcdc76a726cc4e..a11a7deefb7fdf7ca9b23f85f5ae5f7c + // 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 0118796efe4ee2d89315dfb4a40ead13d2f46a44..54b837d3a70862622a3e6d2a5f900eff4ead9103 100644 +index 2daf8dc51b78f4466f41136c2d99be6dc0981eb2..2696abd88be8e4c0e5789c2c1364cc37c6eab484 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1936,6 +1936,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser diff --git a/patches/server/0247-Dolphins-naturally-aggressive-to-players-chance.patch b/patches/server/0246-Dolphins-naturally-aggressive-to-players-chance.patch similarity index 100% rename from patches/server/0247-Dolphins-naturally-aggressive-to-players-chance.patch rename to patches/server/0246-Dolphins-naturally-aggressive-to-players-chance.patch diff --git a/patches/server/0248-Cows-naturally-aggressive-to-players-chance.patch b/patches/server/0247-Cows-naturally-aggressive-to-players-chance.patch similarity index 100% rename from patches/server/0248-Cows-naturally-aggressive-to-players-chance.patch rename to patches/server/0247-Cows-naturally-aggressive-to-players-chance.patch diff --git a/patches/server/0249-Option-for-beds-to-explode-on-villager-sleep.patch b/patches/server/0248-Option-for-beds-to-explode-on-villager-sleep.patch similarity index 100% rename from patches/server/0249-Option-for-beds-to-explode-on-villager-sleep.patch rename to patches/server/0248-Option-for-beds-to-explode-on-villager-sleep.patch diff --git a/patches/server/0250-horses-tempted-by-gold-config.patch b/patches/server/0249-horses-tempted-by-gold-config.patch similarity index 100% rename from patches/server/0250-horses-tempted-by-gold-config.patch rename to patches/server/0249-horses-tempted-by-gold-config.patch diff --git a/patches/server/0251-llama-tempted-by-hay-config.patch b/patches/server/0250-llama-tempted-by-hay-config.patch similarity index 100% rename from patches/server/0251-llama-tempted-by-hay-config.patch rename to patches/server/0250-llama-tempted-by-hay-config.patch diff --git a/patches/server/0252-Halloween-options-and-optimizations.patch b/patches/server/0251-Halloween-options-and-optimizations.patch similarity index 98% rename from patches/server/0252-Halloween-options-and-optimizations.patch rename to patches/server/0251-Halloween-options-and-optimizations.patch index 0d16f88cc..ef70d4875 100644 --- a/patches/server/0252-Halloween-options-and-optimizations.patch +++ b/patches/server/0251-Halloween-options-and-optimizations.patch @@ -43,7 +43,7 @@ index 5b19d8db09867791782c899d41d314c511f6c8a2..3d8b1b8d49af74babf628231345ac1c1 this.armorDropChances[EquipmentSlot.HEAD.getIndex()] = 0.0F; } diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java -index 4ccc743cba68f9af2d1663a28bfe94d48e478c97..52820c4f09e5e6f542c8835ea5be7cfb962a5df4 100644 +index 6c253894866b870e79e110efd7eaf306aa5d7af5..d5ecaf051ec86b5dd9d1fde6af5bf6cd445dccc0 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java +++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java @@ -568,11 +568,7 @@ public class Zombie extends Monster { diff --git a/patches/server/0253-Config-for-Grindstones-ignoring-curses.patch b/patches/server/0252-Config-for-Grindstones-ignoring-curses.patch similarity index 100% rename from patches/server/0253-Config-for-Grindstones-ignoring-curses.patch rename to patches/server/0252-Config-for-Grindstones-ignoring-curses.patch diff --git a/patches/server/0254-UPnP-Port-Forwarding.patch b/patches/server/0253-UPnP-Port-Forwarding.patch similarity index 96% rename from patches/server/0254-UPnP-Port-Forwarding.patch rename to patches/server/0253-UPnP-Port-Forwarding.patch index b5309e526..03ed7b006 100644 --- a/patches/server/0254-UPnP-Port-Forwarding.patch +++ b/patches/server/0253-UPnP-Port-Forwarding.patch @@ -5,7 +5,7 @@ Subject: [PATCH] UPnP Port Forwarding diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 80e81d4482f4e4451150d3d3cc8fe244be35d6e9..f415108a98fdb0c4e1c569452e387c3defa4211f 100644 +index d71b5595dc2795f48007c07ce59bb5b19a80ff52..bf747e14837699cbd95819bc2a98cdf4057f0137 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -311,6 +311,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop