From 26e5f080f23b11dddd70dfcb10f39d81c392458f Mon Sep 17 00:00:00 2001 From: Encode42 Date: Thu, 9 Dec 2021 22:46:12 -0500 Subject: [PATCH] Updated Upstream (Paper) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Upstream has released updates that appear to apply and compile correctly Paper Changes: PaperMC/Paper@b4192fd fix NPE from changes in e4358b82171 PaperMC/Paper@5b6445a Revert "fix NPE from changes in e4358b82171" PaperMC/Paper@323c087 Revert "#686: Fix contains for default section generating real sections" PaperMC/Paper@c837002 Fix client world difficulty sync issue (#7035) PaperMC/Paper@a4782f7 [ci skip] fixup indent PaperMC/Paper@83aee0f [ci skip] Clarify setSize consequences for Slimes (#7036) PaperMC/Paper@7c8fdc1 Add dropped hunk from mid-tick tasks (#7034) PaperMC/Paper@fd263ef Fix empty/null chunk section check in LevelChunk#getBlockData, rename… (#7039) PaperMC/Paper@b8d486c Create workflow to add new PRs to the PR Queue project (#6918) PaperMC/Paper@a50e273 Include axolotls in affected entities for water splash potions (#7024) PaperMC/Paper@af95df8 Port Actually unload POI data from Tuinity 1.16 (#7044) PaperMC/Paper@04897b1 [ci skip] Revert "Create workflow to add new PRs to the PR Queue project (#6918)" (#7046) PaperMC/Paper@b4a77a8 Updated Upstream (Bukkit/CraftBukkit) (#7045) PaperMC/Paper@0e25db2 Fix mis-placed processEnchantOrder from 1.18 update (#7052) PaperMC/Paper@53d026e Fix unused EntitySectionStorage#getEntities(AABB, Consumer) method being broken PaperMC/Paper@772e880 Fix light propagation in high y sections PaperMC/Paper@33ea869 Bump Starlight light version PaperMC/Paper@74fd151 Fix entity equipment on cancellation of EntityDeathEvent (#5740) PaperMC/Paper@758e2a7 Fix bad ticking checks for blocks PaperMC/Paper@0e91b6a Return 0 for light values if a dimenion does not have them PaperMC/Paper@188a8df Fix ChunkSnapshot#isSectionEmpty(int) PaperMC/Paper@bbc7451 Fix issue with snapshotted biomes in last commit PaperMC/Paper@b475c6a Backport log4j fix PaperMC/Paper@4e355c4 Updated Upstream (CraftBukkit) PaperMC/Paper@dce79f3 Update Log4J (#7069) --- gradle.properties | 2 +- patches/server/0002-Rebrand.patch | 10 +- patches/server/0003-Purpur-config-files.patch | 6 +- patches/server/0006-Ridables.patch | 42 +- ...-Configurable-entity-base-attributes.patch | 10 +- patches/server/0010-Llama-API.patch | 16 +- .../0014-LivingEntity-safeFallDistance.patch | 8 +- .../0026-Disable-outdated-build-check.patch | 4 +- ...able-loot-drops-on-death-by-cramming.patch | 12 +- ...0049-Fix-the-dead-lagging-the-server.patch | 6 +- .../0056-Allow-leashing-villagers.patch | 8 +- ...urable-void-damage-height-and-damage.patch | 8 +- ...ispenser-curse-of-binding-protection.patch | 6 +- ...g-mends-most-damages-equipment-first.patch | 6 +- .../0067-Implement-elytra-settings.patch | 12 +- .../server/0068-Item-entity-immunities.patch | 8 +- patches/server/0079-Entity-lifespan.patch | 6 +- ...ion-to-disable-certain-block-updates.patch | 16 +- ...e-config-options-per-projectile-type.patch | 6 +- ...07-Furnace-uses-lava-from-underneath.patch | 6 +- ...e-entity-breeding-times-configurable.patch | 38 +- ...16-Changeable-Mob-Left-Handed-Chance.patch | 6 +- ...iefing-bypass-to-everything-affected.patch | 14 +- ...oggle-for-water-sensitive-mob-damage.patch | 8 +- patches/server/0143-One-Punch-Man.patch | 6 +- ...151-Config-to-disable-Llama-caravans.patch | 6 +- ...188-API-for-any-mob-to-burn-daylight.patch | 10 +- ...h => 0189-Config-MobEffect-by-world.patch} | 2 +- ...advancement-triggers-on-entity-death.patch | 197 --------- ...eacon-Activation-Range-Configurable.patch} | 2 +- ...0191-Add-toggle-for-sand-duping-fix.patch} | 2 +- ...gle-for-end-portal-safe-teleporting.patch} | 4 +- ...atch => 0193-Flying-Fall-Damage-API.patch} | 2 +- ...ke-lightning-rod-range-configurable.patch} | 2 +- ...ng-food-fills-hunger-bar-completely.patch} | 6 +- ...ayer-join-full-server-by-permission.patch} | 0 ...ermission-bypass-for-portal-waiting.patch} | 2 +- ...8-Shulker-spawn-from-bullet-options.patch} | 2 +- ...ating-glow-berries-adds-glow-effect.patch} | 2 +- ...-Option-to-make-drowned-break-doors.patch} | 2 +- ...nfigurable-hunger-starvation-damage.patch} | 2 +- ...-System.out-calls-to-plugin-loggers.patch} | 0 ...h => 0203-Armor-click-equip-options.patch} | 4 +- ...nd.patch => 0204-Add-uptime-command.patch} | 0 ...atch => 0205-Structure-seed-options.patch} | 0 ...tch => 0206-Tool-actionable-options.patch} | 2 +- ...7-Store-placer-on-Block-when-placed.patch} | 6 +- ...oner-API.patch => 0208-Summoner-API.patch} | 0 ...mizable-sleeping-actionbar-messages.patch} | 2 +- ...-shulker-box-items-from-dropping-co.patch} | 2 +- ...211-Silk-touchable-budding-amethyst.patch} | 2 +- ...tch => 0212-Big-dripleaf-tilt-delay.patch} | 2 +- ...0213-Player-ridable-in-water-option.patch} | 6 +- ...-Enderman-teleport-on-projectile-hi.patch} | 4 +- ...d.patch => 0215-Add-compass-command.patch} | 4 +- ...nt-horses-from-standing-with-riders.patch} | 2 +- ...h => 0217-Toggle-for-kinetic-damage.patch} | 6 +- ...-Option-for-disable-observer-clocks.patch} | 2 +- ...zeable-Zombie-Villager-curing-times.patch} | 2 +- ...-Option-for-sponges-to-work-on-lava.patch} | 2 +- ...221-Toggle-for-Wither-s-spawn-sound.patch} | 2 +- ...-breaks-from-solid-neighbors-config.patch} | 2 +- ...move-curse-of-binding-with-weakness.patch} | 2 +- ...0224-Conduit-behavior-configuration.patch} | 2 +- ...patch => 0225-Cauldron-fill-chances.patch} | 2 +- ...o-allow-mobs-to-pathfind-over-rails.patch} | 4 +- ...mpt-parameters-to-resource-pack-api.patch} | 0 ... 0228-Shulker-change-color-with-dye.patch} | 2 +- ... => 0229-Extended-OfflinePlayer-API.patch} | 0 ...he-ability-to-add-combustible-items.patch} | 2 +- ...in-and-thunder-should-stop-on-sleep.patch} | 4 +- ...-blocks-to-grow-into-trees-naturall.patch} | 2 +- ...-right-click-to-use-exp-for-mending.patch} | 6 +- ...urally-aggressive-to-players-chance.patch} | 2 +- ...urally-aggressive-to-players-chance.patch} | 2 +- ...r-beds-to-explode-on-villager-sleep.patch} | 2 +- ...Halloween-options-and-optimizations.patch} | 2 +- ...fig-for-Grindstones-ignoring-curses.patch} | 0 ....patch => 0239-UPnP-Port-Forwarding.patch} | 0 ...Campfire-option-for-lit-when-placed.patch} | 2 +- ...tinguish-fire-blocks-with-snowballs.patch} | 2 +- ...on-to-disable-zombie-villagers-cure.patch} | 2 +- ...nt-BlockEntity-Lore-and-DisplayName.patch} | 2 +- ...tch => 0244-Signs-allow-color-codes.patch} | 6 +- ...twisting-vines-configurable-max-gro.patch} | 2 +- .../0247-Backport-log4j-2.15.0-bugfix.patch | 384 ------------------ scripts/upstreamCommit.sh | 26 ++ 87 files changed, 236 insertions(+), 789 deletions(-) rename patches/server/{0190-Config-MobEffect-by-world.patch => 0189-Config-MobEffect-by-world.patch} (98%) delete mode 100644 patches/server/0189-Fix-advancement-triggers-on-entity-death.patch rename patches/server/{0191-Beacon-Activation-Range-Configurable.patch => 0190-Beacon-Activation-Range-Configurable.patch} (96%) rename patches/server/{0192-Add-toggle-for-sand-duping-fix.patch => 0191-Add-toggle-for-sand-duping-fix.patch} (95%) rename patches/server/{0193-Add-toggle-for-end-portal-safe-teleporting.patch => 0192-Add-toggle-for-end-portal-safe-teleporting.patch} (94%) rename patches/server/{0194-Flying-Fall-Damage-API.patch => 0193-Flying-Fall-Damage-API.patch} (95%) rename patches/server/{0195-Make-lightning-rod-range-configurable.patch => 0194-Make-lightning-rod-range-configurable.patch} (96%) rename patches/server/{0196-Burp-after-eating-food-fills-hunger-bar-completely.patch => 0195-Burp-after-eating-food-fills-hunger-bar-completely.patch} (94%) rename patches/server/{0197-Allow-player-join-full-server-by-permission.patch => 0196-Allow-player-join-full-server-by-permission.patch} (100%) rename patches/server/{0198-Add-permission-bypass-for-portal-waiting.patch => 0197-Add-permission-bypass-for-portal-waiting.patch} (94%) rename patches/server/{0199-Shulker-spawn-from-bullet-options.patch => 0198-Shulker-spawn-from-bullet-options.patch} (98%) rename patches/server/{0200-Eating-glow-berries-adds-glow-effect.patch => 0199-Eating-glow-berries-adds-glow-effect.patch} (97%) rename patches/server/{0201-Option-to-make-drowned-break-doors.patch => 0200-Option-to-make-drowned-break-doors.patch} (97%) rename patches/server/{0202-Configurable-hunger-starvation-damage.patch => 0201-Configurable-hunger-starvation-damage.patch} (95%) rename patches/server/{0203-Redirect-System.out-calls-to-plugin-loggers.patch => 0202-Redirect-System.out-calls-to-plugin-loggers.patch} (100%) rename patches/server/{0204-Armor-click-equip-options.patch => 0203-Armor-click-equip-options.patch} (96%) rename patches/server/{0205-Add-uptime-command.patch => 0204-Add-uptime-command.patch} (100%) rename patches/server/{0206-Structure-seed-options.patch => 0205-Structure-seed-options.patch} (100%) rename patches/server/{0207-Tool-actionable-options.patch => 0206-Tool-actionable-options.patch} (99%) rename patches/server/{0208-Store-placer-on-Block-when-placed.patch => 0207-Store-placer-on-Block-when-placed.patch} (92%) rename patches/server/{0209-Summoner-API.patch => 0208-Summoner-API.patch} (100%) rename patches/server/{0210-Customizable-sleeping-actionbar-messages.patch => 0209-Customizable-sleeping-actionbar-messages.patch} (97%) rename patches/server/{0211-option-to-disable-shulker-box-items-from-dropping-co.patch => 0210-option-to-disable-shulker-box-items-from-dropping-co.patch} (96%) rename patches/server/{0212-Silk-touchable-budding-amethyst.patch => 0211-Silk-touchable-budding-amethyst.patch} (96%) rename patches/server/{0213-Big-dripleaf-tilt-delay.patch => 0212-Big-dripleaf-tilt-delay.patch} (96%) rename patches/server/{0214-Player-ridable-in-water-option.patch => 0213-Player-ridable-in-water-option.patch} (89%) rename patches/server/{0215-Config-to-disable-Enderman-teleport-on-projectile-hi.patch => 0214-Config-to-disable-Enderman-teleport-on-projectile-hi.patch} (93%) rename patches/server/{0216-Add-compass-command.patch => 0215-Add-compass-command.patch} (98%) rename patches/server/{0217-Config-to-prevent-horses-from-standing-with-riders.patch => 0216-Config-to-prevent-horses-from-standing-with-riders.patch} (96%) rename patches/server/{0218-Toggle-for-kinetic-damage.patch => 0217-Toggle-for-kinetic-damage.patch} (89%) rename patches/server/{0219-Add-Option-for-disable-observer-clocks.patch => 0218-Add-Option-for-disable-observer-clocks.patch} (95%) rename patches/server/{0220-Customizeable-Zombie-Villager-curing-times.patch => 0219-Customizeable-Zombie-Villager-curing-times.patch} (96%) rename patches/server/{0221-Option-for-sponges-to-work-on-lava.patch => 0220-Option-for-sponges-to-work-on-lava.patch} (95%) rename patches/server/{0222-Toggle-for-Wither-s-spawn-sound.patch => 0221-Toggle-for-Wither-s-spawn-sound.patch} (96%) rename patches/server/{0223-Cactus-breaks-from-solid-neighbors-config.patch => 0222-Cactus-breaks-from-solid-neighbors-config.patch} (95%) rename patches/server/{0224-Config-to-remove-curse-of-binding-with-weakness.patch => 0223-Config-to-remove-curse-of-binding-with-weakness.patch} (96%) rename patches/server/{0225-Conduit-behavior-configuration.patch => 0224-Conduit-behavior-configuration.patch} (97%) rename patches/server/{0226-Cauldron-fill-chances.patch => 0225-Cauldron-fill-chances.patch} (95%) rename patches/server/{0227-Config-to-allow-mobs-to-pathfind-over-rails.patch => 0226-Config-to-allow-mobs-to-pathfind-over-rails.patch} (93%) rename patches/server/{0228-Add-force-and-prompt-parameters-to-resource-pack-api.patch => 0227-Add-force-and-prompt-parameters-to-resource-pack-api.patch} (100%) rename patches/server/{0229-Shulker-change-color-with-dye.patch => 0228-Shulker-change-color-with-dye.patch} (97%) rename patches/server/{0230-Extended-OfflinePlayer-API.patch => 0229-Extended-OfflinePlayer-API.patch} (100%) rename patches/server/{0231-Added-the-ability-to-add-combustible-items.patch => 0230-Added-the-ability-to-add-combustible-items.patch} (97%) rename patches/server/{0232-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch => 0231-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch} (94%) rename patches/server/{0233-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch => 0232-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch} (98%) rename patches/server/{0234-Shift-right-click-to-use-exp-for-mending.patch => 0233-Shift-right-click-to-use-exp-for-mending.patch} (94%) rename patches/server/{0235-Dolphins-naturally-aggressive-to-players-chance.patch => 0234-Dolphins-naturally-aggressive-to-players-chance.patch} (98%) rename patches/server/{0236-Cows-naturally-aggressive-to-players-chance.patch => 0235-Cows-naturally-aggressive-to-players-chance.patch} (98%) rename patches/server/{0237-Option-for-beds-to-explode-on-villager-sleep.patch => 0236-Option-for-beds-to-explode-on-villager-sleep.patch} (96%) rename patches/server/{0238-Halloween-options-and-optimizations.patch => 0237-Halloween-options-and-optimizations.patch} (98%) rename patches/server/{0239-Config-for-Grindstones-ignoring-curses.patch => 0238-Config-for-Grindstones-ignoring-curses.patch} (100%) rename patches/server/{0240-UPnP-Port-Forwarding.patch => 0239-UPnP-Port-Forwarding.patch} (100%) rename patches/server/{0241-Campfire-option-for-lit-when-placed.patch => 0240-Campfire-option-for-lit-when-placed.patch} (96%) rename patches/server/{0242-options-to-extinguish-fire-blocks-with-snowballs.patch => 0241-options-to-extinguish-fire-blocks-with-snowballs.patch} (98%) rename patches/server/{0243-Add-option-to-disable-zombie-villagers-cure.patch => 0242-Add-option-to-disable-zombie-villagers-cure.patch} (96%) rename patches/server/{0244-Persistent-BlockEntity-Lore-and-DisplayName.patch => 0243-Persistent-BlockEntity-Lore-and-DisplayName.patch} (99%) rename patches/server/{0245-Signs-allow-color-codes.patch => 0244-Signs-allow-color-codes.patch} (94%) rename patches/server/{0246-Kelp-weeping-and-twisting-vines-configurable-max-gro.patch => 0245-Kelp-weeping-and-twisting-vines-configurable-max-gro.patch} (98%) delete mode 100644 patches/server/0247-Backport-log4j-2.15.0-bugfix.patch create mode 100755 scripts/upstreamCommit.sh diff --git a/gradle.properties b/gradle.properties index 73ae042df..8e25bf2a9 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,7 +4,7 @@ version = 1.18-R0.1-SNAPSHOT mcVersion = 1.18 packageVersion = 1_18_R1 -paperCommit = 6b072ee589c809298f272b1f7d611190d2f94e45 +paperCommit = dce79f333c1f3f60335163d8fe1050d424722a92 org.gradle.caching = true org.gradle.parallel = true diff --git a/patches/server/0002-Rebrand.patch b/patches/server/0002-Rebrand.patch index 0f1c7012b..ac3121718 100644 --- a/patches/server/0002-Rebrand.patch +++ b/patches/server/0002-Rebrand.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Rebrand diff --git a/build.gradle.kts b/build.gradle.kts -index 5678a9f8d2aa8a7afbc5729570ec297b12acf75d..de15de77c4d7020b7fef00179cab3a71daed2c5d 100644 +index ed05c831fcf8dfb8669ce57248b469fa9c9edef5..a387cbf3652a84028dc8be1da7f10c4bb84abf3d 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -18,8 +18,12 @@ repositories { @@ -23,7 +23,7 @@ index 5678a9f8d2aa8a7afbc5729570ec297b12acf75d..de15de77c4d7020b7fef00179cab3a71 // Paper start implementation("org.jline:jline-terminal-jansi:3.21.0") implementation("net.minecrell:terminalconsoleappender:1.3.0") -@@ -49,6 +53,8 @@ dependencies { +@@ -50,6 +54,8 @@ dependencies { isTransitive = false } // Paper end @@ -32,7 +32,7 @@ index 5678a9f8d2aa8a7afbc5729570ec297b12acf75d..de15de77c4d7020b7fef00179cab3a71 testImplementation("io.github.classgraph:classgraph:4.8.47") // Paper - mob goal test testImplementation("junit:junit:4.13.1") -@@ -67,7 +73,7 @@ tasks.jar { +@@ -68,7 +74,7 @@ tasks.jar { attributes( "Main-Class" to "org.bukkit.craftbukkit.Main", "Implementation-Title" to "CraftBukkit", @@ -41,7 +41,7 @@ index 5678a9f8d2aa8a7afbc5729570ec297b12acf75d..de15de77c4d7020b7fef00179cab3a71 "Implementation-Vendor" to date, // Paper "Specification-Title" to "Bukkit", "Specification-Version" to project.version, -@@ -155,7 +161,7 @@ fun TaskContainer.registerRunTask( +@@ -156,7 +162,7 @@ fun TaskContainer.registerRunTask( name: String, block: JavaExec.() -> Unit ): TaskProvider = register(name) { @@ -51,7 +51,7 @@ index 5678a9f8d2aa8a7afbc5729570ec297b12acf75d..de15de77c4d7020b7fef00179cab3a71 standardInput = System.`in` workingDir = rootProject.layout.projectDirectory diff --git a/src/main/java/com/destroystokyo/paper/PaperVersionFetcher.java b/src/main/java/com/destroystokyo/paper/PaperVersionFetcher.java -index ece77f5ea4b14bbed7c070131b3251ea86764538..c4a9d6f80285e403c0c18fca4bb85d722dd6e357 100644 +index ece77f5ea4b14bbed7c070131b3251ea86764538..3054fe189b0cf771697c896f7def32892edc4925 100644 --- a/src/main/java/com/destroystokyo/paper/PaperVersionFetcher.java +++ b/src/main/java/com/destroystokyo/paper/PaperVersionFetcher.java @@ -19,8 +19,7 @@ import java.util.stream.StreamSupport; diff --git a/patches/server/0003-Purpur-config-files.patch b/patches/server/0003-Purpur-config-files.patch index 6e3ea0fb8..1a55c0ce4 100644 --- a/patches/server/0003-Purpur-config-files.patch +++ b/patches/server/0003-Purpur-config-files.patch @@ -85,7 +85,7 @@ index fd3d3e22613511a42f7fc343079b081c72ff3f61..8bf98d8f8e9f0baaf203a9e8d1868323 io.papermc.paper.util.ObfHelper.INSTANCE.getClass(); // load mappings for stacktrace deobf and etc. io.papermc.paper.brigadier.PaperBrigadierProviderImpl.INSTANCE.getClass(); // init PaperBrigadierProvider diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index c2220d5157d3065a256cd17410760c6aedf24987..729d11569e59e78a0fda67697fe9e27adefff730 100644 +index 4247dcb003626535dbb997f48ad9f61380bd17e9..03a4c5fa746033825c26a031fbf79f721be6fa84 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -169,6 +169,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -153,10 +153,10 @@ index 310c3e1590465412af6905eab33193c6bf5e5e47..549577e31840ce5f32adb2c0909b915d public void restart() { org.spigotmc.RestartCommand.restart(); diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 450518903c0a10301b177d8dd7fe05aca3b8b37e..a10cebac752fdf5186eb86bd314f19313864fee0 100644 +index deb33456b5b194a662cbdbacf17752c87f2cecaf..8806d26c8d121194dbb8b71edc92e6782a5ea2bb 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java -@@ -153,6 +153,14 @@ public class Main { +@@ -155,6 +155,14 @@ public class Main { .describedAs("Jar file"); // Paper end diff --git a/patches/server/0006-Ridables.patch b/patches/server/0006-Ridables.patch index 4ab244abc..0a1ab47a5 100644 --- a/patches/server/0006-Ridables.patch +++ b/patches/server/0006-Ridables.patch @@ -34,7 +34,7 @@ index 7ad6b7b3094156477570b738026d88cb0f0f4f9e..973ea150c2f8ac136736b4ae9f505491 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 e371ffb1f88e08883a1a2460260ff368c0cfe853..a2185651b35fdf6563b20ec8ea8e2b57f75f9dd5 100644 +index a770b5abc7fc66b6de9f17dde192447686e70f4a..3035f1d357248f25c01ae8e20ca689bfa4130d80 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -208,6 +208,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -46,7 +46,7 @@ index e371ffb1f88e08883a1a2460260ff368c0cfe853..a2185651b35fdf6563b20ec8ea8e2b57 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 3e91bb85adc33434b278bf2ca83164dae3f7a6e5..493c0540c02075d081a5ce404e480625632bd1a4 100644 +index c516ad43cac2419bcf63e11eaa183785b462de5c..618595add09eef5381307ba2fe154adfc97b2a0e 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -662,6 +662,15 @@ public class ServerPlayer extends Player { @@ -73,7 +73,7 @@ index 3e91bb85adc33434b278bf2ca83164dae3f7a6e5..493c0540c02075d081a5ce404e480625 + } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 93a49a423731b31b42e0d240e71f9fecb9ec3c18..cbca17bc6890319fd8df725e53626b7a1e9c4576 100644 +index 0ecae30242ce098267832633ed8cd28aedcd908d..104601ee18e9bbc4c89d33d58193d0c3799ffd56 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2435,6 +2435,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser @@ -86,7 +86,7 @@ index 93a49a423731b31b42e0d240e71f9fecb9ec3c18..cbca17bc6890319fd8df725e53626b7a 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 390f8398af00b770d48d274970b8b164925b63b5..a33c9089d96ab8e66557be7880e562c88b5d56f9 100644 +index a7a0d3f29ad3f07236905a764466400e7a22d8d6..5c1a9dc4eab3ecdf7f8ea35733717a3de501d85a 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -292,7 +292,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i @@ -192,7 +192,7 @@ index 645c1dc9bd09b135a641759c76ce8d957b9bd488..03adc3b746e05bb4b0514ba4a66c101b 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 93b616d1b95e9c112dcd4b6fda9bd467177e6dec..6953ff6f4f1b607f9294ca37022226fde260150b 100644 +index fe7e22d9a69d69dfcce63faa28e90945ea45fc49..76209fd395c65a30201d731448f870610a1e27f2 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -217,9 +217,9 @@ public abstract class LivingEntity extends Entity { @@ -208,7 +208,7 @@ index 93b616d1b95e9c112dcd4b6fda9bd467177e6dec..6953ff6f4f1b607f9294ca37022226fd protected int lerpSteps; protected double lerpX; protected double lerpY; -@@ -2571,7 +2571,7 @@ public abstract class LivingEntity extends Entity { +@@ -2585,7 +2585,7 @@ public abstract class LivingEntity extends Entity { } protected long lastJumpTime = 0L; // Paper @@ -217,7 +217,7 @@ index 93b616d1b95e9c112dcd4b6fda9bd467177e6dec..6953ff6f4f1b607f9294ca37022226fd double d0 = (double) this.getJumpPower() + this.getJumpBoostPower(); Vec3 vec3d = this.getDeltaMovement(); // Paper start -@@ -3307,8 +3307,10 @@ public abstract class LivingEntity extends Entity { +@@ -3321,8 +3321,10 @@ public abstract class LivingEntity extends Entity { this.pushEntities(); this.level.getProfiler().pop(); // Paper start @@ -230,7 +230,7 @@ index 93b616d1b95e9c112dcd4b6fda9bd467177e6dec..6953ff6f4f1b607f9294ca37022226fd Location from = new Location(this.level.getWorld(), this.xo, this.yo, this.zo, this.yRotO, this.xRotO); Location to = new Location (this.level.getWorld(), this.getX(), this.getY(), this.getZ(), this.getYRot(), this.getXRot()); io.papermc.paper.event.entity.EntityMoveEvent event = new io.papermc.paper.event.entity.EntityMoveEvent(this.getBukkitLivingEntity(), from, to.clone()); -@@ -3318,6 +3320,21 @@ public abstract class LivingEntity extends Entity { +@@ -3332,6 +3334,21 @@ public abstract class LivingEntity extends Entity { absMoveTo(event.getTo().getX(), event.getTo().getY(), event.getTo().getZ(), event.getTo().getYaw(), event.getTo().getPitch()); } } @@ -253,7 +253,7 @@ index 93b616d1b95e9c112dcd4b6fda9bd467177e6dec..6953ff6f4f1b607f9294ca37022226fd // 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 0b46066d35d9bb38d98a9d6e5ca8dbdc0ba1dc5a..2b8c33fe5a34f2ed66630e2d6fc06caf2cd769a1 100644 +index 8200e33ed4ebcae8a27cccf2a28daba5e10cf75d..b7e3091e9ce5b634c73ac573cf205278507270d5 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -143,6 +143,8 @@ public abstract class Mob extends LivingEntity { @@ -265,7 +265,7 @@ index 0b46066d35d9bb38d98a9d6e5ca8dbdc0ba1dc5a..2b8c33fe5a34f2ed66630e2d6fc06caf this.jumpControl = new JumpControl(this); this.bodyRotationControl = this.createBodyControl(); this.navigation = this.createNavigation(world); -@@ -1298,7 +1300,7 @@ public abstract class Mob extends LivingEntity { +@@ -1300,7 +1302,7 @@ public abstract class Mob extends LivingEntity { protected void onOffspringSpawnedFromEgg(Player player, Mob child) {} protected InteractionResult mobInteract(Player player, InteractionHand hand) { @@ -274,7 +274,7 @@ index 0b46066d35d9bb38d98a9d6e5ca8dbdc0ba1dc5a..2b8c33fe5a34f2ed66630e2d6fc06caf } public boolean isWithinRestriction() { -@@ -1659,4 +1661,52 @@ public abstract class Mob extends LivingEntity { +@@ -1661,4 +1663,52 @@ public abstract class Mob extends LivingEntity { return itemmonsteregg == null ? null : new ItemStack(itemmonsteregg); } @@ -2168,10 +2168,10 @@ index 7af7ff4accbcc1b28d96c94e9c3301142541f4f0..a91152df3d443d70b1aa9aff97b3746e protected void randomizeAttributes() { this.getAttribute(Attributes.MAX_HEALTH).setBaseValue((double)this.generateRandomMaxHealth()); diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java -index c4b4adc11179682d19be69d01ebd5f45e5f0e193..fb4af69075323a1d6c5e252115d5973dbdcadcd2 100644 +index 9a401b3e8db61d0b92ca273db2eb84efc4dfa8fc..3dfab1062824eee91280d8de4cd50be519bf6176 100644 --- a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java +++ b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java -@@ -69,7 +69,46 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob { +@@ -72,7 +72,46 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob { public Llama(EntityType type, Level world) { super(type, world); @@ -2218,15 +2218,15 @@ index c4b4adc11179682d19be69d01ebd5f45e5f0e193..fb4af69075323a1d6c5e252115d5973d public boolean isTraderLlama() { return false; -@@ -114,6 +153,7 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob { +@@ -124,6 +163,7 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob { @Override protected void registerGoals() { this.goalSelector.addGoal(0, new FloatGoal(this)); + this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HorseHasRider(this)); // Purpur this.goalSelector.addGoal(1, new RunAroundLikeCrazyGoal(this, 1.2D)); - this.goalSelector.addGoal(2, new LlamaFollowCaravanGoal(this, (double)2.1F)); + this.goalSelector.addGoal(2, new LlamaFollowCaravanGoal(this, 2.0999999046325684D)); this.goalSelector.addGoal(3, new RangedAttackGoal(this, 1.25D, 40, 20.0F)); -@@ -124,6 +164,7 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob { +@@ -134,6 +174,7 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob { this.goalSelector.addGoal(7, new WaterAvoidingRandomStrollGoal(this, 0.7D)); this.goalSelector.addGoal(8, new LookAtPlayerGoal(this, Player.class, 6.0F)); this.goalSelector.addGoal(9, new RandomLookAroundGoal(this)); @@ -2979,7 +2979,7 @@ index ee9194ffb3cc6d660d4f99a3914ede7e4a3643fe..1f789b1d481234cafaa6e75c36a272bb return Guardian.createAttributes().add(Attributes.MOVEMENT_SPEED, 0.30000001192092896D).add(Attributes.ATTACK_DAMAGE, 8.0D).add(Attributes.MAX_HEALTH, 80.0D); } diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java -index cfdb631500962ec19007db55bd4453687b91c2f8..3ab601ded08c435825202b295bbdb06eb26ce730 100644 +index d47002d45dabd66f38d25d398d8943f4b911cdc5..3e14ad3c66ff2e14e9f746a0d03bc34e7a48c1c8 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java @@ -88,9 +88,22 @@ public class EnderMan extends Monster implements NeutralMob { @@ -4538,7 +4538,7 @@ index 5aae88e20bc04560d6ad52cfcaa872d28bfcee8f..1ba59900ddf403453aeb4f82b097feaa + // Purpur end } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 5395dbf1c9bedc1e3e13f6661affdfd94fded502..e8cd2f1cbc6d18cfa7aaa287d28cdeb3b7ee1954 100644 +index c667baa2da8222eb66344c8f1cc0fed416c4df01..7be3a8ead9fc634ce990b689ac2cd2ae805030ea 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -542,6 +542,15 @@ public class CraftEventFactory { @@ -4557,7 +4557,7 @@ index 5395dbf1c9bedc1e3e13f6661affdfd94fded502..e8cd2f1cbc6d18cfa7aaa287d28cdeb3 return event; } -@@ -965,6 +974,7 @@ public class CraftEventFactory { +@@ -971,6 +980,7 @@ public class CraftEventFactory { damageCause = DamageCause.ENTITY_EXPLOSION; } event = new EntityDamageByEntityEvent(damager.getBukkitEntity(), entity.getBukkitEntity(), damageCause, modifiers, modifierFunctions, source.isCritical()); // Paper - add critical damage API @@ -4565,7 +4565,7 @@ index 5395dbf1c9bedc1e3e13f6661affdfd94fded502..e8cd2f1cbc6d18cfa7aaa287d28cdeb3 } event.setCancelled(cancelled); -@@ -1050,6 +1060,7 @@ public class CraftEventFactory { +@@ -1056,6 +1066,7 @@ public class CraftEventFactory { if (!event.isCancelled()) { event.getEntity().setLastDamageCause(event); } @@ -4573,7 +4573,7 @@ index 5395dbf1c9bedc1e3e13f6661affdfd94fded502..e8cd2f1cbc6d18cfa7aaa287d28cdeb3 return event; } -@@ -1109,6 +1120,7 @@ public class CraftEventFactory { +@@ -1115,6 +1126,7 @@ public class CraftEventFactory { EntityDamageEvent event; if (damager != null) { event = new EntityDamageByEntityEvent(damager.getBukkitEntity(), damagee.getBukkitEntity(), cause, modifiers, modifierFunctions, critical); // Paper - add critical damage API diff --git a/patches/server/0007-Configurable-entity-base-attributes.patch b/patches/server/0007-Configurable-entity-base-attributes.patch index 2eafe7f87..f1d0d41e8 100644 --- a/patches/server/0007-Configurable-entity-base-attributes.patch +++ b/patches/server/0007-Configurable-entity-base-attributes.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configurable entity base attributes diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index a33c9089d96ab8e66557be7880e562c88b5d56f9..52d8c713a6653f5b28b63a5ad1769a471fe5aaa9 100644 +index 5c1a9dc4eab3ecdf7f8ea35733717a3de501d85a..7af5b443983d557199100c0ab5044e96ebf52d9b 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -149,7 +149,7 @@ import org.bukkit.plugin.PluginManager; @@ -34,7 +34,7 @@ index 03adc3b746e05bb4b0514ba4a66c101b9742ceed..ec261673ac444fd5de9c8556cde5d788 @Override diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 6953ff6f4f1b607f9294ca37022226fde260150b..c2a71319be3340d50bd8b15f39ae8d4937aeb7ac 100644 +index 76209fd395c65a30201d731448f870610a1e27f2..77cde266fcd6e7d0c10fdcb5380bc80811a05016 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -285,6 +285,7 @@ public abstract class LivingEntity extends Entity { @@ -589,10 +589,10 @@ index a91152df3d443d70b1aa9aff97b3746e0331c0a6..9f7203608e15fdce1bfbaf4198387687 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java -index fb4af69075323a1d6c5e252115d5973dbdcadcd2..7a2a8365a8bb5b0f497b7f10d351f535a683cd96 100644 +index 3dfab1062824eee91280d8de4cd50be519bf6176..6e09dbeb6478fa32d8c46da30e45f8c64f214e30 100644 --- a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java +++ b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java -@@ -108,6 +108,21 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob { +@@ -111,6 +111,21 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob { public boolean isSaddled() { return super.isSaddled() || (isTamed() && getSwag() != null); } @@ -845,7 +845,7 @@ index 1f789b1d481234cafaa6e75c36a272bbd064482e..e25374b06e3babd93cd5bbdd58ea401a public static AttributeSupplier.Builder createAttributes() { diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java -index 3ab601ded08c435825202b295bbdb06eb26ce730..357a7cdcd98cc2c840ca3f9c164d66cfd7565138 100644 +index 3e14ad3c66ff2e14e9f746a0d03bc34e7a48c1c8..e5ddb64d1a212266c05170359e27927a5f9e243e 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java @@ -98,6 +98,11 @@ public class EnderMan extends Monster implements NeutralMob { diff --git a/patches/server/0010-Llama-API.patch b/patches/server/0010-Llama-API.patch index 70797ea26..265b86b6b 100644 --- a/patches/server/0010-Llama-API.patch +++ b/patches/server/0010-Llama-API.patch @@ -25,10 +25,10 @@ index 721971f7618751a2e95f1c49fdc48a9c0c672cab..7b141c495095afcd9c8b04c059d692e8 double d = this.llama.distanceToSqr(this.llama.getCaravanHead()); if (d > 676.0D) { diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java -index 7a2a8365a8bb5b0f497b7f10d351f535a683cd96..4738d98c256b7167a13edf94db5b4f8e4cb4f75e 100644 +index 6e09dbeb6478fa32d8c46da30e45f8c64f214e30..1195f307ec827c206480fed63deb3775ba3eb22b 100644 --- a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java +++ b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java -@@ -66,6 +66,7 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob { +@@ -69,6 +69,7 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob { private Llama caravanHead; @Nullable private Llama caravanTail; @@ -36,7 +36,7 @@ index 7a2a8365a8bb5b0f497b7f10d351f535a683cd96..4738d98c256b7167a13edf94db5b4f8e public Llama(EntityType type, Level world) { super(type, world); -@@ -150,7 +151,7 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob { +@@ -160,7 +161,7 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob { if (!this.inventory.getItem(1).isEmpty()) { nbt.put("DecorItem", this.inventory.getItem(1).save(new CompoundTag())); } @@ -45,7 +45,7 @@ index 7a2a8365a8bb5b0f497b7f10d351f535a683cd96..4738d98c256b7167a13edf94db5b4f8e } @Override -@@ -162,6 +163,12 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob { +@@ -172,6 +173,12 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob { this.inventory.setItem(1, ItemStack.of(nbt.getCompound("DecorItem"))); } @@ -58,7 +58,7 @@ index 7a2a8365a8bb5b0f497b7f10d351f535a683cd96..4738d98c256b7167a13edf94db5b4f8e this.updateContainerEquipment(); } -@@ -484,6 +491,7 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob { +@@ -511,6 +518,7 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob { public void leaveCaravan() { if (this.caravanHead != null) { @@ -66,7 +66,7 @@ index 7a2a8365a8bb5b0f497b7f10d351f535a683cd96..4738d98c256b7167a13edf94db5b4f8e this.caravanHead.caravanTail = null; } -@@ -491,6 +499,7 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob { +@@ -518,6 +526,7 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob { } public void joinCaravan(Llama llama) { @@ -74,7 +74,7 @@ index 7a2a8365a8bb5b0f497b7f10d351f535a683cd96..4738d98c256b7167a13edf94db5b4f8e this.caravanHead = llama; this.caravanHead.caravanTail = this; } -@@ -508,6 +517,13 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob { +@@ -535,6 +544,13 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob { return this.caravanHead; } @@ -89,7 +89,7 @@ index 7a2a8365a8bb5b0f497b7f10d351f535a683cd96..4738d98c256b7167a13edf94db5b4f8e protected double followLeashSpeed() { return 2.0D; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLlama.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLlama.java -index 6ad12711a82d7be42ba41c0428779f86536fd900..4dd47cac823a63056985079e75588dd3d81f0af4 100644 +index ae05f526f9ec70a2992ef3ee66b7f57eca2351fc..b010d7398c657367651fc576af5b0514164cd51c 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLlama.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLlama.java @@ -64,4 +64,46 @@ public class CraftLlama extends CraftChestedHorse implements Llama, com.destroys diff --git a/patches/server/0014-LivingEntity-safeFallDistance.patch b/patches/server/0014-LivingEntity-safeFallDistance.patch index e3ab7af14..045b4046c 100644 --- a/patches/server/0014-LivingEntity-safeFallDistance.patch +++ b/patches/server/0014-LivingEntity-safeFallDistance.patch @@ -5,7 +5,7 @@ Subject: [PATCH] LivingEntity safeFallDistance diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 8780eed3ee4ba8ffb72e411d47dbd6fb3337d8d2..aa39670f465ce4687dd443d564a119d59461aae1 100644 +index 77cde266fcd6e7d0c10fdcb5380bc80811a05016..bdbe89f21408c46a3ab1f6d8a58d93c94e50975f 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -252,6 +252,7 @@ public abstract class LivingEntity extends Entity { @@ -27,7 +27,7 @@ index 8780eed3ee4ba8ffb72e411d47dbd6fb3337d8d2..aa39670f465ce4687dd443d564a119d5 if (!landedState.isAir()) { double d1 = Math.min((double) (0.2F + f / 15.0F), 2.5D); -@@ -1890,7 +1891,7 @@ public abstract class LivingEntity extends Entity { +@@ -1904,7 +1905,7 @@ public abstract class LivingEntity extends Entity { MobEffectInstance mobeffect = this.getEffect(MobEffects.JUMP); float f2 = mobeffect == null ? 0.0F : (float) (mobeffect.getAmplifier() + 1); @@ -37,7 +37,7 @@ index 8780eed3ee4ba8ffb72e411d47dbd6fb3337d8d2..aa39670f465ce4687dd443d564a119d5 protected void playBlockFallSound() { diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java b/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java -index 8a34dd179eecb84ca3975fa8a0ae2e7bc2d57cee..56694c9918ab2e8d0ff5cfda6d60360b0cd16674 100644 +index c6ee03e25adac9ecebd1e1718588b84f57184ce9..0be0c81f2b0a58eba75eb8559f78d8a58014d0ae 100644 --- a/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java +++ b/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java @@ -323,7 +323,7 @@ public abstract class AbstractHorse extends Animal implements ContainerListener, @@ -50,7 +50,7 @@ index 8a34dd179eecb84ca3975fa8a0ae2e7bc2d57cee..56694c9918ab2e8d0ff5cfda6d60360b protected int getInventorySize() { diff --git a/src/main/java/net/minecraft/world/entity/monster/Giant.java b/src/main/java/net/minecraft/world/entity/monster/Giant.java -index c67f33f2e2e0ff5c2a85782185103325a6bf4535..a8ffdc8810152d77668aad7bad15a00c4d194d4c 100644 +index a6f3cac3c6ee6129f61ab43e9afd82cc7b83e058..d1756353b9fc22f6e9b957a708073545ab3c941a 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Giant.java +++ b/src/main/java/net/minecraft/world/entity/monster/Giant.java @@ -12,6 +12,7 @@ import net.minecraft.world.level.LevelReader; diff --git a/patches/server/0026-Disable-outdated-build-check.patch b/patches/server/0026-Disable-outdated-build-check.patch index 417c6eca1..e92c42dcc 100644 --- a/patches/server/0026-Disable-outdated-build-check.patch +++ b/patches/server/0026-Disable-outdated-build-check.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Disable outdated build check diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index a10cebac752fdf5186eb86bd314f19313864fee0..1533e958718d695b50a3e0c46d005cba49eca6cb 100644 +index 8806d26c8d121194dbb8b71edc92e6782a5ea2bb..51c2e0e71a7b69835453c48911fc2be9f2323b7f 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java -@@ -269,7 +269,7 @@ public class Main { +@@ -271,7 +271,7 @@ public class Main { System.setProperty(TerminalConsoleAppender.JLINE_OVERRIDE_PROPERTY, "false"); // Paper } diff --git a/patches/server/0046-Disable-loot-drops-on-death-by-cramming.patch b/patches/server/0046-Disable-loot-drops-on-death-by-cramming.patch index eb66a10b2..0dd45eda2 100644 --- a/patches/server/0046-Disable-loot-drops-on-death-by-cramming.patch +++ b/patches/server/0046-Disable-loot-drops-on-death-by-cramming.patch @@ -5,22 +5,24 @@ Subject: [PATCH] Disable loot drops on death by cramming diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index ed11d49f27fdb85f3682b0b79ec4d1fb68ef0466..5ae294293cd9d813e22d251e567d1fc0929edc49 100644 +index bdbe89f21408c46a3ab1f6d8a58d93c94e50975f..c577fd1f3e89ee5749c5dc952c0b9a722098bac4 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -1704,8 +1704,10 @@ public abstract class LivingEntity extends Entity { +@@ -1711,10 +1711,12 @@ public abstract class LivingEntity extends Entity { this.dropEquipment(); // CraftBukkit - from below if (this.shouldDropLoot() && this.level.getGameRules().getBoolean(GameRules.RULE_DOMOBLOOT)) { + if (!(source == DamageSource.CRAMMING && level.purpurConfig.disableDropsOnCrammingDeath)) { // Purpur this.dropFromLootTable(source, flag); + this.clearEquipmentSlots = false; // Paper this.dropCustomDeathLoot(source, i, flag); + this.clearEquipmentSlots = true; // Paper + } // Purpur } - // CraftBukkit start - Call death event - org.bukkit.event.entity.EntityDeathEvent deathEvent = CraftEventFactory.callEntityDeathEvent(this, this.drops); // Paper + // CraftBukkit start - Call death event // Paper start - call advancement triggers with correct entity equipment + org.bukkit.event.entity.EntityDeathEvent deathEvent = CraftEventFactory.callEntityDeathEvent(this, this.drops, () -> { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index b9257b444a9fae83cd42757eec84559185fe4971..1533c1a126b4602db25772662d313d5b0b4eab15 100644 +index f7c261eb407aa1c5f7cf72d02605254910ca0272..6125cc91382db970ea1c708a76c7320835eb3a77 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -215,6 +215,11 @@ public class PurpurWorldConfig { diff --git a/patches/server/0049-Fix-the-dead-lagging-the-server.patch b/patches/server/0049-Fix-the-dead-lagging-the-server.patch index f8c32ccd8..18459e1ff 100644 --- a/patches/server/0049-Fix-the-dead-lagging-the-server.patch +++ b/patches/server/0049-Fix-the-dead-lagging-the-server.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix the dead lagging the server diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 52d8c713a6653f5b28b63a5ad1769a471fe5aaa9..633e41c4b0ab440be6594d892dc6434c19d4fd76 100644 +index 7af5b443983d557199100c0ab5044e96ebf52d9b..36569048c8ba952270b8ca1e492292cab5f13ae6 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1736,6 +1736,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i @@ -17,10 +17,10 @@ index 52d8c713a6653f5b28b63a5ad1769a471fe5aaa9..633e41c4b0ab440be6594d892dc6434c public void absMoveTo(double x, double y, double z) { diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 47d7e28063f94e41724f62c2fa1fc0abe55638e6..be7ff10b8f1e7b44c2c9b67e5db6dd66f2f0dac3 100644 +index c577fd1f3e89ee5749c5dc952c0b9a722098bac4..000283ea471b4755fa63f965579f98f0b746f15c 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -2896,7 +2896,7 @@ public abstract class LivingEntity extends Entity { +@@ -2910,7 +2910,7 @@ public abstract class LivingEntity extends Entity { } } diff --git a/patches/server/0056-Allow-leashing-villagers.patch b/patches/server/0056-Allow-leashing-villagers.patch index 9d10cf0fd..94fd22f25 100644 --- a/patches/server/0056-Allow-leashing-villagers.patch +++ b/patches/server/0056-Allow-leashing-villagers.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Allow leashing villagers diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 79719f259090da6f41a75ac4910e925ce66d067b..635af0bde7aca3431ab930be7d018a43f34a4bb3 100644 +index b7e3091e9ce5b634c73ac573cf205278507270d5..b0e2f5c98ab1bea6962312fa05cd6d61fc81cb98 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java -@@ -1234,6 +1234,7 @@ public abstract class Mob extends LivingEntity { +@@ -1236,6 +1236,7 @@ public abstract class Mob extends LivingEntity { if (!this.isAlive()) { return InteractionResult.PASS; } else if (this.getLeashHolder() == player) { @@ -17,7 +17,7 @@ index 79719f259090da6f41a75ac4910e925ce66d067b..635af0bde7aca3431ab930be7d018a43 // Paper start - drop leash variable org.bukkit.event.player.PlayerUnleashEntityEvent event = CraftEventFactory.callPlayerUnleashEntityEvent(this, player, !player.getAbilities().instabuild); diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java -index 4849d347677a689de1da276c604daeece78a437d..a44a0eaa5f8b1f6dc0b2570fafc5a20c669f07bd 100644 +index 3c4393f28483a454b59264c90a76d4d18f6eabee..7396963b9b405f7c0ff022176ce55b6f27ac3f4c 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java @@ -174,6 +174,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -49,7 +49,7 @@ index 2f0bcf917af26fb7628bda134b650a8b296091ea..c5dbb1c8210b71f7d9d91089cb139f65 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index eeb678ce1922d5e8fe8745ffcbfaefd82b93eeaa..d14d525a50b154baed229da5269ed491f082dc40 100644 +index ccb95d43ec3835c0cec82eca7d8b81d48ffc7f28..fede1cdfdca7b006d33d50aa0380b4be87537cae 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -1247,6 +1247,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0061-Configurable-void-damage-height-and-damage.patch b/patches/server/0061-Configurable-void-damage-height-and-damage.patch index 9f05fff0f..a4115ba42 100644 --- a/patches/server/0061-Configurable-void-damage-height-and-damage.patch +++ b/patches/server/0061-Configurable-void-damage-height-and-damage.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configurable void damage height and damage diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 633e41c4b0ab440be6594d892dc6434c19d4fd76..66906467235aa24a08eeef43bee0cb79c7bddd8f 100644 +index 36569048c8ba952270b8ca1e492292cab5f13ae6..99e383d2d7403b19d207d912608e03daac0d5847 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -782,7 +782,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i @@ -18,10 +18,10 @@ index 633e41c4b0ab440be6594d892dc6434c19d4fd76..66906467235aa24a08eeef43bee0cb79 && this.getY() >= this.level.paperConfig.netherVoidTopDamageHeight)) { // Paper end diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index be7ff10b8f1e7b44c2c9b67e5db6dd66f2f0dac3..fd5459c77e615db4bc805c58489260270b09d608 100644 +index 000283ea471b4755fa63f965579f98f0b746f15c..87cf71ae44c361770a8d5143dd2091395cbd0130 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -2388,7 +2388,7 @@ public abstract class LivingEntity extends Entity { +@@ -2402,7 +2402,7 @@ public abstract class LivingEntity extends Entity { @Override protected void outOfWorld() { @@ -31,7 +31,7 @@ index be7ff10b8f1e7b44c2c9b67e5db6dd66f2f0dac3..fd5459c77e615db4bc805c5848926027 protected void updateSwingTime() { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 951d908051d8af0f68edef4f7b2d62dacc894f1c..bc84484e8592603c26598a92515eebd3f4f12c89 100644 +index 5923b7abc9ff75ab555e636f0652fa10e49949e5..e9315b298ff51296a5a10b750d53c8a93b4ee81e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -222,10 +222,14 @@ public class PurpurWorldConfig { diff --git a/patches/server/0063-Dispenser-curse-of-binding-protection.patch b/patches/server/0063-Dispenser-curse-of-binding-protection.patch index 8b7ed3892..f0f983afc 100644 --- a/patches/server/0063-Dispenser-curse-of-binding-protection.patch +++ b/patches/server/0063-Dispenser-curse-of-binding-protection.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Dispenser curse of binding protection diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 635af0bde7aca3431ab930be7d018a43f34a4bb3..d936cf11ece70d528e5a0d1176fdbafd9b8f9d93 100644 +index b0e2f5c98ab1bea6962312fa05cd6d61fc81cb98..3249ea9a4b7dc05a1b53373955c267e7a4c7903b 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -63,6 +63,7 @@ import net.minecraft.world.item.ProjectileWeaponItem; @@ -16,7 +16,7 @@ index 635af0bde7aca3431ab930be7d018a43f34a4bb3..d936cf11ece70d528e5a0d1176fdbafd import net.minecraft.world.level.GameRules; import net.minecraft.world.level.ItemLike; import net.minecraft.world.level.Level; -@@ -1090,6 +1091,12 @@ public abstract class Mob extends LivingEntity { +@@ -1092,6 +1093,12 @@ public abstract class Mob extends LivingEntity { } @@ -43,7 +43,7 @@ index baa7e055d8ee4a153842128b07984b9f6deac6ca..014dd3aa8a7313d978d4781a1b7c6f53 // CraftBukkit start Level world = pointer.getLevel(); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 794c6adf2a4af7fe59b5b1067c1337275b941760..0868835769e4d85fbac81fbb0dbd27e6ae5f8020 100644 +index e9315b298ff51296a5a10b750d53c8a93b4ee81e..3fe23111b84dbb6aceeae023d086d0f70ca7c508 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -232,6 +232,11 @@ public class PurpurWorldConfig { diff --git a/patches/server/0065-Mending-mends-most-damages-equipment-first.patch b/patches/server/0065-Mending-mends-most-damages-equipment-first.patch index 2289a8c81..fdad67c3d 100644 --- a/patches/server/0065-Mending-mends-most-damages-equipment-first.patch +++ b/patches/server/0065-Mending-mends-most-damages-equipment-first.patch @@ -18,10 +18,10 @@ index 8be7a3527018f9f6ecb91576c928c255b3089342..68072fae050fb83735725f3dc2525bfc if (entry != null) { ItemStack itemstack = (ItemStack) entry.getValue(); diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 8f2f516b1f473ce18a07e9f130b49b795dd6b46e..8f0cdf883cdf6825ed53e856b9dc279f3bcd0e1d 100644 +index f9b7292c2eb2588c9769fcd8f56cc8da5259e7ce..fd973d153a47a5911df7fdb183d7c9851cba1175 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java -@@ -515,6 +515,16 @@ public final class ItemStack { +@@ -514,6 +514,16 @@ public final class ItemStack { return this.isDamageableItem() && this.getDamageValue() > 0; } @@ -73,7 +73,7 @@ index 7bc5aa35b52de0027cf58a6127a9903464ccaf47..f3ec99d2eae31ba7ce7d4b8e7399a56d Entry entry = getRandomItemWith(enchantment, entityliving); return entry != null ? entry.getValue() : ItemStack.EMPTY; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 6380c028150c3012f5da45c644cd5f590c00e862..f2807fac5533e995975cf35e014b7fc361576d32 100644 +index 47abad8327f7aae85a61c525567d60c3fa0220f1..f1255e97cc13d33e43f4f7e10ee93dff363e40b4 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -219,6 +219,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0067-Implement-elytra-settings.patch b/patches/server/0067-Implement-elytra-settings.patch index 8dc85e728..11dff407e 100644 --- a/patches/server/0067-Implement-elytra-settings.patch +++ b/patches/server/0067-Implement-elytra-settings.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Implement elytra settings diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index fd5459c77e615db4bc805c58489260270b09d608..b4c07823da0c18bd59bf44583d4e1f17c6d13820 100644 +index 87cf71ae44c361770a8d5143dd2091395cbd0130..68415084deacf8d1f82f27e6fbaae1d0d598510c 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -3367,7 +3367,16 @@ public abstract class LivingEntity extends Entity { +@@ -3381,7 +3381,16 @@ public abstract class LivingEntity extends Entity { int j = i / 10; if (j % 2 == 0) { @@ -54,10 +54,10 @@ index 543a08f920319a2547258640bafebb1e70af65c4..dd211aa7c4ef1e158933a89898b9e5bc itemStack.shrink(1); } else ((net.minecraft.server.level.ServerPlayer) user).getBukkitEntity().updateInventory(); diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 8f0cdf883cdf6825ed53e856b9dc279f3bcd0e1d..7ed8ae3a92d631dcfc155790dbc2fdd4a3e39d1c 100644 +index fd973d153a47a5911df7fdb183d7c9851cba1175..03c7746f3ab9212dec455d05c45c687645cdd9af 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java -@@ -544,7 +544,7 @@ public final class ItemStack { +@@ -543,7 +543,7 @@ public final class ItemStack { int j; if (amount > 0) { @@ -66,7 +66,7 @@ index 8f0cdf883cdf6825ed53e856b9dc279f3bcd0e1d..7ed8ae3a92d631dcfc155790dbc2fdd4 int k = 0; for (int l = 0; j > 0 && l < amount; ++l) { -@@ -598,6 +598,12 @@ public final class ItemStack { +@@ -597,6 +597,12 @@ public final class ItemStack { if (this.hurt(amount, entity.getRandom(), entity /*instanceof ServerPlayer ? (ServerPlayer) entity : null*/)) { // Paper - pass LivingEntity for EntityItemDamageEvent breakCallback.accept(entity); Item item = this.getItem(); @@ -99,7 +99,7 @@ index 998758be827efbcb7693ed36ab1dffc0ef0369bf..5beaafec0759543d3bddf99028c97d0d entityhuman.startAutoSpinAttack(20); if (entityhuman.isOnGround()) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 90a01edb79f9662fcf18c7c762772629fe09d06f..95b42ca5b54a45715f19e36492c9f86cf30ff8eb 100644 +index f1255e97cc13d33e43f4f7e10ee93dff363e40b4..726c2bc0a6f8df467022c1c446c385dfbb5b08bf 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -99,6 +99,19 @@ public class PurpurWorldConfig { diff --git a/patches/server/0068-Item-entity-immunities.patch b/patches/server/0068-Item-entity-immunities.patch index 26d1f0cf3..70aa7b3a9 100644 --- a/patches/server/0068-Item-entity-immunities.patch +++ b/patches/server/0068-Item-entity-immunities.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Item entity immunities diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 42b4292152d4b17c49c9cc1f488abf892a4883a5..577c2e83437a6330586ef16038c9f6e54cca664b 100644 +index d8d1b8cd0104f1c916de443af291ec36988405c2..281f8e451af47f3155c7fc86bceb0c1df11e5394 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -2251,7 +2251,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -2255,7 +2255,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider public class TrackedEntity { @@ -18,7 +18,7 @@ index 42b4292152d4b17c49c9cc1f488abf892a4883a5..577c2e83437a6330586ef16038c9f6e5 private final int range; SectionPos lastSectionPos; diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java -index 703ac671b19636859648f16a5431b2700791e7d5..38d5e710146c817b1cd3d0930de3257f01667529 100644 +index 9a6c67b614944f841813ec2892381c3342bc365c..45d2bf0e22e03db05dd954bf8c9e748bf3cea9d4 100644 --- a/src/main/java/net/minecraft/server/level/ServerEntity.java +++ b/src/main/java/net/minecraft/server/level/ServerEntity.java @@ -67,7 +67,7 @@ public class ServerEntity { @@ -147,7 +147,7 @@ index 342345eb04d00efb58392ccf209e3c51c1064173..5f5c37fb447a4c1790714158f4b41f15 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 95b42ca5b54a45715f19e36492c9f86cf30ff8eb..f17126997ff22261e10d8ad3b2adc0451658e432 100644 +index 726c2bc0a6f8df467022c1c446c385dfbb5b08bf..7fcc992546d83733bb1c32b6f405b20c1cd32d83 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -112,6 +112,49 @@ public class PurpurWorldConfig { diff --git a/patches/server/0079-Entity-lifespan.patch b/patches/server/0079-Entity-lifespan.patch index 1bdec4e7c..11dd9a0c2 100644 --- a/patches/server/0079-Entity-lifespan.patch +++ b/patches/server/0079-Entity-lifespan.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Entity lifespan diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index d936cf11ece70d528e5a0d1176fdbafd9b8f9d93..198fe041d20e7ed21b47d5c22dcc121a8d388623 100644 +index 3249ea9a4b7dc05a1b53373955c267e7a4c7903b..78f7022c6584e634b000cc0c079112fc6cc8e869 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -129,6 +129,7 @@ public abstract class Mob extends LivingEntity { @@ -80,7 +80,7 @@ index d936cf11ece70d528e5a0d1176fdbafd9b8f9d93..198fe041d20e7ed21b47d5c22dcc121a } @Override -@@ -1605,6 +1639,7 @@ public abstract class Mob extends LivingEntity { +@@ -1607,6 +1641,7 @@ public abstract class Mob extends LivingEntity { this.setLastHurtMob(target); } @@ -89,7 +89,7 @@ index d936cf11ece70d528e5a0d1176fdbafd9b8f9d93..198fe041d20e7ed21b47d5c22dcc121a } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index f871295169e6ea75a3e6da9bc9cc15b48835dd4c..48d207b696acebb9be35b43f46e98dd11448f0e6 100644 +index 3e58c569253c0162e506c07527bf7306c88ff8c1..971fef23a4381221164834e2c8f30aaf7ee7cd45 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -112,6 +112,11 @@ public class PurpurWorldConfig { diff --git a/patches/server/0087-Add-option-to-disable-certain-block-updates.patch b/patches/server/0087-Add-option-to-disable-certain-block-updates.patch index 2c34d53bb..d52c203fb 100644 --- a/patches/server/0087-Add-option-to-disable-certain-block-updates.patch +++ b/patches/server/0087-Add-option-to-disable-certain-block-updates.patch @@ -25,7 +25,7 @@ index 2c29c125edac43cdf13da8eababe60fb7a87df15..28c84432d0125dad414e623a317f665b world.scheduleTick(pos, this, 1); return super.updateShape(state, direction, neighborState, world, pos, neighborPos); diff --git a/src/main/java/net/minecraft/world/level/block/HugeMushroomBlock.java b/src/main/java/net/minecraft/world/level/block/HugeMushroomBlock.java -index 3c6d97b51c6fec130b80e5965afa2c49d48843c9..f96fe5197d1af10fd98e6c8403e25da248e4ba1e 100644 +index 3c6d97b51c6fec130b80e5965afa2c49d48843c9..b456cb8efd8f0be8a6860c82462ce9bdde3a8383 100644 --- a/src/main/java/net/minecraft/world/level/block/HugeMushroomBlock.java +++ b/src/main/java/net/minecraft/world/level/block/HugeMushroomBlock.java @@ -22,29 +22,65 @@ public class HugeMushroomBlock extends Block { @@ -52,12 +52,12 @@ index 3c6d97b51c6fec130b80e5965afa2c49d48843c9..f96fe5197d1af10fd98e6c8403e25da2 - return this.defaultBlockState().setValue(DOWN, Boolean.valueOf(!blockGetter.getBlockState(blockPos.below()).is(this))).setValue(UP, Boolean.valueOf(!blockGetter.getBlockState(blockPos.above()).is(this))).setValue(NORTH, Boolean.valueOf(!blockGetter.getBlockState(blockPos.north()).is(this))).setValue(EAST, Boolean.valueOf(!blockGetter.getBlockState(blockPos.east()).is(this))).setValue(SOUTH, Boolean.valueOf(!blockGetter.getBlockState(blockPos.south()).is(this))).setValue(WEST, Boolean.valueOf(!blockGetter.getBlockState(blockPos.west()).is(this))); + // Purpur start + return this.defaultBlockState() -+ .setValue(DOWN, this != blockGetter.getTypeIfLoaded(blockPos.below()).getBlock()) -+ .setValue(UP, this != blockGetter.getTypeIfLoaded(blockPos.above()).getBlock()) -+ .setValue(NORTH, this != blockGetter.getTypeIfLoaded(blockPos.north()).getBlock()) -+ .setValue(EAST, this != blockGetter.getTypeIfLoaded(blockPos.east()).getBlock()) -+ .setValue(SOUTH, this != blockGetter.getTypeIfLoaded(blockPos.south()).getBlock()) -+ .setValue(WEST, this != blockGetter.getTypeIfLoaded(blockPos.west()).getBlock()); ++ .setValue(DOWN, this != blockGetter.getBlockStateIfLoaded(blockPos.below()).getBlock()) ++ .setValue(UP, this != blockGetter.getBlockStateIfLoaded(blockPos.above()).getBlock()) ++ .setValue(NORTH, this != blockGetter.getBlockStateIfLoaded(blockPos.north()).getBlock()) ++ .setValue(EAST, this != blockGetter.getBlockStateIfLoaded(blockPos.east()).getBlock()) ++ .setValue(SOUTH, this != blockGetter.getBlockStateIfLoaded(blockPos.south()).getBlock()) ++ .setValue(WEST, this != blockGetter.getBlockStateIfLoaded(blockPos.west()).getBlock()); + // Purpur end } @@ -125,7 +125,7 @@ index 16e11e31077f160198e0b04abdfeabb97ed20c6f..7dd423f6b92b7f27dd43e5ef3f4029a1 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index c2da5339ef01410d218bf48c919700939910d5d0..4f8a4b053a996589bf6c9f9107da3cabc8c791da 100644 +index 4a685f527331df28dcd91586140916e3a1df6716..d4497231fa4a4ca104e78bade9c75c49f0d06ee7 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -244,6 +244,15 @@ public class PurpurConfig { diff --git a/patches/server/0099-Despawn-rate-config-options-per-projectile-type.patch b/patches/server/0099-Despawn-rate-config-options-per-projectile-type.patch index 3bde0c4bb..be947ed80 100644 --- a/patches/server/0099-Despawn-rate-config-options-per-projectile-type.patch +++ b/patches/server/0099-Despawn-rate-config-options-per-projectile-type.patch @@ -257,10 +257,10 @@ index dcbbff3a8dfcac869f07025e0e8e3d9c47956093..d6b522aa7c7ce87caf55f91ee9d661e0 + // Purpur end } diff --git a/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java b/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java -index 1adcc0321b5528a4a173027be67139a9e9be5770..c846f62611d99867e3d39aa07e292e1e0903659c 100644 +index aca9d1c2cf92ee47c646de060ae8e8f4eb7b3ddd..7cb922be9b976eb06ba06f25a50599d80c385bc8 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java +++ b/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java -@@ -302,4 +302,11 @@ public class ThrownPotion extends ThrowableItemProjectile implements ItemSupplie +@@ -306,4 +306,11 @@ public class ThrownPotion extends ThrowableItemProjectile implements ItemSupplie } } @@ -289,7 +289,7 @@ index 2867e841e73a3edfdeb83af9d96e0d0cd4116a68..8613008090a9d7cf5cd7c2a598f2c725 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 16be9ddb79404db1d65b36b2b79cdb15cb8b122c..8721b4b757776e8d2d66c1ec492b5e7249850459 100644 +index 9d56369c98ae5d45f7433923d7b4e3f3a9239cde..5000c1ce19adab15f5867b8e8fd5f5df3056ba1a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -273,6 +273,35 @@ public class PurpurWorldConfig { diff --git a/patches/server/0107-Furnace-uses-lava-from-underneath.patch b/patches/server/0107-Furnace-uses-lava-from-underneath.patch index 747c78735..aa744e94d 100644 --- a/patches/server/0107-Furnace-uses-lava-from-underneath.patch +++ b/patches/server/0107-Furnace-uses-lava-from-underneath.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Furnace uses lava from underneath diff --git a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java -index fb15ece736dde16066818216749fb2efba0b3b21..600a71b8da335ddfc70f782cbbb08647ae98a89c 100644 +index fb15ece736dde16066818216749fb2efba0b3b21..0d9b592ebfd22dc679ba7dbfd339db4d6bc5ad44 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java @@ -40,6 +40,7 @@ import net.minecraft.world.level.Level; @@ -24,7 +24,7 @@ index fb15ece736dde16066818216749fb2efba0b3b21..600a71b8da335ddfc70f782cbbb08647 + boolean usedLavaFromUnderneath = false; + if (world.purpurConfig.furnaceUseLavaFromUnderneath && !blockEntity.isLit() && itemstack.isEmpty() && !blockEntity.items.get(0).isEmpty() && world.getGameTime() % 20 == 0) { + BlockPos below = blockEntity.getBlockPos().below(); -+ BlockState belowState = world.getTypeIfLoaded(below); ++ BlockState belowState = world.getBlockStateIfLoaded(below); + if (belowState != null && belowState.is(Blocks.LAVA)) { + FluidState fluidState = belowState.getFluidState(); + if (fluidState != null && fluidState.isSource()) { @@ -48,7 +48,7 @@ index fb15ece736dde16066818216749fb2efba0b3b21..600a71b8da335ddfc70f782cbbb08647 private static boolean canBurn(@Nullable Recipe recipe, NonNullList slots, int count) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 41cd7abb09259eedfb8ea21d273b0cbb6d6ae35e..bb0a8fc8d37a44b5ec2fdb008d48796d50182c14 100644 +index bc7753f9d7b2c6833916a7a7aef97e920a73bac9..78347d0b58936a9c38eb5449446a442ad0dd24fb 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -406,6 +406,17 @@ public class PurpurWorldConfig { diff --git a/patches/server/0111-Make-entity-breeding-times-configurable.patch b/patches/server/0111-Make-entity-breeding-times-configurable.patch index bb5f44a3c..295727f0d 100644 --- a/patches/server/0111-Make-entity-breeding-times-configurable.patch +++ b/patches/server/0111-Make-entity-breeding-times-configurable.patch @@ -47,7 +47,7 @@ index b26d5482d89e28897bcc9dc8a15042a557727037..400db4ff64701e229ec208666a7acb1b other.resetLove(); world.addFreshEntityWithPassengers(entityageable, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.BREEDING); // CraftBukkit - added SpawnReason diff --git a/src/main/java/net/minecraft/world/entity/animal/Bee.java b/src/main/java/net/minecraft/world/entity/animal/Bee.java -index b29c1c66d4bed98514aa5ae0ba52d83f579fac4a..5fafd26e77f100cf94bf16f05fa09276bdd56136 100644 +index 64ad501a6bce58f06b38ea2d758664c19b4d7996..b7d6d88aa9f60090b88ac35084b9810b6fef0cfa 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Bee.java +++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java @@ -215,6 +215,11 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { @@ -63,7 +63,7 @@ index b29c1c66d4bed98514aa5ae0ba52d83f579fac4a..5fafd26e77f100cf94bf16f05fa09276 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/Cat.java b/src/main/java/net/minecraft/world/entity/animal/Cat.java -index 5cb689e8a22e8ba58a69acbf717baa51aeb4732c..8f6c3e9eaefc0a15aefde7119f2e123894d434b7 100644 +index da496f1c3728cbe8aa009d2533f166cb6736d1b9..e9a165b7bb66dd4ae1c1befc67c671f45ec8271b 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Cat.java +++ b/src/main/java/net/minecraft/world/entity/animal/Cat.java @@ -145,6 +145,11 @@ public class Cat extends TamableAnimal { @@ -79,7 +79,7 @@ index 5cb689e8a22e8ba58a69acbf717baa51aeb4732c..8f6c3e9eaefc0a15aefde7119f2e1238 public ResourceLocation getResourceLocation() { diff --git a/src/main/java/net/minecraft/world/entity/animal/Chicken.java b/src/main/java/net/minecraft/world/entity/animal/Chicken.java -index 7fd330c77159dc21d5170b386d27128fe03eea1e..249e01f0be9aeeed764bd102b7a9fa4ca9e7b473 100644 +index ca584a5a801d0909f4bdbaa8a635608ee49d096e..0b1ba6f25d13296fbcd6a2aee3b7ab5edbf4b22a 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Chicken.java +++ b/src/main/java/net/minecraft/world/entity/animal/Chicken.java @@ -70,6 +70,11 @@ public class Chicken extends Animal { @@ -95,7 +95,7 @@ index 7fd330c77159dc21d5170b386d27128fe03eea1e..249e01f0be9aeeed764bd102b7a9fa4c @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/Cow.java b/src/main/java/net/minecraft/world/entity/animal/Cow.java -index d2d971f3a135c9bebbda618eb5a0d4a4f81ca221..95ef459c804e9aff02c80cd31612185096413cd0 100644 +index 0db4dd5423508acb5214ed3205bb5632cd337e05..2c838d71105d2b88934efd154c7ec69a7ba47681 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Cow.java +++ b/src/main/java/net/minecraft/world/entity/animal/Cow.java @@ -57,6 +57,11 @@ public class Cow extends Animal { @@ -111,7 +111,7 @@ index d2d971f3a135c9bebbda618eb5a0d4a4f81ca221..95ef459c804e9aff02c80cd316121850 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/Fox.java b/src/main/java/net/minecraft/world/entity/animal/Fox.java -index d334321f3947288861066038eb70b98cad63582b..856e348b45fcaf8fc1710cd7382eb6ac10424fb8 100644 +index a2e56aadf75918d3b2c30b54ec53ba4dc332a004..f7f5a75f29a5092a7d8ee689cd3679d8eaac7c7d 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Fox.java +++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java @@ -177,6 +177,11 @@ public class Fox extends Animal { @@ -156,7 +156,7 @@ index ffe2f135c6e9396ff106ca7f889ca31290c4d30d..8fb2f77571370c80dbafdf5c9a3c57c8 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/Ocelot.java b/src/main/java/net/minecraft/world/entity/animal/Ocelot.java -index b1fb4f64ea567a96e69aa483fec5f39eecfd9a8d..e5ad9c33f21920f434647e4f632adbaa29182efa 100644 +index ccb18fea0e03d08405b0fff5e9df5025f02cebf7..4bf4403cb65b8e1fee9c253c7932ad839a99c92e 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Ocelot.java +++ b/src/main/java/net/minecraft/world/entity/animal/Ocelot.java @@ -84,6 +84,11 @@ public class Ocelot extends Animal { @@ -172,7 +172,7 @@ index b1fb4f64ea567a96e69aa483fec5f39eecfd9a8d..e5ad9c33f21920f434647e4f632adbaa public boolean isTrusting() { diff --git a/src/main/java/net/minecraft/world/entity/animal/Panda.java b/src/main/java/net/minecraft/world/entity/animal/Panda.java -index c98a143e525f55606d37e3fa14751c97e37218c0..a02562550d9392eb9105ad8b63d7adfc7a6234ea 100644 +index 1a4434432516f8b7f2bbbc64f9554c340530ce89..a3f04f6b4df1c7d8759addecaa4ea16e08b456f5 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Panda.java +++ b/src/main/java/net/minecraft/world/entity/animal/Panda.java @@ -132,6 +132,11 @@ public class Panda extends Animal { @@ -188,7 +188,7 @@ index c98a143e525f55606d37e3fa14751c97e37218c0..a02562550d9392eb9105ad8b63d7adfc @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/Parrot.java b/src/main/java/net/minecraft/world/entity/animal/Parrot.java -index d5dfa6b9480c4314eaa53bbd95efd02e0f89a75b..7441dbdc630a4ea80aed18a622bc061eb91579a5 100644 +index 1c3d1ce288d3446291fb729b0c6caeab4202fcb7..a5e6a6271b88ff16914c5d1d067552b36af0772a 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Parrot.java +++ b/src/main/java/net/minecraft/world/entity/animal/Parrot.java @@ -186,6 +186,11 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal { @@ -204,7 +204,7 @@ index d5dfa6b9480c4314eaa53bbd95efd02e0f89a75b..7441dbdc630a4ea80aed18a622bc061e @Nullable diff --git a/src/main/java/net/minecraft/world/entity/animal/Pig.java b/src/main/java/net/minecraft/world/entity/animal/Pig.java -index 0973fb94748170fbf51d78b3ead657b61fb637b5..454f683bc339f65605b212ba9a64fcc123c0ca67 100644 +index f4ae6de32bc1d854c54da829e45ca2cd15090433..998cfee2bb20ed4536843a7bb56d9e346665f612 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Pig.java +++ b/src/main/java/net/minecraft/world/entity/animal/Pig.java @@ -79,6 +79,11 @@ public class Pig extends Animal implements ItemSteerable, Saddleable { @@ -220,7 +220,7 @@ index 0973fb94748170fbf51d78b3ead657b61fb637b5..454f683bc339f65605b212ba9a64fcc1 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/PolarBear.java b/src/main/java/net/minecraft/world/entity/animal/PolarBear.java -index 5dc981130464027f9af02f1d10ec80441c4cc050..00ea9461c1ce55d3219b3829990b0a77434c83e1 100644 +index 0b5d4416ad4dc0a90cbd1826c45c47412d2e85ed..9b3870ad371e2c7df1587479291fd821c3e9ee4a 100644 --- a/src/main/java/net/minecraft/world/entity/animal/PolarBear.java +++ b/src/main/java/net/minecraft/world/entity/animal/PolarBear.java @@ -115,6 +115,11 @@ public class PolarBear extends Animal implements NeutralMob { @@ -236,7 +236,7 @@ index 5dc981130464027f9af02f1d10ec80441c4cc050..00ea9461c1ce55d3219b3829990b0a77 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java -index 9ddb39fb7028e91c97039887afeaf711e13a9182..b4314eb2b69dd56176bb33972181fe75c03b90bd 100644 +index c1c2909728197dcb9137fb380ed210e7ee13e5d9..dd6e51be94189679d169f55805c9252107560be2 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java +++ b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java @@ -135,6 +135,11 @@ public class Rabbit extends Animal { @@ -252,7 +252,7 @@ index 9ddb39fb7028e91c97039887afeaf711e13a9182..b4314eb2b69dd56176bb33972181fe75 // CraftBukkit start - code from constructor diff --git a/src/main/java/net/minecraft/world/entity/animal/Sheep.java b/src/main/java/net/minecraft/world/entity/animal/Sheep.java -index cfad0b694c50b3dd2b91570717992b670d18479f..7d3a8324eabe65c7ca89be0ad954a6fad5983b84 100644 +index fbab9473e4ccce29ed55ebf707a5aacd128820cb..efd416c472815cc0fea0bebc3db2588a4012036b 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Sheep.java +++ b/src/main/java/net/minecraft/world/entity/animal/Sheep.java @@ -131,6 +131,11 @@ public class Sheep extends Animal implements Shearable { @@ -268,7 +268,7 @@ index cfad0b694c50b3dd2b91570717992b670d18479f..7d3a8324eabe65c7ca89be0ad954a6fa @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/Turtle.java b/src/main/java/net/minecraft/world/entity/animal/Turtle.java -index 730f0fdf968554e9e306ad984d6bd01861402705..76657c68577030f65ce87036c12149c4eccf4908 100644 +index 3d30ea6f2392e6ed2c7294a9194daee31dadc7d8..0aec4ed51072948b9257e9d4b07eed92d95d902f 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Turtle.java +++ b/src/main/java/net/minecraft/world/entity/animal/Turtle.java @@ -101,6 +101,11 @@ public class Turtle extends Animal { @@ -284,7 +284,7 @@ index 730f0fdf968554e9e306ad984d6bd01861402705..76657c68577030f65ce87036c12149c4 public void setHomePos(BlockPos pos) { diff --git a/src/main/java/net/minecraft/world/entity/animal/Wolf.java b/src/main/java/net/minecraft/world/entity/animal/Wolf.java -index da7b3b5d683a3d48bb1726981a63999724032f44..2e20a37663f48bd606157e22d466267699c8ed21 100644 +index 277637692e504cca04bfca7683c052295c2c5a86..9f23279f7e3aedb758082c672656d5e4b160c074 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java +++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java @@ -119,6 +119,11 @@ public class Wolf extends TamableAnimal implements NeutralMob { @@ -300,7 +300,7 @@ index da7b3b5d683a3d48bb1726981a63999724032f44..2e20a37663f48bd606157e22d4662676 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java -index f88f979cc66bf85ad3f1458581a82b0ed91c3f16..7afe0e3a91b3b88da2b5ab034a45163880ff12bf 100644 +index a2b2d3f670cd200d7fba40f8227964ef95c5b455..4020f631f4f02834550a60630d5d429004d71269 100644 --- a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java +++ b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java @@ -111,6 +111,11 @@ public class Axolotl extends Animal implements LerpingModel, Bucketable { @@ -364,10 +364,10 @@ index 9f7203608e15fdce1bfbaf419838768763d61378..2c5cb1b759a0b6e0233345da5a968288 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java -index e2271a52448583cdbda844bc55b42dd3665a2a26..4108202537f9f150e2a65427f3d71765783f835c 100644 +index 1195f307ec827c206480fed63deb3775ba3eb22b..20f778fbcd393baa769c005dfe4163bb4e92a655 100644 --- a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java +++ b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java -@@ -124,6 +124,11 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob { +@@ -127,6 +127,11 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob { public double generateRandomSpeed() { return generateRandomSpeed(this.level.purpurConfig.llamaMovementSpeedMin, this.level.purpurConfig.llamaMovementSpeedMax); } @@ -444,7 +444,7 @@ index 48b72eb4051d612648a1978b38299c0c37a3a289..b6d9ba8dd5694952ca2eba54726ac5e5 public static AttributeSupplier.Builder createAttributes() { diff --git a/src/main/java/net/minecraft/world/entity/monster/Strider.java b/src/main/java/net/minecraft/world/entity/monster/Strider.java -index ff76fbb1618edc1aa6a58e9649e99291c90beffb..672801ab77a10917147f12b2117a3390885b39b0 100644 +index e65eaf393b118e38fde8f525ac9b1d6e6f98e729..74d11bf608ff26093d7995a09a463cac24304fa1 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Strider.java +++ b/src/main/java/net/minecraft/world/entity/monster/Strider.java @@ -112,6 +112,11 @@ public class Strider extends Animal implements ItemSteerable, Saddleable { @@ -476,7 +476,7 @@ index 3ec9b8343cf80ceea8503ad78863a4b539c6ef6b..c536b0f0d0ebe5b6b6409972eb711f84 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 96229ee36ff6d6f18d371095baaa9e2833c88ae0..92f303aa5122183073abf2043c0ed3cb54fbc782 100644 +index 6bace9c0f4defae8f454fc3765dad819c44ecf49..b26b936f5f350eaadfee3537a3c03cabb2c3eb03 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -481,9 +481,11 @@ public class PurpurWorldConfig { diff --git a/patches/server/0116-Changeable-Mob-Left-Handed-Chance.patch b/patches/server/0116-Changeable-Mob-Left-Handed-Chance.patch index 231fa3b37..4763f46c6 100644 --- a/patches/server/0116-Changeable-Mob-Left-Handed-Chance.patch +++ b/patches/server/0116-Changeable-Mob-Left-Handed-Chance.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Changeable Mob Left Handed Chance diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index eea702d4d62583f3fba646a260e3299de3f80366..7b67e1febe49fced5507db87f9269007680d8c9b 100644 +index 78f7022c6584e634b000cc0c079112fc6cc8e869..2f75ebe8088d70f73a17557fe525ae119a1e19e9 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java -@@ -1223,7 +1223,7 @@ public abstract class Mob extends LivingEntity { +@@ -1225,7 +1225,7 @@ public abstract class Mob extends LivingEntity { @Nullable public SpawnGroupData finalizeSpawn(ServerLevelAccessor world, DifficultyInstance difficulty, MobSpawnType spawnReason, @Nullable SpawnGroupData entityData, @Nullable CompoundTag entityNbt) { this.getAttribute(Attributes.FOLLOW_RANGE).addPermanentModifier(new AttributeModifier("Random spawn bonus", this.random.nextGaussian() * 0.05D, AttributeModifier.Operation.MULTIPLY_BASE)); @@ -18,7 +18,7 @@ index eea702d4d62583f3fba646a260e3299de3f80366..7b67e1febe49fced5507db87f9269007 } else { this.setLeftHanded(false); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index fdf7291b8b6f8963bba2d579f28f8520adcd9dc2..549c23b75167ddb655aec861a978be52047bb77b 100644 +index 11ad8027c40ae431385fb9675438abc178b79ccd..3e0dbe1831d57edf90aff42cc8ed0f4b431fb54f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -130,8 +130,10 @@ public class PurpurWorldConfig { diff --git a/patches/server/0132-Add-mobGriefing-bypass-to-everything-affected.patch b/patches/server/0132-Add-mobGriefing-bypass-to-everything-affected.patch index 31699bc32..896b32023 100644 --- a/patches/server/0132-Add-mobGriefing-bypass-to-everything-affected.patch +++ b/patches/server/0132-Add-mobGriefing-bypass-to-everything-affected.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add mobGriefing bypass to everything affected diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index bb101512f4d1d26f8df50b50841a5952abb64fcc..679ceed9d18b59b35572145e0fa21e51e4760d27 100644 +index acefb8f2ca9fe3ec389e85e88601fefebb39c662..38dd50d9f815f7f3df74ebac227b82cbb0ddf63f 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -1677,7 +1677,7 @@ public abstract class LivingEntity extends Entity { +@@ -1683,7 +1683,7 @@ public abstract class LivingEntity extends Entity { boolean flag = false; if (this.dead && adversary instanceof WitherBoss) { // Paper @@ -18,7 +18,7 @@ index bb101512f4d1d26f8df50b50841a5952abb64fcc..679ceed9d18b59b35572145e0fa21e51 BlockState iblockdata = Blocks.WITHER_ROSE.defaultBlockState(); diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 7b67e1febe49fced5507db87f9269007680d8c9b..33868c78d5e435230cbfdfcf01795c82411ac7c7 100644 +index 2f75ebe8088d70f73a17557fe525ae119a1e19e9..861dd2603a82b26cb0f003b5defc34446feb6fdf 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -664,7 +664,7 @@ public abstract class Mob extends LivingEntity { @@ -79,7 +79,7 @@ index 14ed3f0524773e22a792efb8b41a9217bad50f27..8a4080a77bd5b73ac812e3ae67c6f21d this.level.setBlock(blockposition1, Blocks.DIRT.defaultBlockState(), 2); } diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/RemoveBlockGoal.java b/src/main/java/net/minecraft/world/entity/ai/goal/RemoveBlockGoal.java -index a618b50ac8448528ac6ac64b400fa3d0882dbaf9..7ca4e20ec53408573921bed07dd81849abd62227 100644 +index 027ef44d46cb1dda19c5c239f6970c90285fb961..fd0ed33487305093bbdf6c9bf23313a58c81b231 100644 --- a/src/main/java/net/minecraft/world/entity/ai/goal/RemoveBlockGoal.java +++ b/src/main/java/net/minecraft/world/entity/ai/goal/RemoveBlockGoal.java @@ -40,7 +40,7 @@ public class RemoveBlockGoal extends MoveToBlockGoal { @@ -179,7 +179,7 @@ index bb32bc0989ebbdd7522fe5f70ae3e6414f909388..8ac278f8e55ad7a090ad332db2da1e1e // CraftBukkit start diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java -index cc4009934d279e15a6a1d30dbea45fda1f6310e8..188c56ac98e88507f09f8603970ba2238629b8e3 100644 +index a15be819a3c73cf3bdd5da148d6f2d56dd5db404..bd58dbee7f2922d341a6c201b762a52e78366106 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java @@ -501,7 +501,7 @@ public class EnderMan extends Monster implements NeutralMob { @@ -354,7 +354,7 @@ index b4fd9af8805f451c87a91f319c15fa132b91faf7..e9087a46e401bc99b73c2cf2731fdac3 } diff --git a/src/main/java/net/minecraft/world/level/block/FarmBlock.java b/src/main/java/net/minecraft/world/level/block/FarmBlock.java -index 56233465693943e0fdb998e44a34f8029e3928cb..caf40e3df0896492be959f9e0bcfb1fad0bfa2ef 100644 +index f55a32c7c4e260b41a36b9fc3be01edb50b4951a..4c80e2a10715ce4d4442ea4636808d1e10025494 100644 --- a/src/main/java/net/minecraft/world/level/block/FarmBlock.java +++ b/src/main/java/net/minecraft/world/level/block/FarmBlock.java @@ -99,7 +99,7 @@ public class FarmBlock extends Block { @@ -393,7 +393,7 @@ index b942e7c85e6c8f9a7664d9e5bf93bcd79e0651f1..5b29f3fced5435e172dd69f6f4eb265e return true; // Purpur end diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 45b4ac35cb0b596c5ad6c9ab03739e337425becc..b3631cb89f1ac4486596d438215724a29ca883e4 100644 +index 7b6ada310586de6313c426d88c28cba4fe6535ac..7891f3bf4424071d4a0a01d35c484af9369f3d3b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -381,8 +381,11 @@ public class PurpurWorldConfig { diff --git a/patches/server/0138-Toggle-for-water-sensitive-mob-damage.patch b/patches/server/0138-Toggle-for-water-sensitive-mob-damage.patch index 6e371af99..923696b7f 100644 --- a/patches/server/0138-Toggle-for-water-sensitive-mob-damage.patch +++ b/patches/server/0138-Toggle-for-water-sensitive-mob-damage.patch @@ -21,7 +21,7 @@ index ca2bf36120ba09ed27ad7b1064431f9feffa3420..2feec97ffe62cfe063085e3767937e8a @Override diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 33868c78d5e435230cbfdfcf01795c82411ac7c7..2d20c36149433304aa420f66c39a66caddb8ed19 100644 +index 861dd2603a82b26cb0f003b5defc34446feb6fdf..1c819db60f278ba902471ae69720f6ff30930886 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -868,7 +868,7 @@ public abstract class Mob extends LivingEntity { @@ -479,10 +479,10 @@ index 2c5cb1b759a0b6e0233345da5a968288ec338837..16755249c4700fa59f704b7c88e3490d @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java -index a13ccd308277fbead585cf452f65e4b30a00fa8a..81957c9daa27682ee701092e207d72166e159382 100644 +index 20f778fbcd393baa769c005dfe4163bb4e92a655..fde47de12ffa43bff9cfd1500a35e49325223291 100644 --- a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java +++ b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java -@@ -129,6 +129,11 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob { +@@ -132,6 +132,11 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob { public int getPurpurBreedTime() { return this.level.purpurConfig.llamaBreedingTicks; } @@ -668,7 +668,7 @@ index e25374b06e3babd93cd5bbdd58ea401a92dbb001..0aa4d8e506462cfe6fb69414a30cc5eb public static AttributeSupplier.Builder createAttributes() { diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java -index 188c56ac98e88507f09f8603970ba2238629b8e3..b050f2d16a6aed98654f51fa4ede496a0be07b45 100644 +index bd58dbee7f2922d341a6c201b762a52e78366106..1ab913281012305cba379ba7301a76501f7d3ed5 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java @@ -293,7 +293,7 @@ public class EnderMan extends Monster implements NeutralMob { diff --git a/patches/server/0143-One-Punch-Man.patch b/patches/server/0143-One-Punch-Man.patch index 445817742..b39b2caf6 100644 --- a/patches/server/0143-One-Punch-Man.patch +++ b/patches/server/0143-One-Punch-Man.patch @@ -5,10 +5,10 @@ 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 679ceed9d18b59b35572145e0fa21e51e4760d27..934bb735c1948113b01f9ba6799ecc1ad92dbb76 100644 +index 38dd50d9f815f7f3df74ebac227b82cbb0ddf63f..2de5d21239c89b1e00d75d9c418b661be2d4f7aa 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -2123,6 +2123,20 @@ public abstract class LivingEntity extends Entity { +@@ -2137,6 +2137,20 @@ public abstract class LivingEntity extends Entity { ((ServerPlayer) damagesource.getEntity()).awardStat(Stats.DAMAGE_DEALT_ABSORBED, Math.round(f2 * 10.0F)); } @@ -30,7 +30,7 @@ index 679ceed9d18b59b35572145e0fa21e51e4760d27..934bb735c1948113b01f9ba6799ecc1a if (human) { // PAIL: Be sure to drag all this code from the EntityHuman subclass each update. diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index a34471e1164803565a4746284da4a75aa10274e8..660e801acdfd25d51a1177065a1a10544fe0b3b4 100644 +index 71a8f7960bc60626d88dc0e258d47db41c7b8cb8..a6ea7b2f86f0a946f0744b57e10ca7f56765cddf 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -302,6 +302,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0151-Config-to-disable-Llama-caravans.patch b/patches/server/0151-Config-to-disable-Llama-caravans.patch index af7aeabe1..620170958 100644 --- a/patches/server/0151-Config-to-disable-Llama-caravans.patch +++ b/patches/server/0151-Config-to-disable-Llama-caravans.patch @@ -19,10 +19,10 @@ index 7b141c495095afcd9c8b04c059d692e829259e7a..ad30f2d678cfc4b0d693e84e6e152c63 List list = this.llama.level.getEntities(this.llama, this.llama.getBoundingBox().inflate(9.0D, 4.0D, 9.0D), (entity) -> { EntityType entityType = entity.getType(); diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java -index 81957c9daa27682ee701092e207d72166e159382..e09e44f15b6802261f83795bf5162686942bcdf5 100644 +index fde47de12ffa43bff9cfd1500a35e49325223291..7656c933a835f15c40e75851e7a2348bdef4010e 100644 --- a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java +++ b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java -@@ -509,7 +509,7 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob { +@@ -536,7 +536,7 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob { } public void joinCaravan(Llama llama) { @@ -32,7 +32,7 @@ index 81957c9daa27682ee701092e207d72166e159382..e09e44f15b6802261f83795bf5162686 this.caravanHead.caravanTail = this; } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index bec3d78e87ec1e1c683c5fbaa12b8d8fada870f6..ad573cabf2c369fdaa9a0a7f97de2f8d365d847e 100644 +index d6ac762cdd9bb004298b578cf35214dc03faaab3..7281fe5ad723967fba66e69de4d768d24255b1cb 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -1209,6 +1209,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0188-API-for-any-mob-to-burn-daylight.patch b/patches/server/0188-API-for-any-mob-to-burn-daylight.patch index ab67f3ca3..364cbf67f 100644 --- a/patches/server/0188-API-for-any-mob-to-burn-daylight.patch +++ b/patches/server/0188-API-for-any-mob-to-burn-daylight.patch @@ -6,7 +6,7 @@ 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 9a2230a19800742c586f7d5925a6b88cca51ce3e..2a8bdc91486876327cee54960e05f6e8d4b6fa92 100644 +index 549417d7bf6953f668bb8b0ab38f8c8b877b7a90..953506523b7bd5835bd727d9d4e6759f946e2afc 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -4345,5 +4345,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i @@ -29,7 +29,7 @@ index 9a2230a19800742c586f7d5925a6b88cca51ce3e..2a8bdc91486876327cee54960e05f6e8 // 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 2c5d453f57b28008e5b98cf6aec044cb3ffb2385..b4e33ccc2e62a0183867cbf11394ce637fae058d 100644 +index b7c03d7d872599476e92b0ba62af8c473f04fcad..ca7e980732b4017f5147e2c372bd4c8dc7f7315c 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -262,6 +262,7 @@ public abstract class LivingEntity extends Entity { @@ -60,7 +60,7 @@ index 2c5d453f57b28008e5b98cf6aec044cb3ffb2385..b4e33ccc2e62a0183867cbf11394ce63 } // CraftBukkit start -@@ -3387,6 +3394,27 @@ public abstract class LivingEntity extends Entity { +@@ -3401,6 +3408,27 @@ public abstract class LivingEntity extends Entity { this.hurt(DamageSource.DROWN, 1.0F); } @@ -89,10 +89,10 @@ index 2c5d453f57b28008e5b98cf6aec044cb3ffb2385..b4e33ccc2e62a0183867cbf11394ce63 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 2d20c36149433304aa420f66c39a66caddb8ed19..852ffb5c661f525b61fa95eccf1a0eb44c6fb4e2 100644 +index 1c819db60f278ba902471ae69720f6ff30930886..c0c69fc680b713794bfafe64d356341b80d7c47e 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java -@@ -1656,17 +1656,7 @@ public abstract class Mob extends LivingEntity { +@@ -1658,17 +1658,7 @@ public abstract class Mob extends LivingEntity { } public boolean isSunBurnTick() { diff --git a/patches/server/0190-Config-MobEffect-by-world.patch b/patches/server/0189-Config-MobEffect-by-world.patch similarity index 98% rename from patches/server/0190-Config-MobEffect-by-world.patch rename to patches/server/0189-Config-MobEffect-by-world.patch index 0313facbe..16cf318f7 100644 --- a/patches/server/0190-Config-MobEffect-by-world.patch +++ b/patches/server/0189-Config-MobEffect-by-world.patch @@ -40,7 +40,7 @@ index 8bbb9bdcf95989f1737714655f6f6a269d46d7f2..8d569eb2ec1b2bdbd415094ae04ae531 ((ServerPlayer) entityhuman).connection.send(new ClientboundSetHealthPacket(((ServerPlayer) entityhuman).getBukkitEntity().getScaledHealth(), entityhuman.getFoodData().foodLevel, entityhuman.getFoodData().saturationLevel)); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 361bf78d87631d164b11831a8fc551eaa1a3615b..e2688f6467b9e395f64df4d90bb9747cab57506d 100644 +index 07d2e7c062a1bc1e58de6fb14d4be516818151f8..b9f6fd06b0320e1abd8a1c5b7461b9bbcb0314fe 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -283,6 +283,21 @@ public class PurpurWorldConfig { diff --git a/patches/server/0189-Fix-advancement-triggers-on-entity-death.patch b/patches/server/0189-Fix-advancement-triggers-on-entity-death.patch deleted file mode 100644 index f4d79690f..000000000 --- a/patches/server/0189-Fix-advancement-triggers-on-entity-death.patch +++ /dev/null @@ -1,197 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: William Blake Galbreath -Date: Fri, 28 May 2021 12:24:45 -0500 -Subject: [PATCH] Fix advancement triggers on entity death - -This fixes PaperMC/Paper#3729 and PaperMC/Paper#4252 - -Paper changes logical order revolving around making the EntityDeathEvent -cancellable. Reordering this logic has ended up with entity equipment being -cleared _before_ advancement criteria can run, causing things like killing -raid captains not giving the voluntary exile advancement. - -This fixes the issue by storing a copy of the equipment in a new field just -before doing the death event logic where the equipment is cleared and then -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 b4e33ccc2e62a0183867cbf11394ce637fae058d..cbda521957675303270c3308819c544fee549c18 100644 ---- a/src/main/java/net/minecraft/world/entity/LivingEntity.java -+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -1657,10 +1657,13 @@ public abstract class LivingEntity extends Entity { - } - - // Paper start -+ List> equipmentSnapshotBefore = this.cloneEquipment(); // Purpur - org.bukkit.event.entity.EntityDeathEvent deathEvent = this.dropAllDeathLoot(source); - if (deathEvent == null || !deathEvent.isCancelled()) { - if (this.deathScore >= 0 && entityliving != null) { -+ this.restoreEquipment(equipmentSnapshotBefore); // Purpur - entityliving.awardKillScore(this, this.deathScore, source); -+ this.clearEquipment(); // Purpur - } - - if (this.isSleeping()) { -@@ -2534,6 +2537,12 @@ public abstract class LivingEntity extends Entity { - @Override - public abstract void setItemSlot(EquipmentSlot slot, ItemStack stack); - -+ // Purpur start -+ public abstract List> cloneEquipment(); -+ public abstract void restoreEquipment(List> list); -+ public abstract void clearEquipment(); -+ // Purpur end -+ - protected void verifyEquippedItem(ItemStack stack) { - 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 852ffb5c661f525b61fa95eccf1a0eb44c6fb4e2..bd39ab8959a805021d365813b5672b39368481a8 100644 ---- a/src/main/java/net/minecraft/world/entity/Mob.java -+++ b/src/main/java/net/minecraft/world/entity/Mob.java -@@ -1039,6 +1039,41 @@ public abstract class Mob extends LivingEntity { - - } - -+ // Purpur start -+ public List> cloneEquipment() { -+ List> list = new java.util.ArrayList<>(); -+ List handItems = new java.util.ArrayList<>(); -+ for (ItemStack item : this.handItems) { -+ handItems.add(item.copy()); -+ } -+ list.add(handItems); -+ List armorItems = new java.util.ArrayList<>(); -+ for (ItemStack item : this.armorItems) { -+ armorItems.add(item.copy()); -+ } -+ list.add(armorItems); -+ return list; -+ } -+ -+ public void restoreEquipment(List> list) { -+ this.handItems.clear(); -+ List handItems = list.get(0); -+ for (int i = 0; i < handItems.size(); i++) { -+ this.handItems.set(i, handItems.get(1)); -+ } -+ this.armorItems.clear(); -+ List armorItems = list.get(1); -+ for (int i = 0; i < armorItems.size(); i++) { -+ this.armorItems.set(i, armorItems.get(i)); -+ } -+ } -+ -+ public void clearEquipment() { -+ this.handItems.clear(); -+ this.armorItems.clear(); -+ } -+ // Purpur end -+ - @Override - protected void dropCustomDeathLoot(DamageSource source, int lootingMultiplier, boolean allowDrops) { - super.dropCustomDeathLoot(source, lootingMultiplier, allowDrops); -diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java -index 8634431cabae82b71f409f02c84dda2d8eca8504..46717e8979c3fb4a3bf9cc46f3b741a63002b8e7 100644 ---- a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java -+++ b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java -@@ -204,6 +204,41 @@ public class ArmorStand extends LivingEntity { - this.noTickEquipmentDirty = true; // Paper - Allow equipment to be updated even when tick disabled - } - -+ // Purpur start -+ public List> cloneEquipment() { -+ List> list = new java.util.ArrayList<>(); -+ List handItems = new java.util.ArrayList<>(); -+ for (ItemStack item : this.handItems) { -+ handItems.add(item.copy()); -+ } -+ list.add(handItems); -+ List armorItems = new java.util.ArrayList<>(); -+ for (ItemStack item : this.armorItems) { -+ armorItems.add(item.copy()); -+ } -+ list.add(armorItems); -+ return list; -+ } -+ -+ public void restoreEquipment(List> list) { -+ this.handItems.clear(); -+ List handItems = list.get(0); -+ for (int i = 0; i < handItems.size(); i++) { -+ this.handItems.set(i, handItems.get(1)); -+ } -+ this.armorItems.clear(); -+ List armorItems = list.get(1); -+ for (int i = 0; i < armorItems.size(); i++) { -+ this.armorItems.set(i, armorItems.get(1)); -+ } -+ } -+ -+ public void clearEquipment() { -+ this.handItems.clear(); -+ this.armorItems.clear(); -+ } -+ // Purpur end -+ - @Override - public boolean canTakeItem(ItemStack stack) { - net.minecraft.world.entity.EquipmentSlot enumitemslot = Mob.getEquipmentSlotForItem(stack); -diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 4252ff0201cbfbecc7b95ca86c1763dc5d88a4d7..5a73b085782dad9e4e35af18e6c70aca70793a5b 100644 ---- a/src/main/java/net/minecraft/world/entity/player/Player.java -+++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -1990,6 +1990,52 @@ public abstract class Player extends LivingEntity { - - } - -+ // Purpur start -+ public List> cloneEquipment() { -+ List> list = new java.util.ArrayList<>(); -+ List invItems = new java.util.ArrayList<>(); -+ for (ItemStack item : this.inventory.items) { -+ invItems.add(item.copy()); -+ } -+ list.add(invItems); -+ List armorItems = new java.util.ArrayList<>(); -+ for (ItemStack item : this.inventory.armor) { -+ armorItems.add(item.copy()); -+ } -+ list.add(armorItems); -+ List offhandItems = new java.util.ArrayList<>(); -+ for (ItemStack item : this.inventory.offhand) { -+ offhandItems.add(item.copy()); -+ } -+ list.add(offhandItems); -+ return list; -+ } -+ -+ public void restoreEquipment(List> list) { -+ this.inventory.items.clear(); -+ List invItems = list.get(0); -+ for (int i = 0; i < invItems.size(); i++) { -+ this.inventory.items.set(i, invItems.get(1)); -+ } -+ this.inventory.armor.clear(); -+ List armorItems = list.get(1); -+ for (int i = 0; i < armorItems.size(); i++) { -+ this.inventory.armor.set(i, armorItems.get(1)); -+ } -+ this.inventory.offhand.clear(); -+ List offhandItems = list.get(2); -+ for (int i = 0; i < offhandItems.size(); i++) { -+ this.inventory.offhand.set(i, offhandItems.get(1)); -+ } -+ } -+ -+ public void clearEquipment() { -+ this.inventory.items.clear(); -+ this.inventory.armor.clear(); -+ this.inventory.offhand.clear(); -+ } -+ // Purpur end -+ - public boolean addItem(ItemStack stack) { - this.equipEventAndSound(stack); - return this.inventory.add(stack); diff --git a/patches/server/0191-Beacon-Activation-Range-Configurable.patch b/patches/server/0190-Beacon-Activation-Range-Configurable.patch similarity index 96% rename from patches/server/0191-Beacon-Activation-Range-Configurable.patch rename to patches/server/0190-Beacon-Activation-Range-Configurable.patch index 772ac7c24..cb73dbf69 100644 --- a/patches/server/0191-Beacon-Activation-Range-Configurable.patch +++ b/patches/server/0190-Beacon-Activation-Range-Configurable.patch @@ -26,7 +26,7 @@ index 423560afba1bc03c0bb2b7d5d028451f34e59ec5..080694a06c9fdf57317dd281c4ddbd6c } else { return effectRange; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index e2688f6467b9e395f64df4d90bb9747cab57506d..fc5279fee33682f48442e21950183ad788d690c6 100644 +index b9f6fd06b0320e1abd8a1c5b7461b9bbcb0314fe..06d74d252ce95b54a3bc68dc85c44357fc04daf7 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -512,6 +512,17 @@ public class PurpurWorldConfig { diff --git a/patches/server/0192-Add-toggle-for-sand-duping-fix.patch b/patches/server/0191-Add-toggle-for-sand-duping-fix.patch similarity index 95% rename from patches/server/0192-Add-toggle-for-sand-duping-fix.patch rename to patches/server/0191-Add-toggle-for-sand-duping-fix.patch index 5147b9ca8..490c90de7 100644 --- a/patches/server/0192-Add-toggle-for-sand-duping-fix.patch +++ b/patches/server/0191-Add-toggle-for-sand-duping-fix.patch @@ -27,7 +27,7 @@ index 0c94b4cb6ee0c3dffe0b67a2291d0160ae0ef96f..92a9869dbabcaa704a0da8bc86f75786 } // Paper end - fix sand duping diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index fc5279fee33682f48442e21950183ad788d690c6..fc183f9910f4d8f873261a29a23406270c19671e 100644 +index 06d74d252ce95b54a3bc68dc85c44357fc04daf7..98068e0ef909fae4a50c2fe9861798507618f6e3 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -686,6 +686,11 @@ public class PurpurWorldConfig { diff --git a/patches/server/0193-Add-toggle-for-end-portal-safe-teleporting.patch b/patches/server/0192-Add-toggle-for-end-portal-safe-teleporting.patch similarity index 94% rename from patches/server/0193-Add-toggle-for-end-portal-safe-teleporting.patch rename to patches/server/0192-Add-toggle-for-end-portal-safe-teleporting.patch index 1b0948f65..b0c658d58 100644 --- a/patches/server/0193-Add-toggle-for-end-portal-safe-teleporting.patch +++ b/patches/server/0192-Add-toggle-for-end-portal-safe-teleporting.patch @@ -5,7 +5,7 @@ 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 2a8bdc91486876327cee54960e05f6e8d4b6fa92..a0017c92d8e52b6cfaf8d82fb4d74266c23f1191 100644 +index 953506523b7bd5835bd727d9d4e6759f946e2afc..d965fa9b1f7ab84268a4a8e2d4898a0eb59706a0 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2764,7 +2764,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i @@ -45,7 +45,7 @@ index bd4f980f68330fc46a02a6f4bb4403fac3a91919..8601ea0575323ea7cf07c4909a495bf5 entity.portalWorld = ((ServerLevel)world); entity.portalBlock = pos.immutable(); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index fc183f9910f4d8f873261a29a23406270c19671e..c99792ab6f1ab547726453406fad6b05c06db7f7 100644 +index 98068e0ef909fae4a50c2fe9861798507618f6e3..907daf5e078ae3877db5830f7494ea02697da2c6 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -626,6 +626,11 @@ public class PurpurWorldConfig { diff --git a/patches/server/0194-Flying-Fall-Damage-API.patch b/patches/server/0193-Flying-Fall-Damage-API.patch similarity index 95% rename from patches/server/0194-Flying-Fall-Damage-API.patch rename to patches/server/0193-Flying-Fall-Damage-API.patch index 0144c42ed..b450e784d 100644 --- a/patches/server/0194-Flying-Fall-Damage-API.patch +++ b/patches/server/0193-Flying-Fall-Damage-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Flying Fall Damage API diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 5a73b085782dad9e4e35af18e6c70aca70793a5b..e25b8b0023d4f0368f3104a9b2a015585e65b9f9 100644 +index 4252ff0201cbfbecc7b95ca86c1763dc5d88a4d7..535bc6d57d153a62f2cbf57747586de3d4c41b1f 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -180,6 +180,7 @@ public abstract class Player extends LivingEntity { diff --git a/patches/server/0195-Make-lightning-rod-range-configurable.patch b/patches/server/0194-Make-lightning-rod-range-configurable.patch similarity index 96% rename from patches/server/0195-Make-lightning-rod-range-configurable.patch rename to patches/server/0194-Make-lightning-rod-range-configurable.patch index 2e9fc6b81..f405892a8 100644 --- a/patches/server/0195-Make-lightning-rod-range-configurable.patch +++ b/patches/server/0194-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 f4f87fb9ce5ebdb44ae4568c4b0d151f5c108fee..3ddf11e24e0d05e3ee6c9e17eebee4e177ed63fe 100644 +index 75301b4bcd62e7091bf164d04f1a517d17643274..56ae23fdd7880dd7ad5ef5be369972f74cf83f08 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -893,7 +893,7 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0196-Burp-after-eating-food-fills-hunger-bar-completely.patch b/patches/server/0195-Burp-after-eating-food-fills-hunger-bar-completely.patch similarity index 94% rename from patches/server/0196-Burp-after-eating-food-fills-hunger-bar-completely.patch rename to patches/server/0195-Burp-after-eating-food-fills-hunger-bar-completely.patch index c8ba98739..0f802028d 100644 --- a/patches/server/0196-Burp-after-eating-food-fills-hunger-bar-completely.patch +++ b/patches/server/0195-Burp-after-eating-food-fills-hunger-bar-completely.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Burp after eating food fills hunger bar completely diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index e25b8b0023d4f0368f3104a9b2a015585e65b9f9..824365f63052cae797e53bf3a30fea78e3b60492 100644 +index 535bc6d57d153a62f2cbf57747586de3d4c41b1f..055e11c1a180f74a6d2bd3d20e1451ff027b10e2 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -193,6 +193,8 @@ public abstract class Player extends LivingEntity { @@ -30,7 +30,7 @@ index e25b8b0023d4f0368f3104a9b2a015585e65b9f9..824365f63052cae797e53bf3a30fea78 this.noPhysics = this.isSpectator(); if (this.isSpectator()) { this.onGround = false; -@@ -2344,7 +2352,7 @@ public abstract class Player extends LivingEntity { +@@ -2298,7 +2306,7 @@ public abstract class Player extends LivingEntity { public ItemStack eat(Level world, ItemStack stack) { this.getFoodData().eat(stack.getItem(), stack); this.awardStat(Stats.ITEM_USED.get(stack.getItem())); @@ -55,7 +55,7 @@ index 2934b6de1f1fb914a532ee20184df99d1acd8e65..65421cfff05c0493f5fef1bdff03172c public void eat(Item item, ItemStack stack) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index c99792ab6f1ab547726453406fad6b05c06db7f7..b29928291e866419719c0f4c70b41c48b2b5615a 100644 +index 907daf5e078ae3877db5830f7494ea02697da2c6..025a069dab527ee38f92c209c564e577520958cd 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -342,6 +342,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0197-Allow-player-join-full-server-by-permission.patch b/patches/server/0196-Allow-player-join-full-server-by-permission.patch similarity index 100% rename from patches/server/0197-Allow-player-join-full-server-by-permission.patch rename to patches/server/0196-Allow-player-join-full-server-by-permission.patch diff --git a/patches/server/0198-Add-permission-bypass-for-portal-waiting.patch b/patches/server/0197-Add-permission-bypass-for-portal-waiting.patch similarity index 94% rename from patches/server/0198-Add-permission-bypass-for-portal-waiting.patch rename to patches/server/0197-Add-permission-bypass-for-portal-waiting.patch index 77c94c6ca..7c46c7570 100644 --- a/patches/server/0198-Add-permission-bypass-for-portal-waiting.patch +++ b/patches/server/0197-Add-permission-bypass-for-portal-waiting.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add permission bypass for portal waiting diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 824365f63052cae797e53bf3a30fea78e3b60492..a527b048e2fe4716609778f03060e13b8b88c544 100644 +index 055e11c1a180f74a6d2bd3d20e1451ff027b10e2..175b839a8b8c52b05b59c40f6b30b6e374d83cf1 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -181,6 +181,7 @@ public abstract class Player extends LivingEntity { diff --git a/patches/server/0199-Shulker-spawn-from-bullet-options.patch b/patches/server/0198-Shulker-spawn-from-bullet-options.patch similarity index 98% rename from patches/server/0199-Shulker-spawn-from-bullet-options.patch rename to patches/server/0198-Shulker-spawn-from-bullet-options.patch index 61707a90f..111b42091 100644 --- a/patches/server/0199-Shulker-spawn-from-bullet-options.patch +++ b/patches/server/0198-Shulker-spawn-from-bullet-options.patch @@ -61,7 +61,7 @@ index f812a75985d26785639491c9a980387a3f261f2d..b11fb39b69f5225ca7da72ca1a2200c7 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index b29928291e866419719c0f4c70b41c48b2b5615a..4433a1da011a607d488464274b8fee5b021ae110 100644 +index 025a069dab527ee38f92c209c564e577520958cd..5dfc69bc0716c083ed0957b69491999649d24730 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -1777,6 +1777,11 @@ public class PurpurWorldConfig { diff --git a/patches/server/0200-Eating-glow-berries-adds-glow-effect.patch b/patches/server/0199-Eating-glow-berries-adds-glow-effect.patch similarity index 97% rename from patches/server/0200-Eating-glow-berries-adds-glow-effect.patch rename to patches/server/0199-Eating-glow-berries-adds-glow-effect.patch index 2ba295fd4..61f4eed55 100644 --- a/patches/server/0200-Eating-glow-berries-adds-glow-effect.patch +++ b/patches/server/0199-Eating-glow-berries-adds-glow-effect.patch @@ -18,7 +18,7 @@ index 85329295afacad3edb6865846166aa56ebae0ed2..513343d225a71e242b0f237eefcd2514 public static final Item SOUL_CAMPFIRE = registerBlock(Blocks.SOUL_CAMPFIRE, CreativeModeTab.TAB_DECORATIONS); public static final Item SHROOMLIGHT = registerBlock(Blocks.SHROOMLIGHT, CreativeModeTab.TAB_DECORATIONS); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 4433a1da011a607d488464274b8fee5b021ae110..af1c22c3e59ad0ee260d90f24c0b43a53d342acd 100644 +index 5dfc69bc0716c083ed0957b69491999649d24730..58ef50e3b833d2fca133a77d358376245ba6045a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -174,6 +174,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0201-Option-to-make-drowned-break-doors.patch b/patches/server/0200-Option-to-make-drowned-break-doors.patch similarity index 97% rename from patches/server/0201-Option-to-make-drowned-break-doors.patch rename to patches/server/0200-Option-to-make-drowned-break-doors.patch index 148e00d4c..6a2ebb1a9 100644 --- a/patches/server/0201-Option-to-make-drowned-break-doors.patch +++ b/patches/server/0200-Option-to-make-drowned-break-doors.patch @@ -34,7 +34,7 @@ index 4d2bb12b8168fceae71622a9f8bd5102d0024208..a592fb29097232d5d9c6e6d946fb326f @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index af1c22c3e59ad0ee260d90f24c0b43a53d342acd..59b5878b51628cc8fa9edce8b4d5a4cf2a928e50 100644 +index 58ef50e3b833d2fca133a77d358376245ba6045a..afc80bab4e9ae61da09afeac9c96531ae57ee218 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -1008,6 +1008,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0202-Configurable-hunger-starvation-damage.patch b/patches/server/0201-Configurable-hunger-starvation-damage.patch similarity index 95% rename from patches/server/0202-Configurable-hunger-starvation-damage.patch rename to patches/server/0201-Configurable-hunger-starvation-damage.patch index 1bc93efd5..d4a651425 100644 --- a/patches/server/0202-Configurable-hunger-starvation-damage.patch +++ b/patches/server/0201-Configurable-hunger-starvation-damage.patch @@ -18,7 +18,7 @@ index 65421cfff05c0493f5fef1bdff03172c9e33f33e..63584faeec4e5013be7a377e3203ec16 this.tickTimer = 0; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index cc33716dd6257927a16c5acf784cbf82c9c4d6d6..ca6672a885eba237100c78816f50dea750310ba1 100644 +index afc80bab4e9ae61da09afeac9c96531ae57ee218..b90cd1fcb0ec48c649df09ac729443d098286e4f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -2371,4 +2371,9 @@ public class PurpurWorldConfig { diff --git a/patches/server/0203-Redirect-System.out-calls-to-plugin-loggers.patch b/patches/server/0202-Redirect-System.out-calls-to-plugin-loggers.patch similarity index 100% rename from patches/server/0203-Redirect-System.out-calls-to-plugin-loggers.patch rename to patches/server/0202-Redirect-System.out-calls-to-plugin-loggers.patch diff --git a/patches/server/0204-Armor-click-equip-options.patch b/patches/server/0203-Armor-click-equip-options.patch similarity index 96% rename from patches/server/0204-Armor-click-equip-options.patch rename to patches/server/0203-Armor-click-equip-options.patch index f7f36e1c0..6bc822f81 100644 --- a/patches/server/0204-Armor-click-equip-options.patch +++ b/patches/server/0203-Armor-click-equip-options.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Armor click equip options diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 6954d96cf4324f8b608a867463b2b8feb2acd494..ff159296b0d8acef3af74cd578b00a93fba08f36 100644 +index 7649742f5e37d875e79c169c709ae82529b0db77..61d0fcaf3c96a2b241b35b2b21104b9fbf403160 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -497,7 +497,7 @@ public class ServerPlayerGameMode { @@ -58,7 +58,7 @@ index 42f79d418ec4e2dbeac9a217d9dc144cda2ef714..250c0e31825f772d3fee7a523f150cb2 return InteractionResultHolder.fail(itemStack); } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 2e0710cf3e930417772bd483eeda2023d23160ef..9382ffcf60cf50d37d53940a8842d68d0d101bfe 100644 +index b90cd1fcb0ec48c649df09ac729443d098286e4f..81698e6507c3d52136c8522147b60f991467ff25 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -345,6 +345,8 @@ public class PurpurWorldConfig { diff --git a/patches/server/0205-Add-uptime-command.patch b/patches/server/0204-Add-uptime-command.patch similarity index 100% rename from patches/server/0205-Add-uptime-command.patch rename to patches/server/0204-Add-uptime-command.patch diff --git a/patches/server/0206-Structure-seed-options.patch b/patches/server/0205-Structure-seed-options.patch similarity index 100% rename from patches/server/0206-Structure-seed-options.patch rename to patches/server/0205-Structure-seed-options.patch diff --git a/patches/server/0207-Tool-actionable-options.patch b/patches/server/0206-Tool-actionable-options.patch similarity index 99% rename from patches/server/0207-Tool-actionable-options.patch rename to patches/server/0206-Tool-actionable-options.patch index 5c647172f..a711bceab 100644 --- a/patches/server/0207-Tool-actionable-options.patch +++ b/patches/server/0206-Tool-actionable-options.patch @@ -109,7 +109,7 @@ index a5c2d6f0c0850a99224a1a8d622fe6b341cee88b..d8777ab86465e25236e7abbafd7ff668 return InteractionResult.PASS; } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 9382ffcf60cf50d37d53940a8842d68d0d101bfe..89584a299d163d36dfab27a2b5e585c0b361f8a1 100644 +index 81698e6507c3d52136c8522147b60f991467ff25..d2a2c83d51565ff8b270850c551a5547a4fb1a55 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -472,6 +472,153 @@ public class PurpurWorldConfig { diff --git a/patches/server/0208-Store-placer-on-Block-when-placed.patch b/patches/server/0207-Store-placer-on-Block-when-placed.patch similarity index 92% rename from patches/server/0208-Store-placer-on-Block-when-placed.patch rename to patches/server/0207-Store-placer-on-Block-when-placed.patch index 3e501b887..d08dbc92f 100644 --- a/patches/server/0208-Store-placer-on-Block-when-placed.patch +++ b/patches/server/0207-Store-placer-on-Block-when-placed.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Store placer on Block when placed diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 03271cdffd99ab443904a5d1da05d79c0566cbb4..dbc7bebaa4b14ee0eca51cb82e1aa80774f57fa5 100644 +index e82f465536a7f99e2dcbc7aeea1d5d2c93807351..5478fb15d9a9e6b916a9f20740205e502b28d77e 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java -@@ -384,6 +384,7 @@ public final class ItemStack { +@@ -383,6 +383,7 @@ public final class ItemStack { world.preventPoiUpdated = true; // CraftBukkit - SPIGOT-5710 for (BlockState blockstate : blocks) { blockstate.update(true, false); @@ -16,7 +16,7 @@ index 03271cdffd99ab443904a5d1da05d79c0566cbb4..dbc7bebaa4b14ee0eca51cb82e1aa807 } world.preventPoiUpdated = false; -@@ -413,6 +414,7 @@ public final class ItemStack { +@@ -412,6 +413,7 @@ public final class ItemStack { if (!(block.getBlock() instanceof BaseEntityBlock)) { // Containers get placed automatically block.getBlock().onPlace(block, world, newblockposition, oldBlock, true, itemactioncontext); // Paper - pass itemactioncontext } diff --git a/patches/server/0209-Summoner-API.patch b/patches/server/0208-Summoner-API.patch similarity index 100% rename from patches/server/0209-Summoner-API.patch rename to patches/server/0208-Summoner-API.patch diff --git a/patches/server/0210-Customizable-sleeping-actionbar-messages.patch b/patches/server/0209-Customizable-sleeping-actionbar-messages.patch similarity index 97% rename from patches/server/0210-Customizable-sleeping-actionbar-messages.patch rename to patches/server/0209-Customizable-sleeping-actionbar-messages.patch index 4dc599b63..e0e060989 100644 --- a/patches/server/0210-Customizable-sleeping-actionbar-messages.patch +++ b/patches/server/0209-Customizable-sleeping-actionbar-messages.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Customizable sleeping actionbar messages diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 3ddf11e24e0d05e3ee6c9e17eebee4e177ed63fe..d2b88b33149f5fa6360396f65088abd6b8e0f8f7 100644 +index 56ae23fdd7880dd7ad5ef5be369972f74cf83f08..5418cb8489869f5c1881937c7b5a98532fd9991e 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -942,11 +942,29 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0211-option-to-disable-shulker-box-items-from-dropping-co.patch b/patches/server/0210-option-to-disable-shulker-box-items-from-dropping-co.patch similarity index 96% rename from patches/server/0211-option-to-disable-shulker-box-items-from-dropping-co.patch rename to patches/server/0210-option-to-disable-shulker-box-items-from-dropping-co.patch index 1e2614d76..ad030e96f 100644 --- a/patches/server/0211-option-to-disable-shulker-box-items-from-dropping-co.patch +++ b/patches/server/0210-option-to-disable-shulker-box-items-from-dropping-co.patch @@ -19,7 +19,7 @@ index 8175bb6331727440da2232998bdad068a1c47ae8..be47543240bd573cd2cc08f84b7eab1c CompoundTag nbttagcompound = BlockItem.getBlockEntityData(itemstack); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 89584a299d163d36dfab27a2b5e585c0b361f8a1..36202f69545fffa244013336ae1473571c56a3a7 100644 +index d2a2c83d51565ff8b270850c551a5547a4fb1a55..852a61e4d369bec342765e6e5ed823f3bfd320a1 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -175,6 +175,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0212-Silk-touchable-budding-amethyst.patch b/patches/server/0211-Silk-touchable-budding-amethyst.patch similarity index 96% rename from patches/server/0212-Silk-touchable-budding-amethyst.patch rename to patches/server/0211-Silk-touchable-budding-amethyst.patch index 49f3b969d..ff312689f 100644 --- a/patches/server/0212-Silk-touchable-budding-amethyst.patch +++ b/patches/server/0211-Silk-touchable-budding-amethyst.patch @@ -24,7 +24,7 @@ index 02fc3ede12eadbf72e26e31b1c475c7f5b2ad73a..2288e727929ffb3a3bca138fb0289408 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index b8c8a04a6c9c92658e6a7fa7e171147193a61a9a..55f11d3a7baa39e684e84b7c8c5d8c82e3233e39 100644 +index 852a61e4d369bec342765e6e5ed823f3bfd320a1..b496d649e45e740402f6e56fec8c96d0b2e07f8d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -696,6 +696,11 @@ public class PurpurWorldConfig { diff --git a/patches/server/0213-Big-dripleaf-tilt-delay.patch b/patches/server/0212-Big-dripleaf-tilt-delay.patch similarity index 96% rename from patches/server/0213-Big-dripleaf-tilt-delay.patch rename to patches/server/0212-Big-dripleaf-tilt-delay.patch index 2aa80bb90..b474c1df8 100644 --- a/patches/server/0213-Big-dripleaf-tilt-delay.patch +++ b/patches/server/0212-Big-dripleaf-tilt-delay.patch @@ -24,7 +24,7 @@ index 3f434ac77611a81889b15c118a0fca57cc10a6bb..36d65d85d3cc030551fc0957c1ebbff6 if (i != -1) { world.scheduleTick(blockposition, (Block) this, i); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index e3254df008f77efa6d67e5c94414a30dc2d7d772..966d2ee872fe8e48930b54f2d29d29364d81f834 100644 +index b496d649e45e740402f6e56fec8c96d0b2e07f8d..b2f7212c33ba02294cc5c2ef6c9bf22ae1dec0d4 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -696,6 +696,22 @@ public class PurpurWorldConfig { diff --git a/patches/server/0214-Player-ridable-in-water-option.patch b/patches/server/0213-Player-ridable-in-water-option.patch similarity index 89% rename from patches/server/0214-Player-ridable-in-water-option.patch rename to patches/server/0213-Player-ridable-in-water-option.patch index 7424c331e..852dddaf9 100644 --- a/patches/server/0214-Player-ridable-in-water-option.patch +++ b/patches/server/0213-Player-ridable-in-water-option.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Player ridable in water option diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index a527b048e2fe4716609778f03060e13b8b88c544..4f3bd5847143692a611e5785b9d1fe3493b4f778 100644 +index 175b839a8b8c52b05b59c40f6b30b6e374d83cf1..d03b2609762ef31a1d15d1fbd739cb747adc7118 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -2061,6 +2061,11 @@ public abstract class Player extends LivingEntity { +@@ -2015,6 +2015,11 @@ public abstract class Player extends LivingEntity { return this.inventory.armor; } @@ -21,7 +21,7 @@ index a527b048e2fe4716609778f03060e13b8b88c544..4f3bd5847143692a611e5785b9d1fe34 if (!this.isPassenger() && this.onGround && !this.isInWater() && !this.isInPowderSnow) { if (this.getShoulderEntityLeft().isEmpty()) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 966d2ee872fe8e48930b54f2d29d29364d81f834..7ec1201fce2ab106032bb929acdecf07963ad175 100644 +index b2f7212c33ba02294cc5c2ef6c9bf22ae1dec0d4..3bf28cdc25724ed8065b44f53bfa35ebed2feea3 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -349,6 +349,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0215-Config-to-disable-Enderman-teleport-on-projectile-hi.patch b/patches/server/0214-Config-to-disable-Enderman-teleport-on-projectile-hi.patch similarity index 93% rename from patches/server/0215-Config-to-disable-Enderman-teleport-on-projectile-hi.patch rename to patches/server/0214-Config-to-disable-Enderman-teleport-on-projectile-hi.patch index 1349e15e1..b192274ba 100644 --- a/patches/server/0215-Config-to-disable-Enderman-teleport-on-projectile-hi.patch +++ b/patches/server/0214-Config-to-disable-Enderman-teleport-on-projectile-hi.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Config to disable Enderman teleport on projectile hit diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java -index fd06b697b810e4e74345c636cb3a02bc23959e76..2439af153aa2d6ae62bca41a794042fc5d0db1db 100644 +index bba5ce10a4dc06272936ca26d1ac0e5a98c2da1f..8923274fc04282cf97398b997603f699d92e6699 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java @@ -400,7 +400,7 @@ public class EnderMan extends Monster implements NeutralMob { @@ -18,7 +18,7 @@ index fd06b697b810e4e74345c636cb3a02bc23959e76..2439af153aa2d6ae62bca41a794042fc boolean flag; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 7ec1201fce2ab106032bb929acdecf07963ad175..e229f1ce7e8d8466bfd7a0bcb277d4b49a5d6fc9 100644 +index 3bf28cdc25724ed8065b44f53bfa35ebed2feea3..aee40fd438225fa5eb0b023ed047eb95136f2093 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -1255,6 +1255,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0216-Add-compass-command.patch b/patches/server/0215-Add-compass-command.patch similarity index 98% rename from patches/server/0216-Add-compass-command.patch rename to patches/server/0215-Add-compass-command.patch index 45f4ebc46..41d368e84 100644 --- a/patches/server/0216-Add-compass-command.patch +++ b/patches/server/0215-Add-compass-command.patch @@ -17,7 +17,7 @@ index 04aa3a9d98ff4de3ce0bbacb07dc30170ff232b1..d81e3073d0e905388e1390d849f77990 if (environment.includeIntegrated) { diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 7bbe7349bbc3a5eaccdecf57bc7334d5dcfdfe2b..dc93e2a4db920350da4a723836807372ec2cf042 100644 +index 6d643998ee32de7f96b94e10fbd0b08a75628978..e2e83d8b39ddb154c0e69b63d5b996644926ac43 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -257,6 +257,7 @@ public class ServerPlayer extends Player { @@ -111,7 +111,7 @@ index 049bf902e8e77d7eac8dc868593c215bf04838a9..2b90f0aa67e3ed19e29c5ec72cf89473 hideHiddenPlayersFromEntitySelector = getBoolean("settings.command.hide-hidden-players-from-entity-selector", hideHiddenPlayersFromEntitySelector); uptimeFormat = getString("settings.command.uptime.format", uptimeFormat); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index e229f1ce7e8d8466bfd7a0bcb277d4b49a5d6fc9..154a35886ee07be1f7ab174028ffa7680dde4ef0 100644 +index aee40fd438225fa5eb0b023ed047eb95136f2093..619d1295836ac51ff5b5bc8400ee59f296788455 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -176,6 +176,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0217-Config-to-prevent-horses-from-standing-with-riders.patch b/patches/server/0216-Config-to-prevent-horses-from-standing-with-riders.patch similarity index 96% rename from patches/server/0217-Config-to-prevent-horses-from-standing-with-riders.patch rename to patches/server/0216-Config-to-prevent-horses-from-standing-with-riders.patch index 8502333f4..28b3ab0c2 100644 --- a/patches/server/0217-Config-to-prevent-horses-from-standing-with-riders.patch +++ b/patches/server/0216-Config-to-prevent-horses-from-standing-with-riders.patch @@ -20,7 +20,7 @@ index 0be0c81f2b0a58eba75eb8559f78d8a58014d0ae..f7088aaf65ee5725e928845a63485211 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 154a35886ee07be1f7ab174028ffa7680dde4ef0..ec355e570e86dd2ebdfffec2ca4842aae38c2b29 100644 +index 619d1295836ac51ff5b5bc8400ee59f296788455..7459e7bc62bfd4a6f97f7ed62a11de47c3d0a82c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -1453,6 +1453,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0218-Toggle-for-kinetic-damage.patch b/patches/server/0217-Toggle-for-kinetic-damage.patch similarity index 89% rename from patches/server/0218-Toggle-for-kinetic-damage.patch rename to patches/server/0217-Toggle-for-kinetic-damage.patch index 720a5f55f..a06ebf77a 100644 --- a/patches/server/0218-Toggle-for-kinetic-damage.patch +++ b/patches/server/0217-Toggle-for-kinetic-damage.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Toggle for kinetic damage diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index cbda521957675303270c3308819c544fee549c18..42463d6823b4f045af22665fd5e4685e98e484a1 100644 +index ca7e980732b4017f5147e2c372bd4c8dc7f7315c..8ca536d4c7ba1ec860638cdebcfbd2832c91eded 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -2791,7 +2791,11 @@ public abstract class LivingEntity extends Entity { +@@ -2796,7 +2796,11 @@ public abstract class LivingEntity extends Entity { if (f4 > 0.0F) { this.playSound(this.getFallDamageSound((int) f4), 1.0F, 1.0F); @@ -22,7 +22,7 @@ index cbda521957675303270c3308819c544fee549c18..42463d6823b4f045af22665fd5e4685e } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index ec355e570e86dd2ebdfffec2ca4842aae38c2b29..ef8d6fb33bbcdc531dfd6ce45e2381116c9c2123 100644 +index 7459e7bc62bfd4a6f97f7ed62a11de47c3d0a82c..defa4da1a8fbe788b8c6f0b1dd998def78ea4821 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -138,12 +138,14 @@ public class PurpurWorldConfig { diff --git a/patches/server/0219-Add-Option-for-disable-observer-clocks.patch b/patches/server/0218-Add-Option-for-disable-observer-clocks.patch similarity index 95% rename from patches/server/0219-Add-Option-for-disable-observer-clocks.patch rename to patches/server/0218-Add-Option-for-disable-observer-clocks.patch index 6ecce158c..94759f632 100644 --- a/patches/server/0219-Add-Option-for-disable-observer-clocks.patch +++ b/patches/server/0218-Add-Option-for-disable-observer-clocks.patch @@ -18,7 +18,7 @@ index 4a34a08a1d46e4d3020644a51d9e30a36a18791a..be28b5aba28383058548cfb68f982664 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index ef8d6fb33bbcdc531dfd6ce45e2381116c9c2123..354468e045811c8ff3e9cc8d64b7ee799863ac79 100644 +index defa4da1a8fbe788b8c6f0b1dd998def78ea4821..0da814c002dc9c4419db4e022a9c5dfb1ad94fd7 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -321,6 +321,11 @@ public class PurpurWorldConfig { diff --git a/patches/server/0220-Customizeable-Zombie-Villager-curing-times.patch b/patches/server/0219-Customizeable-Zombie-Villager-curing-times.patch similarity index 96% rename from patches/server/0220-Customizeable-Zombie-Villager-curing-times.patch rename to patches/server/0219-Customizeable-Zombie-Villager-curing-times.patch index 08ffb57eb..2c41882b7 100644 --- a/patches/server/0220-Customizeable-Zombie-Villager-curing-times.patch +++ b/patches/server/0219-Customizeable-Zombie-Villager-curing-times.patch @@ -18,7 +18,7 @@ index 96e5d1210e27b0bca7a354366e5c805709ae4fec..c6ba41c2b4cc96bc97ed2e2220c0f3fa this.gameEvent(GameEvent.MOB_INTERACT, this.eyeBlockPosition()); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 50fb46df1085dc6d07dc4c4cffb6610e9ceb8d08..231fbef1b227abe88a1fc46defc1ffaf881dee38 100644 +index 0da814c002dc9c4419db4e022a9c5dfb1ad94fd7..d875224b179239773697d079091fc2bb97b5cf1e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -2519,6 +2519,8 @@ public class PurpurWorldConfig { diff --git a/patches/server/0221-Option-for-sponges-to-work-on-lava.patch b/patches/server/0220-Option-for-sponges-to-work-on-lava.patch similarity index 95% rename from patches/server/0221-Option-for-sponges-to-work-on-lava.patch rename to patches/server/0220-Option-for-sponges-to-work-on-lava.patch index cee963555..82866a0ab 100644 --- a/patches/server/0221-Option-for-sponges-to-work-on-lava.patch +++ b/patches/server/0220-Option-for-sponges-to-work-on-lava.patch @@ -18,7 +18,7 @@ index 97b4e3c0d2b1bbde77b135b8595c3bfa190a14cb..02b98cfe47d5d2f3c362a84c6b05e734 ++i; if (j < world.purpurConfig.spongeAbsorptionRadius) { // Purpur diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 079c75d8d5c6db1d8abe02aabc98b64dd718792c..a975e29b58d669129aa86a4b78fb8bbd8f8b6950 100644 +index d875224b179239773697d079091fc2bb97b5cf1e..a87399446cf56eec799c4aca5afc0db32e612d4c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -912,9 +912,11 @@ public class PurpurWorldConfig { diff --git a/patches/server/0222-Toggle-for-Wither-s-spawn-sound.patch b/patches/server/0221-Toggle-for-Wither-s-spawn-sound.patch similarity index 96% rename from patches/server/0222-Toggle-for-Wither-s-spawn-sound.patch rename to patches/server/0221-Toggle-for-Wither-s-spawn-sound.patch index efc326a44..dd820aaad 100644 --- a/patches/server/0222-Toggle-for-Wither-s-spawn-sound.patch +++ b/patches/server/0221-Toggle-for-Wither-s-spawn-sound.patch @@ -18,7 +18,7 @@ index 46b8886b6b17fa145db42aeb380f22ec0ae99ec0..1cab4c037c99babf4e35480de7ffc02b // this.world.globalLevelEvent(1023, new BlockPosition(this), 0); //int viewDistance = ((ServerLevel) this.level).getCraftServer().getViewDistance() * 16; // Paper - updated to use worlds actual view distance incase we have to uncomment this due to removal of player view distance API diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index e4c0f23780b7cdb83c75f873dc6271f13a61f20a..9ce640bc28c71eb398f8e97f4d16b47fa0f2ad8d 100644 +index a87399446cf56eec799c4aca5afc0db32e612d4c..6c5996d72138e5d4e52bd82584ce1035d1b74daf 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -2374,6 +2374,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0223-Cactus-breaks-from-solid-neighbors-config.patch b/patches/server/0222-Cactus-breaks-from-solid-neighbors-config.patch similarity index 95% rename from patches/server/0223-Cactus-breaks-from-solid-neighbors-config.patch rename to patches/server/0222-Cactus-breaks-from-solid-neighbors-config.patch index 80d633ccc..667db0c83 100644 --- a/patches/server/0223-Cactus-breaks-from-solid-neighbors-config.patch +++ b/patches/server/0222-Cactus-breaks-from-solid-neighbors-config.patch @@ -18,7 +18,7 @@ index fa36ad3bb63764778aa7201d90e331e64292c7b4..dfa06b3c7323aeb12b1e234ca27c924a return false; } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 35bf7ac52af2124a920b788abc930f262b0b6bbc..67a5ccb48fbbf588d4cdb6914b5d91f80e9fb0ec 100644 +index 6c5996d72138e5d4e52bd82584ce1035d1b74daf..e619681d6255f975ff40c30be173cfafa8a94f07 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -728,6 +728,11 @@ public class PurpurWorldConfig { diff --git a/patches/server/0224-Config-to-remove-curse-of-binding-with-weakness.patch b/patches/server/0223-Config-to-remove-curse-of-binding-with-weakness.patch similarity index 96% rename from patches/server/0224-Config-to-remove-curse-of-binding-with-weakness.patch rename to patches/server/0223-Config-to-remove-curse-of-binding-with-weakness.patch index fcddf2190..7f4ca09ee 100644 --- a/patches/server/0224-Config-to-remove-curse-of-binding-with-weakness.patch +++ b/patches/server/0223-Config-to-remove-curse-of-binding-with-weakness.patch @@ -26,7 +26,7 @@ index 111da6398bb561e58571e47743088ce80416234d..0a2c776b9b1da7d0d4481dd527e0068b @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 67a5ccb48fbbf588d4cdb6914b5d91f80e9fb0ec..c199152ede194fadb4f38c496201492ec689b664 100644 +index e619681d6255f975ff40c30be173cfafa8a94f07..ed96c5d8f5878b5cfeefa5561620b151fec16dcc 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -359,6 +359,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0225-Conduit-behavior-configuration.patch b/patches/server/0224-Conduit-behavior-configuration.patch similarity index 97% rename from patches/server/0225-Conduit-behavior-configuration.patch rename to patches/server/0224-Conduit-behavior-configuration.patch index a70e1171e..c26d686a9 100644 --- a/patches/server/0225-Conduit-behavior-configuration.patch +++ b/patches/server/0224-Conduit-behavior-configuration.patch @@ -44,7 +44,7 @@ index 96b6e914441ee1faa059aa5ddcf77ffb74e76ae9..31af7d8111e73169d3e02aa52799a018 } CraftEventFactory.blockDamage = null; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index bbc5e20706b638fb39304ca93050a7849ad0281d..f6a2dae482f98eab406289497182ccc377ae9cd0 100644 +index ed96c5d8f5878b5cfeefa5561620b151fec16dcc..53e9deb3c55dc20d38018599f4e2ea90c8086b85 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -2580,5 +2580,28 @@ public class PurpurWorldConfig { diff --git a/patches/server/0226-Cauldron-fill-chances.patch b/patches/server/0225-Cauldron-fill-chances.patch similarity index 95% rename from patches/server/0226-Cauldron-fill-chances.patch rename to patches/server/0225-Cauldron-fill-chances.patch index 4740e477f..8c07a8817 100644 --- a/patches/server/0226-Cauldron-fill-chances.patch +++ b/patches/server/0225-Cauldron-fill-chances.patch @@ -18,7 +18,7 @@ index dbae4f3b56d0290c6d28b9beaaa3b459754d43e3..676184c48c3abd8e2fb9a04ae3e165dc @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index f6a2dae482f98eab406289497182ccc377ae9cd0..d258a942d35e5aeca80629c19982791f5ba37365 100644 +index 53e9deb3c55dc20d38018599f4e2ea90c8086b85..cefa14726dfc69c3d544e92a6373672e09a4c8d3 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -2603,5 +2603,12 @@ public class PurpurWorldConfig { diff --git a/patches/server/0227-Config-to-allow-mobs-to-pathfind-over-rails.patch b/patches/server/0226-Config-to-allow-mobs-to-pathfind-over-rails.patch similarity index 93% rename from patches/server/0227-Config-to-allow-mobs-to-pathfind-over-rails.patch rename to patches/server/0226-Config-to-allow-mobs-to-pathfind-over-rails.patch index 2124fef91..0ec0cd263 100644 --- a/patches/server/0227-Config-to-allow-mobs-to-pathfind-over-rails.patch +++ b/patches/server/0226-Config-to-allow-mobs-to-pathfind-over-rails.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Config to allow mobs to pathfind over rails diff --git a/src/main/java/net/minecraft/world/level/pathfinder/WalkNodeEvaluator.java b/src/main/java/net/minecraft/world/level/pathfinder/WalkNodeEvaluator.java -index ce891b7d8e5cbc956c28b8bb8c5c9976b7377039..8ecc9099515e38bfe38a5f9ca034cd81250c4396 100644 +index d7bdf3c2a5b99ff7adb3e960ff356a1fad169de0..3ca846cc78ec2ac8c9f840a9ac7f0b87b871f8d7 100644 --- a/src/main/java/net/minecraft/world/level/pathfinder/WalkNodeEvaluator.java +++ b/src/main/java/net/minecraft/world/level/pathfinder/WalkNodeEvaluator.java @@ -240,7 +240,7 @@ public class WalkNodeEvaluator extends NodeEvaluator { @@ -18,7 +18,7 @@ index ce891b7d8e5cbc956c28b8bb8c5c9976b7377039..8ecc9099515e38bfe38a5f9ca034cd81 if (node != null && (node.type == BlockPathTypes.OPEN || node.type == BlockPathTypes.WALKABLE) && this.mob.getBbWidth() < 1.0F) { double g = (double)(x - direction.getStepX()) + 0.5D; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index ffec1ba86f2253e6591a83fba7f703dad69bb471..29ff256b2c24d76a33a1a6bf0a85f514c0fb206a 100644 +index cefa14726dfc69c3d544e92a6373672e09a4c8d3..15b4894d6a4da9cbb8414835f772851675d184f9 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -654,6 +654,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0228-Add-force-and-prompt-parameters-to-resource-pack-api.patch b/patches/server/0227-Add-force-and-prompt-parameters-to-resource-pack-api.patch similarity index 100% rename from patches/server/0228-Add-force-and-prompt-parameters-to-resource-pack-api.patch rename to patches/server/0227-Add-force-and-prompt-parameters-to-resource-pack-api.patch diff --git a/patches/server/0229-Shulker-change-color-with-dye.patch b/patches/server/0228-Shulker-change-color-with-dye.patch similarity index 97% rename from patches/server/0229-Shulker-change-color-with-dye.patch rename to patches/server/0228-Shulker-change-color-with-dye.patch index 837689545..769944846 100644 --- a/patches/server/0229-Shulker-change-color-with-dye.patch +++ b/patches/server/0228-Shulker-change-color-with-dye.patch @@ -47,7 +47,7 @@ index ec7c5f638573ee331112d91cdfaa8511801c6891..e9f4a1de40ab4d7a82d4f222b4aba0aa @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 29ff256b2c24d76a33a1a6bf0a85f514c0fb206a..f28712e077171c465cdcfd298e833732842831c4 100644 +index 15b4894d6a4da9cbb8414835f772851675d184f9..93e14812e93a668326a67755cfe37c015972129c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -1986,6 +1986,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0230-Extended-OfflinePlayer-API.patch b/patches/server/0229-Extended-OfflinePlayer-API.patch similarity index 100% rename from patches/server/0230-Extended-OfflinePlayer-API.patch rename to patches/server/0229-Extended-OfflinePlayer-API.patch diff --git a/patches/server/0231-Added-the-ability-to-add-combustible-items.patch b/patches/server/0230-Added-the-ability-to-add-combustible-items.patch similarity index 97% rename from patches/server/0231-Added-the-ability-to-add-combustible-items.patch rename to patches/server/0230-Added-the-ability-to-add-combustible-items.patch index 6c9b93128..a7061b0fd 100644 --- a/patches/server/0231-Added-the-ability-to-add-combustible-items.patch +++ b/patches/server/0230-Added-the-ability-to-add-combustible-items.patch @@ -24,7 +24,7 @@ index 4adfc26062b322443828e94e6b0943884a18846b..0d9ecca25bff63f3428ccf93e2789fca } else if (this.isFuel(itemstack1)) { if (!this.moveItemStackTo(itemstack1, 1, 2, false)) { diff --git a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java -index 600a71b8da335ddfc70f782cbbb08647ae98a89c..e7387a287ac84dcf8f39c547538432e5bf967965 100644 +index 0d9b592ebfd22dc679ba7dbfd339db4d6bc5ad44..f5fd6e0fd67c1b760000c2e75ce09d1c680b4cf6 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java @@ -205,6 +205,22 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit diff --git a/patches/server/0232-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch b/patches/server/0231-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch similarity index 94% rename from patches/server/0232-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch rename to patches/server/0231-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch index 613a723a8..0435cf8ef 100644 --- a/patches/server/0232-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch +++ b/patches/server/0231-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 d2b88b33149f5fa6360396f65088abd6b8e0f8f7..cdc4fc0312303ec869f86bac00444a4ba0e277d8 100644 +index 5418cb8489869f5c1881937c7b5a98532fd9991e..fcb4fd7420d7c001c989cd12b35d2857c1fe386b 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1103,6 +1103,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -25,7 +25,7 @@ index d2b88b33149f5fa6360396f65088abd6b8e0f8f7..cdc4fc0312303ec869f86bac00444a4b // CraftBukkit start // If we stop due to everyone sleeping we should reset the weather duration to some other random value. diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index f28712e077171c465cdcfd298e833732842831c4..fba7fdd89e1d51d41a24f0ad2d7828dcf5e8e871 100644 +index 93e14812e93a668326a67755cfe37c015972129c..2f4fb33eb1e34399fbb974cbc4c080f45943212e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -655,6 +655,8 @@ public class PurpurWorldConfig { diff --git a/patches/server/0233-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch b/patches/server/0232-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch similarity index 98% rename from patches/server/0233-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch rename to patches/server/0232-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch index 178073ed7..653311259 100644 --- a/patches/server/0233-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch +++ b/patches/server/0232-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch @@ -45,7 +45,7 @@ index 71e494b949541284b0642dae4b20a6b3ec459828..625ad12e43cc651c986a3b45ce9a7c5b public static final Block MOSS_BLOCK = register("moss_block", new MossBlock(BlockBehaviour.Properties.of(Material.MOSS, MaterialColor.COLOR_GREEN).strength(0.1F).sound(SoundType.MOSS))); public static final Block BIG_DRIPLEAF = register("big_dripleaf", new BigDripleafBlock(BlockBehaviour.Properties.of(Material.PLANT).strength(0.1F).sound(SoundType.BIG_DRIPLEAF))); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index fba7fdd89e1d51d41a24f0ad2d7828dcf5e8e871..2055678b89ae64d90aabe9bbad85244d06a67b42 100644 +index 2f4fb33eb1e34399fbb974cbc4c080f45943212e..951aeea89bc70ebeeb0bfef829096ba1de1c3e5b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -688,6 +688,11 @@ public class PurpurWorldConfig { diff --git a/patches/server/0234-Shift-right-click-to-use-exp-for-mending.patch b/patches/server/0233-Shift-right-click-to-use-exp-for-mending.patch similarity index 94% rename from patches/server/0234-Shift-right-click-to-use-exp-for-mending.patch rename to patches/server/0233-Shift-right-click-to-use-exp-for-mending.patch index c27d7b368..f6566b3b0 100644 --- a/patches/server/0234-Shift-right-click-to-use-exp-for-mending.patch +++ b/patches/server/0233-Shift-right-click-to-use-exp-for-mending.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Shift right click to use exp for mending diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index ff159296b0d8acef3af74cd578b00a93fba08f36..ff025406e5755aa3654509bd98363f095cc11840 100644 +index 61d0fcaf3c96a2b241b35b2b21104b9fbf403160..c5c7fd414953fb432549e46918fe7e32ff587e6b 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -524,6 +524,7 @@ public class ServerPlayerGameMode { @@ -36,7 +36,7 @@ index ff159296b0d8acef3af74cd578b00a93fba08f36..ff025406e5755aa3654509bd98363f09 + // 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 2380bab916cf628c928675229db0bbae76db92e2..57e62bc6a0cbad43822d389af6857531ed82963d 100644 +index 379b437e45d4ae299118914d3525437d5e3737ff..ae8450fa09cb481d14db81364553d16e542aa182 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1941,6 +1941,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser @@ -48,7 +48,7 @@ index 2380bab916cf628c928675229db0bbae76db92e2..57e62bc6a0cbad43822d389af6857531 cancelled = event.useItemInHand() == Event.Result.DENY; } else { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 2055678b89ae64d90aabe9bbad85244d06a67b42..c7af3ed3e63b29d4b832bcf5da17777dfef5c5d4 100644 +index 951aeea89bc70ebeeb0bfef829096ba1de1c3e5b..d04d0105d2d04a93ab09b390e85f9d7bdfdbbf4e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -360,6 +360,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0235-Dolphins-naturally-aggressive-to-players-chance.patch b/patches/server/0234-Dolphins-naturally-aggressive-to-players-chance.patch similarity index 98% rename from patches/server/0235-Dolphins-naturally-aggressive-to-players-chance.patch rename to patches/server/0234-Dolphins-naturally-aggressive-to-players-chance.patch index 97595dbfc..aae534074 100644 --- a/patches/server/0235-Dolphins-naturally-aggressive-to-players-chance.patch +++ b/patches/server/0234-Dolphins-naturally-aggressive-to-players-chance.patch @@ -47,7 +47,7 @@ index 49e5a753aae7d72102ee700f3d8309f2f488cc12..022441af276cd9facba1ee4013d9d367 public static AttributeSupplier.Builder createAttributes() { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index c7af3ed3e63b29d4b832bcf5da17777dfef5c5d4..c6f4211f559ad11e3f20122ed5e296b0b5d60259 100644 +index d04d0105d2d04a93ab09b390e85f9d7bdfdbbf4e..c0538bf713edcc9166b9a8558112bab3f2cfa831 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -1169,6 +1169,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0236-Cows-naturally-aggressive-to-players-chance.patch b/patches/server/0235-Cows-naturally-aggressive-to-players-chance.patch similarity index 98% rename from patches/server/0236-Cows-naturally-aggressive-to-players-chance.patch rename to patches/server/0235-Cows-naturally-aggressive-to-players-chance.patch index cce78afd6..158965583 100644 --- a/patches/server/0236-Cows-naturally-aggressive-to-players-chance.patch +++ b/patches/server/0235-Cows-naturally-aggressive-to-players-chance.patch @@ -59,7 +59,7 @@ index 7042b95e92520c5e152af0fa71a553122ec814df..bbd210f8779138b225ce886b3917ca9c @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index c6f4211f559ad11e3f20122ed5e296b0b5d60259..40f3874e5326bfb6c967ef3ebb03a9d59f0af667 100644 +index c0538bf713edcc9166b9a8558112bab3f2cfa831..7106b9525e7c01b66bb16161641cd772a0c3bd8b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -1122,7 +1122,14 @@ public class PurpurWorldConfig { diff --git a/patches/server/0237-Option-for-beds-to-explode-on-villager-sleep.patch b/patches/server/0236-Option-for-beds-to-explode-on-villager-sleep.patch similarity index 96% rename from patches/server/0237-Option-for-beds-to-explode-on-villager-sleep.patch rename to patches/server/0236-Option-for-beds-to-explode-on-villager-sleep.patch index 5f9cfeccc..9dfbee25e 100644 --- a/patches/server/0237-Option-for-beds-to-explode-on-villager-sleep.patch +++ b/patches/server/0236-Option-for-beds-to-explode-on-villager-sleep.patch @@ -22,7 +22,7 @@ index fae4a7c79baac15a06b737b6081956a55b024c8d..e95210c6deee2c6431ef01d239531744 this.brain.setMemory(MemoryModuleType.LAST_SLEPT, this.level.getGameTime()); // CraftBukkit - decompile error this.brain.eraseMemory(MemoryModuleType.WALK_TARGET); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 40f3874e5326bfb6c967ef3ebb03a9d59f0af667..509e64437a51067c40618d3d90f82a6981e55eb7 100644 +index 7106b9525e7c01b66bb16161641cd772a0c3bd8b..fcb9c9139ea8dc0de141688462d15815fb838b69 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -707,11 +707,13 @@ public class PurpurWorldConfig { diff --git a/patches/server/0238-Halloween-options-and-optimizations.patch b/patches/server/0237-Halloween-options-and-optimizations.patch similarity index 98% rename from patches/server/0238-Halloween-options-and-optimizations.patch rename to patches/server/0237-Halloween-options-and-optimizations.patch index be20cbe2a..3b5e32cc4 100644 --- a/patches/server/0238-Halloween-options-and-optimizations.patch +++ b/patches/server/0237-Halloween-options-and-optimizations.patch @@ -60,7 +60,7 @@ index 735ecd9d768b9e579142810d5f03093dafad0fa3..cb5a04aacf5e9f0f024f3a1c3a38dd88 this.armorDropChances[EquipmentSlot.HEAD.getIndex()] = 0.0F; } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 509e64437a51067c40618d3d90f82a6981e55eb7..dc82ccaf59c54191fda27ddd3d544f2351975095 100644 +index fcb9c9139ea8dc0de141688462d15815fb838b69..6501dd086fe3d5be6f30c44da347fbd13d39286d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -1473,6 +1473,13 @@ public class PurpurWorldConfig { diff --git a/patches/server/0239-Config-for-Grindstones-ignoring-curses.patch b/patches/server/0238-Config-for-Grindstones-ignoring-curses.patch similarity index 100% rename from patches/server/0239-Config-for-Grindstones-ignoring-curses.patch rename to patches/server/0238-Config-for-Grindstones-ignoring-curses.patch diff --git a/patches/server/0240-UPnP-Port-Forwarding.patch b/patches/server/0239-UPnP-Port-Forwarding.patch similarity index 100% rename from patches/server/0240-UPnP-Port-Forwarding.patch rename to patches/server/0239-UPnP-Port-Forwarding.patch diff --git a/patches/server/0241-Campfire-option-for-lit-when-placed.patch b/patches/server/0240-Campfire-option-for-lit-when-placed.patch similarity index 96% rename from patches/server/0241-Campfire-option-for-lit-when-placed.patch rename to patches/server/0240-Campfire-option-for-lit-when-placed.patch index 5089c6739..c567e9bba 100644 --- a/patches/server/0241-Campfire-option-for-lit-when-placed.patch +++ b/patches/server/0240-Campfire-option-for-lit-when-placed.patch @@ -18,7 +18,7 @@ index 0b60b545271e62df86a0eb3c1f0f315a014b24cd..44df9e5034887c756c00bdcfb3ea04d4 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index dc82ccaf59c54191fda27ddd3d544f2351975095..6cc99209520534ebbd78bcc98ea2b373b80ea788 100644 +index 6501dd086fe3d5be6f30c44da347fbd13d39286d..eb6c34cd8da95546e1f2203d4b0144c828158367 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -951,6 +951,11 @@ public class PurpurWorldConfig { diff --git a/patches/server/0242-options-to-extinguish-fire-blocks-with-snowballs.patch b/patches/server/0241-options-to-extinguish-fire-blocks-with-snowballs.patch similarity index 98% rename from patches/server/0242-options-to-extinguish-fire-blocks-with-snowballs.patch rename to patches/server/0241-options-to-extinguish-fire-blocks-with-snowballs.patch index 23d98626f..282bcd6eb 100644 --- a/patches/server/0242-options-to-extinguish-fire-blocks-with-snowballs.patch +++ b/patches/server/0241-options-to-extinguish-fire-blocks-with-snowballs.patch @@ -46,7 +46,7 @@ index d5d84893c77b4e60a19032d765d76bfd24cbbb2b..ef265cec066ef3b84c2b3a4929af5183 protected void onHit(HitResult hitResult) { super.onHit(hitResult); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 6cc99209520534ebbd78bcc98ea2b373b80ea788..beb6a9d8ed40ab771c05ccf842065e4f4e85193e 100644 +index eb6c34cd8da95546e1f2203d4b0144c828158367..70ee58e7e4c388a38607e7810b950a14dee193c3 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -179,6 +179,9 @@ public class PurpurWorldConfig { diff --git a/patches/server/0243-Add-option-to-disable-zombie-villagers-cure.patch b/patches/server/0242-Add-option-to-disable-zombie-villagers-cure.patch similarity index 96% rename from patches/server/0243-Add-option-to-disable-zombie-villagers-cure.patch rename to patches/server/0242-Add-option-to-disable-zombie-villagers-cure.patch index f5eb6f1b7..253f2e299 100644 --- a/patches/server/0243-Add-option-to-disable-zombie-villagers-cure.patch +++ b/patches/server/0242-Add-option-to-disable-zombie-villagers-cure.patch @@ -18,7 +18,7 @@ index c6ba41c2b4cc96bc97ed2e2220c0f3fa4f31dbe3..22a5d2f0de4bdd4432d1beff840f448a itemstack.shrink(1); } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 28d817eaa5cbaa5a9f10896b29ad764551489763..6fb767d590a84b128312c46579e4e67eb52753d4 100644 +index 70ee58e7e4c388a38607e7810b950a14dee193c3..460bbbc01b058d173e189e1ad944d2f458a9e069 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -2583,6 +2583,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0244-Persistent-BlockEntity-Lore-and-DisplayName.patch b/patches/server/0243-Persistent-BlockEntity-Lore-and-DisplayName.patch similarity index 99% rename from patches/server/0244-Persistent-BlockEntity-Lore-and-DisplayName.patch rename to patches/server/0243-Persistent-BlockEntity-Lore-and-DisplayName.patch index 0ae0c7c34..7117cd89c 100644 --- a/patches/server/0244-Persistent-BlockEntity-Lore-and-DisplayName.patch +++ b/patches/server/0243-Persistent-BlockEntity-Lore-and-DisplayName.patch @@ -191,7 +191,7 @@ index 5601d0c2fe635a2a4f073c333531e1a8adf1833c..9e7d2fbdfa89736807d2025a5814ddd8 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 1d0fd0c39a6083d119bf3a5a8a8fbb381bf520ee..9745f27d0284aa086236455facd6591961b76770 100644 +index 460bbbc01b058d173e189e1ad944d2f458a9e069..bf956c5b062ae21040d58f55abe6a50be2ee3a08 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -654,6 +654,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0245-Signs-allow-color-codes.patch b/patches/server/0244-Signs-allow-color-codes.patch similarity index 94% rename from patches/server/0245-Signs-allow-color-codes.patch rename to patches/server/0244-Signs-allow-color-codes.patch index c1a35f8fd..284a0ae52 100644 --- a/patches/server/0245-Signs-allow-color-codes.patch +++ b/patches/server/0244-Signs-allow-color-codes.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Signs allow color codes diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index dc93e2a4db920350da4a723836807372ec2cf042..cf2e1e4c9da9e695ffb5b9d658f36f9a3c304738 100644 +index e2e83d8b39ddb154c0e69b63d5b996644926ac43..a9885f92e0a3494b27376a7a01edbd0e22a31708 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1496,6 +1496,7 @@ public class ServerPlayer extends Player { @@ -17,7 +17,7 @@ index dc93e2a4db920350da4a723836807372ec2cf042..cf2e1e4c9da9e695ffb5b9d658f36f9a this.connection.send(new ClientboundBlockUpdatePacket(this.level, sign.getBlockPos())); this.connection.send(new ClientboundOpenSignEditorPacket(sign.getBlockPos())); diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 57e62bc6a0cbad43822d389af6857531ed82963d..f1629b07460f4135ada0f08ddbda97df463269f6 100644 +index ae8450fa09cb481d14db81364553d16e542aa182..bea4a6d594b1fb266cbbe0a107f1a0a91d6fe682 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -3139,11 +3139,15 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser @@ -70,7 +70,7 @@ index 6371176fba41218a209ea59b4cafe5b2d4a685fd..7666bca74f4f68bb4e902ec2eb7c4895 public CompoundTag getUpdateTag() { return this.saveWithoutMetadata(); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 9745f27d0284aa086236455facd6591961b76770..d1a4c90e0a350b08478cc1f330cf00851ff012c7 100644 +index bf956c5b062ae21040d58f55abe6a50be2ee3a08..9a6491f7a3f10a9a0eb0b369b8d1dc26067a0aba 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -926,8 +926,10 @@ public class PurpurWorldConfig { diff --git a/patches/server/0246-Kelp-weeping-and-twisting-vines-configurable-max-gro.patch b/patches/server/0245-Kelp-weeping-and-twisting-vines-configurable-max-gro.patch similarity index 98% rename from patches/server/0246-Kelp-weeping-and-twisting-vines-configurable-max-gro.patch rename to patches/server/0245-Kelp-weeping-and-twisting-vines-configurable-max-gro.patch index 54418ab27..b22c825da 100644 --- a/patches/server/0246-Kelp-weeping-and-twisting-vines-configurable-max-gro.patch +++ b/patches/server/0245-Kelp-weeping-and-twisting-vines-configurable-max-gro.patch @@ -131,7 +131,7 @@ index 35b2bad76c45b5a94ba7f2e9c7a8cfeb8c3f498b..913818656f058990270ed1e4303da1c4 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index d1a4c90e0a350b08478cc1f330cf00851ff012c7..9e12856a114567e2de59efbac29b4bec81bbeb53 100644 +index 9a6491f7a3f10a9a0eb0b369b8d1dc26067a0aba..8d5525c7b7b867360d6e0b4222e8c2452790d994 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -768,6 +768,26 @@ public class PurpurWorldConfig { diff --git a/patches/server/0247-Backport-log4j-2.15.0-bugfix.patch b/patches/server/0247-Backport-log4j-2.15.0-bugfix.patch deleted file mode 100644 index 06ee67502..000000000 --- a/patches/server/0247-Backport-log4j-2.15.0-bugfix.patch +++ /dev/null @@ -1,384 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Ralph Goers -Date: Sat, 4 Dec 2021 21:03:32 -0700 -Subject: [PATCH] Backport log4j 2.15.0 bugfix - - -diff --git a/src/main/java/org/apache/logging/log4j/core/appender/mom/JmsAppender.java b/src/main/java/org/apache/logging/log4j/core/appender/mom/JmsAppender.java -index ddac6663a164ce362773cab3257e867a418a17a0..2c6f065299431099e0066d9ad74421ecac1daa44 100644 ---- a/src/main/java/org/apache/logging/log4j/core/appender/mom/JmsAppender.java -+++ b/src/main/java/org/apache/logging/log4j/core/appender/mom/JmsAppender.java -@@ -21,8 +21,6 @@ import java.io.Serializable; - import java.util.Properties; - import java.util.concurrent.TimeUnit; - --import javax.jms.JMSException; -- - import org.apache.logging.log4j.core.Appender; - import org.apache.logging.log4j.core.Filter; - import org.apache.logging.log4j.core.Layout; -@@ -88,6 +86,15 @@ public class JmsAppender extends AbstractAppender { - @PluginBuilderAttribute - private boolean immediateFail; - -+ @PluginBuilderAttribute -+ private String allowedLdapClasses; -+ -+ @PluginBuilderAttribute -+ private String allowedLdapHosts; -+ -+ @PluginBuilderAttribute -+ private String allowedJndiProtocols; -+ - // Programmatic access only for now. - private JmsManager jmsManager; - -@@ -100,8 +107,21 @@ public class JmsAppender extends AbstractAppender { - JmsManager actualJmsManager = jmsManager; - JmsManagerConfiguration configuration = null; - if (actualJmsManager == null) { -+ Properties additionalProperties = null; -+ if (allowedLdapClasses != null || allowedLdapHosts != null) { -+ additionalProperties = new Properties(); -+ if (allowedLdapHosts != null) { -+ additionalProperties.put(JndiManager.ALLOWED_HOSTS, allowedLdapHosts); -+ } -+ if (allowedLdapClasses != null) { -+ additionalProperties.put(JndiManager.ALLOWED_CLASSES, allowedLdapClasses); -+ } -+ if (allowedJndiProtocols != null) { -+ additionalProperties.put(JndiManager.ALLOWED_PROTOCOLS, allowedJndiProtocols); -+ } -+ } - final Properties jndiProperties = JndiManager.createProperties(factoryName, providerUrl, urlPkgPrefixes, -- securityPrincipalName, securityCredentials, null); -+ securityPrincipalName, securityCredentials, additionalProperties); - configuration = new JmsManagerConfiguration(jndiProperties, factoryBindingName, destinationBindingName, - userName, password, false, reconnectIntervalMillis); - actualJmsManager = AbstractManager.getManager(getName(), JmsManager.FACTORY, configuration); -@@ -115,13 +135,13 @@ public class JmsAppender extends AbstractAppender { - LOGGER.error("No layout provided for JmsAppender"); - return null; - } -- try { -+ //try { - return new JmsAppender(getName(), getFilter(), layout, isIgnoreExceptions(), getPropertyArray(), - actualJmsManager); -- } catch (final JMSException e) { -+ /*} catch (final JMSException e) { - // Never happens since the ctor no longer actually throws a JMSException. - throw new IllegalStateException(e); -- } -+ }*/ - } - - public Builder setDestinationBindingName(final String destinationBindingName) { -@@ -202,6 +222,21 @@ public class JmsAppender extends AbstractAppender { - return this; - } - -+ public Builder setAllowedLdapClasses(final String allowedLdapClasses) { -+ this.allowedLdapClasses = allowedLdapClasses; -+ return this; -+ } -+ -+ public Builder setAllowedLdapHosts(final String allowedLdapHosts) { -+ this.allowedLdapHosts = allowedLdapHosts; -+ return this; -+ } -+ -+ public Builder setAllowedJndiProtocols(final String allowedJndiProtocols) { -+ this.allowedJndiProtocols = allowedJndiProtocols; -+ return this; -+ } -+ - /** - * Does not include the password. - */ -@@ -212,7 +247,8 @@ public class JmsAppender extends AbstractAppender { - + ", securityCredentials=" + securityCredentials + ", factoryBindingName=" + factoryBindingName - + ", destinationBindingName=" + destinationBindingName + ", username=" + userName + ", layout=" - + getLayout() + ", filter=" + getFilter() + ", ignoreExceptions=" + isIgnoreExceptions() -- + ", jmsManager=" + jmsManager + "]"; -+ + ", jmsManager=" + jmsManager + ", allowedLdapClasses=" + allowedLdapClasses -+ + ", allowedLdapHosts=" + allowedLdapHosts + ", allowedJndiProtocols=" + allowedJndiProtocols + "]"; - } - - } -@@ -224,24 +260,15 @@ public class JmsAppender extends AbstractAppender { - - private volatile JmsManager manager; - -- /** -- * -- * @throws JMSException not thrown as of 2.9 but retained in the signature for compatibility, will be removed in 3.0 -- */ - protected JmsAppender(final String name, final Filter filter, final Layout layout, -- final boolean ignoreExceptions, final Property[] properties, final JmsManager manager) throws JMSException { -+ final boolean ignoreExceptions, final Property[] properties, final JmsManager manager) /*throws JMSException*/ { - super(name, filter, layout, ignoreExceptions, properties); - this.manager = manager; - } - -- /** -- * -- * @throws JMSException not thrown as of 2.9 but retained in the signature for compatibility, will be removed in 3.0 -- * @deprecated -- */ - @Deprecated - protected JmsAppender(final String name, final Filter filter, final Layout layout, -- final boolean ignoreExceptions, final JmsManager manager) throws JMSException { -+ final boolean ignoreExceptions, final JmsManager manager) /*throws JMSException*/ { - super(name, filter, layout, ignoreExceptions, Property.EMPTY_ARRAY); - this.manager = manager; - } -diff --git a/src/main/java/org/apache/logging/log4j/core/net/JndiManager.java b/src/main/java/org/apache/logging/log4j/core/net/JndiManager.java -index 267085788482dbc8f8252b8a4fc42259d3de45e4..2d7604fee68c27f644e1c2915f09758ee7c15cb8 100644 ---- a/src/main/java/org/apache/logging/log4j/core/net/JndiManager.java -+++ b/src/main/java/org/apache/logging/log4j/core/net/JndiManager.java -@@ -17,31 +17,69 @@ - - package org.apache.logging.log4j.core.net; - -+import java.net.URI; -+import java.net.URISyntaxException; -+import java.util.ArrayList; -+import java.util.Arrays; -+import java.util.HashMap; -+import java.util.List; -+import java.util.Locale; -+import java.util.Map; - import java.util.Properties; - import java.util.concurrent.TimeUnit; - - import javax.naming.Context; --import javax.naming.InitialContext; -+import javax.naming.NamingEnumeration; - import javax.naming.NamingException; -+import javax.naming.directory.Attribute; -+import javax.naming.directory.Attributes; -+import javax.naming.directory.DirContext; -+import javax.naming.directory.InitialDirContext; - - import org.apache.logging.log4j.core.appender.AbstractManager; - import org.apache.logging.log4j.core.appender.ManagerFactory; - import org.apache.logging.log4j.core.util.JndiCloser; -+import org.apache.logging.log4j.core.util.NetUtils; -+import org.apache.logging.log4j.util.PropertiesUtil; - - /** -- * Manages a JNDI {@link javax.naming.Context}. -+ * Manages a JNDI {@link javax.naming.directory.DirContext}. - * - * @since 2.1 - */ - public class JndiManager extends AbstractManager { - -+ public static final String ALLOWED_HOSTS = "allowedLdapHosts"; -+ public static final String ALLOWED_CLASSES = "allowedLdapClasses"; -+ public static final String ALLOWED_PROTOCOLS = "allowedJndiProtocols"; -+ - private static final JndiManagerFactory FACTORY = new JndiManagerFactory(); -+ private static final String PREFIX = "log4j2."; -+ private static final String LDAP = "ldap"; -+ private static final String LDAPS = "ldaps"; -+ private static final String JAVA = "java"; -+ private static final List permanentAllowedHosts = NetUtils.getLocalIps(); -+ private static final List permanentAllowedClasses = Arrays.asList(Boolean.class.getName(), -+ Byte.class.getName(), Character.class.getName(), Double.class.getName(), Float.class.getName(), -+ Integer.class.getName(), Long.class.getName(), Short.class.getName(), String.class.getName()); -+ private static final List permanentAllowedProtocols = Arrays.asList(JAVA, LDAP, LDAPS); -+ private static final String SERIALIZED_DATA = "javaSerializedData"; -+ private static final String CLASS_NAME = "javaClassName"; -+ private static final String REFERENCE_ADDRESS = "javaReferenceAddress"; -+ private static final String OBJECT_FACTORY = "javaFactory"; -+ private final List allowedHosts; -+ private final List allowedClasses; -+ private final List allowedProtocols; - -- private final Context context; -+ private final DirContext context; - -- private JndiManager(final String name, final Context context) { -+ private JndiManager(final String name, final DirContext context, final List allowedHosts, -+ final List allowedClasses, final List allowedProtocols) { - super(null, name); - this.context = context; -+ this.allowedHosts = allowedHosts; -+ this.allowedClasses = allowedClasses; -+ this.allowedProtocols = allowedProtocols; - } - - /** -@@ -168,7 +206,54 @@ public class JndiManager extends AbstractManager { - * @throws NamingException if a naming exception is encountered - */ - @SuppressWarnings("unchecked") -- public T lookup(final String name) throws NamingException { -+ public synchronized T lookup(final String name) throws NamingException { -+ try { -+ URI uri = new URI(name); -+ if (uri.getScheme() != null) { -+ if (!allowedProtocols.contains(uri.getScheme().toLowerCase(Locale.ROOT))) { -+ LOGGER.warn("Log4j JNDI does not allow protocol {}", uri.getScheme()); -+ return null; -+ } -+ if (LDAP.equalsIgnoreCase(uri.getScheme()) || LDAPS.equalsIgnoreCase(uri.getScheme())) { -+ if (!allowedHosts.contains(uri.getHost())) { -+ LOGGER.warn("Attempt to access ldap server not in allowed list"); -+ return null; -+ } -+ Attributes attributes = this.context.getAttributes(name); -+ if (attributes != null) { -+ // In testing the "key" for attributes seems to be lowercase while the attribute id is -+ // camelcase, but that may just be true for the test LDAP used here. This copies the Attributes -+ // to a Map ignoring the "key" and using the Attribute's id as the key in the Map so it matches -+ // the Java schema. -+ Map attributeMap = new HashMap<>(); -+ NamingEnumeration enumeration = attributes.getAll(); -+ while (enumeration.hasMore()) { -+ Attribute attribute = enumeration.next(); -+ attributeMap.put(attribute.getID(), attribute); -+ } -+ Attribute classNameAttr = attributeMap.get(CLASS_NAME); -+ if (attributeMap.get(SERIALIZED_DATA) != null) { -+ if (classNameAttr != null) { -+ String className = classNameAttr.get().toString(); -+ if (!allowedClasses.contains(className)) { -+ LOGGER.warn("Deserialization of {} is not allowed", className); -+ return null; -+ } -+ } else { -+ LOGGER.warn("No class name provided for {}", name); -+ return null; -+ } -+ } else if (attributeMap.get(REFERENCE_ADDRESS) != null -+ || attributeMap.get(OBJECT_FACTORY) != null) { -+ LOGGER.warn("Referenceable class is not allowed for {}", name); -+ return null; -+ } -+ } -+ } -+ } -+ } catch (URISyntaxException ex) { -+ // This is OK. -+ } - return (T) this.context.lookup(name); - } - -@@ -176,13 +261,36 @@ public class JndiManager extends AbstractManager { - - @Override - public JndiManager createManager(final String name, final Properties data) { -+ String hosts = data != null ? data.getProperty(ALLOWED_HOSTS) : null; -+ String classes = data != null ? data.getProperty(ALLOWED_CLASSES) : null; -+ String protocols = data != null ? data.getProperty(ALLOWED_PROTOCOLS) : null; -+ List allowedHosts = new ArrayList<>(); -+ List allowedClasses = new ArrayList<>(); -+ List allowedProtocols = new ArrayList<>(); -+ addAll(hosts, allowedHosts, permanentAllowedHosts, ALLOWED_HOSTS, data); -+ addAll(classes, allowedClasses, permanentAllowedClasses, ALLOWED_CLASSES, data); -+ addAll(protocols, allowedProtocols, permanentAllowedProtocols, ALLOWED_PROTOCOLS, data); - try { -- return new JndiManager(name, new InitialContext(data)); -+ return new JndiManager(name, new InitialDirContext(data), allowedHosts, allowedClasses, -+ allowedProtocols); - } catch (final NamingException e) { - LOGGER.error("Error creating JNDI InitialContext.", e); - return null; - } - } -+ -+ private void addAll(String toSplit, List list, List permanentList, String propertyName, -+ Properties data) { -+ if (toSplit != null) { -+ list.addAll(Arrays.asList(toSplit.split("\\s*,\\s*"))); -+ data.remove(propertyName); -+ } -+ toSplit = PropertiesUtil.getProperties().getStringProperty(PREFIX + propertyName); -+ if (toSplit != null) { -+ list.addAll(Arrays.asList(toSplit.split("\\s*,\\s*"))); -+ } -+ list.addAll(permanentList); -+ } - } - - @Override -diff --git a/src/main/java/org/apache/logging/log4j/core/util/NetUtils.java b/src/main/java/org/apache/logging/log4j/core/util/NetUtils.java -index 8a8353e7f907a009cba6664652ab69f25d12201c..661f74f90b1a731f5be76eca6b61b6cec33e2439 100644 ---- a/src/main/java/org/apache/logging/log4j/core/util/NetUtils.java -+++ b/src/main/java/org/apache/logging/log4j/core/util/NetUtils.java -@@ -17,6 +17,8 @@ - package org.apache.logging.log4j.core.util; - - import java.io.File; -+import java.net.Inet4Address; -+import java.net.Inet6Address; - import java.net.InetAddress; - import java.net.MalformedURLException; - import java.net.NetworkInterface; -@@ -25,11 +27,14 @@ import java.net.URI; - import java.net.URISyntaxException; - import java.net.URL; - import java.net.UnknownHostException; -+import java.util.ArrayList; - import java.util.Arrays; - import java.util.Enumeration; -+import java.util.List; - - import org.apache.logging.log4j.Logger; - import org.apache.logging.log4j.status.StatusLogger; -+import org.apache.logging.log4j.util.Strings; - - /** - * Networking-related convenience methods. -@@ -79,6 +84,49 @@ public final class NetUtils { - } - } - -+ /** -+ * Returns all the local host names and ip addresses. -+ * @return The local host names and ip addresses. -+ */ -+ public static List getLocalIps() { -+ List localIps = new ArrayList<>(); -+ localIps.add("localhost"); -+ localIps.add("127.0.0.1"); -+ try { -+ final InetAddress addr = Inet4Address.getLocalHost(); -+ setHostName(addr, localIps); -+ } catch (final UnknownHostException ex) { -+ // Ignore this. -+ } -+ try { -+ final Enumeration interfaces = NetworkInterface.getNetworkInterfaces(); -+ if (interfaces != null) { -+ while (interfaces.hasMoreElements()) { -+ final NetworkInterface nic = interfaces.nextElement(); -+ final Enumeration addresses = nic.getInetAddresses(); -+ while (addresses.hasMoreElements()) { -+ final InetAddress address = addresses.nextElement(); -+ setHostName(address, localIps); -+ } -+ } -+ } -+ } catch (final SocketException se) { -+ // ignore. -+ } -+ return localIps; -+ } -+ -+ private static void setHostName(InetAddress address, List localIps) { -+ String[] parts = address.toString().split("\\s*/\\s*"); -+ if (parts.length > 0) { -+ for (String part : parts) { -+ if (Strings.isNotBlank(part) && !localIps.contains(part)) { -+ localIps.add(part); -+ } -+ } -+ } -+ } -+ - /** - * Returns the local network interface's MAC address if possible. The local network interface is defined here as - * the {@link java.net.NetworkInterface} that is both up and not a loopback interface. diff --git a/scripts/upstreamCommit.sh b/scripts/upstreamCommit.sh new file mode 100755 index 000000000..a4b8ecadd --- /dev/null +++ b/scripts/upstreamCommit.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env bash + +# requires curl & jq + +# upstreamCommit +# param: bashHash - the commit hash to use for comparing commits (baseHash...HEAD) + +( +set -e +PS1="$" + +paper=$(curl -H "Accept: application/vnd.github.v3+json" https://api.github.com/repos/PaperMC/Paper/compare/$1...HEAD | jq -r '.commits[] | "PaperMC/Paper@\(.sha[:7]) \(.commit.message | split("\r\n")[0] | split("\n")[0])"') + +updated="" +logsuffix="" +if [ ! -z "paper" ]; then + logsuffix="$logsuffix\n\nPaper Changes:\n$paper" + updated="Paper" +fi +disclaimer="Upstream has released updates that appear to apply and compile correctly" + +log="${UP_LOG_PREFIX}Updated Upstream ($updated)\n\n${disclaimer}${logsuffix}" + +echo -e "$log" | git commit -F - + +) || exit 1