From 18ebfc0366ac79ac54822288525b009837a7bb7a Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Fri, 13 Dec 2019 15:11:37 -0600 Subject: [PATCH] Update to 1.15 --- Paper | 2 +- current-paper | 2 +- patches/api/0001-Rebrand.patch | 8 +- patches/api/0013-Implement-AFK-API.patch | 8 +- ...0018-Add-block-and-fluid-tick-events.patch | 6 +- ...0-Add-getPlacementBlockData-to-World.patch | 6 +- patches/server/0001-Rebrand.patch | 24 +- patches/server/0002-Purpur-config-files.patch | 34 +- .../server/0003-Bring-back-server-name.patch | 6 +- ...cows-to-mooshroom-when-fed-mushrooms.patch | 39 +- ...cow-rotation-when-shearing-mooshroom.patch | 12 +- ...pumpkin-on-off-by-player-interaction.patch | 59 +- ...lement-LivingEntity-safeFallDistance.patch | 54 +- patches/server/0008-Silk-touch-spawners.patch | 34 +- ...ed-to-crystals-and-crystals-shoot-ph.patch | 42 +- patches/server/0010-Integrate-ridables.patch | 742 +++++++++--------- ...e-giants-naturally-spawn-and-have-AI.patch | 30 +- ...hantoms-spawning-on-creative-players.patch | 10 +- .../0014-Add-regen-effect-to-campfires.patch | 18 +- ...5-Campfires-should-fall-with-gravity.patch | 20 +- .../0016-Campfires-burn-out-in-rain.patch | 10 +- patches/server/0017-Packed-Barrels.patch | 16 +- .../0018-Add-large-sized-ender-chests.patch | 18 +- ...0019-Right-click-to-open-sign-editor.patch | 16 +- .../0020-Allow-color-codes-on-signs.patch | 18 +- ...ace-dragon-egg-when-dragon-is-killed.patch | 10 +- ...onfig-for-items-breaking-turtle-eggs.patch | 10 +- .../server/0025-Make-Iron-Golems-Swim.patch | 10 +- .../server/0027-Controllable-Minecarts.patch | 24 +- ...able-loot-drops-on-death-by-cramming.patch | 12 +- ...-Implement-ItemFactory-getMonsterEgg.patch | 10 +- ...032-Dont-send-useless-entity-packets.patch | 14 +- .../0033-Fix-item-position-desync-MC-4.patch | 18 +- ...ance-for-zombie-horse-natural-spawns.patch | 8 +- .../0035-Fix-pig-zombies-MC-56653.patch | 26 +- .../0037-Implement-ChunkTooLargeEvent.patch | 64 -- ...atch => 0037-Tulips-change-fox-type.patch} | 41 +- ...-mends-most-damages-equipment-first.patch} | 20 +- ...39-Players-should-not-cram-to-death.patch} | 6 +- ...should-not-bypass-cramming-gamerule.patch} | 34 +- ...d-limit-for-pillager-outpost-spawns.patch} | 10 +- ...rable-search-radius-for-villagers-t.patch} | 12 +- ...=> 0043-Implement-lagging-threshold.patch} | 12 +- ...t-configurable-villager-brain-ticks.patch} | 12 +- ...h => 0045-Implement-elytra-settings.patch} | 30 +- ...046-Add-5-second-tps-average-in-tps.patch} | 14 +- ...limit-packets-incoming-from-players.patch} | 8 +- ...-permissions-for-players-on-world-c.patch} | 10 +- ...Add-blacklist-option-for-grindstone.patch} | 6 +- ...API.patch => 0050-Implement-AFK-API.patch} | 50 +- ...fs.patch => 0051-Advancement-stuffs.patch} | 2 +- ...-for-zombies-targetting-turtle-eggs.patch} | 4 +- ...53-Implement-bamboo-growth-settings.patch} | 24 +- ...0054-Option-for-slimes-not-pushable.patch} | 10 +- ...-Ender-Dragon-always-drops-full-exp.patch} | 10 +- ...spenser-curse-of-binding-protection.patch} | 14 +- ...-killer-rabbit-natural-spawn-chance.patch} | 6 +- ...h => 0058-Add-option-to-spawn-Toast.patch} | 10 +- ...-for-boats-to-eject-players-on-land.patch} | 8 +- ...ch => 0060-Allow-leashing-villagers.patch} | 10 +- ...ption-to-set-armorstand-step-height.patch} | 12 +- ...62-Add-API-for-Villager-resetOffers.patch} | 14 +- ...0063-Alternative-Keepalive-Handling.patch} | 8 +- ...064-Expose-getItemStack-for-Trident.patch} | 6 +- ...PI.patch => 0065-Add-more-llama-API.patch} | 72 +- ...I.patch => 0066-Add-entity-jump-API.patch} | 10 +- ...067-Add-block-and-fluid-tick-events.patch} | 36 +- ...I.patch => 0068-Add-more-evoker-API.patch} | 21 +- ...-Add-getPlacementBlockData-to-World.patch} | 6 +- ...suppress-unknown-attribute-warnings.patch} | 2 +- ...eEvent-not-firing-for-all-use-cases.patch} | 10 +- ...o-allow-iron-golems-to-spawn-in-air.patch} | 6 +- ...PickupItemAnimation-to-LivingEntity.patch} | 2 +- ...getPlayer-to-SkeletonHorseTrapEvent.patch} | 8 +- ...Add-LootableInventoryFirstFillEvent.patch} | 2 +- ...ch => 0076-Add-MonsterEggSpawnEvent.patch} | 6 +- ...tch => 0077-Add-ThrownEggHatchEvent.patch} | 6 +- ...speed-multiplier-using-values-betwe.patch} | 4 +- ...tyCreatePortalEvent-for-EnderDragon.patch} | 10 +- ...tch => 0080-Implement-infinite-lava.patch} | 6 +- ...081-Phantoms-only-attack-insomniacs.patch} | 8 +- ...082-Villagers-follow-emerald-blocks.patch} | 10 +- ...83-Add-charged-creeper-spawn-chance.patch} | 6 +- ...=> 0084-Despawn-egg-hatches-chicken.patch} | 10 +- ...85-Option-for-hay-block-fall-damage.patch} | 4 +- ...ons.patch => 0086-Add-sleep-options.patch} | 12 +- ...atch => 0087-Double-Click-Jar-Check.patch} | 4 +- scripts/upstream.sh | 2 +- 88 files changed, 1038 insertions(+), 1068 deletions(-) delete mode 100644 patches/server/0037-Implement-ChunkTooLargeEvent.patch rename patches/server/{0038-Tulips-change-fox-type.patch => 0037-Tulips-change-fox-type.patch} (79%) rename patches/server/{0039-Mending-mends-most-damages-equipment-first.patch => 0038-Mending-mends-most-damages-equipment-first.patch} (91%) rename patches/server/{0040-Players-should-not-cram-to-death.patch => 0039-Players-should-not-cram-to-death.patch} (85%) rename patches/server/{0041-Ladders-should-not-bypass-cramming-gamerule.patch => 0040-Ladders-should-not-bypass-cramming-gamerule.patch} (89%) rename patches/server/{0042-Implement-a-hard-limit-for-pillager-outpost-spawns.patch => 0041-Implement-a-hard-limit-for-pillager-outpost-spawns.patch} (89%) rename patches/server/{0043-Implement-configurable-search-radius-for-villagers-t.patch => 0042-Implement-configurable-search-radius-for-villagers-t.patch} (88%) rename patches/server/{0044-Implement-lagging-threshold.patch => 0043-Implement-lagging-threshold.patch} (89%) rename patches/server/{0045-Implement-configurable-villager-brain-ticks.patch => 0044-Implement-configurable-villager-brain-ticks.patch} (92%) rename patches/server/{0046-Implement-elytra-settings.patch => 0045-Implement-elytra-settings.patch} (91%) rename patches/server/{0047-Add-5-second-tps-average-in-tps.patch => 0046-Add-5-second-tps-average-in-tps.patch} (91%) rename patches/server/{0048-Rate-limit-packets-incoming-from-players.patch => 0047-Rate-limit-packets-incoming-from-players.patch} (98%) rename patches/server/{0049-Don-t-recalculate-permissions-for-players-on-world-c.patch => 0048-Don-t-recalculate-permissions-for-players-on-world-c.patch} (90%) rename patches/server/{0050-Add-blacklist-option-for-grindstone.patch => 0049-Add-blacklist-option-for-grindstone.patch} (97%) rename patches/server/{0051-Implement-AFK-API.patch => 0050-Implement-AFK-API.patch} (91%) rename patches/server/{0052-Advancement-stuffs.patch => 0051-Advancement-stuffs.patch} (92%) rename patches/server/{0053-Add-option-for-zombies-targetting-turtle-eggs.patch => 0052-Add-option-for-zombies-targetting-turtle-eggs.patch} (95%) rename patches/server/{0054-Implement-bamboo-growth-settings.patch => 0053-Implement-bamboo-growth-settings.patch} (79%) rename patches/server/{0055-Option-for-slimes-not-pushable.patch => 0054-Option-for-slimes-not-pushable.patch} (93%) rename patches/server/{0056-Ender-Dragon-always-drops-full-exp.patch => 0055-Ender-Dragon-always-drops-full-exp.patch} (87%) rename patches/server/{0057-Dispenser-curse-of-binding-protection.patch => 0056-Dispenser-curse-of-binding-protection.patch} (90%) rename patches/server/{0058-Add-killer-rabbit-natural-spawn-chance.patch => 0057-Add-killer-rabbit-natural-spawn-chance.patch} (91%) rename patches/server/{0059-Add-option-to-spawn-Toast.patch => 0058-Add-option-to-spawn-Toast.patch} (88%) rename patches/server/{0060-Add-option-for-boats-to-eject-players-on-land.patch => 0059-Add-option-for-boats-to-eject-players-on-land.patch} (89%) rename patches/server/{0061-Allow-leashing-villagers.patch => 0060-Allow-leashing-villagers.patch} (91%) rename patches/server/{0062-Add-option-to-set-armorstand-step-height.patch => 0061-Add-option-to-set-armorstand-step-height.patch} (85%) rename patches/server/{0063-Add-API-for-Villager-resetOffers.patch => 0062-Add-API-for-Villager-resetOffers.patch} (84%) rename patches/server/{0064-Alternative-Keepalive-Handling.patch => 0063-Alternative-Keepalive-Handling.patch} (95%) rename patches/server/{0065-Expose-getItemStack-for-Trident.patch => 0064-Expose-getItemStack-for-Trident.patch} (90%) rename patches/server/{0066-Add-more-llama-API.patch => 0065-Add-more-llama-API.patch} (72%) rename patches/server/{0067-Add-entity-jump-API.patch => 0066-Add-entity-jump-API.patch} (86%) rename patches/server/{0068-Add-block-and-fluid-tick-events.patch => 0067-Add-block-and-fluid-tick-events.patch} (77%) rename patches/server/{0069-Add-more-evoker-API.patch => 0068-Add-more-evoker-API.patch} (79%) rename patches/server/{0070-Add-getPlacementBlockData-to-World.patch => 0069-Add-getPlacementBlockData-to-World.patch} (86%) rename patches/server/{0071-Add-setting-to-suppress-unknown-attribute-warnings.patch => 0070-Add-setting-to-suppress-unknown-attribute-warnings.patch} (97%) rename patches/server/{0072-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch => 0071-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch} (87%) rename patches/server/{0073-Add-option-to-allow-iron-golems-to-spawn-in-air.patch => 0072-Add-option-to-allow-iron-golems-to-spawn-in-air.patch} (91%) rename patches/server/{0074-Add-playPickupItemAnimation-to-LivingEntity.patch => 0073-Add-playPickupItemAnimation-to-LivingEntity.patch} (94%) rename patches/server/{0075-Add-getPlayer-to-SkeletonHorseTrapEvent.patch => 0074-Add-getPlayer-to-SkeletonHorseTrapEvent.patch} (88%) rename patches/server/{0076-Add-LootableInventoryFirstFillEvent.patch => 0075-Add-LootableInventoryFirstFillEvent.patch} (94%) rename patches/server/{0077-Add-MonsterEggSpawnEvent.patch => 0076-Add-MonsterEggSpawnEvent.patch} (96%) rename patches/server/{0078-Add-ThrownEggHatchEvent.patch => 0077-Add-ThrownEggHatchEvent.patch} (84%) rename patches/server/{0079-Fix-furnace-cook-speed-multiplier-using-values-betwe.patch => 0078-Fix-furnace-cook-speed-multiplier-using-values-betwe.patch} (93%) rename patches/server/{0080-Add-back-EntityCreatePortalEvent-for-EnderDragon.patch => 0079-Add-back-EntityCreatePortalEvent-for-EnderDragon.patch} (93%) rename patches/server/{0081-Implement-infinite-lava.patch => 0080-Implement-infinite-lava.patch} (92%) rename patches/server/{0082-Phantoms-only-attack-insomniacs.patch => 0081-Phantoms-only-attack-insomniacs.patch} (94%) rename patches/server/{0083-Villagers-follow-emerald-blocks.patch => 0082-Villagers-follow-emerald-blocks.patch} (91%) rename patches/server/{0084-Add-charged-creeper-spawn-chance.patch => 0083-Add-charged-creeper-spawn-chance.patch} (94%) rename patches/server/{0085-Despawn-egg-hatches-chicken.patch => 0084-Despawn-egg-hatches-chicken.patch} (89%) rename patches/server/{0086-Option-for-hay-block-fall-damage.patch => 0085-Option-for-hay-block-fall-damage.patch} (94%) rename patches/server/{0087-Add-sleep-options.patch => 0086-Add-sleep-options.patch} (91%) rename patches/server/{0088-Double-Click-Jar-Check.patch => 0087-Double-Click-Jar-Check.patch} (90%) diff --git a/Paper b/Paper index 4d2f85630..c034be8a8 160000 --- a/Paper +++ b/Paper @@ -1 +1 @@ -Subproject commit 4d2f85630a3319e4b147ffbfd7db66e38e25f18d +Subproject commit c034be8a825df3936bca531cb4b29d90a56b0d7e diff --git a/current-paper b/current-paper index 78d807940..a437b8f91 100644 --- a/current-paper +++ b/current-paper @@ -1 +1 @@ -1.14.4--dfcb7bd3d2115a31b4172f42074f0098a511701e +1.15--5b66933dd600d9eed357045f53be8251eb6763ea diff --git a/patches/api/0001-Rebrand.patch b/patches/api/0001-Rebrand.patch index ba2c753c2..366a04c77 100644 --- a/patches/api/0001-Rebrand.patch +++ b/patches/api/0001-Rebrand.patch @@ -1,4 +1,4 @@ -From f3232cf620b40914ee46f9cecb0b550e1902e68e Mon Sep 17 00:00:00 2001 +From 11f46cad08f4997f18cc7857f61771b73b2f4009 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 4 May 2019 00:57:16 -0500 Subject: [PATCH] Rebrand @@ -8,7 +8,7 @@ Subject: [PATCH] Rebrand 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/pom.xml b/pom.xml -index 5088c3315..18e4505d1 100644 +index 1179fd556..f36461cf9 100644 --- a/pom.xml +++ b/pom.xml @@ -3,18 +3,17 @@ @@ -25,7 +25,7 @@ index 5088c3315..18e4505d1 100644 - com.destroystokyo.paper - paper-api + purpur-api - 1.14.4-R0.1-SNAPSHOT + 1.15-R0.1-SNAPSHOT jar - Paper-API @@ -45,5 +45,5 @@ index 5088c3315..18e4505d1 100644 org.apache.maven.plugins -- -2.20.1 +2.24.0.rc1 diff --git a/patches/api/0013-Implement-AFK-API.patch b/patches/api/0013-Implement-AFK-API.patch index 0df1d05ec..3aede1c4c 100644 --- a/patches/api/0013-Implement-AFK-API.patch +++ b/patches/api/0013-Implement-AFK-API.patch @@ -1,4 +1,4 @@ -From 3a6077c8aec71ab69a738f53ec7f2b7ce1282fee Mon Sep 17 00:00:00 2001 +From 6704edef6d63a6ec2fa6d2639af20b3ba04203f0 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 10 Aug 2019 22:19:56 -0500 Subject: [PATCH] Implement AFK API @@ -86,10 +86,10 @@ index 000000000..4db334854 + } +} diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 8d8d89576..d430ce0ba 100644 +index e37c94e4e..81d2d2b86 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -2096,4 +2096,25 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2048,4 +2048,25 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM @Override Spigot spigot(); // Spigot end @@ -116,5 +116,5 @@ index 8d8d89576..d430ce0ba 100644 + // Purpur end } -- -2.23.0.rc1 +2.24.0.rc1 diff --git a/patches/api/0018-Add-block-and-fluid-tick-events.patch b/patches/api/0018-Add-block-and-fluid-tick-events.patch index 946f7eaf6..ebd464029 100644 --- a/patches/api/0018-Add-block-and-fluid-tick-events.patch +++ b/patches/api/0018-Add-block-and-fluid-tick-events.patch @@ -1,4 +1,4 @@ -From d59551620f404ebae9dcac03a8639362780320e5 Mon Sep 17 00:00:00 2001 +From 3f684028d9178608f302ef468f19e4fe89d8cb74 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Fri, 18 Oct 2019 23:58:29 -0500 Subject: [PATCH] Add block and fluid tick events @@ -134,10 +134,10 @@ index 000000000..1a8f0b674 + } +} diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index 2d22ab30a..e1f25bdd1 100644 +index 725c9059d..8205b4767 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java -@@ -2988,6 +2988,36 @@ public interface World extends PluginMessageRecipient, Metadatable { +@@ -3046,6 +3046,36 @@ public interface World extends PluginMessageRecipient, Metadatable { @NotNull public List getRaids(); diff --git a/patches/api/0020-Add-getPlacementBlockData-to-World.patch b/patches/api/0020-Add-getPlacementBlockData-to-World.patch index 63bcea681..f55e11ce5 100644 --- a/patches/api/0020-Add-getPlacementBlockData-to-World.patch +++ b/patches/api/0020-Add-getPlacementBlockData-to-World.patch @@ -1,4 +1,4 @@ -From ff6d8f08c7097d865155d545e6dc5dddfc06e57a Mon Sep 17 00:00:00 2001 +From cf82e3c599dd3c048b0f452ec5209df163028b94 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 19 Oct 2019 00:34:36 -0500 Subject: [PATCH] Add getPlacementBlockData to World @@ -8,10 +8,10 @@ Subject: [PATCH] Add getPlacementBlockData to World 1 file changed, 10 insertions(+) diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index e1f25bdd1..15b3f9c7b 100644 +index 8205b4767..887ac0645 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java -@@ -3016,6 +3016,16 @@ public interface World extends PluginMessageRecipient, Metadatable { +@@ -3074,6 +3074,16 @@ public interface World extends PluginMessageRecipient, Metadatable { * @param enabled True to enable */ void setFluidTickEventEnabled(boolean enabled); diff --git a/patches/server/0001-Rebrand.patch b/patches/server/0001-Rebrand.patch index a94403e55..05ca237a9 100644 --- a/patches/server/0001-Rebrand.patch +++ b/patches/server/0001-Rebrand.patch @@ -1,4 +1,4 @@ -From d9b6e8c71036723ae8f148ad610c8196df7ee36c Mon Sep 17 00:00:00 2001 +From 58d81920448221d19814f2900b539bdd3409f33a Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 4 May 2019 01:02:11 -0500 Subject: [PATCH] Rebrand @@ -15,7 +15,7 @@ Subject: [PATCH] Rebrand create mode 100644 src/main/java/net/pl3x/purpur/PurpurVersionFetcher.java diff --git a/pom.xml b/pom.xml -index beda5dc8a..a12fa0163 100644 +index d10c219e3f..bace3fa775 100644 --- a/pom.xml +++ b/pom.xml @@ -1,11 +1,11 @@ @@ -25,7 +25,7 @@ index beda5dc8a..a12fa0163 100644 - paper + purpur jar - 1.14.4-R0.1-SNAPSHOT + 1.15-R0.1-SNAPSHOT - Paper - https://papermc.io + Purpur @@ -73,7 +73,7 @@ index beda5dc8a..a12fa0163 100644 diff --git a/src/main/java/com/destroystokyo/paper/console/PaperConsole.java b/src/main/java/com/destroystokyo/paper/console/PaperConsole.java -index cd6e25923..bb227bc0f 100644 +index cd6e259239..bb227bc0fb 100644 --- a/src/main/java/com/destroystokyo/paper/console/PaperConsole.java +++ b/src/main/java/com/destroystokyo/paper/console/PaperConsole.java @@ -17,7 +17,7 @@ public final class PaperConsole extends SimpleTerminalConsole { @@ -86,10 +86,10 @@ index cd6e25923..bb227bc0f 100644 ); } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 0b0058138..1b6a9623c 100644 +index edb3a60355..f14d1b160a 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1462,7 +1462,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant Date: Thu, 9 May 2019 18:09:43 -0500 Subject: [PATCH] Purpur config files @@ -20,10 +20,10 @@ Subject: [PATCH] Purpur config files create mode 100644 src/main/java/net/pl3x/purpur/PurpurWorldConfig.java diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java -index 61eeb6747..58e2a0707 100644 +index 1d7d1ffbf7..d886f1d145 100644 --- a/src/main/java/com/destroystokyo/paper/PaperConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java -@@ -97,10 +97,12 @@ public class PaperConfig { +@@ -96,10 +96,12 @@ public class PaperConfig { MinecraftServer.getServer().server.getCommandMap().register(entry.getKey(), "Paper", entry.getValue()); } @@ -37,7 +37,7 @@ index 61eeb6747..58e2a0707 100644 static void readConfig(Class clazz, Object instance) { diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java -index 5bc19cd08..c2870b054 100644 +index 3ed74ae0ec..8139108470 100644 --- a/src/main/java/net/minecraft/server/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/DedicatedServer.java @@ -184,6 +184,15 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer @@ -57,10 +57,10 @@ index 5bc19cd08..c2870b054 100644 // Paper end diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index d3a0ed52b..eb6929e2b 100644 +index 985f303726..46b0c68207 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java -@@ -97,6 +97,8 @@ public abstract class World implements IIBlockAccess, GeneratorAccess, AutoClose +@@ -96,6 +96,8 @@ public abstract class World implements GeneratorAccess, AutoCloseable { public final com.destroystokyo.paper.PaperWorldConfig paperConfig; // Paper public final ChunkPacketBlockController chunkPacketBlockController; // Paper - Anti-Xray @@ -69,7 +69,7 @@ index d3a0ed52b..eb6929e2b 100644 public final co.aikar.timings.WorldTimingsHandler timings; // Paper public static BlockPosition lastPhysicsProblem; // Spigot private org.spigotmc.TickLimiter entityLimiter; -@@ -138,6 +140,7 @@ public abstract class World implements IIBlockAccess, GeneratorAccess, AutoClose +@@ -137,6 +139,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { this.spigotConfig = new org.spigotmc.SpigotWorldConfig( worlddata.getName() ); // Spigot this.paperConfig = new com.destroystokyo.paper.PaperWorldConfig(worlddata.getName(), this.spigotConfig); // Paper this.chunkPacketBlockController = this.paperConfig.antiXray ? new ChunkPacketBlockControllerAntiXray(this.paperConfig) : ChunkPacketBlockController.NO_OPERATION_INSTANCE; // Paper - Anti-Xray @@ -79,7 +79,7 @@ index d3a0ed52b..eb6929e2b 100644 this.ticksPerAnimalSpawns = this.getServer().getTicksPerAnimalSpawns(); // CraftBukkit diff --git a/src/main/java/net/pl3x/purpur/Metrics.java b/src/main/java/net/pl3x/purpur/Metrics.java new file mode 100644 -index 000000000..246eb8140 +index 0000000000..246eb8140f --- /dev/null +++ b/src/main/java/net/pl3x/purpur/Metrics.java @@ -0,0 +1,598 @@ @@ -683,7 +683,7 @@ index 000000000..246eb8140 +} diff --git a/src/main/java/net/pl3x/purpur/PurpurCommand.java b/src/main/java/net/pl3x/purpur/PurpurCommand.java new file mode 100644 -index 000000000..f8cf4ad23 +index 0000000000..f8cf4ad234 --- /dev/null +++ b/src/main/java/net/pl3x/purpur/PurpurCommand.java @@ -0,0 +1,66 @@ @@ -755,7 +755,7 @@ index 000000000..f8cf4ad23 +} diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java new file mode 100644 -index 000000000..6f378b5f6 +index 0000000000..6f378b5f69 --- /dev/null +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -0,0 +1,133 @@ @@ -894,7 +894,7 @@ index 000000000..6f378b5f6 +} diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java new file mode 100644 -index 000000000..30f11fe26 +index 0000000000..30f11fe261 --- /dev/null +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -0,0 +1,63 @@ @@ -962,10 +962,10 @@ index 000000000..30f11fe26 + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 18bce6fa3..4cd0bc64b 100644 +index 8f4ca4c285..6d453b6711 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -793,6 +793,7 @@ public final class CraftServer implements Server { +@@ -794,6 +794,7 @@ public final class CraftServer implements Server { org.spigotmc.SpigotConfig.init((File) console.options.valueOf("spigot-settings")); // Spigot com.destroystokyo.paper.PaperConfig.init((File) console.options.valueOf("paper-settings")); // Paper @@ -973,7 +973,7 @@ index 18bce6fa3..4cd0bc64b 100644 for (WorldServer world : console.getWorlds()) { world.worldData.setDifficulty(config.difficulty); world.setSpawnFlags(config.spawnMonsters, config.spawnAnimals); -@@ -809,6 +810,7 @@ public final class CraftServer implements Server { +@@ -810,6 +811,7 @@ public final class CraftServer implements Server { } world.spigotConfig.init(); // Spigot world.paperConfig.init(); // Paper @@ -981,7 +981,7 @@ index 18bce6fa3..4cd0bc64b 100644 } Plugin[] pluginClone = pluginManager.getPlugins().clone(); // Paper -@@ -827,6 +829,7 @@ public final class CraftServer implements Server { +@@ -828,6 +830,7 @@ public final class CraftServer implements Server { reloadData(); org.spigotmc.SpigotConfig.registerCommands(); // Spigot com.destroystokyo.paper.PaperConfig.registerCommands(); // Paper @@ -990,7 +990,7 @@ index 18bce6fa3..4cd0bc64b 100644 ignoreVanillaPermissions = commandsConfiguration.getBoolean("ignore-vanilla-permissions"); diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 460c447de..6c7ccfe18 100644 +index 140b82275c..3a4881fb18 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -137,6 +137,14 @@ public class Main { @@ -1009,5 +1009,5 @@ index 460c447de..6c7ccfe18 100644 acceptsAll(asList("server-name"), "Name of the server") .withRequiredArg() -- -2.23.0.rc1 +2.24.0.rc1 diff --git a/patches/server/0003-Bring-back-server-name.patch b/patches/server/0003-Bring-back-server-name.patch index 014ce4d04..eb4f100a2 100644 --- a/patches/server/0003-Bring-back-server-name.patch +++ b/patches/server/0003-Bring-back-server-name.patch @@ -1,4 +1,4 @@ -From fab96d6bd565297078a7d3ac53eb3da5a6a1f70d Mon Sep 17 00:00:00 2001 +From b1ad334c589029d1cf278ece3400f8857af16680 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sun, 26 May 2019 15:19:14 -0500 Subject: [PATCH] Bring back server name @@ -21,10 +21,10 @@ index 0c3ec83570..20c143e314 100644 public final boolean spawnNpcs = this.getBoolean("spawn-npcs", true); public final boolean pvp = this.getBoolean("pvp", true); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index e2bb7c5b5b..2d152627cd 100644 +index 6d453b6711..210c04f026 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2170,4 +2170,11 @@ public final class CraftServer implements Server { +@@ -2173,4 +2173,11 @@ public final class CraftServer implements Server { return net.minecraft.server.MinecraftServer.currentTick; } // Paper end diff --git a/patches/server/0004-cows-to-mooshroom-when-fed-mushrooms.patch b/patches/server/0004-cows-to-mooshroom-when-fed-mushrooms.patch index 1107f4001..c2de820a8 100644 --- a/patches/server/0004-cows-to-mooshroom-when-fed-mushrooms.patch +++ b/patches/server/0004-cows-to-mooshroom-when-fed-mushrooms.patch @@ -1,4 +1,4 @@ -From 365204adec74f584e4009dbe535d916eb01cca2e Mon Sep 17 00:00:00 2001 +From 8f5f46daa61cc43483f5fe2385799d8c6290b1bb Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 4 May 2019 01:10:30 -0500 Subject: [PATCH] cows to mooshroom when fed mushrooms @@ -6,32 +6,32 @@ Subject: [PATCH] cows to mooshroom when fed mushrooms --- .../java/net/minecraft/server/Entity.java | 2 + .../java/net/minecraft/server/EntityCow.java | 70 +++++++++++++++++++ - .../net/minecraft/server/EntityLiving.java | 10 ++- + .../net/minecraft/server/EntityLiving.java | 7 ++ .../java/net/pl3x/purpur/PurpurConfig.java | 5 ++ - 4 files changed, 85 insertions(+), 2 deletions(-) + 4 files changed, 84 insertions(+) diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index e8def7f812..40ab9daade 100644 +index f0d1a5b14d..682457e285 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -1049,6 +1049,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1036,6 +1036,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke return false; } + public void playSound(SoundEffect soundeffect, float volume, float pitch) { a(soundeffect, volume, pitch); } // Paper - OBFHELPER public void a(SoundEffect soundeffect, float f, float f1) { if (!this.isSilent()) { - this.world.playSound((EntityHuman) null, this.locX, this.locY, this.locZ, soundeffect, this.getSoundCategory(), f, f1); -@@ -2546,6 +2547,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke + this.world.playSound((EntityHuman) null, this.locX(), this.locY(), this.locZ(), soundeffect, this.getSoundCategory(), f, f1); +@@ -2553,6 +2554,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke this.invulnerable = flag; } + public void copyPositionRotation(Entity entity) { this.u(entity); } // Purpur - OBFHELPER public void u(Entity entity) { - this.setPositionRotation(entity.locX, entity.locY, entity.locZ, entity.yaw, entity.pitch); + this.setPositionRotation(entity.locX(), entity.locY(), entity.locZ(), entity.yaw, entity.pitch); } diff --git a/src/main/java/net/minecraft/server/EntityCow.java b/src/main/java/net/minecraft/server/EntityCow.java -index 2c8bbf20ae..2446e61c2b 100644 +index 2c8bbf20ae..e1d0f0f38d 100644 --- a/src/main/java/net/minecraft/server/EntityCow.java +++ b/src/main/java/net/minecraft/server/EntityCow.java @@ -16,6 +16,7 @@ public class EntityCow extends EntityAnimal { @@ -89,7 +89,7 @@ index 2c8bbf20ae..2446e61c2b 100644 + } else { + mooshroom.setVariant(EntityMushroomCow.Type.RED); + } -+ mooshroom.setPositionRotation(this.locX, this.locY, this.locZ, this.yaw, this.pitch); ++ mooshroom.setPositionRotation(this.locX(), this.locY(), this.locZ(), this.yaw, this.pitch); + mooshroom.setHealth(this.getHealth()); + mooshroom.setAge(getAge()); + mooshroom.copyPositionRotation(this); @@ -113,7 +113,7 @@ index 2c8bbf20ae..2446e61c2b 100644 + } + for (int i = 0; i < 15; ++i) { + ((WorldServer) world).sendParticles(((WorldServer) world).players, null, Particles.HAPPY_VILLAGER, -+ locX + random.nextFloat(), locY + (random.nextFloat() * 2), locZ + random.nextFloat(), 1, ++ locX() + random.nextFloat(), locY() + (random.nextFloat() * 2), locZ() + random.nextFloat(), 1, + random.nextGaussian() * 0.05D, random.nextGaussian() * 0.05D, random.nextGaussian() * 0.05D, 0, true); + } + return true; @@ -124,26 +124,23 @@ index 2c8bbf20ae..2446e61c2b 100644 public EntityCow createChild(EntityAgeable entityageable) { return (EntityCow) EntityTypes.COW.a(this.world); diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index addbafe66a..f61784fab2 100644 +index 80219f2df1..0e3062468b 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java -@@ -2747,8 +2747,14 @@ public abstract class EntityLiving extends Entity { - this.aM = f; +@@ -2807,6 +2807,13 @@ public abstract class EntityLiving extends Entity { + this.aK = f; } -- @Override -- public void l(float f) { + // Purpur start + public float getRenderYawOffset() { -+ return this.aK; ++ return this.aI; + } + // Purpur end + + public void setRenderYawOffset(float f) { this.l(f); } // Purpur - OBFHELPER -+ @Override public void l(float f) { - this.aK = f; - } - + @Override + public void l(float f) { + this.aI = f; diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java index 6f378b5f69..26e95035b2 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java diff --git a/patches/server/0005-Fix-cow-rotation-when-shearing-mooshroom.patch b/patches/server/0005-Fix-cow-rotation-when-shearing-mooshroom.patch index c0481cdd7..2add29537 100644 --- a/patches/server/0005-Fix-cow-rotation-when-shearing-mooshroom.patch +++ b/patches/server/0005-Fix-cow-rotation-when-shearing-mooshroom.patch @@ -1,4 +1,4 @@ -From 56a2ae0b233972e40941b7856fab33a17ff359ea Mon Sep 17 00:00:00 2001 +From bd8ee39f3fd15c4997907ad92367318138b08998 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Fri, 3 May 2019 23:53:16 -0500 Subject: [PATCH] Fix cow rotation when shearing mooshroom @@ -8,14 +8,14 @@ Subject: [PATCH] Fix cow rotation when shearing mooshroom 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/minecraft/server/EntityMushroomCow.java b/src/main/java/net/minecraft/server/EntityMushroomCow.java -index 1363069ff..af3b826a4 100644 +index efde7bd1d7..ce5bac35db 100644 --- a/src/main/java/net/minecraft/server/EntityMushroomCow.java +++ b/src/main/java/net/minecraft/server/EntityMushroomCow.java @@ -101,7 +101,13 @@ public class EntityMushroomCow extends EntityCow { - entitycow.setPositionRotation(this.locX, this.locY, this.locZ, this.yaw, this.pitch); + entitycow.setPositionRotation(this.locX(), this.locY(), this.locZ(), this.yaw, this.pitch); entitycow.setHealth(this.getHealth()); -- entitycow.aK = this.aK; +- entitycow.aI = this.aI; + // Purpur start - correctly copy rotation + entitycow.copyPositionRotation(this); + entitycow.setRenderYawOffset(this.getRenderYawOffset()); @@ -25,7 +25,7 @@ index 1363069ff..af3b826a4 100644 + // Purpur end if (this.hasCustomName()) { entitycow.setCustomName(this.getCustomName()); - } + entitycow.setCustomNameVisible(this.getCustomNameVisible()); -- -2.20.1 +2.24.0.rc1 diff --git a/patches/server/0006-Snowman-set-pumpkin-on-off-by-player-interaction.patch b/patches/server/0006-Snowman-set-pumpkin-on-off-by-player-interaction.patch index e3656741f..3920aff75 100644 --- a/patches/server/0006-Snowman-set-pumpkin-on-off-by-player-interaction.patch +++ b/patches/server/0006-Snowman-set-pumpkin-on-off-by-player-interaction.patch @@ -1,15 +1,15 @@ -From 1d2e40070482f9b48fa9c8b16023d42dd40ac28d Mon Sep 17 00:00:00 2001 +From e8d0089b90abb1eb2cfda12880241af711203cfb Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Fri, 3 May 2019 23:58:44 -0500 Subject: [PATCH] Snowman set pumpkin on/off by player interaction --- - .../java/net/minecraft/server/EntitySnowman.java | 16 ++++++++++++++++ - src/main/java/net/pl3x/purpur/PurpurConfig.java | 7 +++++++ - 2 files changed, 23 insertions(+) + .../net/minecraft/server/EntitySnowman.java | 37 ++++++++++--------- + .../java/net/pl3x/purpur/PurpurConfig.java | 7 ++++ + 2 files changed, 27 insertions(+), 17 deletions(-) diff --git a/src/main/java/net/minecraft/server/EntitySnowman.java b/src/main/java/net/minecraft/server/EntitySnowman.java -index fe1381cc1..4e9cc7137 100644 +index 291f4a72c6..53c5057d20 100644 --- a/src/main/java/net/minecraft/server/EntitySnowman.java +++ b/src/main/java/net/minecraft/server/EntitySnowman.java @@ -8,6 +8,7 @@ import org.bukkit.event.player.PlayerShearEntityEvent; @@ -20,30 +20,53 @@ index fe1381cc1..4e9cc7137 100644 private static final DataWatcherObject b = DataWatcher.a(EntitySnowman.class, DataWatcherRegistry.a); public EntitySnowman(EntityTypes entitytypes, World world) { -@@ -126,6 +127,21 @@ public class EntitySnowman extends EntityGolem implements IRangedEntity { - itemstack.damage(1, entityhuman, (entityhuman1) -> { - entityhuman1.d(enumhand); - }); +@@ -113,25 +114,27 @@ public class EntitySnowman extends EntityGolem implements IRangedEntity { + ItemStack itemstack = entityhuman.b(enumhand); + + if (itemstack.getItem() == Items.SHEARS && this.hasPumpkin()) { +- if (!this.world.isClientSide) { +- // CraftBukkit start +- PlayerShearEntityEvent event = new PlayerShearEntityEvent((org.bukkit.entity.Player) entityhuman.getBukkitEntity(), this.getBukkitEntity()); +- this.world.getServer().getPluginManager().callEvent(event); +- +- if (event.isCancelled()) { +- return false; +- } +- // CraftBukkit end +- this.setHasPumpkin(false); +- itemstack.damage(1, entityhuman, (entityhuman1) -> { +- entityhuman1.d(enumhand); +- }); ++ // Purpur start ++ if (!new PlayerShearEntityEvent((org.bukkit.entity.Player) entityhuman.getBukkitEntity(), this.getBukkitEntity()).callEvent()) return false; // CraftBukkit ++ ++ setHasPumpkin(false); ++ itemstack.damage(1, entityhuman, (entityhuman1) -> { ++ entityhuman1.d(enumhand); ++ }); + -+ // Purpur start + if (net.pl3x.purpur.PurpurConfig.snowmanDropsPumpkin) { -+ EntityItem pumpkin = new EntityItem(world, locX, locY, locZ, new ItemStack(Blocks.CARVED_PUMPKIN.getItem())); ++ EntityItem pumpkin = new EntityItem(world, locX(), locY(), locZ(), new ItemStack(Blocks.CARVED_PUMPKIN.getItem())); + pumpkin.pickupDelay = 10; + world.addEntity(pumpkin); + } -+ return true; + } else if (net.pl3x.purpur.PurpurConfig.snowmanPumpkinPutBack && !hasPumpkin() && PUMPKIN.test(itemstack)) { + setHasPumpkin(true); + if (!entityhuman.abilities.canInstantlyBuild) { + itemstack.subtract(1); -+ } -+ return true; -+ // Purpur end + } +- +- return true; +- } else { +- return false; } ++ return true; ++ // Purpur end + } - return super.a(entityhuman, enumhand); + public boolean hasPumpkin() { diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index d013f8407..37bab6180 100644 +index 26e95035b2..0c408a10cf 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -135,4 +135,11 @@ public class PurpurConfig { @@ -59,5 +82,5 @@ index d013f8407..37bab6180 100644 + } } -- -2.20.1 +2.24.0.rc1 diff --git a/patches/server/0007-Implement-LivingEntity-safeFallDistance.patch b/patches/server/0007-Implement-LivingEntity-safeFallDistance.patch index 391555a90..ad368bcd7 100644 --- a/patches/server/0007-Implement-LivingEntity-safeFallDistance.patch +++ b/patches/server/0007-Implement-LivingEntity-safeFallDistance.patch @@ -1,4 +1,4 @@ -From b5eeca0365ecd96c0772b82a84179b77bbb1b89d Mon Sep 17 00:00:00 2001 +From 743a5398d50290d48be6395e2302ac853bdd0f51 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sun, 5 May 2019 12:58:45 -0500 Subject: [PATCH] Implement LivingEntity safeFallDistance @@ -7,12 +7,11 @@ Subject: [PATCH] Implement LivingEntity safeFallDistance .../java/net/minecraft/server/EntityGiantZombie.java | 3 +++ .../net/minecraft/server/EntityHorseAbstract.java | 2 +- src/main/java/net/minecraft/server/EntityLiving.java | 3 ++- - src/main/java/net/minecraft/server/EntityLlama.java | 2 +- .../bukkit/craftbukkit/entity/CraftLivingEntity.java | 12 ++++++++++++ - 5 files changed, 19 insertions(+), 3 deletions(-) + 4 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/minecraft/server/EntityGiantZombie.java b/src/main/java/net/minecraft/server/EntityGiantZombie.java -index 8bc325c79..f23d0380f 100644 +index d9e5eaad12..bcbade19ea 100644 --- a/src/main/java/net/minecraft/server/EntityGiantZombie.java +++ b/src/main/java/net/minecraft/server/EntityGiantZombie.java @@ -4,6 +4,9 @@ public class EntityGiantZombie extends EntityMonster { @@ -26,23 +25,23 @@ index 8bc325c79..f23d0380f 100644 @Override diff --git a/src/main/java/net/minecraft/server/EntityHorseAbstract.java b/src/main/java/net/minecraft/server/EntityHorseAbstract.java -index 8aa60e95f..e60eedb54 100644 +index c56efe035a..9e708769f7 100644 --- a/src/main/java/net/minecraft/server/EntityHorseAbstract.java +++ b/src/main/java/net/minecraft/server/EntityHorseAbstract.java -@@ -179,7 +179,7 @@ public abstract class EntityHorseAbstract extends EntityAnimal implements IInven - this.a(SoundEffects.ENTITY_HORSE_LAND, 0.4F, 1.0F); - } +@@ -202,7 +202,7 @@ public abstract class EntityHorseAbstract extends EntityAnimal implements IInven -- int i = MathHelper.f((f * 0.5F - 3.0F) * f1); -+ int i = MathHelper.f((f * 0.5F - this.safeFallDistance) * f1); // Purpur + @Override + protected int e(float f, float f1) { +- return MathHelper.f((f * 0.5F - 3.0F) * f1); ++ return MathHelper.f((f * 0.5F - this.safeFallDistance) * f1); // Purpur + } - if (i > 0) { - this.damageEntity(DamageSource.FALL, (float) i); + protected int getChestSlots() { diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index 0abca1a5b..4b59f6081 100644 +index 0e3062468b..0d5236bd7e 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java -@@ -122,6 +122,7 @@ public abstract class EntityLiving extends Entity { +@@ -125,6 +125,7 @@ public abstract class EntityLiving extends Entity { // CraftBukkit start public int expToDrop; public int maxAirTicks = 300; @@ -50,30 +49,17 @@ index 0abca1a5b..4b59f6081 100644 boolean forceDrops; ArrayList drops = new ArrayList(); public org.bukkit.craftbukkit.attribute.CraftAttributeMap craftAttributes; -@@ -1534,7 +1535,7 @@ public abstract class EntityLiving extends Entity { - super.b(f, f1); +@@ -1542,7 +1543,7 @@ public abstract class EntityLiving extends Entity { MobEffect mobeffect = this.getEffect(MobEffects.JUMP); float f2 = mobeffect == null ? 0.0F : (float) (mobeffect.getAmplifier() + 1); -- int i = MathHelper.f((f - 3.0F - f2) * f1); -+ int i = MathHelper.f((f - this.safeFallDistance - f2) * f1); // Purpur - if (i > 0) { - // CraftBukkit start -diff --git a/src/main/java/net/minecraft/server/EntityLlama.java b/src/main/java/net/minecraft/server/EntityLlama.java -index d052dedec..a5dade7d0 100644 ---- a/src/main/java/net/minecraft/server/EntityLlama.java -+++ b/src/main/java/net/minecraft/server/EntityLlama.java -@@ -344,7 +344,7 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn +- return MathHelper.f((f - 3.0F - f2) * f1); ++ return MathHelper.f((f - this.safeFallDistance - f2) * f1); + } - @Override - public void b(float f, float f1) { -- int i = MathHelper.f((f * 0.5F - 3.0F) * f1); -+ int i = MathHelper.f((f * 0.5F - this.safeFallDistance) * f1); // Purpur - - if (i > 0) { - if (f >= 6.0F) { + protected void cZ() { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index b27fd44dc..33f56b85e 100644 +index b27fd44dcd..33f56b85ea 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -712,4 +712,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { @@ -94,5 +80,5 @@ index b27fd44dc..33f56b85e 100644 + // Purpur end } -- -2.23.0.rc1 +2.24.0.rc1 diff --git a/patches/server/0008-Silk-touch-spawners.patch b/patches/server/0008-Silk-touch-spawners.patch index 2c645b2e1..1ae933a45 100644 --- a/patches/server/0008-Silk-touch-spawners.patch +++ b/patches/server/0008-Silk-touch-spawners.patch @@ -1,4 +1,4 @@ -From 95b2eda9ffd59fe885bc6ea528a6913d9586581b Mon Sep 17 00:00:00 2001 +From 37fc918ff51a18259c863ec7b2185c7e5e70b996 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Thu, 9 May 2019 14:27:37 -0500 Subject: [PATCH] Silk touch spawners @@ -13,7 +13,7 @@ Subject: [PATCH] Silk touch spawners create mode 100644 src/main/java/net/minecraft/server/ItemSpawner.java diff --git a/src/main/java/net/minecraft/server/Block.java b/src/main/java/net/minecraft/server/Block.java -index 619237d68..a0177d8c0 100644 +index 54a61283e6..4d29faccaa 100644 --- a/src/main/java/net/minecraft/server/Block.java +++ b/src/main/java/net/minecraft/server/Block.java @@ -494,6 +494,7 @@ public class Block implements IMaterial { @@ -25,7 +25,7 @@ index 619237d68..a0177d8c0 100644 if (!world.isClientSide && !itemstack.isEmpty() && world.getGameRules().getBoolean(GameRules.DO_TILE_DROPS)) { float f = 0.5F; diff --git a/src/main/java/net/minecraft/server/BlockMobSpawner.java b/src/main/java/net/minecraft/server/BlockMobSpawner.java -index bb77d916a..974a5d281 100644 +index 5296fdf168..901d45f284 100644 --- a/src/main/java/net/minecraft/server/BlockMobSpawner.java +++ b/src/main/java/net/minecraft/server/BlockMobSpawner.java @@ -11,6 +11,40 @@ public class BlockMobSpawner extends BlockTileEntity { @@ -44,7 +44,7 @@ index bb77d916a..974a5d281 100644 + ChatComponentText text = new ChatComponentText("Spawns a " + mobName); + + NBTTagList lore = new NBTTagList(); -+ lore.add(new NBTTagString(IChatBaseComponent.ChatSerializer.a(text))); ++ lore.add(NBTTagString.a(IChatBaseComponent.ChatSerializer.a(text))); + + NBTTagCompound display = new NBTTagCompound(); + display.set("Lore", lore); @@ -78,10 +78,10 @@ index bb77d916a..974a5d281 100644 return i; diff --git a/src/main/java/net/minecraft/server/EntityTypes.java b/src/main/java/net/minecraft/server/EntityTypes.java -index 612b9b7e3..f8308c96b 100644 +index 2fb04e3e93..dcba6d6c89 100644 --- a/src/main/java/net/minecraft/server/EntityTypes.java +++ b/src/main/java/net/minecraft/server/EntityTypes.java -@@ -135,10 +135,17 @@ public class EntityTypes { +@@ -136,10 +136,17 @@ public class EntityTypes { return (EntityTypes) IRegistry.a((IRegistry) IRegistry.ENTITY_TYPE, s, (Object) entitytypes_a.a(s)); } @@ -99,8 +99,8 @@ index 612b9b7e3..f8308c96b 100644 public static Optional> a(String s) { return IRegistry.ENTITY_TYPE.getOptional(MinecraftKey.a(s)); } -@@ -258,6 +265,12 @@ public class EntityTypes { - return this.ba; +@@ -259,6 +266,12 @@ public class EntityTypes { + return this.bb; } + // Purpur start @@ -110,19 +110,19 @@ index 612b9b7e3..f8308c96b 100644 + // Purpur end + public String f() { - if (this.bf == null) { - this.bf = SystemUtils.a("entity", IRegistry.ENTITY_TYPE.getKey(this)); -@@ -266,6 +279,7 @@ public class EntityTypes { - return this.bf; + if (this.bg == null) { + this.bg = SystemUtils.a("entity", IRegistry.ENTITY_TYPE.getKey(this)); +@@ -267,6 +280,7 @@ public class EntityTypes { + return this.bg; } + public IChatBaseComponent getNameComponent() { return g(); } // Purpur - OBFHELPER public IChatBaseComponent g() { - if (this.bg == null) { - this.bg = new ChatMessage(this.f(), new Object[0]); + if (this.bh == null) { + this.bh = new ChatMessage(this.f(), new Object[0]); diff --git a/src/main/java/net/minecraft/server/ItemSpawner.java b/src/main/java/net/minecraft/server/ItemSpawner.java new file mode 100644 -index 000000000..7dc68ffe9 +index 0000000000..7dc68ffe92 --- /dev/null +++ b/src/main/java/net/minecraft/server/ItemSpawner.java @@ -0,0 +1,23 @@ @@ -150,7 +150,7 @@ index 000000000..7dc68ffe9 + } +} diff --git a/src/main/java/net/minecraft/server/Items.java b/src/main/java/net/minecraft/server/Items.java -index 84646dbc2..987297634 100644 +index 54670f64cf..282fbca4fc 100644 --- a/src/main/java/net/minecraft/server/Items.java +++ b/src/main/java/net/minecraft/server/Items.java @@ -155,7 +155,7 @@ public class Items { @@ -163,5 +163,5 @@ index 84646dbc2..987297634 100644 public static final Item bZ = a(Blocks.CHEST, CreativeModeTab.c); public static final Item ca = a(Blocks.DIAMOND_ORE, CreativeModeTab.b); -- -2.23.0.rc1 +2.24.0.rc1 diff --git a/patches/server/0009-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch b/patches/server/0009-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch index 2b7e18146..f46e98f2d 100644 --- a/patches/server/0009-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch +++ b/patches/server/0009-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch @@ -1,4 +1,4 @@ -From ebfc4ed393ce2487fe54e5658b1654ced5857ccb Mon Sep 17 00:00:00 2001 +From 31106c152e9dda8876dbf2f89a26696f06f7aa61 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Thu, 9 May 2019 18:26:06 -0500 Subject: [PATCH] Phantoms attracted to crystals and crystals shoot phantoms @@ -13,10 +13,10 @@ Subject: [PATCH] Phantoms attracted to crystals and crystals shoot phantoms 6 files changed, 235 insertions(+), 14 deletions(-) diff --git a/src/main/java/net/minecraft/server/DamageSource.java b/src/main/java/net/minecraft/server/DamageSource.java -index 730a15f33..31454349a 100644 +index 816d301f1c..0971f25b56 100644 --- a/src/main/java/net/minecraft/server/DamageSource.java +++ b/src/main/java/net/minecraft/server/DamageSource.java -@@ -77,6 +77,7 @@ public class DamageSource { +@@ -81,6 +81,7 @@ public class DamageSource { return (new EntityDamageSourceIndirect("thrown", entity, entity1)).c(); } @@ -25,10 +25,10 @@ index 730a15f33..31454349a 100644 return (new EntityDamageSourceIndirect("indirectMagic", entity, entity1)).setIgnoreArmor().setMagic(); } diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 40ab9daad..dd787b7b6 100644 +index 682457e285..bb355803d5 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -1400,6 +1400,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1378,6 +1378,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke return d3 * d3 + d4 * d4 + d5 * d5; } @@ -36,7 +36,7 @@ index 40ab9daad..dd787b7b6 100644 public double h(Entity entity) { return this.c(entity.getPositionVector()); } -@@ -1919,14 +1920,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1897,14 +1898,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke return this.a(new ItemStack(imaterial), (float) i); } @@ -55,7 +55,7 @@ index 40ab9daad..dd787b7b6 100644 return null; } else if (this.world.isClientSide) { diff --git a/src/main/java/net/minecraft/server/EntityEnderCrystal.java b/src/main/java/net/minecraft/server/EntityEnderCrystal.java -index 801552fc6..9c7f7fee8 100644 +index a57d0089d8..2d46c250ed 100644 --- a/src/main/java/net/minecraft/server/EntityEnderCrystal.java +++ b/src/main/java/net/minecraft/server/EntityEnderCrystal.java @@ -13,6 +13,12 @@ public class EntityEnderCrystal extends Entity { @@ -71,7 +71,7 @@ index 801552fc6..9c7f7fee8 100644 public EntityEnderCrystal(EntityTypes entitytypes, World world) { super(entitytypes, world); -@@ -54,7 +60,50 @@ public class EntityEnderCrystal extends Entity { +@@ -51,7 +57,50 @@ public class EntityEnderCrystal extends Entity { } } @@ -123,7 +123,7 @@ index 801552fc6..9c7f7fee8 100644 @Override protected void b(NBTTagCompound nbttagcompound) { diff --git a/src/main/java/net/minecraft/server/EntityPhantom.java b/src/main/java/net/minecraft/server/EntityPhantom.java -index e5d032d02..7bc7b3366 100644 +index 82323bf4ac..052a741c0b 100644 --- a/src/main/java/net/minecraft/server/EntityPhantom.java +++ b/src/main/java/net/minecraft/server/EntityPhantom.java @@ -8,9 +8,10 @@ import javax.annotation.Nullable; @@ -132,10 +132,10 @@ index e5d032d02..7bc7b3366 100644 private static final DataWatcherObject b = DataWatcher.a(EntityPhantom.class, DataWatcherRegistry.b); - private Vec3D c; - private BlockPosition d; -- private EntityPhantom.AttackPhase bz; +- private EntityPhantom.AttackPhase bw; + private Vec3D c; public void setHomeOffset(Vec3D offset) { this.c = offset; } public Vec3D getHomeOffset() { return this.c; } // Purpur - OBFHELPER + private BlockPosition d; public void setHome(BlockPosition home) { this.d = home; } public BlockPosition getHome() { return this.d; } // Purpur - OBFHELPER -+ private EntityPhantom.AttackPhase bz; public AttackPhase getAttackPhase() { return this.bz; } // Purpur - OBFHELPER ++ private EntityPhantom.AttackPhase bw; public AttackPhase getAttackPhase() { return this.bw; } // Purpur - OBFHELPER + private BlockPosition crystalPosition; // Purpur public EntityPhantom(EntityTypes entitytypes, World world) { @@ -161,7 +161,7 @@ index e5d032d02..7bc7b3366 100644 } @Override -@@ -114,6 +121,26 @@ public class EntityPhantom extends EntityFlying implements IMonster { +@@ -115,6 +122,26 @@ public class EntityPhantom extends EntityFlying implements IMonster { super.mobTick(); } @@ -188,7 +188,7 @@ index e5d032d02..7bc7b3366 100644 @Override public GroupDataEntity prepare(GeneratorAccess generatoraccess, DifficultyDamageScaler difficultydamagescaler, EnumMobSpawn enummobspawn, @Nullable GroupDataEntity groupdataentity, @Nullable NBTTagCompound nbttagcompound) { this.d = (new BlockPosition(this)).up(5); -@@ -202,6 +229,135 @@ public class EntityPhantom extends EntityFlying implements IMonster { +@@ -203,6 +230,135 @@ public class EntityPhantom extends EntityFlying implements IMonster { } // Paper end @@ -324,7 +324,7 @@ index e5d032d02..7bc7b3366 100644 class b extends PathfinderGoal { private final PathfinderTargetCondition b; -@@ -259,7 +415,7 @@ public class EntityPhantom extends EntityFlying implements IMonster { +@@ -260,7 +416,7 @@ public class EntityPhantom extends EntityFlying implements IMonster { public boolean a() { EntityLiving entityliving = EntityPhantom.this.getGoalTarget(); @@ -333,11 +333,11 @@ index e5d032d02..7bc7b3366 100644 } @Override -@@ -305,11 +461,16 @@ public class EntityPhantom extends EntityFlying implements IMonster { +@@ -306,11 +462,16 @@ public class EntityPhantom extends EntityFlying implements IMonster { @Override public boolean a() { -- return EntityPhantom.this.getGoalTarget() != null && EntityPhantom.this.bz == EntityPhantom.AttackPhase.SWOOP; +- return EntityPhantom.this.getGoalTarget() != null && EntityPhantom.this.bw == EntityPhantom.AttackPhase.SWOOP; + return !isCirclingCrystal() && EntityPhantom.this.getGoalTarget() != null && EntityPhantom.this.getAttackPhase() == EntityPhantom.AttackPhase.SWOOP; // Purpur } @@ -351,17 +351,17 @@ index e5d032d02..7bc7b3366 100644 EntityLiving entityliving = EntityPhantom.this.getGoalTarget(); if (entityliving == null) { -@@ -379,7 +540,7 @@ public class EntityPhantom extends EntityFlying implements IMonster { +@@ -380,7 +541,7 @@ public class EntityPhantom extends EntityFlying implements IMonster { @Override public boolean a() { -- return EntityPhantom.this.getGoalTarget() == null || EntityPhantom.this.bz == EntityPhantom.AttackPhase.CIRCLE; +- return EntityPhantom.this.getGoalTarget() == null || EntityPhantom.this.bw == EntityPhantom.AttackPhase.CIRCLE; + return !isCirclingCrystal() && EntityPhantom.this.getGoalTarget() == null || EntityPhantom.this.getAttackPhase() == EntityPhantom.AttackPhase.CIRCLE; // Purpur } @Override diff --git a/src/main/java/net/minecraft/server/IEntityAccess.java b/src/main/java/net/minecraft/server/IEntityAccess.java -index dca18afdb..9aaa75e95 100644 +index c8512f9f41..8b36252ae1 100644 --- a/src/main/java/net/minecraft/server/IEntityAccess.java +++ b/src/main/java/net/minecraft/server/IEntityAccess.java @@ -34,6 +34,7 @@ public interface IEntityAccess { @@ -373,7 +373,7 @@ index dca18afdb..9aaa75e95 100644 return this.a(oclass, axisalignedbb, IEntitySelector.f); } diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 37bab6180..0bfcef2d3 100644 +index 0c408a10cf..960361ff74 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -136,6 +136,15 @@ public class PurpurConfig { @@ -393,5 +393,5 @@ index 37bab6180..0bfcef2d3 100644 public static boolean snowmanPumpkinPutBack = false; private static void snowmansSettings() { -- -2.20.1 +2.24.0.rc1 diff --git a/patches/server/0010-Integrate-ridables.patch b/patches/server/0010-Integrate-ridables.patch index e298c9815..272b1c564 100644 --- a/patches/server/0010-Integrate-ridables.patch +++ b/patches/server/0010-Integrate-ridables.patch @@ -1,4 +1,4 @@ -From cd7a9a5456600a746914ef7d5c717fac8a84cfb7 Mon Sep 17 00:00:00 2001 +From bd0a901250083968b63fa45b51b840fd8142df84 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Tue, 30 Apr 2019 19:17:21 -0500 Subject: [PATCH] Integrate ridables @@ -9,7 +9,7 @@ Subject: [PATCH] Integrate ridables .../net/minecraft/server/EntityAgeable.java | 2 +- .../java/net/minecraft/server/EntityBat.java | 21 +++ .../net/minecraft/server/EntityBlaze.java | 15 ++- - .../java/net/minecraft/server/EntityCat.java | 23 +++- + .../java/net/minecraft/server/EntityCat.java | 21 ++- .../minecraft/server/EntityCaveSpider.java | 1 + .../net/minecraft/server/EntityChicken.java | 4 +- .../java/net/minecraft/server/EntityCod.java | 1 + @@ -34,7 +34,7 @@ Subject: [PATCH] Integrate ridables .../server/EntityIllagerIllusioner.java | 2 + .../minecraft/server/EntityInsentient.java | 51 +++++++- .../net/minecraft/server/EntityIronGolem.java | 2 + - .../net/minecraft/server/EntityLiving.java | 24 +++- + .../net/minecraft/server/EntityLiving.java | 27 ++-- .../net/minecraft/server/EntityLlama.java | 42 +++++- .../minecraft/server/EntityLlamaTrader.java | 8 ++ .../net/minecraft/server/EntityMagmaCube.java | 3 +- @@ -42,11 +42,11 @@ Subject: [PATCH] Integrate ridables .../net/minecraft/server/EntityOcelot.java | 2 + .../net/minecraft/server/EntityPanda.java | 29 ++++- .../net/minecraft/server/EntityParrot.java | 45 ++++++- - .../net/minecraft/server/EntityPhantom.java | 34 ++++- - .../java/net/minecraft/server/EntityPig.java | 35 +++-- - .../net/minecraft/server/EntityPigZombie.java | 3 +- + .../net/minecraft/server/EntityPhantom.java | 40 ++++-- + .../java/net/minecraft/server/EntityPig.java | 32 ++--- + .../net/minecraft/server/EntityPigZombie.java | 6 + .../net/minecraft/server/EntityPillager.java | 2 + - .../net/minecraft/server/EntityPolarBear.java | 27 ++++ + .../net/minecraft/server/EntityPolarBear.java | 26 ++++ .../minecraft/server/EntityPufferFish.java | 3 +- .../net/minecraft/server/EntityRabbit.java | 6 +- .../net/minecraft/server/EntityRavager.java | 2 + @@ -68,7 +68,7 @@ Subject: [PATCH] Integrate ridables .../net/minecraft/server/EntityTypes.java | 4 + .../java/net/minecraft/server/EntityVex.java | 14 +- .../minecraft/server/EntityVindicator.java | 2 + - .../net/minecraft/server/EntityWitch.java | 4 +- + .../net/minecraft/server/EntityWitch.java | 6 +- .../net/minecraft/server/EntityWither.java | 4 +- .../java/net/minecraft/server/EntityWolf.java | 10 ++ .../net/minecraft/server/EntityZombie.java | 2 + @@ -83,7 +83,7 @@ Subject: [PATCH] Integrate ridables .../pathfinder/PathfinderGoalHasRider.java | 20 +++ .../craftbukkit/entity/CraftLivingEntity.java | 10 ++ .../bukkit/craftbukkit/entity/CraftMob.java | 12 ++ - 79 files changed, 1259 insertions(+), 116 deletions(-) + 79 files changed, 1266 insertions(+), 117 deletions(-) create mode 100644 src/main/java/net/pl3x/purpur/controller/ControllerLookWASD.java create mode 100644 src/main/java/net/pl3x/purpur/controller/ControllerMoveWASD.java create mode 100644 src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDFlying.java @@ -92,7 +92,7 @@ Subject: [PATCH] Integrate ridables create mode 100644 src/main/java/net/pl3x/purpur/pathfinder/PathfinderGoalHasRider.java diff --git a/src/main/java/net/minecraft/server/ControllerLookDolphin.java b/src/main/java/net/minecraft/server/ControllerLookDolphin.java -index 454627f65e..df3d6cf281 100644 +index 1d9ba04daa..2bade947ee 100644 --- a/src/main/java/net/minecraft/server/ControllerLookDolphin.java +++ b/src/main/java/net/minecraft/server/ControllerLookDolphin.java @@ -1,6 +1,6 @@ @@ -111,12 +111,12 @@ index 454627f65e..df3d6cf281 100644 + public void tick() { // Purpur if (this.d) { this.d = false; - this.a.aM = this.a(this.a.aM, this.h() + 20.0F, this.b); + this.a.aK = this.a(this.a.aK, this.h() + 20.0F, this.b); diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index dd787b7b65..27ae097578 100644 +index bb355803d5..86ce0977df 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -78,6 +78,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -79,6 +79,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke private CraftEntity bukkitEntity; PlayerChunkMap.EntityTracker tracker; // Paper @@ -124,7 +124,7 @@ index dd787b7b65..27ae097578 100644 Throwable addedToWorldStack; // Paper - entity debug public CraftEntity getBukkitEntity() { if (bukkitEntity == null) { -@@ -100,8 +101,10 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -101,8 +102,10 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke private final EntityTypes f; private int id; public boolean i; public final boolean blocksEntitySpawning() { return this.i; } // Paper - OBFHELPER @@ -133,19 +133,19 @@ index dd787b7b65..27ae097578 100644 - protected int j; + private EntityHuman rider; public EntityHuman getRider() { return rider; } // Purpur + protected int j; public int getRideCooldown() { return j; } // Purpur - OBFHELPER + @Nullable private Entity vehicle; public boolean attachedToPlayer; - public World world; -@@ -134,7 +137,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke - public double H; - public double I; - public double J; -- public float K; -+ public float K; public float getStepHeight() { return K; } public void setStepHeight(float stepHeight) { this.K = stepHeight; } // Purpur - OBFHELPER +@@ -135,7 +138,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke + public double E; + public double F; + public double G; +- public float H; ++ public float H; public float getStepHeight() { return H; } public void setStepHeight(float stepHeight) { this.H = stepHeight; } // Purpur - OBFHELPER public boolean noclip; - public float M; + public float J; protected final Random random; -@@ -2125,7 +2128,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -2107,7 +2110,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke } else { this.passengers.add(entity); } @@ -160,7 +160,7 @@ index dd787b7b65..27ae097578 100644 } return true; // CraftBukkit } -@@ -2160,6 +2169,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -2142,6 +2151,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke return false; } // Spigot end @@ -173,9 +173,9 @@ index dd787b7b65..27ae097578 100644 this.passengers.remove(entity); entity.j = 60; } -@@ -3276,4 +3291,20 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke - public void setMot(double d0, double d1, double d2) { - this.setMot(new Vec3D(d0, d1, d2)); +@@ -3361,4 +3376,20 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke + + void accept(Entity entity, double d0, double d1, double d2); } + + // Purpur start @@ -195,10 +195,10 @@ index dd787b7b65..27ae097578 100644 + // Purpur end } diff --git a/src/main/java/net/minecraft/server/EntityAgeable.java b/src/main/java/net/minecraft/server/EntityAgeable.java -index e87754ef33..553245ebe9 100644 +index 3d27f0964a..822316a65f 100644 --- a/src/main/java/net/minecraft/server/EntityAgeable.java +++ b/src/main/java/net/minecraft/server/EntityAgeable.java -@@ -70,7 +70,7 @@ public abstract class EntityAgeable extends EntityCreature { +@@ -86,7 +86,7 @@ public abstract class EntityAgeable extends EntityCreature { return true; } else { @@ -208,7 +208,7 @@ index e87754ef33..553245ebe9 100644 } diff --git a/src/main/java/net/minecraft/server/EntityBat.java b/src/main/java/net/minecraft/server/EntityBat.java -index 72474211bc..8a8acf14ae 100644 +index 34239160be..f83e35f5ba 100644 --- a/src/main/java/net/minecraft/server/EntityBat.java +++ b/src/main/java/net/minecraft/server/EntityBat.java @@ -14,6 +14,10 @@ public class EntityBat extends EntityAmbient { @@ -236,7 +236,7 @@ index 72474211bc..8a8acf14ae 100644 super.mobTick(); BlockPosition blockposition = new BlockPosition(this); BlockPosition blockposition1 = blockposition.up(); -@@ -227,4 +238,14 @@ public class EntityBat extends EntityAmbient { +@@ -229,4 +240,14 @@ public class EntityBat extends EntityAmbient { protected float b(EntityPose entitypose, EntitySize entitysize) { return entitysize.height / 2.0F; } @@ -252,7 +252,7 @@ index 72474211bc..8a8acf14ae 100644 + // Purpur end } diff --git a/src/main/java/net/minecraft/server/EntityBlaze.java b/src/main/java/net/minecraft/server/EntityBlaze.java -index 89f1bfa41d..8b8423c6b3 100644 +index 5b1d2c7f50..d46b99b5c9 100644 --- a/src/main/java/net/minecraft/server/EntityBlaze.java +++ b/src/main/java/net/minecraft/server/EntityBlaze.java @@ -10,6 +10,10 @@ public class EntityBlaze extends EntityMonster { @@ -297,15 +297,15 @@ index 89f1bfa41d..8b8423c6b3 100644 if (this.c <= 0) { this.c = 100; diff --git a/src/main/java/net/minecraft/server/EntityCat.java b/src/main/java/net/minecraft/server/EntityCat.java -index f4660233e8..d526fc6f50 100644 +index 57af3835ee..7219f90322 100644 --- a/src/main/java/net/minecraft/server/EntityCat.java +++ b/src/main/java/net/minecraft/server/EntityCat.java @@ -16,7 +16,7 @@ public class EntityCat extends EntityTameableAnimal { - private static final DataWatcherObject bF = DataWatcher.a(EntityCat.class, DataWatcherRegistry.i); - private static final DataWatcherObject bG = DataWatcher.a(EntityCat.class, DataWatcherRegistry.i); - private static final DataWatcherObject bH = DataWatcher.a(EntityCat.class, DataWatcherRegistry.b); -- public static final Map bC = (Map) SystemUtils.a(Maps.newHashMap(), (hashmap) -> { // CraftBukkit - decompile error -+ public static final Map bC = SystemUtils.a(Maps.newHashMap(), (hashmap) -> { // CraftBukkit - decompile error // Purpur - _really_ fix decompile error + private static final DataWatcherObject bC = DataWatcher.a(EntityCat.class, DataWatcherRegistry.i); + private static final DataWatcherObject bD = DataWatcher.a(EntityCat.class, DataWatcherRegistry.i); + private static final DataWatcherObject bE = DataWatcher.a(EntityCat.class, DataWatcherRegistry.b); +- public static final Map bz = (Map) SystemUtils.a(Maps.newHashMap(), (hashmap) -> { // CraftBukkit - decompile error ++ public static final Map bz = SystemUtils.a(Maps.newHashMap(), (hashmap) -> { // CraftBukkit - decompile error // Purpur - _really_ fix decompile error hashmap.put(0, new MinecraftKey("textures/entity/cat/tabby.png")); hashmap.put(1, new MinecraftKey("textures/entity/cat/black.png")); hashmap.put(2, new MinecraftKey("textures/entity/cat/red.png")); @@ -316,27 +316,27 @@ index f4660233e8..d526fc6f50 100644 + this.isRidable = net.pl3x.purpur.PurpurConfig.ridableCat; // Purpur } - public MinecraftKey ee() { + public MinecraftKey ez() { @@ -50,7 +51,8 @@ public class EntityCat extends EntityTameableAnimal { protected void initPathfinder() { this.goalSit = new PathfinderGoalSit(this); - this.bJ = new EntityCat.PathfinderGoalTemptChance(this, 0.6D, EntityCat.bD, true); + this.bG = new EntityCat.PathfinderGoalTemptChance(this, 0.6D, EntityCat.bA, true); - this.goalSelector.a(1, new PathfinderGoalFloat(this)); + this.goalSelector.a(0, new PathfinderGoalFloat(this)); // Purpur + this.goalSelector.a(0, new net.pl3x.purpur.pathfinder.PathfinderGoalHasRider(this)); // Purpur this.goalSelector.a(1, new EntityCat.b(this)); this.goalSelector.a(2, this.goalSit); - this.goalSelector.a(3, this.bJ); -@@ -196,7 +198,7 @@ public class EntityCat extends EntityTameableAnimal { + this.goalSelector.a(3, this.bG); +@@ -203,7 +205,7 @@ public class EntityCat extends EntityTameableAnimal { @Override - public boolean C(Entity entity) { -- return entity.damageEntity(DamageSource.mobAttack(this), 3.0F); -+ return getRider() == null && entity.damageEntity(DamageSource.mobAttack(this), 3.0F); // Purpur + public boolean B(Entity entity) { +- return entity.damageEntity(DamageSource.mobAttack(this), this.eF()); ++ return getRider() == null && entity.damageEntity(DamageSource.mobAttack(this), this.eF()); // Purpur } @Override -@@ -268,7 +270,7 @@ public class EntityCat extends EntityTameableAnimal { +@@ -275,7 +277,7 @@ public class EntityCat extends EntityTameableAnimal { @Override public boolean mate(EntityAnimal entityanimal) { @@ -345,7 +345,7 @@ index f4660233e8..d526fc6f50 100644 return false; } else if (!(entityanimal instanceof EntityCat)) { return false; -@@ -299,6 +301,7 @@ public class EntityCat extends EntityTameableAnimal { +@@ -306,6 +308,7 @@ public class EntityCat extends EntityTameableAnimal { @Override public boolean a(EntityHuman entityhuman, EnumHand enumhand) { @@ -353,16 +353,7 @@ index f4660233e8..d526fc6f50 100644 ItemStack itemstack = entityhuman.b(enumhand); Item item = itemstack.getItem(); -@@ -322,7 +325,7 @@ public class EntityCat extends EntityTameableAnimal { - this.heal((float) item.getFoodInfo().getNutrition()); - return true; - } -- } else if (!this.world.isClientSide) { -+ } else if (!entityhuman.isSneaking()) { // Purpur - this.goalSit.setSitting(!this.isSitting()); - } - } -@@ -381,6 +384,16 @@ public class EntityCat extends EntityTameableAnimal { +@@ -396,6 +399,16 @@ public class EntityCat extends EntityTameableAnimal { } @@ -380,7 +371,7 @@ index f4660233e8..d526fc6f50 100644 private final EntityCat a; diff --git a/src/main/java/net/minecraft/server/EntityCaveSpider.java b/src/main/java/net/minecraft/server/EntityCaveSpider.java -index 89c9306df5..e9ec283625 100644 +index 23ced2c7bb..6613583587 100644 --- a/src/main/java/net/minecraft/server/EntityCaveSpider.java +++ b/src/main/java/net/minecraft/server/EntityCaveSpider.java @@ -6,6 +6,7 @@ public class EntityCaveSpider extends EntitySpider { @@ -392,7 +383,7 @@ index 89c9306df5..e9ec283625 100644 @Override diff --git a/src/main/java/net/minecraft/server/EntityChicken.java b/src/main/java/net/minecraft/server/EntityChicken.java -index f1dfdd4ff8..92aa9f2295 100644 +index 65795fc896..b31b606044 100644 --- a/src/main/java/net/minecraft/server/EntityChicken.java +++ b/src/main/java/net/minecraft/server/EntityChicken.java @@ -13,6 +13,7 @@ public class EntityChicken extends EntityAnimal { @@ -410,11 +401,11 @@ index f1dfdd4ff8..92aa9f2295 100644 + this.goalSelector.a(0, new net.pl3x.purpur.pathfinder.PathfinderGoalHasRider(this)); // Purpur this.goalSelector.a(1, new PathfinderGoalPanic(this, 1.4D)); this.goalSelector.a(2, new PathfinderGoalBreed(this, 1.0D)); - this.goalSelector.a(3, new PathfinderGoalTempt(this, 1.0D, false, EntityChicken.bG)); + this.goalSelector.a(3, new PathfinderGoalTempt(this, 1.0D, false, EntityChicken.bD)); @@ -65,7 +67,7 @@ public class EntityChicken extends EntityAnimal { } - this.bz += this.bD * 2.0F; + this.bw += this.bA * 2.0F; - if (!this.world.isClientSide && this.isAlive() && !this.isBaby() && !this.isChickenJockey() && --this.eggLayTime <= 0) { + if (!this.world.isClientSide && this.isAlive() && !this.isBaby() && !this.isChickenJockey() && --this.eggLayTime <= 0 && getRider() == null) { // Purpur this.a(SoundEffects.ENTITY_CHICKEN_EGG, 1.0F, (this.random.nextFloat() - this.random.nextFloat()) * 0.2F + 1.0F); @@ -433,7 +424,7 @@ index 1e3782122a..c0b066d188 100644 @Override diff --git a/src/main/java/net/minecraft/server/EntityCow.java b/src/main/java/net/minecraft/server/EntityCow.java -index 2446e61c2b..5c8fef33b1 100644 +index e1d0f0f38d..dcff77d8d8 100644 --- a/src/main/java/net/minecraft/server/EntityCow.java +++ b/src/main/java/net/minecraft/server/EntityCow.java @@ -9,11 +9,13 @@ public class EntityCow extends EntityAnimal { @@ -451,7 +442,7 @@ index 2446e61c2b..5c8fef33b1 100644 this.goalSelector.a(2, new PathfinderGoalBreed(this, 1.0D)); if (net.pl3x.purpur.PurpurConfig.feedMushroomsToCows > 0) this.goalSelector.a(3, new PathfinderGoalTempt(this, 1.25D, RecipeItemStack.a(Items.WHEAT, Blocks.RED_MUSHROOM.getItem(), Blocks.BROWN_MUSHROOM.getItem()), false)); else // Purpur diff --git a/src/main/java/net/minecraft/server/EntityCreeper.java b/src/main/java/net/minecraft/server/EntityCreeper.java -index bcb7276308..038ff1d93c 100644 +index 77ba923338..9bce3f7716 100644 --- a/src/main/java/net/minecraft/server/EntityCreeper.java +++ b/src/main/java/net/minecraft/server/EntityCreeper.java @@ -21,11 +21,13 @@ public class EntityCreeper extends EntityMonster { @@ -468,9 +459,9 @@ index bcb7276308..038ff1d93c 100644 this.goalSelector.a(2, new PathfinderGoalSwell(this)); this.goalSelector.a(3, new PathfinderGoalAvoidTarget<>(this, EntityOcelot.class, 6.0F, 1.0D, 1.2D)); this.goalSelector.a(3, new PathfinderGoalAvoidTarget<>(this, EntityCat.class, 6.0F, 1.0D, 1.2D)); -@@ -275,4 +277,59 @@ public class EntityCreeper extends EntityMonster { +@@ -277,4 +279,59 @@ public class EntityCreeper extends EntityMonster { public void setCausedHeadDrop() { - ++this.bD; + ++this.bA; } + + // Purpur start @@ -529,7 +520,7 @@ index bcb7276308..038ff1d93c 100644 + // Purpur end } diff --git a/src/main/java/net/minecraft/server/EntityDolphin.java b/src/main/java/net/minecraft/server/EntityDolphin.java -index 063fb70534..2dfcea5482 100644 +index 3523007ae4..96d090e348 100644 --- a/src/main/java/net/minecraft/server/EntityDolphin.java +++ b/src/main/java/net/minecraft/server/EntityDolphin.java @@ -18,6 +18,7 @@ public class EntityDolphin extends EntityWaterAnimal { @@ -557,7 +548,7 @@ index 063fb70534..2dfcea5482 100644 } @Override -@@ -524,7 +526,7 @@ public class EntityDolphin extends EntityWaterAnimal { +@@ -527,7 +529,7 @@ public class EntityDolphin extends EntityWaterAnimal { } } @@ -566,7 +557,7 @@ index 063fb70534..2dfcea5482 100644 private final EntityDolphin i; -@@ -533,8 +535,21 @@ public class EntityDolphin extends EntityWaterAnimal { +@@ -536,8 +538,21 @@ public class EntityDolphin extends EntityWaterAnimal { this.i = entitydolphin; } @@ -590,7 +581,7 @@ index 063fb70534..2dfcea5482 100644 this.i.setMot(this.i.getMot().add(0.0D, 0.005D, 0.0D)); } diff --git a/src/main/java/net/minecraft/server/EntityDrowned.java b/src/main/java/net/minecraft/server/EntityDrowned.java -index 6f0094e6dc..b0ba05aaf7 100644 +index 3a1928b221..d6a78c5ae6 100644 --- a/src/main/java/net/minecraft/server/EntityDrowned.java +++ b/src/main/java/net/minecraft/server/EntityDrowned.java @@ -12,6 +12,7 @@ public class EntityDrowned extends EntityZombie implements IRangedEntity { @@ -598,11 +589,11 @@ index 6f0094e6dc..b0ba05aaf7 100644 public EntityDrowned(EntityTypes entitytypes, World world) { super(entitytypes, world); + this.isRidable = net.pl3x.purpur.PurpurConfig.ridableDrowned; // Purpur - this.K = 1.0F; + this.H = 1.0F; this.moveController = new EntityDrowned.d(this); this.a(PathType.WATER, 0.0F); @@ -200,7 +201,7 @@ public class EntityDrowned extends EntityZombie implements IRangedEntity { - this.bz = flag; + this.bw = flag; } - static class d extends ControllerMove { @@ -618,7 +609,7 @@ index 6f0094e6dc..b0ba05aaf7 100644 + public void tick() { // Purpur EntityLiving entityliving = this.i.getGoalTarget(); - if (this.i.ee() && this.i.isInWater()) { + if (this.i.ez() && this.i.isInWater()) { @@ -243,7 +244,7 @@ public class EntityDrowned extends EntityZombie implements IRangedEntity { this.i.setMot(this.i.getMot().add(0.0D, -0.008D, 0.0D)); } @@ -629,30 +620,30 @@ index 6f0094e6dc..b0ba05aaf7 100644 } diff --git a/src/main/java/net/minecraft/server/EntityEnderDragon.java b/src/main/java/net/minecraft/server/EntityEnderDragon.java -index c8c74f2b3e..6a6367a2e1 100644 +index 9acdd6e566..5935ecb529 100644 --- a/src/main/java/net/minecraft/server/EntityEnderDragon.java +++ b/src/main/java/net/minecraft/server/EntityEnderDragon.java -@@ -46,6 +46,7 @@ public class EntityEnderDragon extends EntityInsentient implements IMonster { +@@ -49,6 +49,7 @@ public class EntityEnderDragon extends EntityInsentient implements IMonster { public EntityEnderDragon(EntityTypes entitytypes, World world) { super(EntityTypes.ENDER_DRAGON, world); + this.isRidable = net.pl3x.purpur.PurpurConfig.ridableEnderDragon; // Purpur - this.children = new EntityComplexPart[]{this.bA, this.bB, this.bC, this.bD, this.bE, this.bF, this.bG, this.bH}; + this.children = new EntityComplexPart[]{this.bw, this.bG, this.bH, this.bI, this.bJ, this.bK, this.bL, this.bM}; this.setHealth(this.getMaxHealth()); this.noclip = true; diff --git a/src/main/java/net/minecraft/server/EntityEnderman.java b/src/main/java/net/minecraft/server/EntityEnderman.java -index a94ed1ae08..a438d30414 100644 +index 13507edbce..245dc9a687 100644 --- a/src/main/java/net/minecraft/server/EntityEnderman.java +++ b/src/main/java/net/minecraft/server/EntityEnderman.java -@@ -22,6 +22,7 @@ public class EntityEnderman extends EntityMonster { +@@ -23,6 +23,7 @@ public class EntityEnderman extends EntityMonster { public EntityEnderman(EntityTypes entitytypes, World world) { super(entitytypes, world); + this.isRidable = net.pl3x.purpur.PurpurConfig.ridableEnderman; // Purpur - this.K = 1.0F; + this.H = 1.0F; this.a(PathType.WATER, -1.0F); } -@@ -29,6 +30,7 @@ public class EntityEnderman extends EntityMonster { +@@ -30,6 +31,7 @@ public class EntityEnderman extends EntityMonster { @Override protected void initPathfinder() { this.goalSelector.a(0, new PathfinderGoalFloat(this)); @@ -661,7 +652,7 @@ index a94ed1ae08..a438d30414 100644 this.goalSelector.a(2, new PathfinderGoalMeleeAttack(this, 1.0D, false)); this.goalSelector.a(7, new PathfinderGoalRandomStrollLand(this, 1.0D, 0.0F)); diff --git a/src/main/java/net/minecraft/server/EntityEndermite.java b/src/main/java/net/minecraft/server/EntityEndermite.java -index c2be69fc5c..b39c1e95a7 100644 +index b34695f2d0..92288e704f 100644 --- a/src/main/java/net/minecraft/server/EntityEndermite.java +++ b/src/main/java/net/minecraft/server/EntityEndermite.java @@ -9,17 +9,19 @@ public class EntityEndermite extends EntityMonster { @@ -686,7 +677,7 @@ index c2be69fc5c..b39c1e95a7 100644 } diff --git a/src/main/java/net/minecraft/server/EntityEvoker.java b/src/main/java/net/minecraft/server/EntityEvoker.java -index 77139f2517..8d923a34c3 100644 +index 886268b09e..3560c95298 100644 --- a/src/main/java/net/minecraft/server/EntityEvoker.java +++ b/src/main/java/net/minecraft/server/EntityEvoker.java @@ -9,6 +9,7 @@ public class EntityEvoker extends EntityIllagerWizard { @@ -715,7 +706,7 @@ index 77139f2517..8d923a34c3 100644 this.targetSelector.a(3, (new PathfinderGoalNearestAttackableTarget<>(this, EntityVillagerAbstract.class, false)).a(300)); this.targetSelector.a(3, new PathfinderGoalNearestAttackableTarget<>(this, EntityIronGolem.class, false)); diff --git a/src/main/java/net/minecraft/server/EntityFish.java b/src/main/java/net/minecraft/server/EntityFish.java -index 90479feb49..884d14e1c0 100644 +index d332907b3b..0ca3d45c9c 100644 --- a/src/main/java/net/minecraft/server/EntityFish.java +++ b/src/main/java/net/minecraft/server/EntityFish.java @@ -72,13 +72,10 @@ public abstract class EntityFish extends EntityWaterAnimal { @@ -739,7 +730,7 @@ index 90479feb49..884d14e1c0 100644 @@ -89,7 +86,7 @@ public abstract class EntityFish extends EntityWaterAnimal { @Override public void e(Vec3D vec3d) { - if (this.df() && this.isInWater()) { + if (this.doAITick() && this.isInWater()) { - this.a(0.01F, vec3d); + this.a(getRider() == null ? 0.1F : getSpeed(), vec3d); // Purpur this.move(EnumMoveType.SELF, this.getMot()); @@ -773,7 +764,7 @@ index 90479feb49..884d14e1c0 100644 this.i.setMot(this.i.getMot().add(0.0D, 0.005D, 0.0D)); } diff --git a/src/main/java/net/minecraft/server/EntityFox.java b/src/main/java/net/minecraft/server/EntityFox.java -index ca38ccf768..0a2540ae7c 100644 +index 7495af8e3a..66078b484c 100644 --- a/src/main/java/net/minecraft/server/EntityFox.java +++ b/src/main/java/net/minecraft/server/EntityFox.java @@ -48,6 +48,7 @@ public class EntityFox extends EntityAnimal { @@ -791,8 +782,8 @@ index ca38ccf768..0a2540ae7c 100644 + this.goalSelector.a(0, new net.pl3x.purpur.pathfinder.PathfinderGoalHasRider(this)); // Purpur this.goalSelector.a(1, new EntityFox.b()); this.goalSelector.a(2, new EntityFox.n(2.2D)); - this.goalSelector.a(3, new PathfinderGoalAvoidTarget<>(this, EntityHuman.class, 16.0F, 1.6D, 1.4D, (entityliving) -> { -@@ -155,7 +157,7 @@ public class EntityFox extends EntityAnimal { + this.goalSelector.a(3, new EntityFox.e(1.0D)); +@@ -154,7 +156,7 @@ public class EntityFox extends EntityAnimal { } private boolean j(ItemStack itemstack) { @@ -801,7 +792,7 @@ index ca38ccf768..0a2540ae7c 100644 } @Override -@@ -367,6 +369,7 @@ public class EntityFox extends EntityAnimal { +@@ -363,6 +365,7 @@ public class EntityFox extends EntityAnimal { @Override public boolean e(ItemStack itemstack) { @@ -809,7 +800,7 @@ index ca38ccf768..0a2540ae7c 100644 EnumItemSlot enumitemslot = EntityInsentient.h(itemstack); return !this.getEquipment(enumitemslot).isEmpty() ? false : enumitemslot == EnumItemSlot.MAINHAND && super.e(itemstack); -@@ -374,12 +377,14 @@ public class EntityFox extends EntityAnimal { +@@ -370,12 +373,14 @@ public class EntityFox extends EntityAnimal { @Override protected boolean g(ItemStack itemstack) { @@ -817,46 +808,46 @@ index ca38ccf768..0a2540ae7c 100644 Item item = itemstack.getItem(); ItemStack itemstack1 = this.getEquipment(EnumItemSlot.MAINHAND); - return itemstack1.isEmpty() || this.bO > 0 && item.isFood() && !itemstack1.getItem().isFood(); + return itemstack1.isEmpty() || this.bL > 0 && item.isFood() && !itemstack1.getItem().isFood(); } + public void spit(ItemStack itemstack) { k(itemstack); } // Purpur - OBFHELPER private void k(ItemStack itemstack) { if (!itemstack.isEmpty() && !this.world.isClientSide) { - EntityItem entityitem = new EntityItem(this.world, this.locX + this.getLookDirection().x, this.locY + 1.0D, this.locZ + this.getLookDirection().z, itemstack); -@@ -473,6 +478,7 @@ public class EntityFox extends EntityAnimal { - return this.s(16); + EntityItem entityitem = new EntityItem(this.world, this.locX() + this.getLookDirection().x, this.locY() + 1.0D, this.locZ() + this.getLookDirection().z, itemstack); +@@ -469,6 +474,7 @@ public class EntityFox extends EntityAnimal { + return this.t(16); } + public void setChasing(boolean flag) { s(flag); } // Purpur - OBFHELPER public void s(boolean flag) { this.d(16, flag); } -@@ -537,6 +543,7 @@ public class EntityFox extends EntityAnimal { +@@ -511,6 +517,7 @@ public class EntityFox extends EntityAnimal { this.setSleeping(false); } -+ public void stopActions() { en(); } // Purpur - OBFHELPER - private void en() { ++ public void stopActions() { eH(); } // Purpur - OBFHELPER + private void eH() { this.u(false); this.setCrouching(false); -@@ -547,7 +554,7 @@ public class EntityFox extends EntityAnimal { +@@ -521,7 +528,7 @@ public class EntityFox extends EntityAnimal { } - private boolean eo() { -- return !this.isSleeping() && !this.isSitting() && !this.dX(); -+ return getRider() == null && !this.isSleeping() && !this.isSitting() && !this.dX(); // Purpur + private boolean eI() { +- return !this.isSleeping() && !this.isSitting() && !this.es(); ++ return getRider() == null && !this.isSleeping() && !this.isSitting() && !this.es(); // Purpur } @Override -@@ -618,7 +625,32 @@ public class EntityFox extends EntityAnimal { +@@ -592,7 +599,32 @@ public class EntityFox extends EntityAnimal { return deathEvent; // Paper } + // Purpur start + @Override -+ public float cX() { -+ return getRider() == null ? super.cX() : 0.5F; ++ public float dp() { ++ return getRider() == null ? super.dp() : 0.5F; + } + + @Override @@ -879,10 +870,10 @@ index ca38ccf768..0a2540ae7c 100644 + public static boolean a(EntityFox entityfox, EntityLiving entityliving) { + if (entityfox.getRider() != null) return false; // Purpur - cannot jump chase while being ridden - double d0 = entityliving.locZ - entityfox.locZ; - double d1 = entityliving.locX - entityfox.locX; + double d0 = entityliving.locZ() - entityfox.locZ(); + double d1 = entityliving.locX() - entityfox.locX(); double d2 = d0 / d1; -@@ -681,16 +713,16 @@ public class EntityFox extends EntityAnimal { +@@ -655,16 +687,16 @@ public class EntityFox extends EntityAnimal { } } @@ -902,7 +893,7 @@ index ca38ccf768..0a2540ae7c 100644 } } -@@ -1361,16 +1393,16 @@ public class EntityFox extends EntityAnimal { +@@ -1335,16 +1367,16 @@ public class EntityFox extends EntityAnimal { } } @@ -916,14 +907,14 @@ index ca38ccf768..0a2540ae7c 100644 @Override - public void a() { + public void tick() { // Purpur - if (EntityFox.this.eo()) { + if (EntityFox.this.eI()) { - super.a(); + super.tick(); // Purpur } } diff --git a/src/main/java/net/minecraft/server/EntityGhast.java b/src/main/java/net/minecraft/server/EntityGhast.java -index f25c828df9..c5c49b7192 100644 +index e1c2540d14..ef794fbeb9 100644 --- a/src/main/java/net/minecraft/server/EntityGhast.java +++ b/src/main/java/net/minecraft/server/EntityGhast.java @@ -10,12 +10,14 @@ public class EntityGhast extends EntityFlying implements IMonster { @@ -941,7 +932,7 @@ index f25c828df9..c5c49b7192 100644 this.goalSelector.a(5, new EntityGhast.PathfinderGoalGhastIdleMove(this)); this.goalSelector.a(7, new EntityGhast.PathfinderGoalGhastMoveTowardsTarget(this)); this.goalSelector.a(7, new EntityGhast.PathfinderGoalGhastAttackTarget(this)); -@@ -261,7 +263,7 @@ public class EntityGhast extends EntityFlying implements IMonster { +@@ -255,7 +257,7 @@ public class EntityGhast extends EntityFlying implements IMonster { } } @@ -950,7 +941,7 @@ index f25c828df9..c5c49b7192 100644 private final EntityGhast i; private int j; -@@ -272,7 +274,7 @@ public class EntityGhast extends EntityFlying implements IMonster { +@@ -266,7 +268,7 @@ public class EntityGhast extends EntityFlying implements IMonster { } @Override @@ -960,7 +951,7 @@ index f25c828df9..c5c49b7192 100644 if (this.j-- <= 0) { this.j += this.i.getRandom().nextInt(5) + 2; diff --git a/src/main/java/net/minecraft/server/EntityGiantZombie.java b/src/main/java/net/minecraft/server/EntityGiantZombie.java -index f23d0380ff..29e7639ad6 100644 +index bcbade19ea..b7e2022b19 100644 --- a/src/main/java/net/minecraft/server/EntityGiantZombie.java +++ b/src/main/java/net/minecraft/server/EntityGiantZombie.java @@ -5,7 +5,9 @@ public class EntityGiantZombie extends EntityMonster { @@ -974,12 +965,12 @@ index f23d0380ff..29e7639ad6 100644 } diff --git a/src/main/java/net/minecraft/server/EntityGuardian.java b/src/main/java/net/minecraft/server/EntityGuardian.java -index afb982d428..d782fb138a 100644 +index e69cb334fb..aed6ee845a 100644 --- a/src/main/java/net/minecraft/server/EntityGuardian.java +++ b/src/main/java/net/minecraft/server/EntityGuardian.java -@@ -23,8 +23,15 @@ public class EntityGuardian extends EntityMonster { - super(entitytypes, world); +@@ -24,8 +24,15 @@ public class EntityGuardian extends EntityMonster { this.f = 10; + this.a(PathType.WATER, 0.0F); this.moveController = new EntityGuardian.ControllerMoveGuardian(this); - this.c = this.random.nextFloat(); - this.d = this.c; @@ -995,7 +986,7 @@ index afb982d428..d782fb138a 100644 } @Override -@@ -32,6 +39,7 @@ public class EntityGuardian extends EntityMonster { +@@ -33,6 +40,7 @@ public class EntityGuardian extends EntityMonster { PathfinderGoalMoveTowardsRestriction pathfindergoalmovetowardsrestriction = new PathfinderGoalMoveTowardsRestriction(this, 1.0D); this.goalRandomStroll = new PathfinderGoalRandomStroll(this, 1.0D, 80); @@ -1003,7 +994,7 @@ index afb982d428..d782fb138a 100644 this.goalSelector.a(4, new EntityGuardian.PathfinderGoalGuardianAttack(this)); this.goalSelector.a(5, pathfindergoalmovetowardsrestriction); this.goalSelector.a(7, this.goalRandomStroll); -@@ -78,6 +86,7 @@ public class EntityGuardian extends EntityMonster { +@@ -79,6 +87,7 @@ public class EntityGuardian extends EntityMonster { return (Boolean) this.datawatcher.get(EntityGuardian.b); } @@ -1011,16 +1002,16 @@ index afb982d428..d782fb138a 100644 private void r(boolean flag) { this.datawatcher.set(EntityGuardian.b, flag); } -@@ -292,7 +301,7 @@ public class EntityGuardian extends EntityMonster { +@@ -293,7 +302,7 @@ public class EntityGuardian extends EntityMonster { @Override public void e(Vec3D vec3d) { - if (this.df() && this.isInWater()) { + if (this.doAITick() && this.isInWater()) { - this.a(0.1F, vec3d); + this.a(getRider() == null ? 0.1F : getSpeed(), vec3d); // Purpur this.move(EnumMoveType.SELF, this.getMot()); this.setMot(this.getMot().a(0.9D)); - if (!this.dX() && this.getGoalTarget() == null) { -@@ -304,7 +313,7 @@ public class EntityGuardian extends EntityMonster { + if (!this.es() && this.getGoalTarget() == null) { +@@ -305,7 +314,7 @@ public class EntityGuardian extends EntityMonster { } @@ -1029,26 +1020,27 @@ index afb982d428..d782fb138a 100644 private final EntityGuardian i; -@@ -314,7 +323,16 @@ public class EntityGuardian extends EntityMonster { +@@ -314,8 +323,17 @@ public class EntityGuardian extends EntityMonster { + this.i = entityguardian; } - @Override -- public void a() { + // Purpur start ++ @Override + public void tick(EntityHuman rider) { + super.tick(rider); + this.i.setMot(this.i.getMot().add(0.0D, 0.005D, 0.0D)); + this.i.setMovingFlag(this.i.getForward() > 0.0F); // control tail speed + } + -+ @Override + @Override +- public void a() { + public void tick() { + // Purpur end - if (this.h == ControllerMove.Operation.MOVE_TO && !this.i.getNavigation().n()) { - Vec3D vec3d = new Vec3D(this.b - this.i.locX, this.c - this.i.locY, this.d - this.i.locZ); + if (this.h == ControllerMove.Operation.MOVE_TO && !this.i.getNavigation().m()) { + Vec3D vec3d = new Vec3D(this.b - this.i.locX(), this.c - this.i.locY(), this.d - this.i.locZ()); double d0 = vec3d.f(); diff --git a/src/main/java/net/minecraft/server/EntityGuardianElder.java b/src/main/java/net/minecraft/server/EntityGuardianElder.java -index 7248d46cfb..9bf969d92f 100644 +index 7484bfeea0..292125cbd2 100644 --- a/src/main/java/net/minecraft/server/EntityGuardianElder.java +++ b/src/main/java/net/minecraft/server/EntityGuardianElder.java @@ -9,6 +9,7 @@ public class EntityGuardianElder extends EntityGuardian { @@ -1060,7 +1052,7 @@ index 7248d46cfb..9bf969d92f 100644 if (this.goalRandomStroll != null) { this.goalRandomStroll.setTimeBetweenMovement(400); diff --git a/src/main/java/net/minecraft/server/EntityHorseAbstract.java b/src/main/java/net/minecraft/server/EntityHorseAbstract.java -index e60eedb544..2177a4370e 100644 +index 9e708769f7..5cd46c7475 100644 --- a/src/main/java/net/minecraft/server/EntityHorseAbstract.java +++ b/src/main/java/net/minecraft/server/EntityHorseAbstract.java @@ -38,6 +38,10 @@ public abstract class EntityHorseAbstract extends EntityAnimal implements IInven @@ -1071,11 +1063,11 @@ index e60eedb544..2177a4370e 100644 + this.moveController = new ControllerMove(this); + this.lookController = new ControllerLook(this); + // Purpur end - this.K = 1.0F; + this.H = 1.0F; this.loadChest(); } diff --git a/src/main/java/net/minecraft/server/EntityHorseSkeleton.java b/src/main/java/net/minecraft/server/EntityHorseSkeleton.java -index 0aa77914ca..61cf6723c6 100644 +index 290cb9337c..52ea911fe9 100644 --- a/src/main/java/net/minecraft/server/EntityHorseSkeleton.java +++ b/src/main/java/net/minecraft/server/EntityHorseSkeleton.java @@ -179,4 +179,10 @@ public class EntityHorseSkeleton extends EntityHorseAbstract { @@ -1090,13 +1082,13 @@ index 0aa77914ca..61cf6723c6 100644 + // Purpur end } diff --git a/src/main/java/net/minecraft/server/EntityHorseZombie.java b/src/main/java/net/minecraft/server/EntityHorseZombie.java -index 1160929e1b..3318e274f8 100644 +index 5782a25ecd..dbe0223401 100644 --- a/src/main/java/net/minecraft/server/EntityHorseZombie.java +++ b/src/main/java/net/minecraft/server/EntityHorseZombie.java @@ -79,4 +79,10 @@ public class EntityHorseZombie extends EntityHorseAbstract { @Override - protected void ee() {} + protected void ez() {} + + // Purpur start + public boolean isTamed() { @@ -1105,10 +1097,10 @@ index 1160929e1b..3318e274f8 100644 + // Purpur end } diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java -index cd73cde8d5..8b5ceec8d8 100644 +index 4bb24de9d9..886fbb7dff 100644 --- a/src/main/java/net/minecraft/server/EntityHuman.java +++ b/src/main/java/net/minecraft/server/EntityHuman.java -@@ -362,9 +362,21 @@ public abstract class EntityHuman extends EntityLiving { +@@ -374,9 +374,21 @@ public abstract class EntityHuman extends EntityLiving { this.activeContainer = this.defaultContainer; } @@ -1126,13 +1118,13 @@ index cd73cde8d5..8b5ceec8d8 100644 + @Override public void passengerTick() { -- if (!this.world.isClientSide && this.isSneaking() && this.isPassenger()) { +- if (!this.world.isClientSide && this.dU() && this.isPassenger()) { + if (this.isSneaking() && this.isPassenger() && !this.mounting) { // Purpur this.stopRiding(); this.setSneaking(false); } else { diff --git a/src/main/java/net/minecraft/server/EntityIllagerIllusioner.java b/src/main/java/net/minecraft/server/EntityIllagerIllusioner.java -index cc37b5ff16..5ed268ea9f 100644 +index 81b7cd06f2..18fedbc691 100644 --- a/src/main/java/net/minecraft/server/EntityIllagerIllusioner.java +++ b/src/main/java/net/minecraft/server/EntityIllagerIllusioner.java @@ -9,6 +9,7 @@ public class EntityIllagerIllusioner extends EntityIllagerWizard implements IRan @@ -1141,7 +1133,7 @@ index cc37b5ff16..5ed268ea9f 100644 super(entitytypes, world); + this.isRidable = net.pl3x.purpur.PurpurConfig.ridableIllusioner; // Purpur this.f = 5; - this.bA = new Vec3D[2][4]; + this.bx = new Vec3D[2][4]; @@ -23,6 +24,7 @@ public class EntityIllagerIllusioner extends EntityIllagerWizard implements IRan protected void initPathfinder() { @@ -1152,7 +1144,7 @@ index cc37b5ff16..5ed268ea9f 100644 this.goalSelector.a(4, new EntityIllagerIllusioner.b()); this.goalSelector.a(5, new EntityIllagerIllusioner.a()); diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java -index d00e99cdba..47090db890 100644 +index 6bad1687fe..90587f4c82 100644 --- a/src/main/java/net/minecraft/server/EntityInsentient.java +++ b/src/main/java/net/minecraft/server/EntityInsentient.java @@ -10,6 +10,7 @@ import java.util.UUID; @@ -1164,7 +1156,7 @@ index d00e99cdba..47090db890 100644 import org.bukkit.craftbukkit.entity.CraftLivingEntity; import org.bukkit.entity.LivingEntity; @@ -64,8 +65,11 @@ public abstract class EntityInsentient extends EntityLiving { - this.bL = -1.0F; + this.bI = -1.0F; this.goalSelector = new PathfinderGoalSelector(world != null && world.getMethodProfiler() != null ? world.getMethodProfiler() : null); this.targetSelector = new PathfinderGoalSelector(world != null && world.getMethodProfiler() != null ? world.getMethodProfiler() : null); - this.lookController = new ControllerLook(this); @@ -1174,26 +1166,26 @@ index d00e99cdba..47090db890 100644 + this.lookController = new net.pl3x.purpur.controller.ControllerLookWASD(this); + this.canBeRiddenInWater = true; + // Purpur end - this.bt = new ControllerJump(this); + this.bq = new ControllerJump(this); this.c = this.o(); this.navigation = this.b(world); -@@ -481,6 +485,7 @@ public abstract class EntityInsentient extends EntityLiving { - return super.cG(); +@@ -483,6 +487,7 @@ public abstract class EntityInsentient extends EntityLiving { + return super.cW(); } + public void setForwardSpeed(float speed) { this.r(speed); } // Purpur - OBFHELPER public void r(float f) { - this.bd = f; - } -@@ -493,6 +498,7 @@ public abstract class EntityInsentient extends EntityLiving { this.bb = f; } +@@ -495,6 +500,7 @@ public abstract class EntityInsentient extends EntityLiving { + this.aZ = f; + } + public void setSpeed(float speed) { o(speed); } // Purpur - OBFHELPER @Override public void o(float f) { super.o(f); -@@ -1058,7 +1064,7 @@ public abstract class EntityInsentient extends EntityLiving { +@@ -1064,7 +1070,7 @@ public abstract class EntityInsentient extends EntityLiving { } protected boolean a(EntityHuman entityhuman, EnumHand enumhand) { @@ -1201,8 +1193,8 @@ index d00e99cdba..47090db890 100644 + return tryRide(entityhuman, enumhand); // Purpur } - public boolean dH() { -@@ -1356,4 +1362,43 @@ public abstract class EntityInsentient extends EntityLiving { + public boolean ec() { +@@ -1363,4 +1369,43 @@ public abstract class EntityInsentient extends EntityLiving { public boolean a(Item item) { return this.getItemInMainHand().getItem() == item || this.getItemInOffHand().getItem() == item; } @@ -1247,15 +1239,15 @@ index d00e99cdba..47090db890 100644 + // Purpur end } diff --git a/src/main/java/net/minecraft/server/EntityIronGolem.java b/src/main/java/net/minecraft/server/EntityIronGolem.java -index 8e463111bb..2c34ab337a 100644 +index 2f764776b2..6a41e1cfd0 100644 --- a/src/main/java/net/minecraft/server/EntityIronGolem.java +++ b/src/main/java/net/minecraft/server/EntityIronGolem.java -@@ -8,11 +8,13 @@ public class EntityIronGolem extends EntityGolem { +@@ -14,11 +14,13 @@ public class EntityIronGolem extends EntityGolem { public EntityIronGolem(EntityTypes entitytypes, World world) { super(entitytypes, world); + this.isRidable = net.pl3x.purpur.PurpurConfig.ridableIronGolem; // Purpur - this.K = 1.0F; + this.H = 1.0F; } @Override @@ -1265,54 +1257,55 @@ index 8e463111bb..2c34ab337a 100644 this.goalSelector.a(2, new PathfinderGoalMoveTowardsTarget(this, 0.9D, 32.0F)); this.goalSelector.a(2, new PathfinderGoalStrollVillage(this, 0.6D)); diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index 06ea1a282f..8f62fd48a1 100644 +index 0d5236bd7e..969a77c597 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java -@@ -87,10 +87,10 @@ public abstract class EntityLiving extends Entity { - protected float aX; - protected int aY; protected int getKillCount() { return this.aY; } // Paper - OBFHELPER +@@ -91,10 +91,10 @@ public abstract class EntityLiving extends Entity { + protected float aV; + protected int aW; protected int getKillCount() { return this.aW; } // Paper - OBFHELPER public float lastDamage; - protected boolean jumping; +- public float aZ; +- public float ba; - public float bb; -- public float bc; -- public float bd; + protected boolean jumping; public boolean isJumping() { return jumping; } // Purpur - OBFHELPER -+ public float bb; public float getStrafe() { return bb; } public void setStrafe(float strafe) { bb = strafe; } // Purpur - OBFHELPER -+ public float bc; public float getVertical() { return bc; } public void setVertical(float vertical) { bc = vertical; } // Purpur - OBFHELPER -+ public float bd; public float getForward() { return bd; } public void setForward(float forward) { bd = forward; } // Purpur - OBFHELPER - public float be; - protected int bf; - protected double bg; -@@ -373,9 +373,18 @@ public abstract class EntityLiving extends Entity { ++ public float aZ; public float getStrafe() { return aZ; } public void setStrafe(float strafe) { aZ = strafe; } // Purpur - OBFHELPER ++ public float ba; public float getVertical() { return ba; } public void setVertical(float vertical) { ba = vertical; } // Purpur - OBFHELPER ++ public float bb; public float getForward() { return bb; } public void setForward(float forward) { bb = forward; } // Purpur - OBFHELPER + protected int bc; + protected double bd; + protected double be; +@@ -365,9 +365,17 @@ public abstract class EntityLiving extends Entity { return this.isBaby() ? 0.5F : 1.0F; } +- @Override +- public boolean bi() { +- return false; + // Purpur start + protected boolean canBeRiddenInWater = false; + + public void setCanBeRiddenInWater(boolean canBeRiddenInWater) { + this.canBeRiddenInWater = canBeRiddenInWater; + } -+ // Purpur end + -+ public boolean canBeRiddenInWater() { return bf(); } // Purpur - OBFHELPER - @Override - public boolean bf() { -- return false; -+ return canBeRiddenInWater; // Purpur ++ public boolean canBeRiddenInWater() { return bi(); } // Purpur - OBFHELPER ++ @Override public boolean bi() { ++ return canBeRiddenInWater; ++ // Purpur end } - protected void co() { -@@ -2040,7 +2049,7 @@ public abstract class EntityLiving extends Entity { - return 0.42F; + protected void cD() { +@@ -2088,7 +2096,7 @@ public abstract class EntityLiving extends Entity { + return 0.42F * this.ah(); } - protected void jump() { + public void jump() { // Purpur - protected -> public - float f; + float f = this.dp(); if (this.hasEffect(MobEffects.JUMP)) { -@@ -2051,6 +2060,7 @@ public abstract class EntityLiving extends Entity { +@@ -2097,6 +2105,7 @@ public abstract class EntityLiving extends Entity { Vec3D vec3d = this.getMot(); @@ -1320,21 +1313,21 @@ index 06ea1a282f..8f62fd48a1 100644 this.setMot(vec3d.x, (double) f, vec3d.z); if (this.isSprinting()) { float f1 = this.yaw * 0.017453292F; -@@ -2269,10 +2279,12 @@ public abstract class EntityLiving extends Entity { - return this.onGround ? this.db() * (0.21600002F / (f * f * f)) : this.aO; +@@ -2315,10 +2324,12 @@ public abstract class EntityLiving extends Entity { + return this.onGround ? this.dt() * (0.21600002F / (f * f * f)) : this.aM; } -+ public float getSpeed() { return db(); } // Purpur - OBFHELPER - public float db() { - return this.bD; ++ public float getSpeed() { return dt(); } // Purpur - OBFHELPER + public float dt() { + return this.bB; } + public void setSpeed(float speed) { o(speed); } // Purpur - OBFHELPER public void o(float f) { - this.bD = f; + this.bB = f; } diff --git a/src/main/java/net/minecraft/server/EntityLlama.java b/src/main/java/net/minecraft/server/EntityLlama.java -index a5dade7d05..72372497d9 100644 +index 6d4d41c88c..6ebb6fd663 100644 --- a/src/main/java/net/minecraft/server/EntityLlama.java +++ b/src/main/java/net/minecraft/server/EntityLlama.java @@ -16,6 +16,29 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn @@ -1382,33 +1375,33 @@ index a5dade7d05..72372497d9 100644 this.goalSelector.a(1, new PathfinderGoalTame(this, 1.2D)); this.goalSelector.a(2, new PathfinderGoalLlamaFollow(this, 2.0999999046325684D)); this.goalSelector.a(3, new PathfinderGoalArrowAttack(this, 1.25D, 40, 20.0F)); -@@ -255,6 +286,13 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn +@@ -253,6 +284,13 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn return false; } + // Purpur start -+ public boolean isSaddled() { return eq(); } // Purpur - OBFHELPER -+ @Override public boolean eq() { ++ public boolean isSaddled() { return eL(); } // Purpur - OBFHELPER ++ @Override public boolean eL() { + return isTamed() && getColor() != null; + } + // Purpur end + @Override public void a(IInventory iinventory) { - EnumColor enumcolor = this.eE(); -@@ -287,8 +325,8 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn - return block instanceof BlockCarpet ? ((BlockCarpet) block).d() : null; + EnumColor enumcolor = this.eZ(); +@@ -285,8 +323,8 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn + return block instanceof BlockCarpet ? ((BlockCarpet) block).c() : null; } - @Nullable -- public EnumColor eE() { -+ public EnumColor getColor() { return eE(); } // Purpur - OBFHELPER -+ @Nullable public EnumColor eE() { - int i = (Integer) this.datawatcher.get(EntityLlama.bJ); +- public EnumColor eZ() { ++ public EnumColor getColor() { return eZ(); } // Purpur - OBFHELPER ++ @Nullable public EnumColor eZ() { + int i = (Integer) this.datawatcher.get(EntityLlama.bG); return i == -1 ? null : EnumColor.fromColorIndex(i); diff --git a/src/main/java/net/minecraft/server/EntityLlamaTrader.java b/src/main/java/net/minecraft/server/EntityLlamaTrader.java -index b60a167f80..39bf1bf9c3 100644 +index 4cebd67e85..f8129ef10d 100644 --- a/src/main/java/net/minecraft/server/EntityLlamaTrader.java +++ b/src/main/java/net/minecraft/server/EntityLlamaTrader.java @@ -9,6 +9,7 @@ public class EntityLlamaTrader extends EntityLlama { @@ -1420,7 +1413,7 @@ index b60a167f80..39bf1bf9c3 100644 @Override @@ -79,6 +80,13 @@ public class EntityLlamaTrader extends EntityLlama { - return this.isLeashed() && !this.eM(); + return this.isLeashed() && !this.fh(); } + // Purpur start @@ -1434,7 +1427,7 @@ index b60a167f80..39bf1bf9c3 100644 @Override public GroupDataEntity prepare(GeneratorAccess generatoraccess, DifficultyDamageScaler difficultydamagescaler, EnumMobSpawn enummobspawn, @Nullable GroupDataEntity groupdataentity, @Nullable NBTTagCompound nbttagcompound) { diff --git a/src/main/java/net/minecraft/server/EntityMagmaCube.java b/src/main/java/net/minecraft/server/EntityMagmaCube.java -index c7c466560e..3a79634e44 100644 +index 1fdc248ba8..b5e8857cbb 100644 --- a/src/main/java/net/minecraft/server/EntityMagmaCube.java +++ b/src/main/java/net/minecraft/server/EntityMagmaCube.java @@ -6,6 +6,7 @@ public class EntityMagmaCube extends EntitySlime { @@ -1453,9 +1446,9 @@ index c7c466560e..3a79634e44 100644 + public void jump() { // Purpur - protected -> public Vec3D vec3d = this.getMot(); - this.setMot(vec3d.x, (double) (0.42F + (float) this.getSize() * 0.1F), vec3d.z); + this.setMot(vec3d.x, (double) (this.dp() + (float) this.getSize() * 0.1F), vec3d.z); diff --git a/src/main/java/net/minecraft/server/EntityMushroomCow.java b/src/main/java/net/minecraft/server/EntityMushroomCow.java -index af3b826a4d..068e75ce64 100644 +index ce5bac35db..80c98c04b1 100644 --- a/src/main/java/net/minecraft/server/EntityMushroomCow.java +++ b/src/main/java/net/minecraft/server/EntityMushroomCow.java @@ -18,6 +18,7 @@ public class EntityMushroomCow extends EntityCow { @@ -1467,89 +1460,89 @@ index af3b826a4d..068e75ce64 100644 @Override diff --git a/src/main/java/net/minecraft/server/EntityOcelot.java b/src/main/java/net/minecraft/server/EntityOcelot.java -index edc5f696c0..e7ee45917c 100644 +index d9a7b8ac1e..8093e01505 100644 --- a/src/main/java/net/minecraft/server/EntityOcelot.java +++ b/src/main/java/net/minecraft/server/EntityOcelot.java -@@ -14,6 +14,7 @@ public class EntityOcelot extends EntityAnimal { +@@ -13,6 +13,7 @@ public class EntityOcelot extends EntityAnimal { public EntityOcelot(EntityTypes entitytypes, World world) { super(entitytypes, world); + this.isRidable = net.pl3x.purpur.PurpurConfig.ridableOcelot; // Purpur - this.dV(); + this.eq(); } -@@ -48,6 +49,7 @@ public class EntityOcelot extends EntityAnimal { +@@ -47,6 +48,7 @@ public class EntityOcelot extends EntityAnimal { protected void initPathfinder() { - this.bC = new EntityOcelot.b(this, 0.6D, EntityOcelot.bz, true); + this.bz = new EntityOcelot.b(this, 0.6D, EntityOcelot.bw, true); this.goalSelector.a(1, new PathfinderGoalFloat(this)); + this.goalSelector.a(1, new net.pl3x.purpur.pathfinder.PathfinderGoalHasRider(this)); // Purpur - this.goalSelector.a(3, this.bC); + this.goalSelector.a(3, this.bz); this.goalSelector.a(7, new PathfinderGoalLeapAtTarget(this, 0.3F)); this.goalSelector.a(8, new PathfinderGoalOcelotAttack(this)); diff --git a/src/main/java/net/minecraft/server/EntityPanda.java b/src/main/java/net/minecraft/server/EntityPanda.java -index 479ef6b920..697b1bccc0 100644 +index cd41c80f19..c6afe108c7 100644 --- a/src/main/java/net/minecraft/server/EntityPanda.java +++ b/src/main/java/net/minecraft/server/EntityPanda.java -@@ -37,6 +37,7 @@ public class EntityPanda extends EntityAnimal { +@@ -39,6 +39,7 @@ public class EntityPanda extends EntityAnimal { public EntityPanda(EntityTypes entitytypes, World world) { super(entitytypes, world); + this.isRidable = net.pl3x.purpur.PurpurConfig.ridablePanda; // Purpur - this.moveController = new EntityPanda.i(this); + this.moveController = new EntityPanda.h(this); if (!this.isBaby()) { this.setCanPickupLoot(true); -@@ -67,6 +68,7 @@ public class EntityPanda extends EntityAnimal { - return this.v(8); +@@ -69,6 +70,7 @@ public class EntityPanda extends EntityAnimal { + return this.w(8); } + public void setScared(boolean scared) { this.r(scared); } // Purpur - OBFHELPER public void r(boolean flag) { this.d(8, flag); } -@@ -75,6 +77,7 @@ public class EntityPanda extends EntityAnimal { - return this.v(16); +@@ -77,6 +79,7 @@ public class EntityPanda extends EntityAnimal { + return this.w(16); } + public void setLayingOnBack(boolean layingOnBack) { this.s(layingOnBack); } // Purpur - OBFHELPER public void s(boolean flag) { this.d(16, flag); } -@@ -83,6 +86,7 @@ public class EntityPanda extends EntityAnimal { - return (Integer) this.datawatcher.get(EntityPanda.bC) > 0; +@@ -85,6 +88,7 @@ public class EntityPanda extends EntityAnimal { + return (Integer) this.datawatcher.get(EntityPanda.bz) > 0; } + public void setEating(boolean eating) { this.t(eating); } // Purpur - OBFHELPER public void t(boolean flag) { - this.datawatcher.set(EntityPanda.bC, flag ? 1 : 0); + this.datawatcher.set(EntityPanda.bz, flag ? 1 : 0); } -@@ -199,6 +203,7 @@ public class EntityPanda extends EntityAnimal { +@@ -201,6 +205,7 @@ public class EntityPanda extends EntityAnimal { @Override protected void initPathfinder() { this.goalSelector.a(0, new PathfinderGoalFloat(this)); + this.goalSelector.a(0, new net.pl3x.purpur.pathfinder.PathfinderGoalHasRider(this)); // Purpur - this.goalSelector.a(2, new EntityPanda.j(this, 2.0D)); + this.goalSelector.a(2, new EntityPanda.i(this, 2.0D)); this.goalSelector.a(2, new EntityPanda.d(this, 1.0D)); this.goalSelector.a(3, new EntityPanda.b(this, 1.2000000476837158D, true)); -@@ -541,7 +546,7 @@ public class EntityPanda extends EntityAnimal { +@@ -539,7 +544,7 @@ public class EntityPanda extends EntityAnimal { if (itemstack.getItem() instanceof ItemMonsterEgg) { return super.a(entityhuman, enumhand); - } else if (this.eo()) { + } else if (this.eJ()) { - return false; -+ return tryRide(entityhuman, enumhand); // Purpur - } else if (this.dY()) { ++ return tryRide(entityhuman, enumhand); // Purpur; + } else if (this.et()) { this.s(false); return true; -@@ -558,7 +563,7 @@ public class EntityPanda extends EntityAnimal { +@@ -556,7 +561,7 @@ public class EntityPanda extends EntityAnimal { this.f(entityhuman); } else { - if (this.world.isClientSide || this.dX() || this.isInWater()) { + if (this.world.isClientSide || this.es() || this.isInWater()) { - return false; -+ return tryRide(entityhuman, enumhand); // Purpur ++ return tryRide(entityhuman, enumhand); // Purpur; } - this.eB(); -@@ -575,10 +580,22 @@ public class EntityPanda extends EntityAnimal { - + this.eX(); +@@ -574,10 +579,22 @@ public class EntityPanda extends EntityAnimal { + entityhuman.a(enumhand, true); return true; } else { - return false; @@ -1572,45 +1565,45 @@ index 479ef6b920..697b1bccc0 100644 @Nullable @Override protected SoundEffect getSoundAmbient() { -@@ -957,7 +974,7 @@ public class EntityPanda extends EntityAnimal { - private e() {} +@@ -979,7 +996,7 @@ public class EntityPanda extends EntityAnimal { + } } -- static class i extends ControllerMove { -+ static class i extends net.pl3x.purpur.controller.ControllerMoveWASD { // Purpur +- static class h extends ControllerMove { ++ static class h extends net.pl3x.purpur.controller.ControllerMoveWASD { // Purpur private final EntityPanda i; -@@ -967,9 +984,9 @@ public class EntityPanda extends EntityAnimal { +@@ -989,9 +1006,9 @@ public class EntityPanda extends EntityAnimal { } @Override - public void a() { + public void tick() { // Purpur - if (this.i.eq()) { + if (this.i.eL()) { - super.a(); + super.tick(); // Purpur } } } diff --git a/src/main/java/net/minecraft/server/EntityParrot.java b/src/main/java/net/minecraft/server/EntityParrot.java -index a7cdb5e7a2..0eeb110554 100644 +index 1402087612..04f0ef54b1 100644 --- a/src/main/java/net/minecraft/server/EntityParrot.java +++ b/src/main/java/net/minecraft/server/EntityParrot.java @@ -21,7 +21,7 @@ public class EntityParrot extends EntityPerchable implements EntityBird { }; - private static final Item bJ = Items.COOKIE; - private static final Set bK = Sets.newHashSet(new Item[]{Items.WHEAT_SEEDS, Items.MELON_SEEDS, Items.PUMPKIN_SEEDS, Items.BEETROOT_SEEDS}); -- private static final Map, SoundEffect> bL = (Map) SystemUtils.a(Maps.newHashMap(), (hashmap) -> { // CraftBukkit - decompile error -+ private static final Map, SoundEffect> bL = SystemUtils.a(Maps.newHashMap(), (hashmap) -> { // CraftBukkit - decompile error // Purpur - _really_ fix decompile error + private static final Item bF = Items.COOKIE; + private static final Set bG = Sets.newHashSet(new Item[]{Items.WHEAT_SEEDS, Items.MELON_SEEDS, Items.PUMPKIN_SEEDS, Items.BEETROOT_SEEDS}); +- private static final Map, SoundEffect> bH = (Map) SystemUtils.a(Maps.newHashMap(), (hashmap) -> { // CraftBukkit - decompile error ++ private static final Map, SoundEffect> bH = SystemUtils.a(Maps.newHashMap(), (hashmap) -> { // CraftBukkit - decompile error // Purpur - _really_ fix decompile error hashmap.put(EntityTypes.BLAZE, SoundEffects.ENTITY_PARROT_IMITATE_BLAZE); hashmap.put(EntityTypes.CAVE_SPIDER, SoundEffects.ENTITY_PARROT_IMITATE_SPIDER); hashmap.put(EntityTypes.CREEPER, SoundEffects.ENTITY_PARROT_IMITATE_CREEPER); -@@ -67,7 +67,45 @@ public class EntityParrot extends EntityPerchable implements EntityBird { +@@ -62,7 +62,45 @@ public class EntityParrot extends EntityPerchable implements EntityBird { public EntityParrot(EntityTypes entitytypes, World world) { super(entitytypes, world); -- this.moveController = new ControllerMoveFlying(this); +- this.moveController = new ControllerMoveFlying(this, 10, false); + // Purpur start + this.moveController = new net.pl3x.purpur.controller.ControllerMoveWASDFlyingWithSpacebar(this, 0.3F) { + @Override @@ -1619,9 +1612,9 @@ index a7cdb5e7a2..0eeb110554 100644 + if (this.h == Operation.MOVE_TO) { + this.h = Operation.WAIT; + this.a.setNoGravity(true); -+ double var0 = this.b - this.a.locX; -+ double var2 = this.c - this.a.locY; -+ double var4 = this.d - this.a.locZ; ++ double var0 = this.b - this.a.locX(); ++ double var2 = this.c - this.a.locY(); ++ double var4 = this.d - this.a.locZ(); + double var6 = var0 * var0 + var2 * var2 + var4 * var4; + if (var6 < 2.500000277905201E-7D) { + this.a.s(0.0F); @@ -1629,7 +1622,7 @@ index a7cdb5e7a2..0eeb110554 100644 + return; + } + float var8 = (float)(MathHelper.d(var4, var0) * 57.2957763671875D) - 90.0F; -+ this.a.yaw = this.a(this.a.yaw, var8, 10.0F); ++ this.a.yaw = this.a(this.a.yaw, var8, 90.0F); + float var9; + if (this.a.onGround) { + var9 = (float)(this.e * this.a.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).getValue()); @@ -1639,7 +1632,7 @@ index a7cdb5e7a2..0eeb110554 100644 + this.a.o(var9); + double var10 = (double)MathHelper.sqrt(var0 * var0 + var4 * var4); + float var12 = (float)(-(MathHelper.d(var2, var10) * 57.2957763671875D)); -+ this.a.pitch = this.a(this.a.pitch, var12, 10.0F); ++ this.a.pitch = this.a(this.a.pitch, var12, 10); + this.a.s(var2 > 0.0D ? var9 : -var9); + } else { + this.a.setNoGravity(false); @@ -1650,10 +1643,10 @@ index a7cdb5e7a2..0eeb110554 100644 + }; + this.isRidable = net.pl3x.purpur.PurpurConfig.ridableParrot; + // Purpur end - } - - @Nullable -@@ -80,8 +118,9 @@ public class EntityParrot extends EntityPerchable implements EntityBird { + this.a(PathType.DANGER_FIRE, -1.0F); + this.a(PathType.DAMAGE_FIRE, -1.0F); + this.a(PathType.COCOA, -1.0F); +@@ -83,8 +121,9 @@ public class EntityParrot extends EntityPerchable implements EntityBird { @Override protected void initPathfinder() { this.goalSit = new PathfinderGoalSit(this); @@ -1663,9 +1656,9 @@ index a7cdb5e7a2..0eeb110554 100644 + this.goalSelector.a(1, new PathfinderGoalPanic(this, 1.25D)); // Purpur this.goalSelector.a(1, new PathfinderGoalLookAtPlayer(this, EntityHuman.class, 8.0F)); this.goalSelector.a(2, this.goalSit); - this.goalSelector.a(2, new PathfinderGoalFollowOwnerParrot(this, 1.0D, 5.0F, 1.0F)); + this.goalSelector.a(2, new PathfinderGoalFollowOwner(this, 1.0D, 5.0F, 1.0F, true)); diff --git a/src/main/java/net/minecraft/server/EntityPhantom.java b/src/main/java/net/minecraft/server/EntityPhantom.java -index 7bc7b33665..69a1c79e74 100644 +index 052a741c0b..ccc1ade4e4 100644 --- a/src/main/java/net/minecraft/server/EntityPhantom.java +++ b/src/main/java/net/minecraft/server/EntityPhantom.java @@ -15,12 +15,14 @@ public class EntityPhantom extends EntityFlying implements IMonster { @@ -1675,7 +1668,7 @@ index 7bc7b33665..69a1c79e74 100644 + this.isRidable = net.pl3x.purpur.PurpurConfig.ridablePhantom; // Purpur this.c = Vec3D.a; this.d = BlockPosition.ZERO; - this.bz = EntityPhantom.AttackPhase.CIRCLE; + this.bw = EntityPhantom.AttackPhase.CIRCLE; this.f = 5; this.moveController = new EntityPhantom.g(this); this.lookController = new EntityPhantom.f(this); @@ -1699,16 +1692,34 @@ index 7bc7b33665..69a1c79e74 100644 } @Override -@@ -109,7 +113,7 @@ public class EntityPhantom extends EntityFlying implements IMonster { +@@ -110,7 +114,7 @@ public class EntityPhantom extends EntityFlying implements IMonster { @Override public void movementTick() { -- if (this.isAlive() && this.dS()) { -+ if (this.isAlive() && getRider() == null && this.isInDaylight()) { +- if (this.isAlive() && this.en()) { ++ if (this.isAlive() && getRider() == null && this.isInDaylight()) { // Purpur this.setOnFire(8); } -@@ -607,14 +611,23 @@ public class EntityPhantom extends EntityFlying implements IMonster { +@@ -336,14 +340,14 @@ public class EntityPhantom extends EntityFlying implements IMonster { + this.offset = phantom.random.nextFloat() * 2.0F * 3.1415927F; + updateOffset(); + } +- if (phantom.getHomeOffset().c(phantom.locX, phantom.locY, phantom.locZ) < 4.0D) { ++ if (phantom.getHomeOffset().c(phantom.locX(), phantom.locY(), phantom.locZ()) < 4.0D) { + updateOffset(); + } +- if (phantom.getHomeOffset().y < phantom.locY && !phantom.world.isEmpty((new BlockPosition(phantom)).down(1))) { ++ if (phantom.getHomeOffset().y < phantom.locY() && !phantom.world.isEmpty((new BlockPosition(phantom)).down(1))) { + this.verticalChange = Math.max(1.0F, this.verticalChange); + updateOffset(); + } +- if (phantom.getHomeOffset().y > phantom.locY && !phantom.world.isEmpty((new BlockPosition(phantom)).up(1))) { ++ if (phantom.getHomeOffset().y > phantom.locY() && !phantom.world.isEmpty((new BlockPosition(phantom)).up(1))) { + this.verticalChange = Math.min(-1.0F, this.verticalChange); + updateOffset(); + } +@@ -608,14 +612,23 @@ public class EntityPhantom extends EntityFlying implements IMonster { } } @@ -1734,7 +1745,7 @@ index 7bc7b33665..69a1c79e74 100644 } class d extends EntityAIBodyControl { -@@ -630,7 +643,7 @@ public class EntityPhantom extends EntityFlying implements IMonster { +@@ -631,7 +644,7 @@ public class EntityPhantom extends EntityFlying implements IMonster { } } @@ -1743,7 +1754,7 @@ index 7bc7b33665..69a1c79e74 100644 private float j = 0.1F; -@@ -638,8 +651,19 @@ public class EntityPhantom extends EntityFlying implements IMonster { +@@ -639,8 +652,19 @@ public class EntityPhantom extends EntityFlying implements IMonster { super(entityinsentient); } @@ -1765,7 +1776,7 @@ index 7bc7b33665..69a1c79e74 100644 EntityPhantom.this.yaw += 180.0F; this.j = 0.1F; diff --git a/src/main/java/net/minecraft/server/EntityPig.java b/src/main/java/net/minecraft/server/EntityPig.java -index 7136e274af..81ba9f2408 100644 +index 8d277566e9..f71d4b58f0 100644 --- a/src/main/java/net/minecraft/server/EntityPig.java +++ b/src/main/java/net/minecraft/server/EntityPig.java @@ -17,11 +17,13 @@ public class EntityPig extends EntityAnimal { @@ -1782,29 +1793,11 @@ index 7136e274af..81ba9f2408 100644 this.goalSelector.a(1, new PathfinderGoalPanic(this, 1.25D)); this.goalSelector.a(3, new PathfinderGoalBreed(this, 1.0D)); this.goalSelector.a(4, new PathfinderGoalTempt(this, 1.2D, RecipeItemStack.a(Items.CARROT_ON_A_STICK), false)); -@@ -110,27 +112,22 @@ public class EntityPig extends EntityAnimal { +@@ -110,24 +112,22 @@ public class EntityPig extends EntityAnimal { @Override public boolean a(EntityHuman entityhuman, EnumHand enumhand) { -- if (!super.a(entityhuman, enumhand)) { -- ItemStack itemstack = entityhuman.b(enumhand); -- -- if (itemstack.getItem() == Items.NAME_TAG) { -- itemstack.a(entityhuman, (EntityLiving) this, enumhand); -- return true; -- } else if (this.hasSaddle() && !this.isVehicle()) { -- if (!this.world.isClientSide) { -- entityhuman.startRiding(this); -- } -- -- return true; -- } else if (itemstack.getItem() == Items.SADDLE) { -- itemstack.a(entityhuman, (EntityLiving) this, enumhand); -- return true; -- } else { -- return false; -- } -- } else { +- if (super.a(entityhuman, enumhand)) { + // Purpur start - reorder logic so super is last (so tryRide is last) + ItemStack itemstack = entityhuman.b(enumhand); + if (itemstack.getItem() == Items.NAME_TAG) { @@ -1818,6 +1811,21 @@ index 7136e274af..81ba9f2408 100644 + if (itemstack.getItem() == Items.SADDLE) { + itemstack.a(entityhuman, this, enumhand); return true; +- } else { +- ItemStack itemstack = entityhuman.b(enumhand); +- +- if (itemstack.getItem() == Items.NAME_TAG) { +- itemstack.a(entityhuman, (EntityLiving) this, enumhand); +- return true; +- } else if (this.hasSaddle() && !this.isVehicle()) { +- if (!this.world.isClientSide) { +- entityhuman.startRiding(this); +- } +- +- return true; +- } else { +- return itemstack.getItem() == Items.SADDLE && itemstack.a(entityhuman, (EntityLiving) this, enumhand); +- } } + return super.a(entityhuman, enumhand); + // Purpur end @@ -1825,7 +1833,7 @@ index 7136e274af..81ba9f2408 100644 @Override diff --git a/src/main/java/net/minecraft/server/EntityPigZombie.java b/src/main/java/net/minecraft/server/EntityPigZombie.java -index 4f260f8143..5760a18361 100644 +index 9dd028b558..8d57c5f1b5 100644 --- a/src/main/java/net/minecraft/server/EntityPigZombie.java +++ b/src/main/java/net/minecraft/server/EntityPigZombie.java @@ -14,6 +14,7 @@ public class EntityPigZombie extends EntityZombie { @@ -1836,17 +1844,20 @@ index 4f260f8143..5760a18361 100644 this.a(PathType.LAVA, 8.0F); } -@@ -188,7 +189,7 @@ public class EntityPigZombie extends EntityZombie { - - @Override - public boolean a(EntityHuman entityhuman, EnumHand enumhand) { -- return false; -+ return tryRide(entityhuman, enumhand); // Purpur +@@ -183,6 +184,11 @@ public class EntityPigZombie extends EntityZombie { + return SoundEffects.ENTITY_ZOMBIE_PIGMAN_DEATH; } ++ @Override ++ public boolean a(EntityHuman entityhuman, EnumHand enumhand) { ++ return tryRide(entityhuman, enumhand); // Purpur ++ } ++ @Override + protected void a(DifficultyDamageScaler difficultydamagescaler) { + this.setSlot(EnumItemSlot.MAINHAND, new ItemStack(Items.GOLDEN_SWORD)); diff --git a/src/main/java/net/minecraft/server/EntityPillager.java b/src/main/java/net/minecraft/server/EntityPillager.java -index 79a330650b..33b0f25f6d 100644 +index 0357c9da93..e4762bf98d 100644 --- a/src/main/java/net/minecraft/server/EntityPillager.java +++ b/src/main/java/net/minecraft/server/EntityPillager.java @@ -11,12 +11,14 @@ public class EntityPillager extends EntityIllagerAbstract implements ICrossbow, @@ -1865,7 +1876,7 @@ index 79a330650b..33b0f25f6d 100644 this.goalSelector.a(3, new PathfinderGoalCrossbowAttack<>(this, 1.0D, 8.0F)); this.goalSelector.a(8, new PathfinderGoalRandomStroll(this, 0.6D)); diff --git a/src/main/java/net/minecraft/server/EntityPolarBear.java b/src/main/java/net/minecraft/server/EntityPolarBear.java -index b1ee334cf1..727f30edea 100644 +index f8e29a02d3..b1652477e8 100644 --- a/src/main/java/net/minecraft/server/EntityPolarBear.java +++ b/src/main/java/net/minecraft/server/EntityPolarBear.java @@ -15,6 +15,7 @@ public class EntityPolarBear extends EntityAnimal { @@ -1881,11 +1892,11 @@ index b1ee334cf1..727f30edea 100644 super.initPathfinder(); this.goalSelector.a(0, new PathfinderGoalFloat(this)); + this.goalSelector.a(0, new net.pl3x.purpur.pathfinder.PathfinderGoalHasRider(this)); // Purpur + this.goalSelector.a(1, new EntityPolarBear.c()); this.goalSelector.a(1, new EntityPolarBear.d()); - this.goalSelector.a(1, new EntityPolarBear.e()); this.goalSelector.a(4, new PathfinderGoalFollowParent(this, 1.25D)); @@ -112,6 +114,11 @@ public class EntityPolarBear extends EntityAnimal { - --this.bC; + --this.bz; } + // Purpur start @@ -1900,19 +1911,19 @@ index b1ee334cf1..727f30edea 100644 return flag; } -+ public boolean isStanding() { return dW(); } // Purpur - OBFHELPER - public boolean dW() { - return (Boolean) this.datawatcher.get(EntityPolarBear.bz); ++ public boolean isStanding() { return er(); } // Purpur - OBFHELPER + public boolean er() { + return (Boolean) this.datawatcher.get(EntityPolarBear.bw); } + public void setStanding(boolean standing) { r(standing); } // Purpur - OBFHELPER public void r(boolean flag) { + standTimer = flag ? 20 : -1; // Purpur - this.datawatcher.set(EntityPolarBear.bz, flag); + this.datawatcher.set(EntityPolarBear.bw, flag); } -@@ -161,6 +171,23 @@ public class EntityPolarBear extends EntityAnimal { - return (GroupDataEntity) groupdataentity; +@@ -160,6 +170,22 @@ public class EntityPolarBear extends EntityAnimal { + return super.prepare(generatoraccess, difficultydamagescaler, enummobspawn, (GroupDataEntity) groupdataentity, nbttagcompound); } + // Purpur start @@ -1929,14 +1940,13 @@ index b1ee334cf1..727f30edea 100644 + } + return false; + } -+ + // Purpur end + - class e extends PathfinderGoalPanic { + class d extends PathfinderGoalPanic { - public e() { + public d() { diff --git a/src/main/java/net/minecraft/server/EntityPufferFish.java b/src/main/java/net/minecraft/server/EntityPufferFish.java -index f5d384adda..ad1decd472 100644 +index 98af9a2235..36d88e9ce5 100644 --- a/src/main/java/net/minecraft/server/EntityPufferFish.java +++ b/src/main/java/net/minecraft/server/EntityPufferFish.java @@ -15,6 +15,7 @@ public class EntityPufferFish extends EntityFish { @@ -1957,7 +1967,7 @@ index f5d384adda..ad1decd472 100644 @Override diff --git a/src/main/java/net/minecraft/server/EntityRabbit.java b/src/main/java/net/minecraft/server/EntityRabbit.java -index 10fca49776..d48610df3a 100644 +index 2ed2d0b6bb..d36a074c89 100644 --- a/src/main/java/net/minecraft/server/EntityRabbit.java +++ b/src/main/java/net/minecraft/server/EntityRabbit.java @@ -15,6 +15,7 @@ public class EntityRabbit extends EntityAnimal { @@ -1965,7 +1975,7 @@ index 10fca49776..d48610df3a 100644 public EntityRabbit(EntityTypes entitytypes, World world) { super(entitytypes, world); + this.isRidable = net.pl3x.purpur.PurpurConfig.ridableRabbit; // Purpur - this.bt = new EntityRabbit.ControllerJumpRabbit(this); + this.bq = new EntityRabbit.ControllerJumpRabbit(this); this.moveController = new EntityRabbit.ControllerMoveRabbit(this); this.initializePathFinderGoals(); // CraftBukkit - moved code @@ -28,7 +29,8 @@ public class EntityRabbit extends EntityAnimal { @@ -1988,7 +1998,7 @@ index 10fca49776..d48610df3a 100644 double d0 = this.moveController.c(); diff --git a/src/main/java/net/minecraft/server/EntityRavager.java b/src/main/java/net/minecraft/server/EntityRavager.java -index 971ea097be..0df665f9bd 100644 +index fd25ce1026..5fa0b505b9 100644 --- a/src/main/java/net/minecraft/server/EntityRavager.java +++ b/src/main/java/net/minecraft/server/EntityRavager.java @@ -16,6 +16,7 @@ public class EntityRavager extends EntityRaider { @@ -1996,7 +2006,7 @@ index 971ea097be..0df665f9bd 100644 public EntityRavager(EntityTypes entitytypes, World world) { super(entitytypes, world); + this.isRidable = net.pl3x.purpur.PurpurConfig.ridableRavager; // Purpur - this.K = 1.0F; + this.H = 1.0F; this.f = 20; } @@ -24,6 +25,7 @@ public class EntityRavager extends EntityRaider { @@ -2008,7 +2018,7 @@ index 971ea097be..0df665f9bd 100644 this.goalSelector.a(5, new PathfinderGoalRandomStrollLand(this, 0.4D)); this.goalSelector.a(6, new PathfinderGoalLookAtPlayer(this, EntityHuman.class, 6.0F)); diff --git a/src/main/java/net/minecraft/server/EntitySalmon.java b/src/main/java/net/minecraft/server/EntitySalmon.java -index b600f30eb1..8c60e26c70 100644 +index 6be29f3078..7347ffcd5c 100644 --- a/src/main/java/net/minecraft/server/EntitySalmon.java +++ b/src/main/java/net/minecraft/server/EntitySalmon.java @@ -4,6 +4,7 @@ public class EntitySalmon extends EntityFishSchool { @@ -2020,15 +2030,15 @@ index b600f30eb1..8c60e26c70 100644 @Override diff --git a/src/main/java/net/minecraft/server/EntitySheep.java b/src/main/java/net/minecraft/server/EntitySheep.java -index ec13d4f37d..30fa8e5cab 100644 +index e3419a7f47..a065ddb907 100644 --- a/src/main/java/net/minecraft/server/EntitySheep.java +++ b/src/main/java/net/minecraft/server/EntitySheep.java @@ -18,7 +18,7 @@ import org.bukkit.inventory.InventoryView; public class EntitySheep extends EntityAnimal { - private static final DataWatcherObject bz = DataWatcher.a(EntitySheep.class, DataWatcherRegistry.a); -- private static final Map bA = (Map) SystemUtils.a(Maps.newEnumMap(EnumColor.class), (enummap) -> { // CraftBukkit - decompile error -+ private static final Map bA = SystemUtils.a(Maps.newEnumMap(EnumColor.class), (enummap) -> { // CraftBukkit - decompile error // Purpur - _really_ fix decompile error + private static final DataWatcherObject bw = DataWatcher.a(EntitySheep.class, DataWatcherRegistry.a); +- private static final Map bx = (Map) SystemUtils.a(Maps.newEnumMap(EnumColor.class), (enummap) -> { // CraftBukkit - decompile error ++ private static final Map bx = SystemUtils.a(Maps.newEnumMap(EnumColor.class), (enummap) -> { // CraftBukkit - decompile error // Purpur - _really_ fix decompile error enummap.put(EnumColor.WHITE, Blocks.WHITE_WOOL); enummap.put(EnumColor.ORANGE, Blocks.ORANGE_WOOL); enummap.put(EnumColor.MAGENTA, Blocks.MAGENTA_WOOL); @@ -2036,12 +2046,12 @@ index ec13d4f37d..30fa8e5cab 100644 enummap.put(EnumColor.RED, Blocks.RED_WOOL); enummap.put(EnumColor.BLACK, Blocks.BLACK_WOOL); }); -- private static final Map bB = Maps.newEnumMap((Map) Arrays.stream(EnumColor.values()).collect(Collectors.toMap((enumcolor) -> { +- private static final Map by = Maps.newEnumMap((Map) Arrays.stream(EnumColor.values()).collect(Collectors.toMap((enumcolor) -> { - return enumcolor; - }, EntitySheep::c))); -+ private static final Map bB = Arrays.stream(EnumColor.values()).collect(Collectors.toMap((enumcolor) -> enumcolor, EntitySheep::c)); // Purpur - fix decompile error - private int bC; - private PathfinderGoalEatTile bD; ++ private static final Map by = Arrays.stream(EnumColor.values()).collect(Collectors.toMap((enumcolor) -> enumcolor, EntitySheep::c)); // Purpur - fix decompile error + private int bz; + private PathfinderGoalEatTile bA; @@ -55,12 +53,14 @@ public class EntitySheep extends EntityAnimal { @@ -2052,14 +2062,14 @@ index ec13d4f37d..30fa8e5cab 100644 @Override protected void initPathfinder() { - this.bD = new PathfinderGoalEatTile(this); + this.bA = new PathfinderGoalEatTile(this); this.goalSelector.a(0, new PathfinderGoalFloat(this)); + this.goalSelector.a(0, new net.pl3x.purpur.pathfinder.PathfinderGoalHasRider(this)); // Purpur this.goalSelector.a(1, new PathfinderGoalPanic(this, 1.25D)); this.goalSelector.a(2, new PathfinderGoalBreed(this, 1.0D)); this.goalSelector.a(3, new PathfinderGoalTempt(this, 1.1D, RecipeItemStack.a(Items.WHEAT), false)); diff --git a/src/main/java/net/minecraft/server/EntityShulker.java b/src/main/java/net/minecraft/server/EntityShulker.java -index aec2e24565..6152856239 100644 +index 0d2ceff6f2..d687a53a6f 100644 --- a/src/main/java/net/minecraft/server/EntityShulker.java +++ b/src/main/java/net/minecraft/server/EntityShulker.java @@ -26,6 +26,7 @@ public class EntityShulker extends EntityGolem implements IMonster { @@ -2067,9 +2077,9 @@ index aec2e24565..6152856239 100644 public EntityShulker(EntityTypes entitytypes, World world) { super(entitytypes, world); + this.isRidable = net.pl3x.purpur.PurpurConfig.ridableShulker; // Purpur - this.aL = 180.0F; - this.aK = 180.0F; - this.bE = null; + this.aJ = 180.0F; + this.aI = 180.0F; + this.bB = null; @@ -46,6 +47,7 @@ public class EntityShulker extends EntityGolem implements IMonster { @Override @@ -2079,7 +2089,7 @@ index aec2e24565..6152856239 100644 this.goalSelector.a(4, new EntityShulker.a()); this.goalSelector.a(7, new EntityShulker.e()); diff --git a/src/main/java/net/minecraft/server/EntitySilverfish.java b/src/main/java/net/minecraft/server/EntitySilverfish.java -index eb3c56fefd..d689715b3e 100644 +index 08c2a22f7a..021bce7e95 100644 --- a/src/main/java/net/minecraft/server/EntitySilverfish.java +++ b/src/main/java/net/minecraft/server/EntitySilverfish.java @@ -9,12 +9,14 @@ public class EntitySilverfish extends EntityMonster { @@ -2110,7 +2120,7 @@ index 0e78d5c62c..908e51b636 100644 @Override diff --git a/src/main/java/net/minecraft/server/EntitySkeletonAbstract.java b/src/main/java/net/minecraft/server/EntitySkeletonAbstract.java -index 8f1b5a5502..18a34de63d 100644 +index fdeb8980d9..347766e4b0 100644 --- a/src/main/java/net/minecraft/server/EntitySkeletonAbstract.java +++ b/src/main/java/net/minecraft/server/EntitySkeletonAbstract.java @@ -28,6 +28,7 @@ public abstract class EntitySkeletonAbstract extends EntityMonster implements IR @@ -2134,7 +2144,7 @@ index 2eb53864f2..eda880703e 100644 public static boolean b(EntityTypes entitytypes, GeneratorAccess generatoraccess, EnumMobSpawn enummobspawn, BlockPosition blockposition, Random random) { diff --git a/src/main/java/net/minecraft/server/EntitySkeletonWither.java b/src/main/java/net/minecraft/server/EntitySkeletonWither.java -index 872f79cc67..ed03d31221 100644 +index 98e042424c..c2b93010a3 100644 --- a/src/main/java/net/minecraft/server/EntitySkeletonWither.java +++ b/src/main/java/net/minecraft/server/EntitySkeletonWither.java @@ -6,6 +6,7 @@ public class EntitySkeletonWither extends EntitySkeletonAbstract { @@ -2146,7 +2156,7 @@ index 872f79cc67..ed03d31221 100644 } diff --git a/src/main/java/net/minecraft/server/EntitySlime.java b/src/main/java/net/minecraft/server/EntitySlime.java -index 253ff9594c..af3876a6c8 100644 +index 2efc18df94..71e8e95d25 100644 --- a/src/main/java/net/minecraft/server/EntitySlime.java +++ b/src/main/java/net/minecraft/server/EntitySlime.java @@ -29,11 +29,13 @@ public class EntitySlime extends EntityInsentient implements IMonster { @@ -2163,7 +2173,7 @@ index 253ff9594c..af3876a6c8 100644 this.goalSelector.a(1, new EntitySlime.PathfinderGoalSlimeRandomJump(this)); this.goalSelector.a(2, new EntitySlime.PathfinderGoalSlimeNearestPlayer(this)); this.goalSelector.a(3, new EntitySlime.PathfinderGoalSlimeRandomDirection(this)); -@@ -314,7 +316,7 @@ public class EntitySlime extends EntityInsentient implements IMonster { +@@ -329,7 +331,7 @@ public class EntitySlime extends EntityInsentient implements IMonster { } @Override @@ -2171,9 +2181,9 @@ index 253ff9594c..af3876a6c8 100644 + public void jump() { // Purpur - protected -> public Vec3D vec3d = this.getMot(); - this.setMot(vec3d.x, 0.41999998688697815D, vec3d.z); + this.setMot(vec3d.x, (double) this.dp(), vec3d.z); diff --git a/src/main/java/net/minecraft/server/EntitySnowman.java b/src/main/java/net/minecraft/server/EntitySnowman.java -index 4e9cc7137d..42bb90b9c5 100644 +index 53c5057d20..93d3bccb26 100644 --- a/src/main/java/net/minecraft/server/EntitySnowman.java +++ b/src/main/java/net/minecraft/server/EntitySnowman.java @@ -13,10 +13,12 @@ public class EntitySnowman extends EntityGolem implements IRangedEntity { @@ -2198,7 +2208,7 @@ index 4e9cc7137d..42bb90b9c5 100644 for (int l = 0; l < 4; ++l) { diff --git a/src/main/java/net/minecraft/server/EntitySpider.java b/src/main/java/net/minecraft/server/EntitySpider.java -index 3929c86f8b..9c210b8b90 100644 +index d02db56595..c38ae96f23 100644 --- a/src/main/java/net/minecraft/server/EntitySpider.java +++ b/src/main/java/net/minecraft/server/EntitySpider.java @@ -9,11 +9,13 @@ public class EntitySpider extends EntityMonster { @@ -2216,7 +2226,7 @@ index 3929c86f8b..9c210b8b90 100644 this.goalSelector.a(4, new EntitySpider.PathfinderGoalSpiderMeleeAttack(this)); this.goalSelector.a(5, new PathfinderGoalRandomStrollLand(this, 0.8D)); diff --git a/src/main/java/net/minecraft/server/EntitySquid.java b/src/main/java/net/minecraft/server/EntitySquid.java -index a4d2ff64d8..d4e8a0989b 100644 +index 92efe4e7f5..eb74f5d127 100644 --- a/src/main/java/net/minecraft/server/EntitySquid.java +++ b/src/main/java/net/minecraft/server/EntitySquid.java @@ -21,14 +21,16 @@ public class EntitySquid extends EntityWaterAnimal { @@ -2225,7 +2235,7 @@ index a4d2ff64d8..d4e8a0989b 100644 super(entitytypes, world); + this.isRidable = net.pl3x.purpur.PurpurConfig.ridableSquid; // Purpur //this.random.setSeed((long) this.getId()); // Paper - this.bF = 1.0F / (this.random.nextFloat() + 1.0F) * 0.2F; + this.bC = 1.0F / (this.random.nextFloat() + 1.0F) * 0.2F; } @Override @@ -2244,8 +2254,8 @@ index a4d2ff64d8..d4e8a0989b 100644 + public void setMovementVector(float x, float y, float z) { a(x, y, z); } // Purpur - OBFHELPER public void a(float f, float f1, float f2) { - this.bH = f; - this.bI = f1; + this.bE = f; + this.bF = f1; @@ -259,6 +262,39 @@ public class EntitySquid extends EntityWaterAnimal { @Override @@ -2283,7 +2293,7 @@ index a4d2ff64d8..d4e8a0989b 100644 + } + // Purpur end + - int i = this.b.cw(); + int i = this.b.cL(); if (i > 100) { @@ -273,5 +309,17 @@ public class EntitySquid extends EntityWaterAnimal { @@ -2305,11 +2315,11 @@ index a4d2ff64d8..d4e8a0989b 100644 } } diff --git a/src/main/java/net/minecraft/server/EntityTameableAnimal.java b/src/main/java/net/minecraft/server/EntityTameableAnimal.java -index 2f99caf6fc..6b2957cb56 100644 +index 9b2eea71cc..4ac12ebe2c 100644 --- a/src/main/java/net/minecraft/server/EntityTameableAnimal.java +++ b/src/main/java/net/minecraft/server/EntityTameableAnimal.java -@@ -127,6 +127,12 @@ public abstract class EntityTameableAnimal extends EntityAnimal { - this.datawatcher.set(EntityTameableAnimal.bA, Optional.ofNullable(uuid)); +@@ -110,6 +110,12 @@ public abstract class EntityTameableAnimal extends EntityAnimal { + this.datawatcher.set(EntityTameableAnimal.bx, Optional.ofNullable(uuid)); } + // Purpur start @@ -2322,7 +2332,7 @@ index 2f99caf6fc..6b2957cb56 100644 this.setTamed(true); this.setOwnerUUID(entityhuman.getUniqueID()); diff --git a/src/main/java/net/minecraft/server/EntityTropicalFish.java b/src/main/java/net/minecraft/server/EntityTropicalFish.java -index 2e537c2032..03b49a7c76 100644 +index ef8f373bea..b00ae70cb3 100644 --- a/src/main/java/net/minecraft/server/EntityTropicalFish.java +++ b/src/main/java/net/minecraft/server/EntityTropicalFish.java @@ -17,6 +17,7 @@ public class EntityTropicalFish extends EntityFishSchool { @@ -2334,7 +2344,7 @@ index 2e537c2032..03b49a7c76 100644 @Override diff --git a/src/main/java/net/minecraft/server/EntityTurtle.java b/src/main/java/net/minecraft/server/EntityTurtle.java -index 0bd80e5623..6bd2aeaad3 100644 +index dd02cb3485..f18261197c 100644 --- a/src/main/java/net/minecraft/server/EntityTurtle.java +++ b/src/main/java/net/minecraft/server/EntityTurtle.java @@ -22,6 +22,7 @@ public class EntityTurtle extends EntityAnimal { @@ -2342,10 +2352,10 @@ index 0bd80e5623..6bd2aeaad3 100644 public EntityTurtle(EntityTypes entitytypes, World world) { super(entitytypes, world); + this.isRidable = net.pl3x.purpur.PurpurConfig.ridableTurtle; // Purpur + this.a(PathType.WATER, 0.0F); this.moveController = new EntityTurtle.e(this); - this.K = 1.0F; - } -@@ -140,12 +141,13 @@ public class EntityTurtle extends EntityAnimal { + this.H = 1.0F; +@@ -141,12 +142,13 @@ public class EntityTurtle extends EntityAnimal { @Override protected void initPathfinder() { @@ -2365,7 +2375,7 @@ index 0bd80e5623..6bd2aeaad3 100644 this.goalSelector.a(7, new EntityTurtle.j(this, 1.0D)); this.goalSelector.a(8, new PathfinderGoalLookAtPlayer(this, EntityHuman.class, 8.0F)); this.goalSelector.a(9, new EntityTurtle.h(this, 1.0D, 100)); -@@ -330,7 +332,7 @@ public class EntityTurtle extends EntityAnimal { +@@ -332,7 +334,7 @@ public class EntityTurtle extends EntityAnimal { } } @@ -2374,7 +2384,7 @@ index 0bd80e5623..6bd2aeaad3 100644 private final EntityTurtle i; -@@ -356,7 +358,84 @@ public class EntityTurtle extends EntityAnimal { +@@ -358,7 +360,84 @@ public class EntityTurtle extends EntityAnimal { } @Override @@ -2458,13 +2468,13 @@ index 0bd80e5623..6bd2aeaad3 100644 + public void tick() { + // Purpur end this.g(); - if (this.h == ControllerMove.Operation.MOVE_TO && !this.i.getNavigation().n()) { - double d0 = this.b - this.i.locX; + if (this.h == ControllerMove.Operation.MOVE_TO && !this.i.getNavigation().m()) { + double d0 = this.b - this.i.locX(); diff --git a/src/main/java/net/minecraft/server/EntityTypes.java b/src/main/java/net/minecraft/server/EntityTypes.java -index f8308c96be..f8600cc07f 100644 +index dcba6d6c89..b82d53e5da 100644 --- a/src/main/java/net/minecraft/server/EntityTypes.java +++ b/src/main/java/net/minecraft/server/EntityTypes.java -@@ -266,6 +266,10 @@ public class EntityTypes { +@@ -267,6 +267,10 @@ public class EntityTypes { } // Purpur start @@ -2476,7 +2486,7 @@ index f8308c96be..f8600cc07f 100644 return getNameComponent().getString(); } diff --git a/src/main/java/net/minecraft/server/EntityVex.java b/src/main/java/net/minecraft/server/EntityVex.java -index 51c05376da..f76a61ac6d 100644 +index cf274666c7..3ea0b47593 100644 --- a/src/main/java/net/minecraft/server/EntityVex.java +++ b/src/main/java/net/minecraft/server/EntityVex.java @@ -15,6 +15,7 @@ public class EntityVex extends EntityMonster { @@ -2518,10 +2528,10 @@ index 51c05376da..f76a61ac6d 100644 + public void tick() { + // Purpur end if (this.h == ControllerMove.Operation.MOVE_TO) { - Vec3D vec3d = new Vec3D(this.b - EntityVex.this.locX, this.c - EntityVex.this.locY, this.d - EntityVex.this.locZ); + Vec3D vec3d = new Vec3D(this.b - EntityVex.this.locX(), this.c - EntityVex.this.locY(), this.d - EntityVex.this.locZ()); double d0 = vec3d.f(); diff --git a/src/main/java/net/minecraft/server/EntityVindicator.java b/src/main/java/net/minecraft/server/EntityVindicator.java -index ffbd6e9269..a2eef22ccd 100644 +index c974c02e92..e8f76209d7 100644 --- a/src/main/java/net/minecraft/server/EntityVindicator.java +++ b/src/main/java/net/minecraft/server/EntityVindicator.java @@ -15,12 +15,14 @@ public class EntityVindicator extends EntityIllagerAbstract { @@ -2540,7 +2550,7 @@ index ffbd6e9269..a2eef22ccd 100644 this.goalSelector.a(2, new EntityIllagerAbstract.b(this)); this.goalSelector.a(3, new EntityRaider.a(this, 10.0F)); diff --git a/src/main/java/net/minecraft/server/EntityWitch.java b/src/main/java/net/minecraft/server/EntityWitch.java -index 0b849f37c5..bee22c4df4 100644 +index 7b6b1ad17b..9ef1b9e61c 100644 --- a/src/main/java/net/minecraft/server/EntityWitch.java +++ b/src/main/java/net/minecraft/server/EntityWitch.java @@ -22,6 +22,7 @@ public class EntityWitch extends EntityRaider implements IRangedEntity { @@ -2551,18 +2561,20 @@ index 0b849f37c5..bee22c4df4 100644 } @Override -@@ -31,7 +32,8 @@ public class EntityWitch extends EntityRaider implements IRangedEntity { - return entityliving != null && this.ek() && entityliving.getEntityType() != EntityTypes.WITCH; +@@ -30,8 +31,9 @@ public class EntityWitch extends EntityRaider implements IRangedEntity { + this.bz = new PathfinderGoalNearestHealableRaider<>(this, EntityRaider.class, true, (entityliving) -> { + return entityliving != null && this.eF() && entityliving.getEntityType() != EntityTypes.WITCH; }); - this.bD = new PathfinderGoalNearestAttackableTargetWitch<>(this, EntityHuman.class, 10, true, false, (Predicate) null); +- this.bA = new PathfinderGoalNearestAttackableTargetWitch<>(this, EntityHuman.class, 10, true, false, (Predicate) null); - this.goalSelector.a(1, new PathfinderGoalFloat(this)); ++ this.bA = new PathfinderGoalNearestAttackableTargetWitch<>(this, EntityHuman.class, 10, true, false, null); // Purpur - fix decompile error + this.goalSelector.a(0, new PathfinderGoalFloat(this)); // Purpur + this.goalSelector.a(0, new net.pl3x.purpur.pathfinder.PathfinderGoalHasRider(this)); // Purpur this.goalSelector.a(2, new PathfinderGoalArrowAttack(this, 1.0D, 60, 10.0F)); this.goalSelector.a(2, new PathfinderGoalRandomStrollLand(this, 1.0D)); this.goalSelector.a(3, new PathfinderGoalLookAtPlayer(this, EntityHuman.class, 8.0F)); diff --git a/src/main/java/net/minecraft/server/EntityWither.java b/src/main/java/net/minecraft/server/EntityWither.java -index 8b3052b113..575f046512 100644 +index 8977c3516b..3e6c4eff5d 100644 --- a/src/main/java/net/minecraft/server/EntityWither.java +++ b/src/main/java/net/minecraft/server/EntityWither.java @@ -35,6 +35,7 @@ public class EntityWither extends EntityMonster implements IRangedEntity { @@ -2584,10 +2596,10 @@ index 8b3052b113..575f046512 100644 this.goalSelector.a(5, new PathfinderGoalRandomStrollLand(this, 1.0D)); this.goalSelector.a(6, new PathfinderGoalLookAtPlayer(this, EntityHuman.class, 8.0F)); diff --git a/src/main/java/net/minecraft/server/EntityWolf.java b/src/main/java/net/minecraft/server/EntityWolf.java -index 02492663ac..bec92f1998 100644 +index db15d5e0a2..2a6e1f33b7 100644 --- a/src/main/java/net/minecraft/server/EntityWolf.java +++ b/src/main/java/net/minecraft/server/EntityWolf.java -@@ -28,6 +28,7 @@ public class EntityWolf extends EntityTameableAnimal { +@@ -27,6 +27,7 @@ public class EntityWolf extends EntityTameableAnimal { public EntityWolf(EntityTypes entitytypes, World world) { super(entitytypes, world); @@ -2595,7 +2607,7 @@ index 02492663ac..bec92f1998 100644 this.setTamed(false); } -@@ -35,6 +36,7 @@ public class EntityWolf extends EntityTameableAnimal { +@@ -34,6 +35,7 @@ public class EntityWolf extends EntityTameableAnimal { protected void initPathfinder() { this.goalSit = new PathfinderGoalSit(this); this.goalSelector.a(1, new PathfinderGoalFloat(this)); @@ -2603,7 +2615,7 @@ index 02492663ac..bec92f1998 100644 this.goalSelector.a(2, this.goalSit); this.goalSelector.a(3, new EntityWolf.a<>(this, EntityLlama.class, 24.0F, 1.5D, 1.5D)); this.goalSelector.a(4, new PathfinderGoalLeapAtTarget(this, 0.4F)); -@@ -434,6 +436,14 @@ public class EntityWolf extends EntityTameableAnimal { +@@ -433,6 +435,14 @@ public class EntityWolf extends EntityTameableAnimal { return !this.isAngry() && super.a(entityhuman); } @@ -2619,7 +2631,7 @@ index 02492663ac..bec92f1998 100644 private final EntityWolf j; diff --git a/src/main/java/net/minecraft/server/EntityZombie.java b/src/main/java/net/minecraft/server/EntityZombie.java -index d747d36f84..61c427f18b 100644 +index 7d882d9c7e..8f9d252c1e 100644 --- a/src/main/java/net/minecraft/server/EntityZombie.java +++ b/src/main/java/net/minecraft/server/EntityZombie.java @@ -37,6 +37,7 @@ public class EntityZombie extends EntityMonster { @@ -2627,7 +2639,7 @@ index d747d36f84..61c427f18b 100644 public EntityZombie(EntityTypes entitytypes, World world) { super(entitytypes, world); + this.isRidable = net.pl3x.purpur.PurpurConfig.ridableZombie; // Purpur - this.bD = new PathfinderGoalBreakDoor(this, EntityZombie.bC); + this.bA = new PathfinderGoalBreakDoor(this, EntityZombie.bz); } @@ -46,6 +47,7 @@ public class EntityZombie extends EntityMonster { @@ -2639,7 +2651,7 @@ index d747d36f84..61c427f18b 100644 this.goalSelector.a(8, new PathfinderGoalLookAtPlayer(this, EntityHuman.class, 8.0F)); this.goalSelector.a(8, new PathfinderGoalRandomLookaround(this)); diff --git a/src/main/java/net/minecraft/server/EntityZombieHusk.java b/src/main/java/net/minecraft/server/EntityZombieHusk.java -index 4c8b2dd094..2a81670672 100644 +index da8446d05d..350aaaeb0d 100644 --- a/src/main/java/net/minecraft/server/EntityZombieHusk.java +++ b/src/main/java/net/minecraft/server/EntityZombieHusk.java @@ -6,6 +6,7 @@ public class EntityZombieHusk extends EntityZombie { @@ -2651,7 +2663,7 @@ index 4c8b2dd094..2a81670672 100644 public static boolean b(EntityTypes entitytypes, GeneratorAccess generatoraccess, EnumMobSpawn enummobspawn, BlockPosition blockposition, Random random) { diff --git a/src/main/java/net/minecraft/server/EntityZombieVillager.java b/src/main/java/net/minecraft/server/EntityZombieVillager.java -index d2bd3bb319..e67980b698 100644 +index 8082fa617a..0c51c8dea1 100644 --- a/src/main/java/net/minecraft/server/EntityZombieVillager.java +++ b/src/main/java/net/minecraft/server/EntityZombieVillager.java @@ -22,6 +22,7 @@ public class EntityZombieVillager extends EntityZombie implements VillagerDataHo @@ -2662,11 +2674,11 @@ index d2bd3bb319..e67980b698 100644 this.setVillagerData(this.getVillagerData().withProfession((VillagerProfession) IRegistry.VILLAGER_PROFESSION.a(this.random))); } -@@ -111,7 +112,7 @@ public class EntityZombieVillager extends EntityZombie implements VillagerDataHo +@@ -112,7 +113,7 @@ public class EntityZombieVillager extends EntityZombie implements VillagerDataHo return true; } else { -- return false; +- return super.a(entityhuman, enumhand); + return tryRide(entityhuman, enumhand); // Purpur } } @@ -2974,7 +2986,7 @@ index 0000000000..d64a66274b +} diff --git a/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDFlying.java b/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDFlying.java new file mode 100644 -index 0000000000..b0b504c7dc +index 0000000000..dc43fef37d --- /dev/null +++ b/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDFlying.java @@ -0,0 +1,62 @@ @@ -3017,7 +3029,7 @@ index 0000000000..b0b504c7dc + //} + } + -+ if (entity.locY >= maxY || --tooHighCooldown > 0) { ++ if (entity.locY() >= maxY || --tooHighCooldown > 0) { + tooHighCooldown = 60; + entity.setMot(entity.getMot().add(0.0D, -0.05D, 0.0D)); + vertical = 0.0F; @@ -3042,7 +3054,7 @@ index 0000000000..b0b504c7dc +} diff --git a/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDFlyingWithSpacebar.java b/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDFlyingWithSpacebar.java new file mode 100644 -index 0000000000..a353069b78 +index 0000000000..f8b3310b84 --- /dev/null +++ b/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDFlyingWithSpacebar.java @@ -0,0 +1,65 @@ @@ -3091,7 +3103,7 @@ index 0000000000..a353069b78 + entity.setNoGravity(false); + } + -+ if (entity.locY >= maxY || --tooHighCooldown > 0) { ++ if (entity.locY() >= maxY || --tooHighCooldown > 0) { + tooHighCooldown = 60; + entity.setMot(entity.getMot().add(0.0D, -0.2D, 0.0D)); + vertical = 0.0F; diff --git a/patches/server/0011-Make-giants-naturally-spawn-and-have-AI.patch b/patches/server/0011-Make-giants-naturally-spawn-and-have-AI.patch index e9f38fe66..b73e49189 100644 --- a/patches/server/0011-Make-giants-naturally-spawn-and-have-AI.patch +++ b/patches/server/0011-Make-giants-naturally-spawn-and-have-AI.patch @@ -1,4 +1,4 @@ -From 3fbc8e4ab09dd097f955a0cdc969c0b0fe94b828 Mon Sep 17 00:00:00 2001 +From 9c583298f7a57968d72cdc8d772610fb58bc456b Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sun, 12 May 2019 00:43:12 -0500 Subject: [PATCH] Make giants naturally spawn and have AI @@ -13,19 +13,19 @@ Subject: [PATCH] Make giants naturally spawn and have AI 6 files changed, 89 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/minecraft/server/BiomeBase.java b/src/main/java/net/minecraft/server/BiomeBase.java -index a86ece834..fbbb3b7c5 100644 +index 0102a170dc..9637098462 100644 --- a/src/main/java/net/minecraft/server/BiomeBase.java +++ b/src/main/java/net/minecraft/server/BiomeBase.java -@@ -108,6 +108,7 @@ public abstract class BiomeBase { - return this.m != null; +@@ -112,6 +112,7 @@ public abstract class BiomeBase { + return MathHelper.f(0.62222224F - f * 0.05F, 0.5F + f * 0.1F, 1.0F); } + protected void addMobSpawn(EnumCreatureType creaturetype, BiomeBase.BiomeMeta biomemeta) { a(creaturetype, biomemeta); } // Purpur - OBFHELPER protected void a(EnumCreatureType enumcreaturetype, BiomeBase.BiomeMeta biomebase_biomemeta) { - ((List) this.u.get(enumcreaturetype)).add(biomebase_biomemeta); + ((List) this.v.get(enumcreaturetype)).add(biomebase_biomemeta); } diff --git a/src/main/java/net/minecraft/server/Biomes.java b/src/main/java/net/minecraft/server/Biomes.java -index f4698a680..b075ee4ec 100644 +index 12742870ca..d1f8695fee 100644 --- a/src/main/java/net/minecraft/server/Biomes.java +++ b/src/main/java/net/minecraft/server/Biomes.java @@ -92,5 +92,30 @@ public abstract class Biomes { @@ -60,7 +60,7 @@ index f4698a680..b075ee4ec 100644 + // Purpur end } diff --git a/src/main/java/net/minecraft/server/EntityGiantZombie.java b/src/main/java/net/minecraft/server/EntityGiantZombie.java -index 29e7639ad..be7e6bae4 100644 +index b7e2022b19..c2408e7211 100644 --- a/src/main/java/net/minecraft/server/EntityGiantZombie.java +++ b/src/main/java/net/minecraft/server/EntityGiantZombie.java @@ -21,11 +21,55 @@ public class EntityGiantZombie extends EntityMonster { @@ -90,7 +90,7 @@ index 29e7639ad..be7e6bae4 100644 + } + + @Override -+ public float cX() { // jump height ++ public float dp() { // jump height + // make giants jump as high as everything else relative to their size + // 1.0 makes bottom of feet about as high as their waist when they jump + return 1.0F; @@ -117,15 +117,15 @@ index 29e7639ad..be7e6bae4 100644 + @Override public float a(BlockPosition blockposition, IWorldReader iworldreader) { -- return iworldreader.v(blockposition) - 0.5F; +- return iworldreader.w(blockposition) - 0.5F; + return super.a(blockposition, iworldreader); // Purpur - fix light requirements for natural spawns } } diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java -index 47090db89..2a74c3d18 100644 +index 90587f4c82..53fffb3dc3 100644 --- a/src/main/java/net/minecraft/server/EntityInsentient.java +++ b/src/main/java/net/minecraft/server/EntityInsentient.java -@@ -850,6 +850,7 @@ public abstract class EntityInsentient extends EntityLiving { +@@ -856,6 +856,7 @@ public abstract class EntityInsentient extends EntityLiving { return f; } @@ -133,7 +133,7 @@ index 47090db89..2a74c3d18 100644 protected void a(DifficultyDamageScaler difficultydamagescaler) { if (this.random.nextFloat() < 0.15F * difficultydamagescaler.d()) { int i = this.random.nextInt(2); -@@ -957,6 +958,7 @@ public abstract class EntityInsentient extends EntityLiving { +@@ -963,6 +964,7 @@ public abstract class EntityInsentient extends EntityLiving { } } @@ -142,7 +142,7 @@ index 47090db89..2a74c3d18 100644 float f = difficultydamagescaler.d(); diff --git a/src/main/java/net/minecraft/server/SpawnerCreature.java b/src/main/java/net/minecraft/server/SpawnerCreature.java -index 9d4a96ae4..694075cb1 100644 +index 58bbf2f9d2..53d5900411 100644 --- a/src/main/java/net/minecraft/server/SpawnerCreature.java +++ b/src/main/java/net/minecraft/server/SpawnerCreature.java @@ -77,6 +77,14 @@ public final class SpawnerCreature { @@ -161,7 +161,7 @@ index 9d4a96ae4..694075cb1 100644 EntityPositionTypes.Surface entitypositiontypes_surface = EntityPositionTypes.a(entitytypes); diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index d3409155e..1c8912530 100644 +index d3409155ed..1c89125300 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -141,6 +141,13 @@ public class PurpurConfig { @@ -179,5 +179,5 @@ index d3409155e..1c8912530 100644 public static float crystalsAttackPhantomDamage = 1.0F; public static double phantomsOrbitCrystalsRadius = 0.0D; -- -2.23.0.rc1 +2.24.0.rc1 diff --git a/patches/server/0013-Prevent-phantoms-spawning-on-creative-players.patch b/patches/server/0013-Prevent-phantoms-spawning-on-creative-players.patch index 141cff63c..d635253d1 100644 --- a/patches/server/0013-Prevent-phantoms-spawning-on-creative-players.patch +++ b/patches/server/0013-Prevent-phantoms-spawning-on-creative-players.patch @@ -1,4 +1,4 @@ -From cd7d784930a0513aa753e4d148df50ad6d0ab215 Mon Sep 17 00:00:00 2001 +From 615cb3372831f93095e6b0aa27ce12dc9db78634 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 18 May 2019 16:59:52 -0500 Subject: [PATCH] Prevent phantoms spawning on creative players @@ -8,10 +8,10 @@ Subject: [PATCH] Prevent phantoms spawning on creative players 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/net/minecraft/server/MobSpawnerPhantom.java b/src/main/java/net/minecraft/server/MobSpawnerPhantom.java -index 1818e7c38..43df35a44 100644 +index f488c22ed6..78ea16f010 100644 --- a/src/main/java/net/minecraft/server/MobSpawnerPhantom.java +++ b/src/main/java/net/minecraft/server/MobSpawnerPhantom.java -@@ -29,7 +29,7 @@ public class MobSpawnerPhantom { +@@ -31,7 +31,7 @@ public class MobSpawnerPhantom { while (iterator.hasNext()) { EntityHuman entityhuman = (EntityHuman) iterator.next(); @@ -19,7 +19,7 @@ index 1818e7c38..43df35a44 100644 + if (!entityhuman.isSpectator() && !entityhuman.isCreative()) { // Purpur BlockPosition blockposition = new BlockPosition(entityhuman); - if (!worldserver.worldProvider.g() || blockposition.getY() >= worldserver.getSeaLevel() && worldserver.f(blockposition)) { + if (!worldserver.worldProvider.f() || blockposition.getY() >= worldserver.getSeaLevel() && worldserver.f(blockposition)) { -- -2.20.1 +2.24.0.rc1 diff --git a/patches/server/0014-Add-regen-effect-to-campfires.patch b/patches/server/0014-Add-regen-effect-to-campfires.patch index 6bb447a6c..dac15718b 100644 --- a/patches/server/0014-Add-regen-effect-to-campfires.patch +++ b/patches/server/0014-Add-regen-effect-to-campfires.patch @@ -1,4 +1,4 @@ -From d1441171fe52cc2c70c4b430da37f123705ca7cb Mon Sep 17 00:00:00 2001 +From 2a405bf3462278e4dfaf7f34e5bc79de1afbf9d3 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sun, 19 May 2019 18:11:53 -0500 Subject: [PATCH] Add regen effect to campfires @@ -11,17 +11,17 @@ Subject: [PATCH] Add regen effect to campfires 4 files changed, 91 insertions(+), 3 deletions(-) diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index 8f62fd48a1..7ae79f0bd4 100644 +index 969a77c597..50c494503e 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java -@@ -2720,10 +2720,19 @@ public abstract class EntityLiving extends Entity { +@@ -2779,10 +2779,19 @@ public abstract class EntityLiving extends Entity { } public boolean hasLineOfSight(Entity entity) { -- Vec3D vec3d = new Vec3D(this.locX, this.locY + (double) this.getHeadHeight(), this.locZ); -- Vec3D vec3d1 = new Vec3D(entity.locX, entity.locY + (double) entity.getHeadHeight(), entity.locZ); +- Vec3D vec3d = new Vec3D(this.locX(), this.getHeadY(), this.locZ()); +- Vec3D vec3d1 = new Vec3D(entity.locX(), entity.getHeadY(), entity.locZ()); + // Purpur start -+ return hasLineOfSight(entity.locX, entity.locY + (double) entity.getHeadHeight(), entity.locZ); ++ return hasLineOfSight(entity.locX(), entity.getHeadY(), entity.locZ()); + } + + public boolean hasLineOfSight(TileEntity te) { @@ -30,7 +30,7 @@ index 8f62fd48a1..7ae79f0bd4 100644 - return this.world.rayTrace(new RayTrace(vec3d, vec3d1, RayTrace.BlockCollisionOption.COLLIDER, RayTrace.FluidCollisionOption.NONE, this)).getType() == MovingObjectPosition.EnumMovingObjectType.MISS; + public boolean hasLineOfSight(double x, double y, double z) { -+ Vec3D start = new Vec3D(locX, locY + (double) getHeadHeight(), locZ); ++ Vec3D start = new Vec3D(locX(), getHeadY(), locZ()); + Vec3D end = new Vec3D(x, y, z); + return this.world.rayTrace(new RayTrace(start, end, RayTrace.BlockCollisionOption.COLLIDER, RayTrace.FluidCollisionOption.NONE, this)).getType() == MovingObjectPosition.EnumMovingObjectType.MISS; + // Purpur end @@ -38,7 +38,7 @@ index 8f62fd48a1..7ae79f0bd4 100644 @Override diff --git a/src/main/java/net/minecraft/server/EntityPotion.java b/src/main/java/net/minecraft/server/EntityPotion.java -index 9983365575..2642e86f76 100644 +index 2f9a73ea33..9c9131d8d4 100644 --- a/src/main/java/net/minecraft/server/EntityPotion.java +++ b/src/main/java/net/minecraft/server/EntityPotion.java @@ -91,6 +91,7 @@ public class EntityPotion extends EntityProjectile { @@ -82,7 +82,7 @@ index 9983365575..2642e86f76 100644 AxisAlignedBB axisalignedbb = this.getBoundingBox().grow(4.0D, 2.0D, 4.0D); List list = this.world.a(EntityLiving.class, axisalignedbb, EntityPotion.e); diff --git a/src/main/java/net/minecraft/server/TileEntityCampfire.java b/src/main/java/net/minecraft/server/TileEntityCampfire.java -index 2317adde44..f112a848f1 100644 +index a1580b8c6d..3a44454ed7 100644 --- a/src/main/java/net/minecraft/server/TileEntityCampfire.java +++ b/src/main/java/net/minecraft/server/TileEntityCampfire.java @@ -14,6 +14,7 @@ public class TileEntityCampfire extends TileEntity implements Clearable, ITickab diff --git a/patches/server/0015-Campfires-should-fall-with-gravity.patch b/patches/server/0015-Campfires-should-fall-with-gravity.patch index 5dd07b5a7..d15fd8e55 100644 --- a/patches/server/0015-Campfires-should-fall-with-gravity.patch +++ b/patches/server/0015-Campfires-should-fall-with-gravity.patch @@ -1,4 +1,4 @@ -From ac356c05ef43bc12cf80573c18c57ee924fae231 Mon Sep 17 00:00:00 2001 +From 1e761b4f982976c32121123d6d7256dcae9a2914 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Thu, 23 May 2019 16:20:21 -0500 Subject: [PATCH] Campfires should fall with gravity @@ -10,10 +10,10 @@ Subject: [PATCH] Campfires should fall with gravity 3 files changed, 31 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/minecraft/server/Block.java b/src/main/java/net/minecraft/server/Block.java -index a0177d8c0..56def823e 100644 +index 4d29faccaa..bad1098406 100644 --- a/src/main/java/net/minecraft/server/Block.java +++ b/src/main/java/net/minecraft/server/Block.java -@@ -376,6 +376,7 @@ public class Block implements IMaterial { +@@ -387,6 +387,7 @@ public class Block implements IMaterial { PacketDebug.a(world, blockposition); } @@ -22,11 +22,11 @@ index a0177d8c0..56def823e 100644 return 10; } diff --git a/src/main/java/net/minecraft/server/BlockCampfire.java b/src/main/java/net/minecraft/server/BlockCampfire.java -index 9d59e339c..121433a4e 100644 +index 6303be944c..5d1312d2f1 100644 --- a/src/main/java/net/minecraft/server/BlockCampfire.java +++ b/src/main/java/net/minecraft/server/BlockCampfire.java -@@ -72,8 +72,32 @@ public class BlockCampfire extends BlockTileEntity implements IBlockWaterlogged - return (IBlockData) ((IBlockData) ((IBlockData) ((IBlockData) this.getBlockData().set(BlockCampfire.d, flag)).set(BlockCampfire.c, this.j(world.getType(blockposition.down())))).set(BlockCampfire.b, !flag)).set(BlockCampfire.e, blockactioncontext.f()); +@@ -74,8 +74,32 @@ public class BlockCampfire extends BlockTileEntity implements IBlockWaterlogged + return (IBlockData) ((IBlockData) ((IBlockData) ((IBlockData) this.getBlockData().set(BlockCampfire.d, flag)).set(BlockCampfire.c, this.h(world.getType(blockposition.down())))).set(BlockCampfire.b, !flag)).set(BlockCampfire.e, blockactioncontext.f()); } + // Purpur start - Campfires should fall with gravity @@ -36,7 +36,7 @@ index 9d59e339c..121433a4e 100644 + } + + @Override -+ public void tick(IBlockData iblockdata, World world, BlockPosition pos, Random random) { ++ public void tick(IBlockData iblockdata, WorldServer world, BlockPosition pos, Random random) { + if (world.purpurConfig.campfireObeysGravity && BlockFalling.canFallThrough(world.getType(pos.down())) && pos.getY() >= 0) { + world.addEntity(new EntityFallingBlock(world, pos.getX() + 0.5D, pos.getY(), pos.getZ() + 0.5D, world.getType(pos))); + } @@ -58,7 +58,7 @@ index 9d59e339c..121433a4e 100644 if ((Boolean) iblockdata.get(BlockCampfire.d)) { generatoraccess.getFluidTickList().a(blockposition, FluidTypes.WATER, FluidTypes.WATER.a((IWorldReader) generatoraccess)); } -@@ -107,7 +131,7 @@ public class BlockCampfire extends BlockTileEntity implements IBlockWaterlogged +@@ -104,7 +128,7 @@ public class BlockCampfire extends BlockTileEntity implements IBlockWaterlogged @Override public boolean place(GeneratorAccess generatoraccess, BlockPosition blockposition, IBlockData iblockdata, Fluid fluid) { @@ -68,7 +68,7 @@ index 9d59e339c..121433a4e 100644 if (flag) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 314fd584b..871c0e234 100644 +index 314fd584b8..871c0e2349 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -61,6 +61,11 @@ public class PurpurWorldConfig { @@ -84,5 +84,5 @@ index 314fd584b..871c0e234 100644 public int campfireRegenDuration = 80; public int campfireRegenRange = 5; -- -2.23.0.rc1 +2.24.0.rc1 diff --git a/patches/server/0016-Campfires-burn-out-in-rain.patch b/patches/server/0016-Campfires-burn-out-in-rain.patch index 4f76c79a8..f3131895d 100644 --- a/patches/server/0016-Campfires-burn-out-in-rain.patch +++ b/patches/server/0016-Campfires-burn-out-in-rain.patch @@ -1,4 +1,4 @@ -From db147d56a6690f1f4427813c31df18ef8730c538 Mon Sep 17 00:00:00 2001 +From 4a6b57cb93aa44291057d493345d384db72c209f Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Thu, 6 Jun 2019 21:30:49 -0500 Subject: [PATCH] Campfires burn out in rain @@ -9,10 +9,10 @@ Subject: [PATCH] Campfires burn out in rain 2 files changed, 8 insertions(+) diff --git a/src/main/java/net/minecraft/server/BlockCampfire.java b/src/main/java/net/minecraft/server/BlockCampfire.java -index d2363d1d..563f16a3 100644 +index 5d1312d2f1..7cb4ce95e7 100644 --- a/src/main/java/net/minecraft/server/BlockCampfire.java +++ b/src/main/java/net/minecraft/server/BlockCampfire.java -@@ -86,6 +86,9 @@ public class BlockCampfire extends BlockTileEntity implements IBlockWaterlogged +@@ -88,6 +88,9 @@ public class BlockCampfire extends BlockTileEntity implements IBlockWaterlogged if (iblockdata.get(BlockCampfire.d) && iblockdata.get(BlockCampfire.b)) { world.setTypeAndData(pos, iblockdata.set(BlockCampfire.b, false), 3); } @@ -23,7 +23,7 @@ index d2363d1d..563f16a3 100644 } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 871c0e23..8d1f3feb 100644 +index 871c0e2349..8d1f3feb82 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -88,4 +88,9 @@ public class PurpurWorldConfig { @@ -37,5 +37,5 @@ index 871c0e23..8d1f3feb 100644 + } } -- -2.20.1 +2.24.0.rc1 diff --git a/patches/server/0017-Packed-Barrels.patch b/patches/server/0017-Packed-Barrels.patch index 69b2a9da9..263b0d7dc 100644 --- a/patches/server/0017-Packed-Barrels.patch +++ b/patches/server/0017-Packed-Barrels.patch @@ -1,4 +1,4 @@ -From e04a47b6febfb7da9891ede1c777e0fe15d650a6 Mon Sep 17 00:00:00 2001 +From d63d5843f193b635c1b29876ee675f151e252ec8 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Thu, 23 May 2019 21:50:37 -0500 Subject: [PATCH] Packed Barrels @@ -10,10 +10,10 @@ Subject: [PATCH] Packed Barrels 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/main/java/net/minecraft/server/TileEntityBarrel.java b/src/main/java/net/minecraft/server/TileEntityBarrel.java -index 5d80ec801..dd8c6e887 100644 +index 1e27abbea0..08dee7518c 100644 --- a/src/main/java/net/minecraft/server/TileEntityBarrel.java +++ b/src/main/java/net/minecraft/server/TileEntityBarrel.java -@@ -56,7 +56,7 @@ public class TileEntityBarrel extends TileEntityLootable { +@@ -54,7 +54,7 @@ public class TileEntityBarrel extends TileEntityLootable { private TileEntityBarrel(TileEntityTypes tileentitytypes) { super(tileentitytypes); @@ -22,7 +22,7 @@ index 5d80ec801..dd8c6e887 100644 } public TileEntityBarrel() { -@@ -85,7 +85,7 @@ public class TileEntityBarrel extends TileEntityLootable { +@@ -83,7 +83,7 @@ public class TileEntityBarrel extends TileEntityLootable { @Override public int getSize() { @@ -31,7 +31,7 @@ index 5d80ec801..dd8c6e887 100644 } @Override -@@ -151,6 +151,7 @@ public class TileEntityBarrel extends TileEntityLootable { +@@ -103,6 +103,7 @@ public class TileEntityBarrel extends TileEntityLootable { @Override protected Container createContainer(int i, PlayerInventory playerinventory) { @@ -40,7 +40,7 @@ index 5d80ec801..dd8c6e887 100644 } diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 7063c6329..0ad1569e7 100644 +index 1c89125300..aba4e84117 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -6,6 +6,7 @@ import org.bukkit.Bukkit; @@ -65,7 +65,7 @@ index 7063c6329..0ad1569e7 100644 public static boolean ridableBlaze = true; public static boolean ridableCat = true; diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftContainer.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftContainer.java -index ae119756b..631d39967 100644 +index b4a7d982eb..49cc721f5c 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftContainer.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftContainer.java @@ -155,6 +155,8 @@ public class CraftContainer extends Container { @@ -90,5 +90,5 @@ index ae119756b..631d39967 100644 case DISPENSER: case DROPPER: -- -2.20.1 +2.24.0.rc1 diff --git a/patches/server/0018-Add-large-sized-ender-chests.patch b/patches/server/0018-Add-large-sized-ender-chests.patch index 3aa9ef2d3..1da3d9fa1 100644 --- a/patches/server/0018-Add-large-sized-ender-chests.patch +++ b/patches/server/0018-Add-large-sized-ender-chests.patch @@ -1,4 +1,4 @@ -From 51e2b79efa6673374fcf4d6ebc5052eb8f8b8342 Mon Sep 17 00:00:00 2001 +From 0cd5138cb769057cb56c2b699fc4b3dfd3933bfa Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sun, 23 Jun 2019 17:01:26 -0500 Subject: [PATCH] Add large sized ender chests @@ -12,19 +12,19 @@ Subject: [PATCH] Add large sized ender chests 5 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/main/java/net/minecraft/server/BlockEnderChest.java b/src/main/java/net/minecraft/server/BlockEnderChest.java -index 4b7290238..fc5227683 100644 +index 0a892a5f1a..c7afac3482 100644 --- a/src/main/java/net/minecraft/server/BlockEnderChest.java +++ b/src/main/java/net/minecraft/server/BlockEnderChest.java -@@ -46,6 +46,7 @@ public class BlockEnderChest extends BlockTileEntity implements IBlockWaterlogge +@@ -48,6 +48,7 @@ public class BlockEnderChest extends BlockChestAbstract im inventoryenderchest.a(tileentityenderchest); entityhuman.openContainer(new TileInventory((i, playerinventory, entityhuman1) -> { + if (net.pl3x.purpur.PurpurConfig.largeEnderChests) return ContainerChest.b(i, playerinventory, inventoryenderchest); // Purpur return ContainerChest.a(i, playerinventory, inventoryenderchest); - }, BlockEnderChest.d)); + }, BlockEnderChest.e)); entityhuman.a(StatisticList.OPEN_ENDERCHEST); diff --git a/src/main/java/net/minecraft/server/InventoryEnderChest.java b/src/main/java/net/minecraft/server/InventoryEnderChest.java -index fd31b9a6d..49b369236 100644 +index fd31b9a6dc..49b369236d 100644 --- a/src/main/java/net/minecraft/server/InventoryEnderChest.java +++ b/src/main/java/net/minecraft/server/InventoryEnderChest.java @@ -20,7 +20,7 @@ public class InventoryEnderChest extends InventorySubcontainer { @@ -37,7 +37,7 @@ index fd31b9a6d..49b369236 100644 // CraftBukkit end } diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 0ad1569e7..abc43c4e3 100644 +index aba4e84117..4c25d358fd 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -165,6 +165,12 @@ public class PurpurConfig { @@ -54,7 +54,7 @@ index 0ad1569e7..abc43c4e3 100644 private static void packedBarrels() { packedBarrels = getBoolean("settings.packed-barrels", packedBarrels); diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftContainer.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftContainer.java -index 631d39967..47c7013f0 100644 +index 49cc721f5c..a7e3585fc0 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftContainer.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftContainer.java @@ -157,6 +157,8 @@ public class CraftContainer extends Container { @@ -76,7 +76,7 @@ index 631d39967..47c7013f0 100644 case BARREL: delegate = new ContainerChest(net.pl3x.purpur.PurpurConfig.packedBarrels ? Containers.GENERIC_9X6 : Containers.GENERIC_9X3, windowId, bottom, top, top.getSize() / 9); // Purpur diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java -index 026a0c399..d2c06cff2 100644 +index 026a0c3995..d2c06cff2c 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java @@ -81,7 +81,7 @@ public class CraftInventory implements Inventory { @@ -89,5 +89,5 @@ index 026a0c399..d2c06cff2 100644 } -- -2.23.0.rc1 +2.24.0.rc1 diff --git a/patches/server/0019-Right-click-to-open-sign-editor.patch b/patches/server/0019-Right-click-to-open-sign-editor.patch index e41c352c0..ee1573853 100644 --- a/patches/server/0019-Right-click-to-open-sign-editor.patch +++ b/patches/server/0019-Right-click-to-open-sign-editor.patch @@ -1,4 +1,4 @@ -From cc4bab45ae6d4e889e03196225b538ff245d3fdb Mon Sep 17 00:00:00 2001 +From 37e9a772a5e76b43000d8cec3b48ee937364f5a3 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Fri, 24 May 2019 02:39:25 -0500 Subject: [PATCH] Right click to open sign editor @@ -9,10 +9,10 @@ Subject: [PATCH] Right click to open sign editor 2 files changed, 16 insertions(+) diff --git a/src/main/java/net/minecraft/server/BlockSign.java b/src/main/java/net/minecraft/server/BlockSign.java -index e058a85ba..8cf92d7a7 100644 +index 8a31054a1d..503090e38a 100644 --- a/src/main/java/net/minecraft/server/BlockSign.java +++ b/src/main/java/net/minecraft/server/BlockSign.java -@@ -52,6 +52,17 @@ public abstract class BlockSign extends BlockTileEntity implements IBlockWaterlo +@@ -56,6 +56,17 @@ public abstract class BlockSign extends BlockTileEntity implements IBlockWaterlo } } @@ -23,15 +23,15 @@ index e058a85ba..8cf92d7a7 100644 + tileentitysign.isEditable = true; + tileentitysign.a(entityhuman); + entityhuman.openSign(tileentitysign); -+ return true; ++ return EnumInteractionResult.SUCCESS; + } + // Purpur end + - return tileentitysign.b(entityhuman); + return tileentitysign.b(entityhuman) ? EnumInteractionResult.SUCCESS : EnumInteractionResult.PASS; } else { - return false; + return EnumInteractionResult.PASS; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 8d1f3feb8..8bd887b1c 100644 +index 8d1f3feb82..8bd887b1c2 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -61,6 +61,11 @@ public class PurpurWorldConfig { @@ -47,5 +47,5 @@ index 8d1f3feb8..8bd887b1c 100644 private void campfireObeysGravity() { campfireObeysGravity = getBoolean("campfire-obeys-gravity", campfireObeysGravity); -- -2.23.0.rc1 +2.24.0.rc1 diff --git a/patches/server/0020-Allow-color-codes-on-signs.patch b/patches/server/0020-Allow-color-codes-on-signs.patch index 7afd33a8f..4992bbade 100644 --- a/patches/server/0020-Allow-color-codes-on-signs.patch +++ b/patches/server/0020-Allow-color-codes-on-signs.patch @@ -1,4 +1,4 @@ -From 495e5af821f0288659b8814f61ced10d1c7fd210 Mon Sep 17 00:00:00 2001 +From 34ee8eddbefe3923f22ec3021a0bedaa88af15b6 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Thu, 6 Jun 2019 17:40:30 -0500 Subject: [PATCH] Allow color codes on signs @@ -11,10 +11,10 @@ Subject: [PATCH] Allow color codes on signs 4 files changed, 28 insertions(+) diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java -index c747b5deb3..d5f80be598 100644 +index 30380c8db4..4ad6b48c25 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java -@@ -1122,6 +1122,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { +@@ -1090,6 +1090,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { @Override public void openSign(TileEntitySign tileentitysign) { tileentitysign.a((EntityHuman) this); @@ -23,10 +23,10 @@ index c747b5deb3..d5f80be598 100644 } diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index c9872cbd0c..03c9fc9180 100644 +index c559a7b95d..925824c349 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java -@@ -2565,6 +2565,14 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -2575,6 +2575,14 @@ public class PlayerConnection implements PacketListenerPlayIn { } } // Paper end @@ -42,18 +42,18 @@ index c9872cbd0c..03c9fc9180 100644 } SignChangeEvent event = new SignChangeEvent((org.bukkit.craftbukkit.block.CraftBlock) player.getWorld().getBlockAt(x, y, z), this.server.getPlayer(this.player), lines); diff --git a/src/main/java/net/minecraft/server/TileEntitySign.java b/src/main/java/net/minecraft/server/TileEntitySign.java -index 0a8d9b52dd..65771ed9e1 100644 +index 5eb86c4341..8810a1120b 100644 --- a/src/main/java/net/minecraft/server/TileEntitySign.java +++ b/src/main/java/net/minecraft/server/TileEntitySign.java -@@ -122,6 +122,20 @@ public class TileEntitySign extends TileEntity implements ICommandListener { // - this.k[i] = null; +@@ -119,6 +119,20 @@ public class TileEntitySign extends TileEntity implements ICommandListener { // + this.g[i] = null; } + // Purpur start + public PacketPlayOutTileEntityData getTranslatedUpdatePacket() { + NBTTagCompound nbt = this.b(); + for (int i = 0; i < 4; ++i) { -+ String line = lines[i].e().replace("\u00a7", "&"); ++ String line = lines[i].getLegacyString().replace("\u00a7", "&"); + if (line.endsWith("&r")) { + line = line.substring(0, line.length() - 2); + } diff --git a/patches/server/0022-Always-place-dragon-egg-when-dragon-is-killed.patch b/patches/server/0022-Always-place-dragon-egg-when-dragon-is-killed.patch index cdd1efe9b..a6e1b6ccd 100644 --- a/patches/server/0022-Always-place-dragon-egg-when-dragon-is-killed.patch +++ b/patches/server/0022-Always-place-dragon-egg-when-dragon-is-killed.patch @@ -1,4 +1,4 @@ -From ea578ab1879715652b4393dcac01053e3f5e634e Mon Sep 17 00:00:00 2001 +From 56a6ad31a83bcc34ddc66196beaf9a7047455db5 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 1 Jun 2019 01:16:35 -0500 Subject: [PATCH] Always place dragon egg when dragon is killed @@ -9,10 +9,10 @@ Subject: [PATCH] Always place dragon egg when dragon is killed 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/minecraft/server/EnderDragonBattle.java b/src/main/java/net/minecraft/server/EnderDragonBattle.java -index 6700c8c65..c7470d285 100644 +index 218c04245b..cfc059c00f 100644 --- a/src/main/java/net/minecraft/server/EnderDragonBattle.java +++ b/src/main/java/net/minecraft/server/EnderDragonBattle.java -@@ -356,7 +356,7 @@ public class EnderDragonBattle { +@@ -358,7 +358,7 @@ public class EnderDragonBattle { this.bossBattle.setVisible(false); this.a(true); this.n(); @@ -22,7 +22,7 @@ index 6700c8c65..c7470d285 100644 } diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 4c25d358f..4baede017 100644 +index 4c25d358fd..4baede017c 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -142,6 +142,19 @@ public class PurpurConfig { @@ -46,5 +46,5 @@ index 4c25d358f..4baede017 100644 public static boolean giantsHaveAI = true; private static void giantsSettings() { -- -2.23.0.rc1 +2.24.0.rc1 diff --git a/patches/server/0024-Add-config-for-items-breaking-turtle-eggs.patch b/patches/server/0024-Add-config-for-items-breaking-turtle-eggs.patch index 5849e4b59..e67bdf424 100644 --- a/patches/server/0024-Add-config-for-items-breaking-turtle-eggs.patch +++ b/patches/server/0024-Add-config-for-items-breaking-turtle-eggs.patch @@ -1,4 +1,4 @@ -From 06f097bcd196eca3dcf038a48b02364328cd0e65 Mon Sep 17 00:00:00 2001 +From 9e203340843bfb499a69eabf211866d002b0d77f Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Thu, 6 Jun 2019 22:15:46 -0500 Subject: [PATCH] Add config for items breaking turtle eggs @@ -9,10 +9,10 @@ Subject: [PATCH] Add config for items breaking turtle eggs 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/minecraft/server/BlockTurtleEgg.java b/src/main/java/net/minecraft/server/BlockTurtleEgg.java -index 0118a8451..83e69425b 100644 +index cb36334e41..238d260b5f 100644 --- a/src/main/java/net/minecraft/server/BlockTurtleEgg.java +++ b/src/main/java/net/minecraft/server/BlockTurtleEgg.java -@@ -163,6 +163,17 @@ public class BlockTurtleEgg extends Block { +@@ -157,6 +157,17 @@ public class BlockTurtleEgg extends Block { } private boolean a(World world, Entity entity) { @@ -32,7 +32,7 @@ index 0118a8451..83e69425b 100644 } } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index abd10a500..5c5a729e9 100644 +index abd10a500a..5c5a729e9e 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -103,4 +103,9 @@ public class PurpurWorldConfig { @@ -46,5 +46,5 @@ index abd10a500..5c5a729e9 100644 + } } -- -2.23.0.rc1 +2.24.0.rc1 diff --git a/patches/server/0025-Make-Iron-Golems-Swim.patch b/patches/server/0025-Make-Iron-Golems-Swim.patch index 4f24317ec..6c8deafd4 100644 --- a/patches/server/0025-Make-Iron-Golems-Swim.patch +++ b/patches/server/0025-Make-Iron-Golems-Swim.patch @@ -1,4 +1,4 @@ -From ea4d6504bc39d430c6f154dfafa551ae288bc89b Mon Sep 17 00:00:00 2001 +From c8327292a86bc1848b9f0bbddcdd9be674010c46 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 15 Jun 2019 03:12:15 -0500 Subject: [PATCH] Make Iron Golems Swim @@ -9,10 +9,10 @@ Subject: [PATCH] Make Iron Golems Swim 2 files changed, 6 insertions(+) diff --git a/src/main/java/net/minecraft/server/EntityIronGolem.java b/src/main/java/net/minecraft/server/EntityIronGolem.java -index 2c34ab337..9bb033336 100644 +index 6a41e1cfd0..966cefdcf6 100644 --- a/src/main/java/net/minecraft/server/EntityIronGolem.java +++ b/src/main/java/net/minecraft/server/EntityIronGolem.java -@@ -14,6 +14,7 @@ public class EntityIronGolem extends EntityGolem { +@@ -20,6 +20,7 @@ public class EntityIronGolem extends EntityGolem { @Override protected void initPathfinder() { @@ -21,7 +21,7 @@ index 2c34ab337..9bb033336 100644 this.goalSelector.a(1, new PathfinderGoalMeleeAttack(this, 1.0D, true)); this.goalSelector.a(2, new PathfinderGoalMoveTowardsTarget(this, 0.9D, 32.0F)); diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 4baede017..5dc882288 100644 +index 4baede017c..5dc8822884 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -162,6 +162,11 @@ public class PurpurConfig { @@ -37,5 +37,5 @@ index 4baede017..5dc882288 100644 public static float crystalsAttackPhantomDamage = 1.0F; public static double phantomsOrbitCrystalsRadius = 0.0D; -- -2.23.0.rc1 +2.24.0.rc1 diff --git a/patches/server/0027-Controllable-Minecarts.patch b/patches/server/0027-Controllable-Minecarts.patch index 89be5aa8f..4d769eb5a 100644 --- a/patches/server/0027-Controllable-Minecarts.patch +++ b/patches/server/0027-Controllable-Minecarts.patch @@ -1,4 +1,4 @@ -From b3b90ce062c93b15d90c9c550138bd78f68c3904 Mon Sep 17 00:00:00 2001 +From 3b36fc76fea11aed04a475ccb0b4b33bed9c927f Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 29 Jun 2019 02:32:40 -0500 Subject: [PATCH] Controllable Minecarts @@ -11,30 +11,30 @@ Subject: [PATCH] Controllable Minecarts 4 files changed, 75 insertions(+), 3 deletions(-) diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 27ae09757..457d973af 100644 +index 86ce0977df..de8e48b570 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -1295,6 +1295,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1283,6 +1283,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke this.inLava = true; } -+ public boolean isInLava() { return aD(); } // Purpur - OBFHELPER - public boolean aD() { ++ public boolean isInLava() { return aH(); } // Purpur - OBFHELPER + public boolean aH() { return this.inLava; } diff --git a/src/main/java/net/minecraft/server/EntityMinecartAbstract.java b/src/main/java/net/minecraft/server/EntityMinecartAbstract.java -index 6df2930e2..c5b4057c3 100644 +index 4388186db5..5abd8a1819 100644 --- a/src/main/java/net/minecraft/server/EntityMinecartAbstract.java +++ b/src/main/java/net/minecraft/server/EntityMinecartAbstract.java -@@ -4,6 +4,7 @@ import java.util.Iterator; - import java.util.List; +@@ -8,6 +8,7 @@ import java.util.List; + import java.util.Map; import javax.annotation.Nullable; +import net.pl3x.purpur.PurpurConfig; // Purpur // CraftBukkit start import org.bukkit.Location; import org.bukkit.entity.Vehicle; -@@ -330,12 +331,50 @@ public abstract class EntityMinecartAbstract extends Entity { +@@ -355,12 +356,50 @@ public abstract class EntityMinecartAbstract extends Entity { public void a(int i, int j, int k, boolean flag) {} @@ -86,7 +86,7 @@ index 6df2930e2..c5b4057c3 100644 this.setMot(new Vec3D(this.getMot().x * this.derailedX, this.getMot().y * this.derailedY, this.getMot().z * this.derailedZ)); // CraftBukkit end diff --git a/src/main/java/net/minecraft/server/ItemMinecart.java b/src/main/java/net/minecraft/server/ItemMinecart.java -index ec96fa0a4..9ad3cc298 100644 +index b73e317fbb..aa2186add7 100644 --- a/src/main/java/net/minecraft/server/ItemMinecart.java +++ b/src/main/java/net/minecraft/server/ItemMinecart.java @@ -103,8 +103,10 @@ public class ItemMinecart extends Item { @@ -111,7 +111,7 @@ index ec96fa0a4..9ad3cc298 100644 } } diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 5dc882288..db98b4c3f 100644 +index 5dc8822884..db98b4c3f6 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -1,9 +1,13 @@ @@ -160,5 +160,5 @@ index 5dc882288..db98b4c3f 100644 + } } -- -2.23.0.rc1 +2.24.0.rc1 diff --git a/patches/server/0028-Disable-loot-drops-on-death-by-cramming.patch b/patches/server/0028-Disable-loot-drops-on-death-by-cramming.patch index b0eff89d9..983a39b49 100644 --- a/patches/server/0028-Disable-loot-drops-on-death-by-cramming.patch +++ b/patches/server/0028-Disable-loot-drops-on-death-by-cramming.patch @@ -1,4 +1,4 @@ -From 0f1a76f451bfcea744e9f26ec1407b9aee80b847 Mon Sep 17 00:00:00 2001 +From b4228af0149ea881aabe6a2eadf46781c3421a73 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Wed, 3 Jul 2019 23:58:31 -0500 Subject: [PATCH] Disable loot drops on death by cramming @@ -9,11 +9,11 @@ Subject: [PATCH] Disable loot drops on death by cramming 2 files changed, 7 insertions(+) diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index 791d03aa7..eb397b6bc 100644 +index 50c494503e..7a5a1a2d3e 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java -@@ -1423,8 +1423,10 @@ public abstract class EntityLiving extends Entity { - this.cF(); // CraftBukkit - from below // PAIL +@@ -1381,8 +1381,10 @@ public abstract class EntityLiving extends Entity { + this.dropInventory(); // CraftBukkit - from below org.bukkit.event.entity.EntityDeathEvent deathEvent; // Paper if (this.isDropExperience() && this.world.getGameRules().getBoolean(GameRules.DO_MOB_LOOT)) { + if (!(damagesource == DamageSource.CRAMMING && net.pl3x.purpur.PurpurConfig.disableDropsOnCrammingDeath)) { // Purpur - do not drop loot if crammed to death @@ -24,7 +24,7 @@ index 791d03aa7..eb397b6bc 100644 deathEvent = CraftEventFactory.callEntityDeathEvent(this, this.drops); // Paper } else { diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 0e20e0b13..749dce0b4 100644 +index db98b4c3f6..f9623c7c7a 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -136,6 +136,11 @@ public class PurpurConfig { @@ -40,5 +40,5 @@ index 0e20e0b13..749dce0b4 100644 private static void requireShiftToMount() { requireShiftToMount = getBoolean("settings.mobs.require-shift-to-mount", requireShiftToMount); -- -2.23.0.rc1 +2.24.0.rc1 diff --git a/patches/server/0030-Implement-ItemFactory-getMonsterEgg.patch b/patches/server/0030-Implement-ItemFactory-getMonsterEgg.patch index e74e086d8..460369f09 100644 --- a/patches/server/0030-Implement-ItemFactory-getMonsterEgg.patch +++ b/patches/server/0030-Implement-ItemFactory-getMonsterEgg.patch @@ -1,4 +1,4 @@ -From 67ad2997ee26dc8ddc1dac341fdc928bb62e6ceb Mon Sep 17 00:00:00 2001 +From d8598756085a46d3e6d662efc8be4172455b2854 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Fri, 5 Jul 2019 16:36:55 -0500 Subject: [PATCH] Implement ItemFactory#getMonsterEgg @@ -9,7 +9,7 @@ Subject: [PATCH] Implement ItemFactory#getMonsterEgg 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/minecraft/server/ItemMonsterEgg.java b/src/main/java/net/minecraft/server/ItemMonsterEgg.java -index 4482dd930..bb3b0abd9 100644 +index b2dea4d944..df22e15a4a 100644 --- a/src/main/java/net/minecraft/server/ItemMonsterEgg.java +++ b/src/main/java/net/minecraft/server/ItemMonsterEgg.java @@ -8,7 +8,7 @@ import javax.annotation.Nullable; @@ -22,10 +22,10 @@ index 4482dd930..bb3b0abd9 100644 private final int c; private final EntityTypes d; diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -index 3cddf254a..23cdaaf7e 100644 +index 23d7756456..29161032c3 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -@@ -351,4 +351,18 @@ public final class CraftItemFactory implements ItemFactory { +@@ -354,4 +354,18 @@ public final class CraftItemFactory implements ItemFactory { return nms != null ? net.minecraft.server.LocaleLanguage.getInstance().translateKey(nms.getItem().getName()) : null; } // Paper end @@ -45,5 +45,5 @@ index 3cddf254a..23cdaaf7e 100644 + // Purpur end } -- -2.23.0.rc1 +2.24.0.rc1 diff --git a/patches/server/0032-Dont-send-useless-entity-packets.patch b/patches/server/0032-Dont-send-useless-entity-packets.patch index 74d10425b..d482cd47d 100644 --- a/patches/server/0032-Dont-send-useless-entity-packets.patch +++ b/patches/server/0032-Dont-send-useless-entity-packets.patch @@ -1,4 +1,4 @@ -From a8486da8353fb438f66d58fcaaaaf14225916f90 Mon Sep 17 00:00:00 2001 +From f22ff4979a67ab0064e528c5b068e09e72cf00dc Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 6 Jul 2019 17:00:04 -0500 Subject: [PATCH] Dont send useless entity packets @@ -10,7 +10,7 @@ Subject: [PATCH] Dont send useless entity packets 3 files changed, 27 insertions(+), 5 deletions(-) diff --git a/src/main/java/net/minecraft/server/EntityTrackerEntry.java b/src/main/java/net/minecraft/server/EntityTrackerEntry.java -index 460c687d3..61af5a99f 100644 +index 3a88c9a670..1f7c8f7da0 100644 --- a/src/main/java/net/minecraft/server/EntityTrackerEntry.java +++ b/src/main/java/net/minecraft/server/EntityTrackerEntry.java @@ -162,6 +162,7 @@ public class EntityTrackerEntry { @@ -20,7 +20,7 @@ index 460c687d3..61af5a99f 100644 + if (net.pl3x.purpur.PurpurConfig.dontSendUselessEntityPackets && isUselessPacket(packet1)) packet1 = null; // Purpur } - if ((this.e || this.tracker.impulse || this.tracker instanceof EntityLiving && ((EntityLiving) this.tracker).isGliding()) && this.n > 0) { + if ((this.e || this.tracker.impulse || this.tracker instanceof EntityLiving && ((EntityLiving) this.tracker).isGliding()) && this.tickCounter > 0) { @@ -248,6 +249,22 @@ public class EntityTrackerEntry { } @@ -45,7 +45,7 @@ index 460c687d3..61af5a99f 100644 this.tracker.c(entityplayer); entityplayer.c(this.tracker); diff --git a/src/main/java/net/minecraft/server/PacketPlayOutEntity.java b/src/main/java/net/minecraft/server/PacketPlayOutEntity.java -index 1a9802e75..4c5a52c80 100644 +index e5da2b19c1..5b1d959354 100644 --- a/src/main/java/net/minecraft/server/PacketPlayOutEntity.java +++ b/src/main/java/net/minecraft/server/PacketPlayOutEntity.java @@ -5,11 +5,11 @@ import java.io.IOException; @@ -64,9 +64,9 @@ index 1a9802e75..4c5a52c80 100644 + protected byte f; public byte getPitch() { return f; } // Purpur - OBFHELPER protected boolean g; protected boolean h; - + protected boolean i; diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index d44b7b173..f710919da 100644 +index aa68cc366d..5ce6afde79 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -141,6 +141,11 @@ public class PurpurConfig { @@ -82,5 +82,5 @@ index d44b7b173..f710919da 100644 private static void requireShiftToMount() { requireShiftToMount = getBoolean("settings.mobs.require-shift-to-mount", requireShiftToMount); -- -2.23.0.rc1 +2.24.0.rc1 diff --git a/patches/server/0033-Fix-item-position-desync-MC-4.patch b/patches/server/0033-Fix-item-position-desync-MC-4.patch index fcd0a1a7e..b5a2917fc 100644 --- a/patches/server/0033-Fix-item-position-desync-MC-4.patch +++ b/patches/server/0033-Fix-item-position-desync-MC-4.patch @@ -1,4 +1,4 @@ -From b7ad8b31987ef8c502c142f2202a66ca7073cfb0 Mon Sep 17 00:00:00 2001 +From 50fdf55beec37563faed1fa6dc40fa2ccece22c5 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 6 Jul 2019 21:12:58 -0500 Subject: [PATCH] Fix item position desync (MC-4) @@ -10,7 +10,7 @@ Subject: [PATCH] Fix item position desync (MC-4) 3 files changed, 13 insertions(+) diff --git a/src/main/java/net/minecraft/server/EntityTrackerEntry.java b/src/main/java/net/minecraft/server/EntityTrackerEntry.java -index 61af5a99f..b271e9ace 100644 +index 1f7c8f7da0..5dd4d392a6 100644 --- a/src/main/java/net/minecraft/server/EntityTrackerEntry.java +++ b/src/main/java/net/minecraft/server/EntityTrackerEntry.java @@ -124,6 +124,12 @@ public class EntityTrackerEntry { @@ -19,20 +19,20 @@ index 61af5a99f..b271e9ace 100644 j = MathHelper.d(this.tracker.pitch * 256.0F / 360.0F); + // Purpur start - fixes MC-4 + if (net.pl3x.purpur.PurpurConfig.fixItemPositionDesync && this.tracker instanceof EntityItem) { -+ Vec3D loc = PacketPlayOutEntity.decrypt(PacketPlayOutEntity.encrypt(tracker.locX), PacketPlayOutEntity.encrypt(tracker.locY), PacketPlayOutEntity.encrypt(tracker.locZ)); ++ Vec3D loc = PacketPlayOutEntity.decrypt(PacketPlayOutEntity.encrypt(tracker.locX()), PacketPlayOutEntity.encrypt(tracker.locY()), PacketPlayOutEntity.encrypt(tracker.locZ())); + tracker.setPosition(loc.getX(), loc.getY(), loc.getZ()); + } + // Purpur end - Vec3D vec3d = (new Vec3D(this.tracker.locX, this.tracker.locY, this.tracker.locZ)).d(PacketPlayOutEntity.a(this.xLoc, this.yLoc, this.zLoc)); + Vec3D vec3d = this.tracker.getPositionVector().d(PacketPlayOutEntity.a(this.xLoc, this.yLoc, this.zLoc)); boolean flag1 = vec3d.g() >= 7.62939453125E-6D; Packet packet1 = null; diff --git a/src/main/java/net/minecraft/server/PacketPlayOutEntity.java b/src/main/java/net/minecraft/server/PacketPlayOutEntity.java -index 4c5a52c80..9ec3495d5 100644 +index 5b1d959354..0010448e3a 100644 --- a/src/main/java/net/minecraft/server/PacketPlayOutEntity.java +++ b/src/main/java/net/minecraft/server/PacketPlayOutEntity.java -@@ -13,10 +13,12 @@ public class PacketPlayOutEntity implements Packet { - protected boolean g; +@@ -14,10 +14,12 @@ public class PacketPlayOutEntity implements Packet { protected boolean h; + protected boolean i; + public static long encrypt(double d) { return a(d); } // Purpur - OBFHELPER public static long a(double d0) { @@ -44,7 +44,7 @@ index 4c5a52c80..9ec3495d5 100644 return (new Vec3D((double) i, (double) j, (double) k)).a(2.44140625E-4D); } diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index f710919da..0e3a64e85 100644 +index 5ce6afde79..882f7711c7 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -146,6 +146,11 @@ public class PurpurConfig { @@ -60,5 +60,5 @@ index f710919da..0e3a64e85 100644 private static void requireShiftToMount() { requireShiftToMount = getBoolean("settings.mobs.require-shift-to-mount", requireShiftToMount); -- -2.23.0.rc1 +2.24.0.rc1 diff --git a/patches/server/0034-Add-chance-for-zombie-horse-natural-spawns.patch b/patches/server/0034-Add-chance-for-zombie-horse-natural-spawns.patch index f168b9e8f..96db0acbf 100644 --- a/patches/server/0034-Add-chance-for-zombie-horse-natural-spawns.patch +++ b/patches/server/0034-Add-chance-for-zombie-horse-natural-spawns.patch @@ -1,4 +1,4 @@ -From 030524325c17ca3149c46fd4640886dfc0a36865 Mon Sep 17 00:00:00 2001 +From 633d6bcd11eb1d56f3e4a0176fa8d2feaa7e605c Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sun, 7 Jul 2019 19:52:16 -0500 Subject: [PATCH] Add chance for zombie horse natural spawns @@ -9,10 +9,10 @@ Subject: [PATCH] Add chance for zombie horse natural spawns 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index 5b18f4bd52..62e938a78f 100644 +index 722384a91c..372b48fb2d 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java -@@ -518,12 +518,18 @@ public class WorldServer extends World { +@@ -525,12 +525,18 @@ public class WorldServer extends World { boolean flag1 = this.getGameRules().getBoolean(GameRules.DO_MOB_SPAWNING) && this.random.nextDouble() < (double) difficultydamagescaler.b() * paperConfig.skeleHorseSpawnChance; // Paper if (flag1) { @@ -54,5 +54,5 @@ index 882f7711c7..f0ed3c9749 100644 private static void largeEnderChests() { largeEnderChests = getBoolean("settings.large-ender-chests", largeEnderChests); -- -2.23.0.rc1 +2.24.0.rc1 diff --git a/patches/server/0035-Fix-pig-zombies-MC-56653.patch b/patches/server/0035-Fix-pig-zombies-MC-56653.patch index 7bbbd5538..cee68ae7d 100644 --- a/patches/server/0035-Fix-pig-zombies-MC-56653.patch +++ b/patches/server/0035-Fix-pig-zombies-MC-56653.patch @@ -1,4 +1,4 @@ -From ba8da9b4384da86598467168816372d701a9ffcf Mon Sep 17 00:00:00 2001 +From d2c8b1879fd458f8cdc7a0679c9ce2ec2e3fb300 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Tue, 9 Jul 2019 20:56:47 -0500 Subject: [PATCH] Fix pig zombies (MC-56653) @@ -9,7 +9,7 @@ Subject: [PATCH] Fix pig zombies (MC-56653) 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/minecraft/server/EntityPigZombie.java b/src/main/java/net/minecraft/server/EntityPigZombie.java -index 5760a1836..54ccc93f1 100644 +index 8d57c5f1b5..1c3be1c2c0 100644 --- a/src/main/java/net/minecraft/server/EntityPigZombie.java +++ b/src/main/java/net/minecraft/server/EntityPigZombie.java @@ -139,6 +139,7 @@ public class EntityPigZombie extends EntityZombie { @@ -17,20 +17,20 @@ index 5760a1836..54ccc93f1 100644 if (result && entity instanceof EntityHuman && !((EntityHuman) entity).isCreative() && this.hasLineOfSight(entity)) { + if (net.pl3x.purpur.PurpurConfig.pigmenDontTargetUnlessHit) this.setLastDamager((EntityHuman) entity); // Purpur - fix MC-56653 - this.a(entity); + this.i((EntityLiving) entity); } -@@ -158,7 +159,7 @@ public class EntityPigZombie extends EntityZombie { +@@ -157,7 +158,7 @@ public class EntityPigZombie extends EntityZombie { + this.angerLevel = event.getNewAnger(); // CraftBukkit end this.soundDelay = this.random.nextInt(40); - if (entity instanceof EntityLiving) { -- this.setLastDamager((EntityLiving) entity); -+ if (!net.pl3x.purpur.PurpurConfig.pigmenDontTargetUnlessHit) this.setLastDamager((EntityLiving) entity); // Purpur - fix MC-56653 - } - +- this.setLastDamager(entityliving); ++ if (!net.pl3x.purpur.PurpurConfig.pigmenDontTargetUnlessHit) this.setLastDamager(entityliving); // Purpur - fix MC-56653 return true; -@@ -207,6 +208,12 @@ public class EntityPigZombie extends EntityZombie { - return this.ef(); + } + +@@ -204,6 +205,12 @@ public class EntityPigZombie extends EntityZombie { + return this.eA(); } + // Purpur start - fix MC-56653 @@ -43,7 +43,7 @@ index 5760a1836..54ccc93f1 100644 public PathfinderGoalAnger(EntityPigZombie entitypigzombie) { diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index f0ed3c974..8a875a576 100644 +index f0ed3c9749..8a875a5764 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -200,6 +200,11 @@ public class PurpurConfig { @@ -59,5 +59,5 @@ index f0ed3c974..8a875a576 100644 public static boolean snowmanPumpkinPutBack = false; private static void snowmansSettings() { -- -2.23.0.rc1 +2.24.0.rc1 diff --git a/patches/server/0037-Implement-ChunkTooLargeEvent.patch b/patches/server/0037-Implement-ChunkTooLargeEvent.patch deleted file mode 100644 index 881fb0eb9..000000000 --- a/patches/server/0037-Implement-ChunkTooLargeEvent.patch +++ /dev/null @@ -1,64 +0,0 @@ -From fdf5cf1d6672ea52a1e10f27e78c89e4462475de Mon Sep 17 00:00:00 2001 -From: William Blake Galbreath -Date: Fri, 12 Jul 2019 02:10:06 -0500 -Subject: [PATCH] Implement ChunkTooLargeEvent - ---- - src/main/java/net/minecraft/server/RegionFileCache.java | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/src/main/java/net/minecraft/server/RegionFileCache.java b/src/main/java/net/minecraft/server/RegionFileCache.java -index d3d610742..d9283b36b 100644 ---- a/src/main/java/net/minecraft/server/RegionFileCache.java -+++ b/src/main/java/net/minecraft/server/RegionFileCache.java -@@ -21,6 +21,7 @@ public abstract class RegionFileCache implements AutoCloseable { - private final File actualWorld; - private boolean useAltWorld; - // Paper end -+ private final String worldName; // Purpur - - - protected RegionFileCache(File file) { -@@ -35,6 +36,7 @@ public abstract class RegionFileCache implements AutoCloseable { - if (name.equals("DIM-1") || name.equals("DIM1")) { - container = container.getParentFile(); - } -+ worldName = container.getName(); // Purpur - this.templateWorld = new File(container, name); - File region = new File(file, "region"); - if (!region.exists()) { -@@ -43,6 +45,7 @@ public abstract class RegionFileCache implements AutoCloseable { - } else { - this.useAltWorld = false; - this.templateWorld = file; -+ worldName = file.getParentFile().getParentFile().getName(); // Purpur - } - // Paper start - } -@@ -119,6 +122,7 @@ public abstract class RegionFileCache implements AutoCloseable { - regionfile.setStatus(chunk.x, chunk.z, ChunkRegionLoader.getStatus(nbttagcompound)); // Paper - cache status on disk - regionfile.setOversized(chunkX, chunkZ, false); - } catch (RegionFile.ChunkTooLargeException ignored) { -+ new net.pl3x.purpur.event.ChunkTooLargeEvent(worldName, chunkX, chunkZ, true, false).callEvent(); // Purpur - printOversizedLog("ChunkTooLarge! Someone is trying to duplicate.", regionfile.file, chunkX, chunkZ); - // Clone as we are now modifying it, don't want to corrupt the pending save state - nbttagcompound = nbttagcompound.clone(); -@@ -136,6 +140,7 @@ public abstract class RegionFileCache implements AutoCloseable { - } - regionfile.setStatus(chunk.x, chunk.z, ChunkRegionLoader.getStatus(nbttagcompound)); // Paper - cache status on disk - } catch (RegionFile.ChunkTooLargeException e) { -+ new net.pl3x.purpur.event.ChunkTooLargeEvent(worldName, chunkX, chunkZ, true, true).callEvent(); // Purpur - printOversizedLog("ChunkTooLarge even after reduction. Trying in overzealous mode.", regionfile.file, chunkX, chunkZ); - // Eek, major fail. We have retry logic, so reduce threshholds and fall back - SIZE_THRESHOLD = OVERZEALOUS_THRESHOLD; -@@ -242,6 +247,7 @@ public abstract class RegionFileCache implements AutoCloseable { - DataInputStream datainputstream = regionfile.a(chunkcoordintpair); - // Paper start - if (regionfile.isOversized(chunkcoordintpair.x, chunkcoordintpair.z)) { -+ new net.pl3x.purpur.event.ChunkTooLargeEvent(worldName, chunkcoordintpair.x, chunkcoordintpair.z, false, false).callEvent(); // Purpur - printOversizedLog("Loading Oversized Chunk!", regionfile.file, chunkcoordintpair.x, chunkcoordintpair.z); - return readOversizedChunk(regionfile, chunkcoordintpair); - } --- -2.23.0.rc1 - diff --git a/patches/server/0038-Tulips-change-fox-type.patch b/patches/server/0037-Tulips-change-fox-type.patch similarity index 79% rename from patches/server/0038-Tulips-change-fox-type.patch rename to patches/server/0037-Tulips-change-fox-type.patch index 844be1db5..62c6e07d2 100644 --- a/patches/server/0038-Tulips-change-fox-type.patch +++ b/patches/server/0037-Tulips-change-fox-type.patch @@ -1,43 +1,42 @@ -From eacc9078b858179ba1d87f830e5c96a79b01f34d Mon Sep 17 00:00:00 2001 +From 67679f626cafda7a0341786a1b741f6c59aef6ff Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 13 Jul 2019 15:56:22 -0500 Subject: [PATCH] Tulips change fox type --- - .../java/net/minecraft/server/EntityFox.java | 27 +++++++++++++++++++ + .../java/net/minecraft/server/EntityFox.java | 26 +++++++++++++++++++ src/main/java/net/minecraft/server/Items.java | 4 +-- .../java/net/pl3x/purpur/PurpurConfig.java | 5 ++++ - 3 files changed, 34 insertions(+), 2 deletions(-) + 3 files changed, 33 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/minecraft/server/EntityFox.java b/src/main/java/net/minecraft/server/EntityFox.java -index 0a2540ae7..fbe78facd 100644 +index 66078b484c..0f6d9e3c4e 100644 --- a/src/main/java/net/minecraft/server/EntityFox.java +++ b/src/main/java/net/minecraft/server/EntityFox.java -@@ -232,6 +232,11 @@ public class EntityFox extends EntityAnimal { +@@ -228,6 +228,11 @@ public class EntityFox extends EntityAnimal { } private void initializePathFinderGoals() { + // Purpur start - do not add duplicate goals -+ this.targetSelector.a(this.bH); -+ this.targetSelector.a(this.bI); -+ this.targetSelector.a(this.bJ); ++ this.targetSelector.a(this.bE); ++ this.targetSelector.a(this.bF); ++ this.targetSelector.a(this.bG); + // Purpur end if (this.getFoxType() == EntityFox.Type.RED) { - this.targetSelector.a(4, this.bH); - this.targetSelector.a(4, this.bI); -@@ -264,6 +269,7 @@ public class EntityFox extends EntityAnimal { + this.targetSelector.a(4, this.bE); + this.targetSelector.a(4, this.bF); +@@ -260,6 +265,7 @@ public class EntityFox extends EntityAnimal { public void setFoxType(EntityFox.Type entityfox_type) { - this.datawatcher.set(EntityFox.bz, entityfox_type.c()); + this.datawatcher.set(EntityFox.bw, entityfox_type.c()); + initializePathFinderGoals(); // Purpur - fix API bug not updating pathfinders on type change } - private List ek() { -@@ -626,6 +632,27 @@ public class EntityFox extends EntityAnimal { + private List eE() { +@@ -605,6 +611,26 @@ public class EntityFox extends EntityAnimal { + return getRider() == null ? super.dp() : 0.5F; } - // Purpur start -+ @Override + public boolean a(EntityHuman entityhuman, EnumHand enumhand) { + if (net.pl3x.purpur.PurpurConfig.tulipsChangeFoxType) { + ItemStack itemstack = entityhuman.b(enumhand); @@ -59,10 +58,10 @@ index 0a2540ae7..fbe78facd 100644 + } + @Override - public float cX() { - return getRider() == null ? super.cX() : 0.5F; + public void onMount(EntityHuman entityhuman) { + setGoalTarget(null); diff --git a/src/main/java/net/minecraft/server/Items.java b/src/main/java/net/minecraft/server/Items.java -index 987297634..eed256349 100644 +index 282fbca4fc..b261da87b7 100644 --- a/src/main/java/net/minecraft/server/Items.java +++ b/src/main/java/net/minecraft/server/Items.java @@ -106,8 +106,8 @@ public class Items { @@ -77,7 +76,7 @@ index 987297634..eed256349 100644 public static final Item bd = a(Blocks.OXEYE_DAISY, CreativeModeTab.c); public static final Item be = a(Blocks.CORNFLOWER, CreativeModeTab.c); diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 8a875a576..ef00ce307 100644 +index 8a875a5764..ef00ce307e 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -174,6 +174,11 @@ public class PurpurConfig { @@ -93,5 +92,5 @@ index 8a875a576..ef00ce307 100644 public static boolean giantsHaveAI = true; private static void giantsSettings() { -- -2.23.0.rc1 +2.24.0.rc1 diff --git a/patches/server/0039-Mending-mends-most-damages-equipment-first.patch b/patches/server/0038-Mending-mends-most-damages-equipment-first.patch similarity index 91% rename from patches/server/0039-Mending-mends-most-damages-equipment-first.patch rename to patches/server/0038-Mending-mends-most-damages-equipment-first.patch index 2a3d60a09..6f1ed0d22 100644 --- a/patches/server/0039-Mending-mends-most-damages-equipment-first.patch +++ b/patches/server/0038-Mending-mends-most-damages-equipment-first.patch @@ -1,4 +1,4 @@ -From 946948609b0de44f1f30e6393d006861146baf51 Mon Sep 17 00:00:00 2001 +From 81f8ef12bb7e7269371fd4d472f97dcc40b0a074 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sun, 14 Jul 2019 19:52:47 -0500 Subject: [PATCH] Mending mends most damages equipment first @@ -11,10 +11,10 @@ Subject: [PATCH] Mending mends most damages equipment first 4 files changed, 39 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/minecraft/server/EnchantmentManager.java b/src/main/java/net/minecraft/server/EnchantmentManager.java -index 1d16919e6..69746fd1b 100644 +index fabc7a8dd7..5dc6b92f69 100644 --- a/src/main/java/net/minecraft/server/EnchantmentManager.java +++ b/src/main/java/net/minecraft/server/EnchantmentManager.java -@@ -241,9 +241,32 @@ public class EnchantmentManager { +@@ -246,9 +246,32 @@ public class EnchantmentManager { return getEnchantmentLevel(Enchantments.CHANNELING, itemstack) > 0; } @@ -49,12 +49,12 @@ index 1d16919e6..69746fd1b 100644 } @Nullable diff --git a/src/main/java/net/minecraft/server/EntityExperienceOrb.java b/src/main/java/net/minecraft/server/EntityExperienceOrb.java -index d8f23ff02..305504f0f 100644 +index 53c6c33892..462e0976a4 100644 --- a/src/main/java/net/minecraft/server/EntityExperienceOrb.java +++ b/src/main/java/net/minecraft/server/EntityExperienceOrb.java @@ -225,7 +225,7 @@ public class EntityExperienceOrb extends Entity { - if (this.d == 0 && entityhuman.bF == 0 && new com.destroystokyo.paper.event.player.PlayerPickupExperienceEvent(((EntityPlayer) entityhuman).getBukkitEntity(), (org.bukkit.entity.ExperienceOrb) this.getBukkitEntity()).callEvent()) { // Paper - entityhuman.bF = 2; + if (this.d == 0 && entityhuman.bC == 0 && new com.destroystokyo.paper.event.player.PlayerPickupExperienceEvent(((EntityPlayer) entityhuman).getBukkitEntity(), (org.bukkit.entity.ExperienceOrb) this.getBukkitEntity()).callEvent()) { // Paper + entityhuman.bC = 2; entityhuman.receive(this, 1); - Entry entry = EnchantmentManager.b(Enchantments.MENDING, (EntityLiving) entityhuman); + Entry entry = net.pl3x.purpur.PurpurConfig.useBetterMending ? EnchantmentManager.getMostDamagedEquipment(Enchantments.MENDING, entityhuman) : EnchantmentManager.b(Enchantments.MENDING, entityhuman); // Purpur @@ -62,10 +62,10 @@ index d8f23ff02..305504f0f 100644 if (entry != null) { ItemStack itemstack = (ItemStack) entry.getValue(); diff --git a/src/main/java/net/minecraft/server/ItemStack.java b/src/main/java/net/minecraft/server/ItemStack.java -index 0e164840f..41e889165 100644 +index df85f9df0a..222a8fdc3b 100644 --- a/src/main/java/net/minecraft/server/ItemStack.java +++ b/src/main/java/net/minecraft/server/ItemStack.java -@@ -364,10 +364,19 @@ public final class ItemStack { +@@ -369,10 +369,19 @@ public final class ItemStack { } } @@ -86,7 +86,7 @@ index 0e164840f..41e889165 100644 return this.tag == null ? 0 : this.tag.getInt("Damage"); } diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index c4f1ab8f2..0cdb4bbaf 100644 +index ef00ce307e..1a49dd4d80 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -151,6 +151,11 @@ public class PurpurConfig { @@ -102,5 +102,5 @@ index c4f1ab8f2..0cdb4bbaf 100644 private static void requireShiftToMount() { requireShiftToMount = getBoolean("settings.mobs.require-shift-to-mount", requireShiftToMount); -- -2.23.0.rc1 +2.24.0.rc1 diff --git a/patches/server/0040-Players-should-not-cram-to-death.patch b/patches/server/0039-Players-should-not-cram-to-death.patch similarity index 85% rename from patches/server/0040-Players-should-not-cram-to-death.patch rename to patches/server/0039-Players-should-not-cram-to-death.patch index 63c614c15..ced9b669c 100644 --- a/patches/server/0040-Players-should-not-cram-to-death.patch +++ b/patches/server/0039-Players-should-not-cram-to-death.patch @@ -1,4 +1,4 @@ -From c0f77cc38698e65711c583d78967a3d1cd3d8f6b Mon Sep 17 00:00:00 2001 +From 9cf29811f1f450baf81e489fc07542d0440d8deb Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sun, 21 Jul 2019 18:01:46 -0500 Subject: [PATCH] Players should not cram to death @@ -8,10 +8,10 @@ Subject: [PATCH] Players should not cram to death 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java -index d5f80be598..9a76d14a04 100644 +index 4ad6b48c25..563bf54f8b 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java -@@ -1081,7 +1081,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { +@@ -1064,7 +1064,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { @Override public boolean isInvulnerable(DamageSource damagesource) { diff --git a/patches/server/0041-Ladders-should-not-bypass-cramming-gamerule.patch b/patches/server/0040-Ladders-should-not-bypass-cramming-gamerule.patch similarity index 89% rename from patches/server/0041-Ladders-should-not-bypass-cramming-gamerule.patch rename to patches/server/0040-Ladders-should-not-bypass-cramming-gamerule.patch index 80048419b..e92f85416 100644 --- a/patches/server/0041-Ladders-should-not-bypass-cramming-gamerule.patch +++ b/patches/server/0040-Ladders-should-not-bypass-cramming-gamerule.patch @@ -1,4 +1,4 @@ -From 7c1721ffce29e4ae704f090e5f01c993f1117224 Mon Sep 17 00:00:00 2001 +From 0887ffc6d8fb6ed2bd1488b5ca8b99d0f3d1139e Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sun, 21 Jul 2019 18:06:20 -0500 Subject: [PATCH] Ladders should not bypass cramming gamerule @@ -17,10 +17,10 @@ Subject: [PATCH] Ladders should not bypass cramming gamerule 10 files changed, 26 insertions(+), 10 deletions(-) diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 457d973af8..468d6cc3e1 100644 +index de8e48b570..3d18c4eb60 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -1522,6 +1522,10 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1508,6 +1508,10 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke } public boolean isCollidable() { @@ -32,10 +32,10 @@ index 457d973af8..468d6cc3e1 100644 } diff --git a/src/main/java/net/minecraft/server/EntityArmorStand.java b/src/main/java/net/minecraft/server/EntityArmorStand.java -index 02595cfccd..8bd864cb39 100644 +index e6032e3edc..fc4e12d9af 100644 --- a/src/main/java/net/minecraft/server/EntityArmorStand.java +++ b/src/main/java/net/minecraft/server/EntityArmorStand.java -@@ -318,7 +318,7 @@ public class EntityArmorStand extends EntityLiving { +@@ -323,7 +323,7 @@ public class EntityArmorStand extends EntityLiving { } @Override @@ -45,7 +45,7 @@ index 02595cfccd..8bd864cb39 100644 } diff --git a/src/main/java/net/minecraft/server/EntityBat.java b/src/main/java/net/minecraft/server/EntityBat.java -index 8a8acf14ae..88b94505ca 100644 +index f83e35f5ba..ad070687b5 100644 --- a/src/main/java/net/minecraft/server/EntityBat.java +++ b/src/main/java/net/minecraft/server/EntityBat.java @@ -54,7 +54,7 @@ public class EntityBat extends EntityAmbient { @@ -58,7 +58,7 @@ index 8a8acf14ae..88b94505ca 100644 } diff --git a/src/main/java/net/minecraft/server/EntityBoat.java b/src/main/java/net/minecraft/server/EntityBoat.java -index 32b7f78050..b5bcd1f80d 100644 +index 6a1d32df6e..03624bbd6a 100644 --- a/src/main/java/net/minecraft/server/EntityBoat.java +++ b/src/main/java/net/minecraft/server/EntityBoat.java @@ -98,7 +98,7 @@ public class EntityBoat extends Entity { @@ -71,7 +71,7 @@ index 32b7f78050..b5bcd1f80d 100644 } diff --git a/src/main/java/net/minecraft/server/EntityHorseAbstract.java b/src/main/java/net/minecraft/server/EntityHorseAbstract.java -index 2177a4370e..05a5169c1d 100644 +index 5cd46c7475..c02d2afbe0 100644 --- a/src/main/java/net/minecraft/server/EntityHorseAbstract.java +++ b/src/main/java/net/minecraft/server/EntityHorseAbstract.java @@ -165,7 +165,7 @@ public abstract class EntityHorseAbstract extends EntityAnimal implements IInven @@ -84,10 +84,10 @@ index 2177a4370e..05a5169c1d 100644 } diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index 6cb7cb44ae..7000275d85 100644 +index 7a5a1a2d3e..7581316497 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java -@@ -2614,7 +2614,7 @@ public abstract class EntityLiving extends Entity { +@@ -2673,7 +2673,7 @@ public abstract class EntityLiving extends Entity { protected void doTick() {} protected void collideNearby() { @@ -96,7 +96,7 @@ index 6cb7cb44ae..7000275d85 100644 if (!list.isEmpty()) { int i = this.world.getGameRules().getInt(GameRules.MAX_ENTITY_CRAMMING); -@@ -2752,8 +2752,10 @@ public abstract class EntityLiving extends Entity { +@@ -2811,8 +2811,10 @@ public abstract class EntityLiving extends Entity { } @Override @@ -110,10 +110,10 @@ index 6cb7cb44ae..7000275d85 100644 @Override diff --git a/src/main/java/net/minecraft/server/EntityMinecartAbstract.java b/src/main/java/net/minecraft/server/EntityMinecartAbstract.java -index c5b4057c33..d5a28392ac 100644 +index 5abd8a1819..2aa8eb4071 100644 --- a/src/main/java/net/minecraft/server/EntityMinecartAbstract.java +++ b/src/main/java/net/minecraft/server/EntityMinecartAbstract.java -@@ -82,7 +82,7 @@ public abstract class EntityMinecartAbstract extends Entity { +@@ -106,7 +106,7 @@ public abstract class EntityMinecartAbstract extends Entity { } @Override @@ -123,10 +123,10 @@ index c5b4057c33..d5a28392ac 100644 } diff --git a/src/main/java/net/minecraft/server/EntityParrot.java b/src/main/java/net/minecraft/server/EntityParrot.java -index 0eeb110554..7c2c3119bb 100644 +index 04f0ef54b1..e21d075c61 100644 --- a/src/main/java/net/minecraft/server/EntityParrot.java +++ b/src/main/java/net/minecraft/server/EntityParrot.java -@@ -351,7 +351,7 @@ public class EntityParrot extends EntityPerchable implements EntityBird { +@@ -358,7 +358,7 @@ public class EntityParrot extends EntityPerchable implements EntityBird { } @Override @@ -136,7 +136,7 @@ index 0eeb110554..7c2c3119bb 100644 } diff --git a/src/main/java/net/minecraft/server/IEntitySelector.java b/src/main/java/net/minecraft/server/IEntitySelector.java -index 56739e6ed5..0bac6e4245 100644 +index a2d1ef3602..8d7273a38b 100644 --- a/src/main/java/net/minecraft/server/IEntitySelector.java +++ b/src/main/java/net/minecraft/server/IEntitySelector.java @@ -33,11 +33,16 @@ public final class IEntitySelector { @@ -155,7 +155,7 @@ index 56739e6ed5..0bac6e4245 100644 - if (!entity1.isCollidable()) { + if (!entity1.isCollidable(ignoreClimbing)) { // Purpur return false; - } else if (entity.world.isClientSide && (!(entity1 instanceof EntityHuman) || !((EntityHuman) entity1).dG())) { + } else if (entity.world.isClientSide && (!(entity1 instanceof EntityHuman) || !((EntityHuman) entity1).ec())) { return false; diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java index 1a49dd4d80..f7e1da705d 100644 diff --git a/patches/server/0042-Implement-a-hard-limit-for-pillager-outpost-spawns.patch b/patches/server/0041-Implement-a-hard-limit-for-pillager-outpost-spawns.patch similarity index 89% rename from patches/server/0042-Implement-a-hard-limit-for-pillager-outpost-spawns.patch rename to patches/server/0041-Implement-a-hard-limit-for-pillager-outpost-spawns.patch index 8c564bc4b..dce04dda1 100644 --- a/patches/server/0042-Implement-a-hard-limit-for-pillager-outpost-spawns.patch +++ b/patches/server/0041-Implement-a-hard-limit-for-pillager-outpost-spawns.patch @@ -1,4 +1,4 @@ -From 9384dee8945bc47a570c822953cb965ae9275caf Mon Sep 17 00:00:00 2001 +From fa2f33292c0e5798936fdd7779cfe403e22929ab Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Mon, 22 Jul 2019 14:24:26 -0500 Subject: [PATCH] Implement a hard limit for pillager outpost spawns @@ -9,10 +9,10 @@ Subject: [PATCH] Implement a hard limit for pillager outpost spawns 2 files changed, 6 insertions(+) diff --git a/src/main/java/net/minecraft/server/ChunkProviderGenerate.java b/src/main/java/net/minecraft/server/ChunkProviderGenerate.java -index b794a39d3..39159e34a 100644 +index 70f43c5159..9a56bd30e4 100644 --- a/src/main/java/net/minecraft/server/ChunkProviderGenerate.java +++ b/src/main/java/net/minecraft/server/ChunkProviderGenerate.java -@@ -142,6 +142,7 @@ public class ChunkProviderGenerate extends ChunkGeneratorAbstract Date: Mon, 22 Jul 2019 17:32:17 -0500 Subject: [PATCH] Implement configurable search radius for villagers to spawn @@ -10,19 +10,19 @@ Subject: [PATCH] Implement configurable search radius for villagers to spawn 2 files changed, 8 insertions(+) diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java -index 7f747fac9..830d93a85 100644 +index 7ea55c9393..e5361be33a 100644 --- a/src/main/java/net/minecraft/server/EntityVillager.java +++ b/src/main/java/net/minecraft/server/EntityVillager.java -@@ -886,6 +886,7 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation +@@ -871,6 +871,7 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation @Nullable - private EntityIronGolem eG() { + private EntityIronGolem fb() { + if (world.purpurConfig.radiusVillagerIronGolemSpawns > 0 && world.a(EntityIronGolem.class, getBoundingBox().grow(world.purpurConfig.radiusVillagerIronGolemSpawns)).size() > world.purpurConfig.limitVillagerIronGolemSpawns) return null; // Purpur BlockPosition blockposition = new BlockPosition(this); int i = 0; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index a934099d8..8d01cdc8e 100644 +index a934099d81..8d01cdc8e3 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -123,4 +123,11 @@ public class PurpurWorldConfig { @@ -38,5 +38,5 @@ index a934099d8..8d01cdc8e 100644 + } } -- -2.23.0.rc1 +2.24.0.rc1 diff --git a/patches/server/0044-Implement-lagging-threshold.patch b/patches/server/0043-Implement-lagging-threshold.patch similarity index 89% rename from patches/server/0044-Implement-lagging-threshold.patch rename to patches/server/0043-Implement-lagging-threshold.patch index 5bbb5fad6..b3f8b4df3 100644 --- a/patches/server/0044-Implement-lagging-threshold.patch +++ b/patches/server/0043-Implement-lagging-threshold.patch @@ -1,4 +1,4 @@ -From f91fe361c6bb589031f8760abbb38909ee0b25a9 Mon Sep 17 00:00:00 2001 +From c3f604dc22a1eba909826324190c3b1d7b7d34a6 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Tue, 23 Jul 2019 10:07:16 -0500 Subject: [PATCH] Implement lagging threshold @@ -10,10 +10,10 @@ Subject: [PATCH] Implement lagging threshold 3 files changed, 12 insertions(+) diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 1b6a9623cf..ab596e74e3 100644 +index f14d1b160a..cf807e825f 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -175,6 +175,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant Date: Tue, 23 Jul 2019 08:28:21 -0500 Subject: [PATCH] Implement configurable villager brain ticks @@ -9,7 +9,7 @@ Subject: [PATCH] Implement configurable villager brain ticks 2 files changed, 13 insertions(+) diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java -index 830d93a85..d1d62a900 100644 +index e5361be33a..12da4a22b8 100644 --- a/src/main/java/net/minecraft/server/EntityVillager.java +++ b/src/main/java/net/minecraft/server/EntityVillager.java @@ -53,6 +53,7 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation @@ -23,7 +23,7 @@ index 830d93a85..d1d62a900 100644 @@ -66,6 +67,7 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation this.setCanPickupLoot(true); this.setVillagerData(this.getVillagerData().withType(villagertype).withProfession(VillagerProfession.NONE)); - this.br = this.a(new Dynamic(DynamicOpsNBT.a, new NBTTagCompound())); + this.bo = this.a(new Dynamic(DynamicOpsNBT.a, new NBTTagCompound())); + brainTickOffset = getRandom().nextInt(100); // Purpur } @@ -38,9 +38,9 @@ index 830d93a85..d1d62a900 100644 + // Purpur end this.getBehaviorController().a((WorldServer) this.world, this); // CraftBukkit - decompile error this.world.getMethodProfiler().exit(); - if (!this.dY() && this.bE > 0) { + if (!this.et() && this.bB > 0) { diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 48d4f1f5a..44232346e 100644 +index 48d4f1f5aa..44232346e1 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -232,6 +232,13 @@ public class PurpurConfig { @@ -58,5 +58,5 @@ index 48d4f1f5a..44232346e 100644 private static void zombieHorseSettings() { zombieHorseSpawnChance = (float) getDouble("settings.mobs.zombie_horse.spawn-chance", zombieHorseSpawnChance); -- -2.23.0.rc1 +2.24.0.rc1 diff --git a/patches/server/0046-Implement-elytra-settings.patch b/patches/server/0045-Implement-elytra-settings.patch similarity index 91% rename from patches/server/0046-Implement-elytra-settings.patch rename to patches/server/0045-Implement-elytra-settings.patch index 55a469cb2..cbd198aec 100644 --- a/patches/server/0046-Implement-elytra-settings.patch +++ b/patches/server/0045-Implement-elytra-settings.patch @@ -1,4 +1,4 @@ -From 50ee92ba6f2975ede6a73c18885ae44c44d4227c Mon Sep 17 00:00:00 2001 +From eba616d0174d1b56458799b7944350a89fffc7d4 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Thu, 25 Jul 2019 18:07:37 -0500 Subject: [PATCH] Implement elytra settings @@ -13,13 +13,13 @@ Subject: [PATCH] Implement elytra settings 6 files changed, 50 insertions(+), 4 deletions(-) diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index 7000275d85..b5f0b01c36 100644 +index 7581316497..7d424040cc 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java -@@ -2593,9 +2593,16 @@ public abstract class EntityLiving extends Entity { +@@ -2652,9 +2652,16 @@ public abstract class EntityLiving extends Entity { if (itemstack.getItem() == Items.ELYTRA && ItemElytra.e(itemstack)) { flag = true; - if (!this.world.isClientSide && (this.bp + 1) % 20 == 0) { + if (!this.world.isClientSide && (this.bm + 1) % 20 == 0) { - itemstack.damage(1, this, (entityliving) -> { - entityliving.c(EnumItemSlot.CHEST); - }); @@ -36,7 +36,7 @@ index 7000275d85..b5f0b01c36 100644 } } else { flag = false; -@@ -3241,6 +3248,7 @@ public abstract class EntityLiving extends Entity { +@@ -3317,6 +3324,7 @@ public abstract class EntityLiving extends Entity { } } @@ -45,10 +45,10 @@ index 7000275d85..b5f0b01c36 100644 this.world.broadcastEntityEffect(this, d(enumitemslot)); } diff --git a/src/main/java/net/minecraft/server/ItemFireworks.java b/src/main/java/net/minecraft/server/ItemFireworks.java -index 9e86ef4ce2..832cea636b 100644 +index a43e52889f..cc8fbccd16 100644 --- a/src/main/java/net/minecraft/server/ItemFireworks.java +++ b/src/main/java/net/minecraft/server/ItemFireworks.java -@@ -38,6 +38,14 @@ public class ItemFireworks extends Item { +@@ -39,6 +39,14 @@ public class ItemFireworks extends Item { // Paper start com.destroystokyo.paper.event.player.PlayerElytraBoostEvent event = new com.destroystokyo.paper.event.player.PlayerElytraBoostEvent((org.bukkit.entity.Player) entityhuman.getBukkitEntity(), org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(itemstack), (org.bukkit.entity.Firework) entityfireworks.getBukkitEntity()); if (event.callEvent() && world.addEntity(entityfireworks)) { @@ -64,10 +64,10 @@ index 9e86ef4ce2..832cea636b 100644 itemstack.subtract(1); } else ((EntityPlayer) entityhuman).getBukkitEntity().updateInventory(); diff --git a/src/main/java/net/minecraft/server/ItemStack.java b/src/main/java/net/minecraft/server/ItemStack.java -index 41e8891651..43e89b99b1 100644 +index 222a8fdc3b..5379d0e0d8 100644 --- a/src/main/java/net/minecraft/server/ItemStack.java +++ b/src/main/java/net/minecraft/server/ItemStack.java -@@ -402,7 +402,7 @@ public final class ItemStack { +@@ -401,7 +401,7 @@ public final class ItemStack { int j; if (i > 0) { @@ -76,7 +76,7 @@ index 41e8891651..43e89b99b1 100644 int k = 0; for (int l = 0; j > 0 && l < i; ++l) { -@@ -448,6 +448,12 @@ public final class ItemStack { +@@ -447,6 +447,12 @@ public final class ItemStack { if (this.isDamaged(i, t0.getRandom(), t0 instanceof EntityPlayer ? (EntityPlayer) t0 : null)) { consumer.accept(t0); Item item = this.getItem(); @@ -90,7 +90,7 @@ index 41e8891651..43e89b99b1 100644 if (this.count == 1 && t0 instanceof EntityHuman) { org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerItemBreakEvent((EntityHuman) t0, this); diff --git a/src/main/java/net/minecraft/server/ItemTrident.java b/src/main/java/net/minecraft/server/ItemTrident.java -index c408157368..28f9f6e405 100644 +index b8c36e9b10..cff48fafa0 100644 --- a/src/main/java/net/minecraft/server/ItemTrident.java +++ b/src/main/java/net/minecraft/server/ItemTrident.java @@ -93,6 +93,16 @@ public class ItemTrident extends Item { @@ -107,14 +107,14 @@ index c408157368..28f9f6e405 100644 + } + // Purpur end + - entityhuman.f((double) f2, (double) f3, (double) f4); - entityhuman.q(20); + entityhuman.h((double) f2, (double) f3, (double) f4); + entityhuman.r(20); if (entityhuman.onGround) { diff --git a/src/main/java/net/minecraft/server/Vec3D.java b/src/main/java/net/minecraft/server/Vec3D.java -index d2eb861af2..b89f9fe7b1 100644 +index 0c7f094e54..dfa2a863a0 100644 --- a/src/main/java/net/minecraft/server/Vec3D.java +++ b/src/main/java/net/minecraft/server/Vec3D.java -@@ -93,6 +93,7 @@ public class Vec3D implements IPosition { +@@ -97,6 +97,7 @@ public class Vec3D implements IPosition { return (double) MathHelper.sqrt(this.x * this.x + this.y * this.y + this.z * this.z); } diff --git a/patches/server/0047-Add-5-second-tps-average-in-tps.patch b/patches/server/0046-Add-5-second-tps-average-in-tps.patch similarity index 91% rename from patches/server/0047-Add-5-second-tps-average-in-tps.patch rename to patches/server/0046-Add-5-second-tps-average-in-tps.patch index 36b02d5d7..4581d9c40 100644 --- a/patches/server/0047-Add-5-second-tps-average-in-tps.patch +++ b/patches/server/0046-Add-5-second-tps-average-in-tps.patch @@ -1,4 +1,4 @@ -From 57e8301289f665aaf55793cb18208e553ef361da Mon Sep 17 00:00:00 2001 +From 3e5cdd0aa4915e7bbcdd16870984b5a8de04217b Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sun, 28 Jul 2019 01:27:37 -0500 Subject: [PATCH] Add 5 second tps average in /tps @@ -10,10 +10,10 @@ Subject: [PATCH] Add 5 second tps average in /tps 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index ab596e74e3..093457ed7b 100644 +index cf807e825f..db4187e24a 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -174,7 +174,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant Date: Mon, 11 Mar 2019 12:18:29 -0700 Subject: [PATCH] Rate limit packets incoming from players @@ -12,10 +12,10 @@ Subject: [PATCH] Rate limit packets incoming from players create mode 100644 src/main/java/com/destroystokyo/paper/network/PacketLimiter.java diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java -index 4362720ba3..1fcb815b2e 100644 +index d886f1d145..a60b825a0a 100644 --- a/src/main/java/com/destroystokyo/paper/PaperConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java -@@ -392,6 +392,18 @@ public class PaperConfig { +@@ -368,6 +368,18 @@ public class PaperConfig { maxBookTotalSizeMultiplier = getDouble("settings.book-size.total-multiplier", maxBookTotalSizeMultiplier); } @@ -194,7 +194,7 @@ index 96a785af27..ff8b5e76f3 100644 } diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index afc1a5f858..30595523e6 100644 +index 925824c349..cdc81ff1e2 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java @@ -140,6 +140,60 @@ public class PlayerConnection implements PacketListenerPlayIn { diff --git a/patches/server/0049-Don-t-recalculate-permissions-for-players-on-world-c.patch b/patches/server/0048-Don-t-recalculate-permissions-for-players-on-world-c.patch similarity index 90% rename from patches/server/0049-Don-t-recalculate-permissions-for-players-on-world-c.patch rename to patches/server/0048-Don-t-recalculate-permissions-for-players-on-world-c.patch index 9a610b00c..44b15d6e0 100644 --- a/patches/server/0049-Don-t-recalculate-permissions-for-players-on-world-c.patch +++ b/patches/server/0048-Don-t-recalculate-permissions-for-players-on-world-c.patch @@ -1,4 +1,4 @@ -From a5b5ba6ffa2c7eea71d8cca1f357823667d0dfae Mon Sep 17 00:00:00 2001 +From 28543aa9576c88c469bb774a3b6a0783f1cdad3f Mon Sep 17 00:00:00 2001 From: Tom Date: Fri, 12 Jul 2019 07:59:35 -0500 Subject: [PATCH] Don't recalculate permissions for players on world change @@ -9,10 +9,10 @@ Subject: [PATCH] Don't recalculate permissions for players on world change 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index 4ba349e1a3..7a5bd0857e 100644 +index 7b79ee4fe5..6398c367f9 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java -@@ -711,7 +711,7 @@ public abstract class PlayerList { +@@ -712,7 +712,7 @@ public abstract class PlayerList { entityplayer1.playerConnection.sendPacket(new PacketPlayOutServerDifficulty(worlddata.getDifficulty(), worlddata.isDifficultyLocked())); entityplayer1.playerConnection.sendPacket(new PacketPlayOutExperience(entityplayer1.exp, entityplayer1.expTotal, entityplayer1.expLevel)); this.a(entityplayer1, worldserver); @@ -21,14 +21,14 @@ index 4ba349e1a3..7a5bd0857e 100644 if (!entityplayer.playerConnection.isDisconnected()) { worldserver.addPlayerRespawn(entityplayer1); this.players.add(entityplayer1); -@@ -754,6 +754,7 @@ public abstract class PlayerList { +@@ -755,6 +755,7 @@ public abstract class PlayerList { return entityplayer1; } + public void updatePermissions(EntityPlayer entityPlayer) { d(entityPlayer); } // Purpur public void d(EntityPlayer entityplayer) { GameProfile gameprofile = entityplayer.getProfile(); - int i = this.server.a(gameprofile); + int i = this.server.b(gameprofile); diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java index 44232346e1..22df3577cc 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java diff --git a/patches/server/0050-Add-blacklist-option-for-grindstone.patch b/patches/server/0049-Add-blacklist-option-for-grindstone.patch similarity index 97% rename from patches/server/0050-Add-blacklist-option-for-grindstone.patch rename to patches/server/0049-Add-blacklist-option-for-grindstone.patch index 177a76b37..cd7f1ee9a 100644 --- a/patches/server/0050-Add-blacklist-option-for-grindstone.patch +++ b/patches/server/0049-Add-blacklist-option-for-grindstone.patch @@ -1,4 +1,4 @@ -From 5fde04fa7eb04056763689b50cd583be287fd33c Mon Sep 17 00:00:00 2001 +From a11da53e9d020ff628e1dc4d5bcb7ace653776cd Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Thu, 1 Aug 2019 19:15:12 -0500 Subject: [PATCH] Add blacklist option for grindstone @@ -51,10 +51,10 @@ index ed88e208d0..0a5abd2e10 100644 Map map = EnchantmentManager.a(itemstack); Iterator iterator = map.entrySet().iterator(); diff --git a/src/main/java/net/minecraft/server/ItemStack.java b/src/main/java/net/minecraft/server/ItemStack.java -index 43e89b99b1..e538ba3991 100644 +index 5379d0e0d8..2ab8b9a3d0 100644 --- a/src/main/java/net/minecraft/server/ItemStack.java +++ b/src/main/java/net/minecraft/server/ItemStack.java -@@ -538,6 +538,12 @@ public final class ItemStack { +@@ -541,6 +541,12 @@ public final class ItemStack { return !this.e() ? this.doMaterialsMatch(itemstack) : !itemstack.isEmpty() && this.getItem() == itemstack.getItem(); } diff --git a/patches/server/0051-Implement-AFK-API.patch b/patches/server/0050-Implement-AFK-API.patch similarity index 91% rename from patches/server/0051-Implement-AFK-API.patch rename to patches/server/0050-Implement-AFK-API.patch index 447d4d4d5..699316f92 100644 --- a/patches/server/0051-Implement-AFK-API.patch +++ b/patches/server/0050-Implement-AFK-API.patch @@ -1,4 +1,4 @@ -From cffd71583a96d5d1517e9112eafe5db20974bc3d Mon Sep 17 00:00:00 2001 +From 7db14bbe9478f1d5e6a9fcc77e865ee4772cd1d3 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Thu, 8 Aug 2019 15:29:15 -0500 Subject: [PATCH] Implement AFK API @@ -17,19 +17,19 @@ Subject: [PATCH] Implement AFK API 10 files changed, 113 insertions(+), 24 deletions(-) diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 468d6cc3e1..5377dc1583 100644 +index 3d18c4eb60..95b580e80b 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -1396,6 +1396,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1374,6 +1374,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke return MathHelper.c(f * f + f1 * f1 + f2 * f2); } -+ public double getDistanceSq(double x, double y, double z) { return e(x, y, z); } // Purpur - OBFHELPER - public double e(double d0, double d1, double d2) { - double d3 = this.locX - d0; - double d4 = this.locY - d1; ++ public double getDistanceSq(double x, double y, double z) { return g(x, y, z); } // Purpur - OBFHELPER + public double g(double d0, double d1, double d2) { + double d3 = this.locX() - d0; + double d4 = this.locY() - d1; diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java -index 8b5ceec8d8..3610611299 100644 +index 886fbb7dff..2ec3e660b3 100644 --- a/src/main/java/net/minecraft/server/EntityHuman.java +++ b/src/main/java/net/minecraft/server/EntityHuman.java @@ -86,6 +86,15 @@ public abstract class EntityHuman extends EntityLiving { @@ -47,15 +47,15 @@ index 8b5ceec8d8..3610611299 100644 + public EntityHuman(World world, GameProfile gameprofile) { super(EntityTypes.PLAYER, world); - this.bY = ItemStack.a; + this.bV = ItemStack.a; diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java -index 9a76d14a04..d88fa128c7 100644 +index 563bf54f8b..d58c91cfb7 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java -@@ -1607,8 +1607,51 @@ public class EntityPlayer extends EntityHuman implements ICrafting { +@@ -1581,8 +1581,51 @@ public class EntityPlayer extends EntityHuman implements ICrafting { public void resetIdleTimer() { - this.cm = SystemUtils.getMonotonicMillis(); + this.cj = SystemUtils.getMonotonicMillis(); + setAfk(false); // Purpur } @@ -105,7 +105,7 @@ index 9a76d14a04..d88fa128c7 100644 return this.serverStatisticManager; } diff --git a/src/main/java/net/minecraft/server/IEntityAccess.java b/src/main/java/net/minecraft/server/IEntityAccess.java -index 9aaa75e959..70fe852791 100644 +index 8b36252ae1..5e2d56d5de 100644 --- a/src/main/java/net/minecraft/server/IEntityAccess.java +++ b/src/main/java/net/minecraft/server/IEntityAccess.java @@ -116,28 +116,18 @@ public interface IEntityAccess { @@ -130,7 +130,7 @@ index 9aaa75e959..70fe852791 100644 - } while (!IEntitySelector.f.test(entityhuman)); - } while (!IEntitySelector.b.test(entityhuman)); - -- d4 = entityhuman.e(d0, d1, d2); +- d4 = entityhuman.g(d0, d1, d2); - } while (d3 >= 0.0D && d4 >= d3 * d3); - - return true; @@ -150,7 +150,7 @@ index 9aaa75e959..70fe852791 100644 @Nullable diff --git a/src/main/java/net/minecraft/server/IEntitySelector.java b/src/main/java/net/minecraft/server/IEntitySelector.java -index 0bac6e4245..df79e4af9d 100644 +index 8d7273a38b..71c61dc45e 100644 --- a/src/main/java/net/minecraft/server/IEntitySelector.java +++ b/src/main/java/net/minecraft/server/IEntitySelector.java @@ -7,6 +7,7 @@ import javax.annotation.Nullable; @@ -170,10 +170,10 @@ index 0bac6e4245..df79e4af9d 100644 public static Predicate a(double d0, double d1, double d2, double d3) { double d4 = d3 * d3; diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index 30595523e6..6f584d515f 100644 +index cdc81ff1e2..2e74e46d5d 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java -@@ -274,6 +274,12 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -277,6 +277,12 @@ public class PlayerConnection implements PacketListenerPlayIn { } if (this.player.F() > 0L && this.minecraftServer.getIdleTimeout() > 0 && SystemUtils.getMonotonicMillis() - this.player.F() > (long) (this.minecraftServer.getIdleTimeout() * 1000 * 60)) { @@ -186,7 +186,7 @@ index 30595523e6..6f584d515f 100644 this.player.resetIdleTimer(); // CraftBukkit - SPIGOT-854 this.disconnect(new ChatMessage("multiplayer.disconnect.idling", new Object[0])); } -@@ -490,6 +496,8 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -493,6 +499,8 @@ public class PlayerConnection implements PacketListenerPlayIn { this.lastYaw = to.getYaw(); this.lastPitch = to.getPitch(); @@ -195,7 +195,7 @@ index 30595523e6..6f584d515f 100644 // Skip the first time we do this if (true) { // Spigot - don't skip any move events Location oldTo = to.clone(); -@@ -1150,6 +1158,8 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -1162,6 +1170,8 @@ public class PlayerConnection implements PacketListenerPlayIn { this.lastYaw = to.getYaw(); this.lastPitch = to.getPitch(); @@ -205,10 +205,10 @@ index 30595523e6..6f584d515f 100644 if (from.getX() != Double.MAX_VALUE) { Location oldTo = to.clone(); diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index 62e938a78f..5e51dbf172 100644 +index 372b48fb2d..f6431f1de6 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java -@@ -359,7 +359,7 @@ public class WorldServer extends World { +@@ -360,7 +360,7 @@ public class WorldServer extends World { } if (this.C && this.players.stream().noneMatch((entityplayer) -> { @@ -217,7 +217,7 @@ index 62e938a78f..5e51dbf172 100644 })) { this.C = false; if (this.getGameRules().getBoolean(GameRules.DO_DAYLIGHT_CYCLE)) { -@@ -626,7 +626,7 @@ public class WorldServer extends World { +@@ -631,7 +631,7 @@ public class WorldServer extends World { while (iterator.hasNext()) { EntityPlayer entityplayer = (EntityPlayer) iterator.next(); @@ -261,10 +261,10 @@ index 059cf85f4f..0764be9d1a 100644 public double elytraDamageMultiplyBySpeed = 0; public boolean elytraIgnoreUnbreaking = false; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index e920545df1..c098de3152 100644 +index 712056cad1..c12d52e5df 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2088,4 +2088,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2063,4 +2063,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player { return spigot; } // Spigot end @@ -287,7 +287,7 @@ index e920545df1..c098de3152 100644 + // Purpur end } diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java -index 92601c581c..185717c804 100644 +index f86404f83a..5eeeb770e3 100644 --- a/src/main/java/org/spigotmc/ActivationRange.java +++ b/src/main/java/org/spigotmc/ActivationRange.java @@ -128,6 +128,7 @@ public class ActivationRange diff --git a/patches/server/0052-Advancement-stuffs.patch b/patches/server/0051-Advancement-stuffs.patch similarity index 92% rename from patches/server/0052-Advancement-stuffs.patch rename to patches/server/0051-Advancement-stuffs.patch index b37579573..dc52953e7 100644 --- a/patches/server/0052-Advancement-stuffs.patch +++ b/patches/server/0051-Advancement-stuffs.patch @@ -1,4 +1,4 @@ -From 3cd2e9d59270365d1315c92b17c8a0c5c454184f Mon Sep 17 00:00:00 2001 +From 1ab6786f1a7c38e228214f8c10e02a6376329b1e Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sun, 11 Aug 2019 22:25:33 -0500 Subject: [PATCH] Advancement stuffs diff --git a/patches/server/0053-Add-option-for-zombies-targetting-turtle-eggs.patch b/patches/server/0052-Add-option-for-zombies-targetting-turtle-eggs.patch similarity index 95% rename from patches/server/0053-Add-option-for-zombies-targetting-turtle-eggs.patch rename to patches/server/0052-Add-option-for-zombies-targetting-turtle-eggs.patch index 01943d524..4d86ddfd4 100644 --- a/patches/server/0053-Add-option-for-zombies-targetting-turtle-eggs.patch +++ b/patches/server/0052-Add-option-for-zombies-targetting-turtle-eggs.patch @@ -1,4 +1,4 @@ -From 06f5f8eca842c388f4338ceab0e667231a9c348f Mon Sep 17 00:00:00 2001 +From a306a2d8ef846c4944889f35b3288afab222ad28 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 17 Aug 2019 15:27:09 -0500 Subject: [PATCH] Add option for zombies targetting turtle eggs @@ -9,7 +9,7 @@ Subject: [PATCH] Add option for zombies targetting turtle eggs 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/minecraft/server/EntityZombie.java b/src/main/java/net/minecraft/server/EntityZombie.java -index 61c427f18b..51191b1195 100644 +index 8f9d252c1e..47248cc45e 100644 --- a/src/main/java/net/minecraft/server/EntityZombie.java +++ b/src/main/java/net/minecraft/server/EntityZombie.java @@ -48,7 +48,7 @@ public class EntityZombie extends EntityMonster { diff --git a/patches/server/0054-Implement-bamboo-growth-settings.patch b/patches/server/0053-Implement-bamboo-growth-settings.patch similarity index 79% rename from patches/server/0054-Implement-bamboo-growth-settings.patch rename to patches/server/0053-Implement-bamboo-growth-settings.patch index d61852872..571f3e24b 100644 --- a/patches/server/0054-Implement-bamboo-growth-settings.patch +++ b/patches/server/0053-Implement-bamboo-growth-settings.patch @@ -1,4 +1,4 @@ -From 7154ef7c0bb8c9196c77d0913828ac949f0754c9 Mon Sep 17 00:00:00 2001 +From 32bf5f46921685a320bdae7baebf60ab446c963d Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Fri, 23 Aug 2019 20:57:29 -0500 Subject: [PATCH] Implement bamboo growth settings @@ -9,16 +9,16 @@ Subject: [PATCH] Implement bamboo growth settings 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/main/java/net/minecraft/server/BlockBamboo.java b/src/main/java/net/minecraft/server/BlockBamboo.java -index 3a9c3b54a9..f0401c3e72 100644 +index 02c548dd9c..e4693fb27d 100644 --- a/src/main/java/net/minecraft/server/BlockBamboo.java +++ b/src/main/java/net/minecraft/server/BlockBamboo.java @@ -89,7 +89,7 @@ public class BlockBamboo extends Block implements IBlockFragilePlantElement { - if (world.random.nextInt(Math.max(1, (int) (100.0F / world.spigotConfig.bambooModifier) * 3)) == 0 && world.isEmpty(blockposition.up()) && world.getLightLevel(blockposition.up(), 0) >= 9) { // Spigot - int i = this.b((IBlockAccess) world, blockposition) + 1; + if (random.nextInt(Math.max(1, (int) (100.0F / worldserver.spigotConfig.bambooModifier) * 3)) == 0 && worldserver.isEmpty(blockposition.up()) && worldserver.getLightLevel(blockposition.up(), 0) >= 9) { // Spigot + int i = this.b(worldserver, blockposition) + 1; - if (i < 16) { -+ if (i < world.purpurConfig.bambooMaxHeight) { // Purpur - this.a(iblockdata, world, blockposition, random, i); ++ if (i < worldserver.purpurConfig.bambooMaxHeight) { // Purpur + this.a(iblockdata, (World) worldserver, blockposition, random, i); } } @@ -120,7 +120,7 @@ public class BlockBamboo extends Block implements IBlockFragilePlantElement { @@ -32,14 +32,14 @@ index 3a9c3b54a9..f0401c3e72 100644 @Override @@ -139,7 +139,7 @@ public class BlockBamboo extends Block implements IBlockFragilePlantElement { BlockPosition blockposition1 = blockposition.up(i); - IBlockData iblockdata1 = world.getType(blockposition1); + IBlockData iblockdata1 = worldserver.getType(blockposition1); -- if (k >= 16 || (Integer) iblockdata1.get(BlockBamboo.f) == 1 || !world.isEmpty(blockposition1.up())) { -+ if (k >= world.purpurConfig.bambooMaxHeight || (Integer) iblockdata1.get(BlockBamboo.f) == 1 || !world.isEmpty(blockposition1.up())) { // Purpur +- if (k >= 16 || (Integer) iblockdata1.get(BlockBamboo.f) == 1 || !worldserver.isEmpty(blockposition1.up())) { ++ if (k >= worldserver.purpurConfig.bambooMaxHeight || (Integer) iblockdata1.get(BlockBamboo.f) == 1 || !worldserver.isEmpty(blockposition1.up())) { // Purpur return; } -@@ -185,7 +185,7 @@ public class BlockBamboo extends Block implements IBlockFragilePlantElement { +@@ -180,7 +180,7 @@ public class BlockBamboo extends Block implements IBlockFragilePlantElement { } int j = (Integer) iblockdata.get(BlockBamboo.d) != 1 && iblockdata2.getBlock() != Blocks.BAMBOO ? 0 : 1; @@ -48,7 +48,7 @@ index 3a9c3b54a9..f0401c3e72 100644 // CraftBukkit start if (org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockSpreadEvent(world, blockposition, blockposition.up(), (IBlockData) ((IBlockData) ((IBlockData) this.getBlockData().set(BlockBamboo.d, j)).set(BlockBamboo.e, blockpropertybamboosize)).set(BlockBamboo.f, k), 3)) { -@@ -200,7 +200,7 @@ public class BlockBamboo extends Block implements IBlockFragilePlantElement { +@@ -195,7 +195,7 @@ public class BlockBamboo extends Block implements IBlockFragilePlantElement { protected int a(IBlockAccess iblockaccess, BlockPosition blockposition) { int i; @@ -57,7 +57,7 @@ index 3a9c3b54a9..f0401c3e72 100644 ; } -@@ -210,7 +210,7 @@ public class BlockBamboo extends Block implements IBlockFragilePlantElement { +@@ -205,7 +205,7 @@ public class BlockBamboo extends Block implements IBlockFragilePlantElement { protected int b(IBlockAccess iblockaccess, BlockPosition blockposition) { int i; diff --git a/patches/server/0055-Option-for-slimes-not-pushable.patch b/patches/server/0054-Option-for-slimes-not-pushable.patch similarity index 93% rename from patches/server/0055-Option-for-slimes-not-pushable.patch rename to patches/server/0054-Option-for-slimes-not-pushable.patch index fbc3a1c4f..28dbe658c 100644 --- a/patches/server/0055-Option-for-slimes-not-pushable.patch +++ b/patches/server/0054-Option-for-slimes-not-pushable.patch @@ -1,4 +1,4 @@ -From 5b63c689aa1542e570b8d4e8ad03059fbd67d043 Mon Sep 17 00:00:00 2001 +From c5da017d13973de5d642a4b972296dbcdcf4ce59 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Fri, 23 Aug 2019 21:56:31 -0500 Subject: [PATCH] Option for slimes not pushable @@ -10,10 +10,10 @@ Subject: [PATCH] Option for slimes not pushable 3 files changed, 32 insertions(+) diff --git a/src/main/java/net/minecraft/server/BlockPiston.java b/src/main/java/net/minecraft/server/BlockPiston.java -index de804348f3..52cc35d0a7 100644 +index b29525c40d..3a47df79f3 100644 --- a/src/main/java/net/minecraft/server/BlockPiston.java +++ b/src/main/java/net/minecraft/server/BlockPiston.java -@@ -9,6 +9,8 @@ import java.util.Set; +@@ -10,6 +10,8 @@ import java.util.Map.Entry; // CraftBukkit start import com.google.common.collect.ImmutableList; import java.util.AbstractList; @@ -22,7 +22,7 @@ index de804348f3..52cc35d0a7 100644 import org.bukkit.craftbukkit.block.CraftBlock; import org.bukkit.event.block.BlockPistonRetractEvent; import org.bukkit.event.block.BlockPistonExtendEvent; -@@ -329,6 +331,16 @@ public class BlockPiston extends BlockDirectional { +@@ -332,6 +334,16 @@ public class BlockPiston extends BlockDirectional { } else { event = new BlockPistonRetractEvent(bblock, blocks, CraftBlock.notchToBlockFace(enumdirection1)); } @@ -40,7 +40,7 @@ index de804348f3..52cc35d0a7 100644 if (event.isCancelled()) { diff --git a/src/main/java/net/minecraft/server/BlockSlime.java b/src/main/java/net/minecraft/server/BlockSlime.java -index fd54958f65..3ee8332c95 100644 +index 01f32659d9..52ab86f0b1 100644 --- a/src/main/java/net/minecraft/server/BlockSlime.java +++ b/src/main/java/net/minecraft/server/BlockSlime.java @@ -49,4 +49,11 @@ public class BlockSlime extends BlockHalfTransparent { diff --git a/patches/server/0056-Ender-Dragon-always-drops-full-exp.patch b/patches/server/0055-Ender-Dragon-always-drops-full-exp.patch similarity index 87% rename from patches/server/0056-Ender-Dragon-always-drops-full-exp.patch rename to patches/server/0055-Ender-Dragon-always-drops-full-exp.patch index fa5a44448..3a61e9dae 100644 --- a/patches/server/0056-Ender-Dragon-always-drops-full-exp.patch +++ b/patches/server/0055-Ender-Dragon-always-drops-full-exp.patch @@ -1,4 +1,4 @@ -From d6e9fe4a886c5b87aa18d0c6653cc637f1a0d546 Mon Sep 17 00:00:00 2001 +From abf73c2baed8515f9e2d6d9664b859685c42ffed Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 24 Aug 2019 14:42:54 -0500 Subject: [PATCH] Ender Dragon always drops full exp @@ -9,15 +9,15 @@ Subject: [PATCH] Ender Dragon always drops full exp 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/minecraft/server/EntityEnderDragon.java b/src/main/java/net/minecraft/server/EntityEnderDragon.java -index 6a6367a2e1..578676fec9 100644 +index 5935ecb529..c7db47ae93 100644 --- a/src/main/java/net/minecraft/server/EntityEnderDragon.java +++ b/src/main/java/net/minecraft/server/EntityEnderDragon.java -@@ -558,7 +558,7 @@ public class EntityEnderDragon extends EntityInsentient implements IMonster { +@@ -567,7 +567,7 @@ public class EntityEnderDragon extends EntityInsentient implements IMonster { boolean flag = this.world.getGameRules().getBoolean(GameRules.DO_MOB_LOOT); short short0 = 500; -- if (this.bP != null && !this.bP.d()) { -+ if (net.pl3x.purpur.PurpurConfig.enderDragonAlwaysDropsFullExp || (this.bP != null && !this.bP.d())) { // Purpur +- if (this.bN != null && !this.bN.d()) { ++ if (net.pl3x.purpur.PurpurConfig.enderDragonAlwaysDropsFullExp || (this.bN != null && !this.bN.d())) { // Purpur short0 = 12000; } diff --git a/patches/server/0057-Dispenser-curse-of-binding-protection.patch b/patches/server/0056-Dispenser-curse-of-binding-protection.patch similarity index 90% rename from patches/server/0057-Dispenser-curse-of-binding-protection.patch rename to patches/server/0056-Dispenser-curse-of-binding-protection.patch index ae6a55eda..7a4fd21ed 100644 --- a/patches/server/0057-Dispenser-curse-of-binding-protection.patch +++ b/patches/server/0056-Dispenser-curse-of-binding-protection.patch @@ -1,4 +1,4 @@ -From 3ea6afe462da21924c767a6efb68233de314757c Mon Sep 17 00:00:00 2001 +From 5f11f209c5b6ad99a7f699e542b31d7e21b7339a Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sun, 25 Aug 2019 00:09:52 -0500 Subject: [PATCH] Dispenser curse of binding protection @@ -10,10 +10,10 @@ Subject: [PATCH] Dispenser curse of binding protection 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java -index 2a74c3d185..610bf54584 100644 +index 53fffb3dc3..53b45215bc 100644 --- a/src/main/java/net/minecraft/server/EntityInsentient.java +++ b/src/main/java/net/minecraft/server/EntityInsentient.java -@@ -896,9 +896,15 @@ public abstract class EntityInsentient extends EntityLiving { +@@ -902,9 +902,15 @@ public abstract class EntityInsentient extends EntityLiving { } @@ -31,11 +31,11 @@ index 2a74c3d185..610bf54584 100644 } diff --git a/src/main/java/net/minecraft/server/ItemArmor.java b/src/main/java/net/minecraft/server/ItemArmor.java -index dec03e4ae5..ce77b7e33f 100644 +index cef073c81e..4014c7d116 100644 --- a/src/main/java/net/minecraft/server/ItemArmor.java +++ b/src/main/java/net/minecraft/server/ItemArmor.java -@@ -33,7 +33,7 @@ public class ItemArmor extends Item { - return ItemStack.a; +@@ -31,7 +31,7 @@ public class ItemArmor extends Item { + return false; } else { EntityLiving entityliving = (EntityLiving) list.get(0); - EnumItemSlot enumitemslot = EntityInsentient.h(itemstack); @@ -43,7 +43,7 @@ index dec03e4ae5..ce77b7e33f 100644 ItemStack itemstack1 = itemstack.cloneAndSubtract(1); // CraftBukkit start World world = isourceblock.getWorld(); -@@ -81,6 +81,7 @@ public class ItemArmor extends Item { +@@ -79,6 +79,7 @@ public class ItemArmor extends Item { BlockDispenser.a((IMaterial) this, ItemArmor.a); } diff --git a/patches/server/0058-Add-killer-rabbit-natural-spawn-chance.patch b/patches/server/0057-Add-killer-rabbit-natural-spawn-chance.patch similarity index 91% rename from patches/server/0058-Add-killer-rabbit-natural-spawn-chance.patch rename to patches/server/0057-Add-killer-rabbit-natural-spawn-chance.patch index 9d0425caa..1dc8afc14 100644 --- a/patches/server/0058-Add-killer-rabbit-natural-spawn-chance.patch +++ b/patches/server/0057-Add-killer-rabbit-natural-spawn-chance.patch @@ -1,4 +1,4 @@ -From 726de26909cd6f0643a8b781cbb5ddecd0929e3a Mon Sep 17 00:00:00 2001 +From cd12c4564c9432cf757dd71443dc72b6ca809c62 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 31 Aug 2019 17:24:41 -0500 Subject: [PATCH] Add killer rabbit natural spawn chance @@ -9,10 +9,10 @@ Subject: [PATCH] Add killer rabbit natural spawn chance 2 files changed, 7 insertions(+) diff --git a/src/main/java/net/minecraft/server/EntityRabbit.java b/src/main/java/net/minecraft/server/EntityRabbit.java -index d48610df3a..498c453d71 100644 +index d36a074c89..c8de748664 100644 --- a/src/main/java/net/minecraft/server/EntityRabbit.java +++ b/src/main/java/net/minecraft/server/EntityRabbit.java -@@ -328,6 +328,8 @@ public class EntityRabbit extends EntityAnimal { +@@ -321,6 +321,8 @@ public class EntityRabbit extends EntityAnimal { } private int a(GeneratorAccess generatoraccess) { diff --git a/patches/server/0059-Add-option-to-spawn-Toast.patch b/patches/server/0058-Add-option-to-spawn-Toast.patch similarity index 88% rename from patches/server/0059-Add-option-to-spawn-Toast.patch rename to patches/server/0058-Add-option-to-spawn-Toast.patch index 223bc5e83..a4bc36f91 100644 --- a/patches/server/0059-Add-option-to-spawn-Toast.patch +++ b/patches/server/0058-Add-option-to-spawn-Toast.patch @@ -1,4 +1,4 @@ -From f1cd162a9a053fa793a85354770acae1223da892 Mon Sep 17 00:00:00 2001 +From 2654372002db43e578e7d72832a91b1223ceb2b7 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 31 Aug 2019 17:47:11 -0500 Subject: [PATCH] Add option to spawn Toast @@ -9,19 +9,19 @@ Subject: [PATCH] Add option to spawn Toast 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/minecraft/server/EntityRabbit.java b/src/main/java/net/minecraft/server/EntityRabbit.java -index 498c453d71..41d8d1ccb0 100644 +index c8de748664..35b8e182c6 100644 --- a/src/main/java/net/minecraft/server/EntityRabbit.java +++ b/src/main/java/net/minecraft/server/EntityRabbit.java @@ -300,7 +300,7 @@ public class EntityRabbit extends EntityAnimal { if (!this.hasCustomName()) { - this.setCustomName(new ChatMessage(SystemUtils.a("entity", EntityRabbit.bA), new Object[0])); + this.setCustomName(new ChatMessage(SystemUtils.a("entity", EntityRabbit.bx), new Object[0])); } - } + } else if (i == 98) setCustomName(new ChatMessage("Toast")); // Purpur - this.datawatcher.set(EntityRabbit.bz, i); + this.datawatcher.set(EntityRabbit.bw, i); } -@@ -329,6 +329,7 @@ public class EntityRabbit extends EntityAnimal { +@@ -322,6 +322,7 @@ public class EntityRabbit extends EntityAnimal { private int a(GeneratorAccess generatoraccess) { if (net.pl3x.purpur.PurpurConfig.killerRabbitChance > 0D && net.pl3x.purpur.PurpurConfig.killerRabbitChance > random.nextDouble()) return 99; // Purpur diff --git a/patches/server/0060-Add-option-for-boats-to-eject-players-on-land.patch b/patches/server/0059-Add-option-for-boats-to-eject-players-on-land.patch similarity index 89% rename from patches/server/0060-Add-option-for-boats-to-eject-players-on-land.patch rename to patches/server/0059-Add-option-for-boats-to-eject-players-on-land.patch index 8b8c53e73..c4ee1c071 100644 --- a/patches/server/0060-Add-option-for-boats-to-eject-players-on-land.patch +++ b/patches/server/0059-Add-option-for-boats-to-eject-players-on-land.patch @@ -1,4 +1,4 @@ -From f71a6b979a284bf7f992a60251937b33250f9e01 Mon Sep 17 00:00:00 2001 +From c9997e5b02ff432c5b64261ae3612edd7ac538c3 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 7 Sep 2019 22:47:59 -0500 Subject: [PATCH] Add option for boats to eject players on land @@ -9,13 +9,13 @@ Subject: [PATCH] Add option for boats to eject players on land 2 files changed, 6 insertions(+) diff --git a/src/main/java/net/minecraft/server/EntityBoat.java b/src/main/java/net/minecraft/server/EntityBoat.java -index b5bcd1f80d..37a98eba61 100644 +index 03624bbd6a..36969eeb2b 100644 --- a/src/main/java/net/minecraft/server/EntityBoat.java +++ b/src/main/java/net/minecraft/server/EntityBoat.java -@@ -425,6 +425,7 @@ public class EntityBoat extends Entity { +@@ -427,6 +427,7 @@ public class EntityBoat extends Entity { if (f > 0.0F) { - this.aH = f; + this.aE = f; + if (world.purpurConfig.boatEjectPlayersOnLand) ejectPassengers(); // Purpur return EntityBoat.EnumStatus.ON_LAND; } else { diff --git a/patches/server/0061-Allow-leashing-villagers.patch b/patches/server/0060-Allow-leashing-villagers.patch similarity index 91% rename from patches/server/0061-Allow-leashing-villagers.patch rename to patches/server/0060-Allow-leashing-villagers.patch index 5b27bc245..eb456e143 100644 --- a/patches/server/0061-Allow-leashing-villagers.patch +++ b/patches/server/0060-Allow-leashing-villagers.patch @@ -1,4 +1,4 @@ -From ba08bce0d3b1032f7099f4a9e35dac7871d753ab Mon Sep 17 00:00:00 2001 +From 12eadd5e5f9b5e9847b9eb9567dd7e39df4bb074 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Thu, 3 Oct 2019 18:08:03 -0500 Subject: [PATCH] Allow leashing villagers @@ -10,10 +10,10 @@ Subject: [PATCH] Allow leashing villagers 3 files changed, 10 insertions(+) diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java -index 610bf54584..996146f61f 100644 +index 53b45215bc..b417501cea 100644 --- a/src/main/java/net/minecraft/server/EntityInsentient.java +++ b/src/main/java/net/minecraft/server/EntityInsentient.java -@@ -1044,6 +1044,7 @@ public abstract class EntityInsentient extends EntityLiving { +@@ -1050,6 +1050,7 @@ public abstract class EntityInsentient extends EntityLiving { if (!this.isAlive()) { return false; } else if (this.getLeashHolder() == entityhuman) { @@ -22,10 +22,10 @@ index 610bf54584..996146f61f 100644 if (CraftEventFactory.callPlayerUnleashEntityEvent(this, entityhuman).isCancelled()) { ((EntityPlayer) entityhuman).playerConnection.sendPacket(new PacketPlayOutAttachEntity(this, this.getLeashHolder())); diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java -index d1d62a900f..2a848304df 100644 +index 12da4a22b8..8b036c3b53 100644 --- a/src/main/java/net/minecraft/server/EntityVillager.java +++ b/src/main/java/net/minecraft/server/EntityVillager.java -@@ -989,4 +989,11 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation +@@ -981,4 +981,11 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation return optional.isPresent() && optional1.isPresent() ? i - ((MinecraftSerializableLong) optional.get()).a() < 24000L && i - ((MinecraftSerializableLong) optional1.get()).a() < 36000L : false; } diff --git a/patches/server/0062-Add-option-to-set-armorstand-step-height.patch b/patches/server/0061-Add-option-to-set-armorstand-step-height.patch similarity index 85% rename from patches/server/0062-Add-option-to-set-armorstand-step-height.patch rename to patches/server/0061-Add-option-to-set-armorstand-step-height.patch index 0ae69a7df..5f9cd3488 100644 --- a/patches/server/0062-Add-option-to-set-armorstand-step-height.patch +++ b/patches/server/0061-Add-option-to-set-armorstand-step-height.patch @@ -1,4 +1,4 @@ -From 46a5fe7cbdae341b895a29c270760ad731fb9562 Mon Sep 17 00:00:00 2001 +From 0a517343ec23abd4780b28456e5c19f093585461 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sun, 6 Oct 2019 12:46:35 -0500 Subject: [PATCH] Add option to set armorstand step height @@ -9,15 +9,15 @@ Subject: [PATCH] Add option to set armorstand step height 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/minecraft/server/EntityArmorStand.java b/src/main/java/net/minecraft/server/EntityArmorStand.java -index 8bd864cb39..f58cfa6da1 100644 +index fc4e12d9af..3b42b680eb 100644 --- a/src/main/java/net/minecraft/server/EntityArmorStand.java +++ b/src/main/java/net/minecraft/server/EntityArmorStand.java @@ -62,7 +62,7 @@ public class EntityArmorStand extends EntityLiving { - this.leftLegPose = EntityArmorStand.by; - this.rightLegPose = EntityArmorStand.bz; + this.leftLegPose = EntityArmorStand.bv; + this.rightLegPose = EntityArmorStand.bw; if (world != null) this.canTick = world.paperConfig.armorStandTick; // Paper - armour stand ticking -- this.K = 0.0F; -+ this.K = net.pl3x.purpur.PurpurConfig.armorstandStepHeight; // Purpur +- this.H = 0.0F; ++ this.H = net.pl3x.purpur.PurpurConfig.armorstandStepHeight; // Purpur } public EntityArmorStand(World world, double d0, double d1, double d2) { diff --git a/patches/server/0063-Add-API-for-Villager-resetOffers.patch b/patches/server/0062-Add-API-for-Villager-resetOffers.patch similarity index 84% rename from patches/server/0063-Add-API-for-Villager-resetOffers.patch rename to patches/server/0062-Add-API-for-Villager-resetOffers.patch index 190716f43..b93eee998 100644 --- a/patches/server/0063-Add-API-for-Villager-resetOffers.patch +++ b/patches/server/0062-Add-API-for-Villager-resetOffers.patch @@ -1,4 +1,4 @@ -From 58e0aff97d803390d5e033fa7f44cc219659d6a1 Mon Sep 17 00:00:00 2001 +From d3357fd01e1481c19ebb6d92e9e8d4dd327af6d4 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Mon, 7 Oct 2019 00:15:37 -0500 Subject: [PATCH] Add API for Villager#resetOffers() @@ -9,10 +9,10 @@ Subject: [PATCH] Add API for Villager#resetOffers() 2 files changed, 15 insertions(+) diff --git a/src/main/java/net/minecraft/server/EntityVillagerAbstract.java b/src/main/java/net/minecraft/server/EntityVillagerAbstract.java -index f161ccb979..c074d33723 100644 +index 9b75c67c72..ddd19aa2f9 100644 --- a/src/main/java/net/minecraft/server/EntityVillagerAbstract.java +++ b/src/main/java/net/minecraft/server/EntityVillagerAbstract.java -@@ -72,6 +72,13 @@ public abstract class EntityVillagerAbstract extends EntityAgeable implements NP +@@ -82,6 +82,13 @@ public abstract class EntityVillagerAbstract extends EntityAgeable implements NP return this.tradingPlayer != null; } @@ -26,16 +26,16 @@ index f161ccb979..c074d33723 100644 @Override public MerchantRecipeList getOffers() { if (this.trades == null) { -@@ -213,6 +220,7 @@ public abstract class EntityVillagerAbstract extends EntityAgeable implements NP +@@ -223,6 +230,7 @@ public abstract class EntityVillagerAbstract extends EntityAgeable implements NP return this.world; } -+ protected void updateTrades() { eh(); } // Purpur - protected abstract void eh(); ++ protected void updateTrades() { eC(); } // Purpur + protected abstract void eC(); protected void a(MerchantRecipeList merchantrecipelist, VillagerTrades.IMerchantRecipeOption[] avillagertrades_imerchantrecipeoption, int i) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java -index f291a8d754..0cd358236e 100644 +index a73ebaa75f..ac89ed9377 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java @@ -112,4 +112,11 @@ public class CraftVillager extends CraftAbstractVillager implements Villager { diff --git a/patches/server/0064-Alternative-Keepalive-Handling.patch b/patches/server/0063-Alternative-Keepalive-Handling.patch similarity index 95% rename from patches/server/0064-Alternative-Keepalive-Handling.patch rename to patches/server/0063-Alternative-Keepalive-Handling.patch index 51d82a13f..57fb45085 100644 --- a/patches/server/0064-Alternative-Keepalive-Handling.patch +++ b/patches/server/0063-Alternative-Keepalive-Handling.patch @@ -1,4 +1,4 @@ -From 2338e165900308afbfa6299b3a5077fef2e21d6e Mon Sep 17 00:00:00 2001 +From cbad8f66944097c606fb7e9351e5261a6cb05bbe Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Fri, 11 Oct 2019 00:17:39 -0500 Subject: [PATCH] Alternative Keepalive Handling @@ -22,7 +22,7 @@ index 8e93f1540b..470f92c4fb 100644 return this.a; } diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index b066ed57dc..9c3727ecd1 100644 +index 2e74e46d5d..b51f7b4537 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java @@ -74,6 +74,7 @@ public class PlayerConnection implements PacketListenerPlayIn { @@ -33,7 +33,7 @@ index b066ed57dc..9c3727ecd1 100644 // CraftBukkit start - multithreaded fields private volatile int chatThrottle; private static final AtomicIntegerFieldUpdater chatSpamField = AtomicIntegerFieldUpdater.newUpdater(PlayerConnection.class, "chatThrottle"); -@@ -242,6 +243,21 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -245,6 +246,21 @@ public class PlayerConnection implements PacketListenerPlayIn { long currentTime = SystemUtils.getMonotonicMillis(); long elapsedTime = currentTime - this.getLastPing(); @@ -55,7 +55,7 @@ index b066ed57dc..9c3727ecd1 100644 if (this.isPendingPing()) { if (!this.processedDisconnect && elapsedTime >= KEEPALIVE_LIMIT) { // check keepalive limit, don't fire if already disconnected PlayerConnection.LOGGER.warn("{} was kicked due to keepalive timeout!", this.player.getName()); // more info -@@ -2656,6 +2672,18 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -2666,6 +2682,18 @@ public class PlayerConnection implements PacketListenerPlayIn { @Override public void a(PacketPlayInKeepAlive packetplayinkeepalive) { diff --git a/patches/server/0065-Expose-getItemStack-for-Trident.patch b/patches/server/0064-Expose-getItemStack-for-Trident.patch similarity index 90% rename from patches/server/0065-Expose-getItemStack-for-Trident.patch rename to patches/server/0064-Expose-getItemStack-for-Trident.patch index 57b11454e..b11fdc4f3 100644 --- a/patches/server/0065-Expose-getItemStack-for-Trident.patch +++ b/patches/server/0064-Expose-getItemStack-for-Trident.patch @@ -1,4 +1,4 @@ -From c5fecee384e8f908932c82f11ed61330c554a234 Mon Sep 17 00:00:00 2001 +From 2c10cc6fa7b50f6954a8a89e13cc897182c811cf Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Fri, 18 Oct 2019 22:19:40 -0500 Subject: [PATCH] Expose getItemStack for Trident @@ -9,10 +9,10 @@ Subject: [PATCH] Expose getItemStack for Trident 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/minecraft/server/EntityThrownTrident.java b/src/main/java/net/minecraft/server/EntityThrownTrident.java -index 392cadf310..46e816dadd 100644 +index 59bb039ad7..ed8e26aa45 100644 --- a/src/main/java/net/minecraft/server/EntityThrownTrident.java +++ b/src/main/java/net/minecraft/server/EntityThrownTrident.java -@@ -74,7 +74,7 @@ public class EntityThrownTrident extends EntityArrow { +@@ -77,7 +77,7 @@ public class EntityThrownTrident extends EntityArrow { } @Override diff --git a/patches/server/0066-Add-more-llama-API.patch b/patches/server/0065-Add-more-llama-API.patch similarity index 72% rename from patches/server/0066-Add-more-llama-API.patch rename to patches/server/0065-Add-more-llama-API.patch index 2db082a57..d6e1c052d 100644 --- a/patches/server/0066-Add-more-llama-API.patch +++ b/patches/server/0065-Add-more-llama-API.patch @@ -1,24 +1,25 @@ -From 6c8732cc438eb595e0124a21cd57c3d445145677 Mon Sep 17 00:00:00 2001 +From 78d42880d3d97db6fabdab39149a975189963a05 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Fri, 18 Oct 2019 22:50:12 -0500 Subject: [PATCH] Add more llama API --- .../net/minecraft/server/EntityLlama.java | 20 ++++++--- + .../minecraft/server/EntityLlamaTrader.java | 4 +- .../server/PathfinderGoalLlamaFollow.java | 4 +- .../bukkit/craftbukkit/entity/CraftLlama.java | 44 +++++++++++++++++++ - 3 files changed, 62 insertions(+), 6 deletions(-) + 4 files changed, 64 insertions(+), 8 deletions(-) diff --git a/src/main/java/net/minecraft/server/EntityLlama.java b/src/main/java/net/minecraft/server/EntityLlama.java -index 72372497d9..a8cf42fd35 100644 +index 6ebb6fd663..14dc4d954b 100644 --- a/src/main/java/net/minecraft/server/EntityLlama.java +++ b/src/main/java/net/minecraft/server/EntityLlama.java @@ -12,7 +12,8 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn @Nullable - private EntityLlama bM; + private EntityLlama bJ; @Nullable -- private EntityLlama bN; -+ private EntityLlama bN; @Nullable public EntityLlama getCaravanTail() { return bN; } // Purpur - OBFHELPER +- private EntityLlama bK; ++ private EntityLlama bK; @Nullable public EntityLlama getCaravanTail() { return bK; } // Purpur - OBFHELPER + public boolean shouldJoinCaravan = true; // Purpur public EntityLlama(EntityTypes entitytypes, World world) { @@ -42,48 +43,63 @@ index 72372497d9..a8cf42fd35 100644 + nbttagcompound.setBoolean("Purpur.ShouldJoinCaravan", shouldJoinCaravan); + } + // Purpur end - this.en(); + this.eI(); } -@@ -409,29 +414,34 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn +@@ -403,29 +408,34 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn } } -+ public void leaveCaravan() { eG(); } // Purpur - OBFHELPER - public void eG() { - if (this.bM != null) { ++ public void leaveCaravan() { fb(); } // Purpur - OBFHELPER + public void fb() { + if (this.bJ != null) { + new net.pl3x.purpur.event.entity.LlamaLeaveCaravanEvent((org.bukkit.entity.Llama) getBukkitEntity()).callEvent(); // Purpur - this.bM.bN = null; + this.bJ.bK = null; } - this.bM = null; + this.bJ = null; } + public void joinCaravan(EntityLlama entitiyllama) { a(entitiyllama); } // Purpur - OBFHELPER public void a(EntityLlama entityllama) { + if (!shouldJoinCaravan || !new net.pl3x.purpur.event.entity.LlamaJoinCaravanEvent((org.bukkit.entity.Llama) getBukkitEntity(), (org.bukkit.entity.Llama) entityllama.getBukkitEntity()).callEvent()) return; // Purpur - this.bM = entityllama; - this.bM.bN = this; + this.bJ = entityllama; + this.bJ.bK = this; } -+ public boolean hasCaravanTail() { return eH(); } // Purpur - OBFHELPER - public boolean eH() { - return this.bN != null; ++ public boolean hasCaravanTail() { return fc(); } // Purpur - OBFHELPER + public boolean fc() { + return this.bK != null; } -+ public boolean inCaravan() { return eI(); } // Purpur - OBFHELPER - public boolean eI() { - return this.bM != null; ++ public boolean inCaravan() { return fd(); } // Purpur - OBFHELPER + public boolean fd() { + return this.bJ != null; } - @Nullable -- public EntityLlama eJ() { -+ public EntityLlama getCaravanHead() { return eJ(); } @Nullable public EntityLlama eJ() { // Purpur - OBFHELPER - return this.bM; +- public EntityLlama fe() { ++ public EntityLlama getCaravanHead() { return fe(); } @Nullable public EntityLlama fe() { // Purpur - OBFHELPER + return this.bJ; } +diff --git a/src/main/java/net/minecraft/server/EntityLlamaTrader.java b/src/main/java/net/minecraft/server/EntityLlamaTrader.java +index f8129ef10d..c714b387c1 100644 +--- a/src/main/java/net/minecraft/server/EntityLlamaTrader.java ++++ b/src/main/java/net/minecraft/server/EntityLlamaTrader.java +@@ -81,8 +81,8 @@ public class EntityLlamaTrader extends EntityLlama { + } + + // Purpur start +- public boolean isSaddled() { return eq(); } // Purpur - OBFHELPER +- @Override public boolean eq() { ++ public boolean isSaddled() { return eL(); } // Purpur - OBFHELPER ++ @Override public boolean eL() { + return isTamed(); + } + // Purpur end diff --git a/src/main/java/net/minecraft/server/PathfinderGoalLlamaFollow.java b/src/main/java/net/minecraft/server/PathfinderGoalLlamaFollow.java -index a46a985a65..9cc0d2e956 100644 +index e181d83505..8376f1dc4e 100644 --- a/src/main/java/net/minecraft/server/PathfinderGoalLlamaFollow.java +++ b/src/main/java/net/minecraft/server/PathfinderGoalLlamaFollow.java @@ -6,7 +6,7 @@ import java.util.List; @@ -100,7 +116,7 @@ index a46a985a65..9cc0d2e956 100644 @Override public boolean a() { + if (!getLlama().shouldJoinCaravan) return false; // Purpur - if (!this.a.isLeashed() && !this.a.eI()) { + if (!this.a.isLeashed() && !this.a.fd()) { List list = this.a.world.getEntities(this.a, this.a.getBoundingBox().grow(9.0D, 4.0D, 9.0D), (entity) -> { EntityTypes entitytypes = entity.getEntityType(); @@ -77,6 +78,7 @@ public class PathfinderGoalLlamaFollow extends PathfinderGoal { @@ -108,8 +124,8 @@ index a46a985a65..9cc0d2e956 100644 @Override public boolean b() { + if (!getLlama().shouldJoinCaravan) return false; // Purpur - if (this.a.eI() && this.a.eJ().isAlive() && this.a(this.a, 0)) { - double d0 = this.a.h((Entity) this.a.eJ()); + if (this.a.fd() && this.a.fe().isAlive() && this.a(this.a, 0)) { + double d0 = this.a.h((Entity) this.a.fe()); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLlama.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLlama.java index 3f94c5a920..a027634801 100644 diff --git a/patches/server/0067-Add-entity-jump-API.patch b/patches/server/0066-Add-entity-jump-API.patch similarity index 86% rename from patches/server/0067-Add-entity-jump-API.patch rename to patches/server/0066-Add-entity-jump-API.patch index cec5628bc..9736f55b9 100644 --- a/patches/server/0067-Add-entity-jump-API.patch +++ b/patches/server/0066-Add-entity-jump-API.patch @@ -1,4 +1,4 @@ -From 90e2b818af21de79de11ebcf0020b6c89f9ce293 Mon Sep 17 00:00:00 2001 +From 228403a7282633e9189efbb99bda4207eb192c26 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Fri, 18 Oct 2019 23:34:48 -0500 Subject: [PATCH] Add entity jump API @@ -9,13 +9,13 @@ Subject: [PATCH] Add entity jump API 2 files changed, 16 insertions(+) diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index b5f0b01c36..fbe13d9dac 100644 +index 7d424040cc..764021c17d 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java -@@ -2557,8 +2557,10 @@ public abstract class EntityLiving extends Entity { - } else if (this.aD()) { +@@ -2617,8 +2617,10 @@ public abstract class EntityLiving extends Entity { + } else if (this.aH()) { this.c(TagsFluid.LAVA); - } else if ((this.onGround || this.Q > 0.0D && this.Q <= 0.4D) && this.jumpTicks == 0) { + } else if ((this.onGround || this.N > 0.0D && this.N <= 0.4D) && this.jumpTicks == 0) { + if (new net.pl3x.purpur.event.entity.EntityJumpEvent(getBukkitLivingEntity()).callEvent()) { // Purpur this.jump(); this.jumpTicks = 10; diff --git a/patches/server/0068-Add-block-and-fluid-tick-events.patch b/patches/server/0067-Add-block-and-fluid-tick-events.patch similarity index 77% rename from patches/server/0068-Add-block-and-fluid-tick-events.patch rename to patches/server/0067-Add-block-and-fluid-tick-events.patch index 7e2dbefdb..cc57fbf16 100644 --- a/patches/server/0068-Add-block-and-fluid-tick-events.patch +++ b/patches/server/0067-Add-block-and-fluid-tick-events.patch @@ -1,37 +1,37 @@ -From 56bea4aa2394d22e31b992c3715a1b4c519f7320 Mon Sep 17 00:00:00 2001 +From 3deb8c03cbe3d16b0906e037ebcb2be02aa17783 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Fri, 18 Oct 2019 23:58:56 -0500 Subject: [PATCH] Add block and fluid tick events --- - .../java/net/minecraft/server/WorldServer.java | 6 ++++-- + .../java/net/minecraft/server/WorldServer.java | 8 ++++++-- .../net/pl3x/purpur/PurpurWorldConfig.java | 7 +++++++ .../org/bukkit/craftbukkit/CraftWorld.java | 18 ++++++++++++++++++ - 3 files changed, 29 insertions(+), 2 deletions(-) + 3 files changed, 31 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index 5e51dbf172..dba8335554 100644 +index f6431f1de6..e70bc4d4dc 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java -@@ -573,7 +573,7 @@ public class WorldServer extends World { +@@ -580,13 +580,15 @@ public class WorldServer extends World { gameprofilerfiller.enter("randomTick"); IBlockData iblockdata = chunksection.getType(blockposition2.getX() - j, blockposition2.getY() - j1, blockposition2.getZ() - k); - if (iblockdata.q()) { + if (iblockdata.q() && (!purpurConfig.blockTickEvent || new net.pl3x.purpur.event.block.BlockTickEvent(getWorld(), blockposition2.x, blockposition2.y, blockposition2.z, true).callEvent())) { // Purpur - iblockdata.getBlock().randomTick = true; // Paper - fix MC-113809 - iblockdata.b((World) this, blockposition2, this.random); - iblockdata.getBlock().randomTick = false; // Paper - fix MC-113809 -@@ -581,7 +581,7 @@ public class WorldServer extends World { ++ iblockdata.getBlock().randomTick = true; // Paper - fix MC-113809 + iblockdata.b(this, blockposition2, this.random); ++ iblockdata.getBlock().randomTick = false; // Paper - fix MC-113809 + } - Fluid fluid = iblockdata.p(); + Fluid fluid = iblockdata.getFluid(); - if (fluid.h()) { + if (fluid.h() && (!purpurConfig.fluidTickEvent || new net.pl3x.purpur.event.block.FluidTickEvent(getWorld(), blockposition2.x, blockposition2.y, blockposition2.z, true).callEvent())) { // Purpur fluid.b(this, blockposition2, this.random); } -@@ -670,6 +670,7 @@ public class WorldServer extends World { +@@ -675,6 +677,7 @@ public class WorldServer extends World { Fluid fluid = this.getFluid(nextticklistentry.a); if (fluid.getType() == nextticklistentry.b()) { @@ -39,14 +39,14 @@ index 5e51dbf172..dba8335554 100644 fluid.a((World) this, nextticklistentry.a); } -@@ -679,6 +680,7 @@ public class WorldServer extends World { +@@ -684,6 +687,7 @@ public class WorldServer extends World { IBlockData iblockdata = this.getType(nextticklistentry.a); if (iblockdata.getBlock() == nextticklistentry.b()) { + if (purpurConfig.blockTickEvent && !new net.pl3x.purpur.event.block.BlockTickEvent(getWorld(), nextticklistentry.a.x, nextticklistentry.a.y, nextticklistentry.a.z).callEvent()) return; // Purpur - iblockdata.a((World) this, nextticklistentry.a, this.random); - } - + iblockdata.getBlock().randomTick = true; // Paper - fix MC-113809 + iblockdata.a(this, nextticklistentry.a, this.random); + iblockdata.getBlock().randomTick = false; // Paper - fix MC-113809 diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java index f687444604..3ad3415c4a 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -66,11 +66,11 @@ index f687444604..3ad3415c4a 100644 private void editableSigns() { editableSigns = getBoolean("editable-signs", editableSigns); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index f33d9c8b44..ac7e16cdcc 100644 +index a974391025..05389f5bbe 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -2350,6 +2350,24 @@ public class CraftWorld implements World { - return persistentRaid.a.values().stream().map(CraftRaid::new).collect(Collectors.toList()); +@@ -2384,6 +2384,24 @@ public class CraftWorld implements World { + return persistentRaid.raids.values().stream().map(CraftRaid::new).collect(Collectors.toList()); } + // Purpur start diff --git a/patches/server/0069-Add-more-evoker-API.patch b/patches/server/0068-Add-more-evoker-API.patch similarity index 79% rename from patches/server/0069-Add-more-evoker-API.patch rename to patches/server/0068-Add-more-evoker-API.patch index 50a8af6a6..3a1aa66ee 100644 --- a/patches/server/0069-Add-more-evoker-API.patch +++ b/patches/server/0068-Add-more-evoker-API.patch @@ -1,31 +1,32 @@ -From c5762ebef35be6a13d450004f93e3c7984f81a17 Mon Sep 17 00:00:00 2001 +From 5b5b757044b8fe16128b67d4e858c3aa510d36d1 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 19 Oct 2019 00:29:02 -0500 Subject: [PATCH] Add more evoker API --- - .../java/net/minecraft/server/EntityEvoker.java | 5 +++-- + .../java/net/minecraft/server/EntityEvoker.java | 6 ++++-- .../org/bukkit/craftbukkit/entity/CraftEvoker.java | 13 +++++++++++++ - 2 files changed, 16 insertions(+), 2 deletions(-) + 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/minecraft/server/EntityEvoker.java b/src/main/java/net/minecraft/server/EntityEvoker.java -index 8d923a34c3..b22f071990 100644 +index 3560c95298..ed0111a722 100644 --- a/src/main/java/net/minecraft/server/EntityEvoker.java +++ b/src/main/java/net/minecraft/server/EntityEvoker.java -@@ -90,12 +90,13 @@ public class EntityEvoker extends EntityIllagerWizard { +@@ -85,12 +85,14 @@ public class EntityEvoker extends EntityIllagerWizard { return SoundEffects.ENTITY_EVOKER_HURT; } + public void setWololoTarget(@Nullable EntitySheep sheep) { a(sheep); } // Purpur - OBFHELPER private void a(@Nullable EntitySheep entitysheep) { - this.bz = entitysheep; + this.bw = entitysheep; } - @Nullable -- private EntitySheep ep() { -+ @Nullable public EntitySheep getWololoTarget() { return ep(); } // Purpur - OBFHELPER -+ @Nullable private EntitySheep ep() { - return this.bz; +- private EntitySheep eK() { ++ ++ @Nullable public EntitySheep getWololoTarget() { return eK(); } // Purpur - OBFHELPER ++ @Nullable private EntitySheep eK() { + return this.bw; } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEvoker.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEvoker.java diff --git a/patches/server/0070-Add-getPlacementBlockData-to-World.patch b/patches/server/0069-Add-getPlacementBlockData-to-World.patch similarity index 86% rename from patches/server/0070-Add-getPlacementBlockData-to-World.patch rename to patches/server/0069-Add-getPlacementBlockData-to-World.patch index e542ed1dc..56965542f 100644 --- a/patches/server/0070-Add-getPlacementBlockData-to-World.patch +++ b/patches/server/0069-Add-getPlacementBlockData-to-World.patch @@ -1,4 +1,4 @@ -From 5d8f75f465d9985353d919129ed0996a6e042c60 Mon Sep 17 00:00:00 2001 +From 478fa240814a1fe4f68df47ab07c1a8fc1e9c525 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 19 Oct 2019 00:34:43 -0500 Subject: [PATCH] Add getPlacementBlockData to World @@ -8,10 +8,10 @@ Subject: [PATCH] Add getPlacementBlockData to World 1 file changed, 5 insertions(+) diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index ac7e16cdcc..d4db567205 100644 +index 05389f5bbe..60405821b6 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -2366,6 +2366,11 @@ public class CraftWorld implements World { +@@ -2400,6 +2400,11 @@ public class CraftWorld implements World { public void setFluidTickEventEnabled(boolean enabled) { getHandle().purpurConfig.fluidTickEvent = enabled; } diff --git a/patches/server/0071-Add-setting-to-suppress-unknown-attribute-warnings.patch b/patches/server/0070-Add-setting-to-suppress-unknown-attribute-warnings.patch similarity index 97% rename from patches/server/0071-Add-setting-to-suppress-unknown-attribute-warnings.patch rename to patches/server/0070-Add-setting-to-suppress-unknown-attribute-warnings.patch index 93cd7082b..fb6cd6be3 100644 --- a/patches/server/0071-Add-setting-to-suppress-unknown-attribute-warnings.patch +++ b/patches/server/0070-Add-setting-to-suppress-unknown-attribute-warnings.patch @@ -1,4 +1,4 @@ -From 33f577964c65dc07468b42c08f00da4e0e0351c8 Mon Sep 17 00:00:00 2001 +From 08fd7b5ab01c28a2f295ed10394188a885ae1194 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 19 Oct 2019 00:52:12 -0500 Subject: [PATCH] Add setting to suppress unknown attribute warnings diff --git a/patches/server/0072-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch b/patches/server/0071-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch similarity index 87% rename from patches/server/0072-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch rename to patches/server/0071-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch index 8de380d11..92db070cc 100644 --- a/patches/server/0072-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch +++ b/patches/server/0071-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch @@ -1,4 +1,4 @@ -From 4400fecb0d24cda272bc41114a905dcde070624f Mon Sep 17 00:00:00 2001 +From 654dcb8b77c0ceeba21978e364d7f5fa2b718511 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 19 Oct 2019 01:42:50 -0500 Subject: [PATCH] Fix SpawnChangeEvent not firing for all use-cases @@ -9,10 +9,10 @@ Subject: [PATCH] Fix SpawnChangeEvent not firing for all use-cases 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 3658a799a7..ae6ed98ed9 100644 +index 46b0c68207..5ec70c4e3b 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java -@@ -1458,8 +1458,11 @@ public abstract class World implements IIBlockAccess, GeneratorAccess, AutoClose +@@ -1387,8 +1387,11 @@ public abstract class World implements GeneratorAccess, AutoCloseable { return blockposition; } @@ -25,10 +25,10 @@ index 3658a799a7..ae6ed98ed9 100644 public boolean a(EntityHuman entityhuman, BlockPosition blockposition) { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index d4db567205..b94882b198 100644 +index 60405821b6..a1c9c9dc2d 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -379,12 +379,16 @@ public class CraftWorld implements World { +@@ -380,12 +380,16 @@ public class CraftWorld implements World { @Override public boolean setSpawnLocation(int x, int y, int z) { try { diff --git a/patches/server/0073-Add-option-to-allow-iron-golems-to-spawn-in-air.patch b/patches/server/0072-Add-option-to-allow-iron-golems-to-spawn-in-air.patch similarity index 91% rename from patches/server/0073-Add-option-to-allow-iron-golems-to-spawn-in-air.patch rename to patches/server/0072-Add-option-to-allow-iron-golems-to-spawn-in-air.patch index 6add48248..29ac20fbb 100644 --- a/patches/server/0073-Add-option-to-allow-iron-golems-to-spawn-in-air.patch +++ b/patches/server/0072-Add-option-to-allow-iron-golems-to-spawn-in-air.patch @@ -1,4 +1,4 @@ -From b1e4664cdc73bee097d32b10c3eea44cd81045f9 Mon Sep 17 00:00:00 2001 +From 7142824e543bed1c563977106dcc855ee7f76e4f Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 19 Oct 2019 02:20:45 -0500 Subject: [PATCH] Add option to allow iron golems to spawn in air @@ -9,10 +9,10 @@ Subject: [PATCH] Add option to allow iron golems to spawn in air 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/minecraft/server/EntityIronGolem.java b/src/main/java/net/minecraft/server/EntityIronGolem.java -index 9bb033336c..6fdc4e6d6a 100644 +index 966cefdcf6..9ed5672d78 100644 --- a/src/main/java/net/minecraft/server/EntityIronGolem.java +++ b/src/main/java/net/minecraft/server/EntityIronGolem.java -@@ -169,7 +169,7 @@ public class EntityIronGolem extends EntityGolem { +@@ -224,7 +224,7 @@ public class EntityIronGolem extends EntityGolem { BlockPosition blockposition1 = blockposition.down(); IBlockData iblockdata = iworldreader.getType(blockposition1); diff --git a/patches/server/0074-Add-playPickupItemAnimation-to-LivingEntity.patch b/patches/server/0073-Add-playPickupItemAnimation-to-LivingEntity.patch similarity index 94% rename from patches/server/0074-Add-playPickupItemAnimation-to-LivingEntity.patch rename to patches/server/0073-Add-playPickupItemAnimation-to-LivingEntity.patch index 8056d6948..b09182580 100644 --- a/patches/server/0074-Add-playPickupItemAnimation-to-LivingEntity.patch +++ b/patches/server/0073-Add-playPickupItemAnimation-to-LivingEntity.patch @@ -1,4 +1,4 @@ -From 15223190288e5d7d84bf8780184f0718019fb283 Mon Sep 17 00:00:00 2001 +From 5e6941ddcd9149cf40509ad0d63795411de96112 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 19 Oct 2019 02:25:16 -0500 Subject: [PATCH] Add playPickupItemAnimation to LivingEntity diff --git a/patches/server/0075-Add-getPlayer-to-SkeletonHorseTrapEvent.patch b/patches/server/0074-Add-getPlayer-to-SkeletonHorseTrapEvent.patch similarity index 88% rename from patches/server/0075-Add-getPlayer-to-SkeletonHorseTrapEvent.patch rename to patches/server/0074-Add-getPlayer-to-SkeletonHorseTrapEvent.patch index 6b58c990e..35e225c78 100644 --- a/patches/server/0075-Add-getPlayer-to-SkeletonHorseTrapEvent.patch +++ b/patches/server/0074-Add-getPlayer-to-SkeletonHorseTrapEvent.patch @@ -1,4 +1,4 @@ -From 69c1869edcf56eafc428a8e649b2228639b794e7 Mon Sep 17 00:00:00 2001 +From a138c77da110feb66a206c9fc883e7d80d70935d Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 19 Oct 2019 02:35:35 -0500 Subject: [PATCH] Add getPlayer to SkeletonHorseTrapEvent @@ -8,7 +8,7 @@ Subject: [PATCH] Add getPlayer to SkeletonHorseTrapEvent 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/net/minecraft/server/PathfinderGoalHorseTrap.java b/src/main/java/net/minecraft/server/PathfinderGoalHorseTrap.java -index f093744136..01f69e81ad 100644 +index 37626f925f..f8fd2d99cc 100644 --- a/src/main/java/net/minecraft/server/PathfinderGoalHorseTrap.java +++ b/src/main/java/net/minecraft/server/PathfinderGoalHorseTrap.java @@ -2,7 +2,8 @@ package net.minecraft.server; @@ -25,8 +25,8 @@ index f093744136..01f69e81ad 100644 @Override public boolean a() { -- return this.a.world.isPlayerNearby(this.a.locX, this.a.locY, this.a.locZ, 10.0D); -+ return (player = getHorse().world.findNearbyPlayer(getHorse(), 10D)) != null; // Purpur +- return this.a.world.isPlayerNearby(this.a.locX(), this.a.locY(), this.a.locZ(), 10.0D); ++ return (player = getHorse().world.findNearbyPlayer(getHorse(), 10.0D)) != null; // Purpur } @Override diff --git a/patches/server/0076-Add-LootableInventoryFirstFillEvent.patch b/patches/server/0075-Add-LootableInventoryFirstFillEvent.patch similarity index 94% rename from patches/server/0076-Add-LootableInventoryFirstFillEvent.patch rename to patches/server/0075-Add-LootableInventoryFirstFillEvent.patch index 2814c2b98..f21bee734 100644 --- a/patches/server/0076-Add-LootableInventoryFirstFillEvent.patch +++ b/patches/server/0075-Add-LootableInventoryFirstFillEvent.patch @@ -1,4 +1,4 @@ -From bc45df1c6bdba7b7f33a2f5ccaf9f88de834a24a Mon Sep 17 00:00:00 2001 +From 243154bb0369a788ac328dafc608775ec3c6516b Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 19 Oct 2019 02:43:17 -0500 Subject: [PATCH] Add LootableInventoryFirstFillEvent diff --git a/patches/server/0077-Add-MonsterEggSpawnEvent.patch b/patches/server/0076-Add-MonsterEggSpawnEvent.patch similarity index 96% rename from patches/server/0077-Add-MonsterEggSpawnEvent.patch rename to patches/server/0076-Add-MonsterEggSpawnEvent.patch index e8c5fe969..1727d8670 100644 --- a/patches/server/0077-Add-MonsterEggSpawnEvent.patch +++ b/patches/server/0076-Add-MonsterEggSpawnEvent.patch @@ -1,4 +1,4 @@ -From ca3a6ee2ec47c2c27e489cd391a08bc889b59c76 Mon Sep 17 00:00:00 2001 +From ce0f3b251a0cab7ffe17066a5afc8cd36808d933 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 19 Oct 2019 03:20:59 -0500 Subject: [PATCH] Add MonsterEggSpawnEvent @@ -8,10 +8,10 @@ Subject: [PATCH] Add MonsterEggSpawnEvent 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/minecraft/server/EntityTypes.java b/src/main/java/net/minecraft/server/EntityTypes.java -index f8600cc07f..9d7b7cad38 100644 +index b82d53e5da..29ad29702c 100644 --- a/src/main/java/net/minecraft/server/EntityTypes.java +++ b/src/main/java/net/minecraft/server/EntityTypes.java -@@ -162,19 +162,45 @@ public class EntityTypes { +@@ -163,19 +163,45 @@ public class EntityTypes { @Nullable public Entity spawnCreature(World world, @Nullable ItemStack itemstack, @Nullable EntityHuman entityhuman, BlockPosition blockposition, EnumMobSpawn enummobspawn, boolean flag, boolean flag1) { diff --git a/patches/server/0078-Add-ThrownEggHatchEvent.patch b/patches/server/0077-Add-ThrownEggHatchEvent.patch similarity index 84% rename from patches/server/0078-Add-ThrownEggHatchEvent.patch rename to patches/server/0077-Add-ThrownEggHatchEvent.patch index 7fc9377ff..985956e15 100644 --- a/patches/server/0078-Add-ThrownEggHatchEvent.patch +++ b/patches/server/0077-Add-ThrownEggHatchEvent.patch @@ -1,4 +1,4 @@ -From 802e64b9f8494e865901c339b040d3d72d94be40 Mon Sep 17 00:00:00 2001 +From b7c9459f996473f158443a5ba5879e5959add149 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 19 Oct 2019 03:28:06 -0500 Subject: [PATCH] Add ThrownEggHatchEvent @@ -8,7 +8,7 @@ Subject: [PATCH] Add ThrownEggHatchEvent 1 file changed, 9 insertions(+) diff --git a/src/main/java/net/minecraft/server/EntityEgg.java b/src/main/java/net/minecraft/server/EntityEgg.java -index aedf2ce17d..e82798cf21 100644 +index 970f9109d9..a6212dc597 100644 --- a/src/main/java/net/minecraft/server/EntityEgg.java +++ b/src/main/java/net/minecraft/server/EntityEgg.java @@ -52,6 +52,15 @@ public class EntityEgg extends EntityProjectileThrowable { @@ -26,7 +26,7 @@ index aedf2ce17d..e82798cf21 100644 + if (hatching) { for (int i = 0; i < b0; ++i) { - Entity entity = world.getWorld().createEntity(new org.bukkit.Location(world.getWorld(), this.locX, this.locY, this.locZ, this.yaw, 0.0F), hatchingType.getEntityClass()); + Entity entity = world.getWorld().createEntity(new org.bukkit.Location(world.getWorld(), this.locX(), this.locY(), this.locZ(), this.yaw, 0.0F), hatchingType.getEntityClass()); -- 2.24.0.rc1 diff --git a/patches/server/0079-Fix-furnace-cook-speed-multiplier-using-values-betwe.patch b/patches/server/0078-Fix-furnace-cook-speed-multiplier-using-values-betwe.patch similarity index 93% rename from patches/server/0079-Fix-furnace-cook-speed-multiplier-using-values-betwe.patch rename to patches/server/0078-Fix-furnace-cook-speed-multiplier-using-values-betwe.patch index 1327a2004..106d737de 100644 --- a/patches/server/0079-Fix-furnace-cook-speed-multiplier-using-values-betwe.patch +++ b/patches/server/0078-Fix-furnace-cook-speed-multiplier-using-values-betwe.patch @@ -1,4 +1,4 @@ -From fba249fae3251b05417156a06dbcd080f5839306 Mon Sep 17 00:00:00 2001 +From 68e5c7525982d7ba1be5c8c613aa0038d08972de Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 19 Oct 2019 03:36:52 -0500 Subject: [PATCH] Fix furnace cook speed multiplier using values between 0 and @@ -9,7 +9,7 @@ Subject: [PATCH] Fix furnace cook speed multiplier using values between 0 and 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/minecraft/server/TileEntityFurnace.java b/src/main/java/net/minecraft/server/TileEntityFurnace.java -index 55b5646103..caa5b4368c 100644 +index 04849c3da6..ff153003b1 100644 --- a/src/main/java/net/minecraft/server/TileEntityFurnace.java +++ b/src/main/java/net/minecraft/server/TileEntityFurnace.java @@ -291,8 +291,10 @@ public abstract class TileEntityFurnace extends TileEntityContainer implements I diff --git a/patches/server/0080-Add-back-EntityCreatePortalEvent-for-EnderDragon.patch b/patches/server/0079-Add-back-EntityCreatePortalEvent-for-EnderDragon.patch similarity index 93% rename from patches/server/0080-Add-back-EntityCreatePortalEvent-for-EnderDragon.patch rename to patches/server/0079-Add-back-EntityCreatePortalEvent-for-EnderDragon.patch index 649455f21..97dd64c13 100644 --- a/patches/server/0080-Add-back-EntityCreatePortalEvent-for-EnderDragon.patch +++ b/patches/server/0079-Add-back-EntityCreatePortalEvent-for-EnderDragon.patch @@ -1,4 +1,4 @@ -From ccfa78953a0fc3fe610268338cfdfd11c41c1d60 Mon Sep 17 00:00:00 2001 +From 8cd2f55a5d205378ff704811df327682f4cd1546 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 19 Oct 2019 03:53:54 -0500 Subject: [PATCH] Add back EntityCreatePortalEvent for EnderDragon @@ -8,7 +8,7 @@ Subject: [PATCH] Add back EntityCreatePortalEvent for EnderDragon 1 file changed, 49 insertions(+), 8 deletions(-) diff --git a/src/main/java/net/minecraft/server/EnderDragonBattle.java b/src/main/java/net/minecraft/server/EnderDragonBattle.java -index c7470d2852..97bb59369f 100644 +index cfc059c00f..a2cb2693a4 100644 --- a/src/main/java/net/minecraft/server/EnderDragonBattle.java +++ b/src/main/java/net/minecraft/server/EnderDragonBattle.java @@ -21,8 +21,8 @@ public class EnderDragonBattle { @@ -22,7 +22,7 @@ index c7470d2852..97bb59369f 100644 private final ShapeDetector f; private int g; private int h; -@@ -354,8 +354,8 @@ public class EnderDragonBattle { +@@ -356,8 +356,8 @@ public class EnderDragonBattle { if (entityenderdragon.getUniqueID().equals(this.m)) { this.bossBattle.setProgress(0.0F); this.bossBattle.setVisible(false); @@ -33,7 +33,7 @@ index c7470d2852..97bb59369f 100644 if (net.pl3x.purpur.PurpurConfig.enderDragonAlwaysDropsEggBlock || !this.l) { // Purpur - always place dragon egg this.d.setTypeUpdate(this.d.getHighestBlockYAt(HeightMap.Type.MOTION_BLOCKING, WorldGenEndTrophy.a), Blocks.DRAGON_EGG.getBlockData()); } -@@ -366,21 +366,62 @@ public class EnderDragonBattle { +@@ -368,21 +368,62 @@ public class EnderDragonBattle { } @@ -74,7 +74,7 @@ index c7470d2852..97bb59369f 100644 + private void generateGateway(BlockPosition blockPosition) { a(blockPosition); } // Purpur - OBFHELPER private void a(BlockPosition blockposition) { this.d.triggerEffect(3000, blockposition, 0); - WorldGenerator.END_GATEWAY.generate(this.d, this.d.getChunkProvider().getChunkGenerator(), new Random(), blockposition, WorldGenEndGatewayConfiguration.a()); + WorldGenerator.END_GATEWAY.b(WorldGenEndGatewayConfiguration.a()).a(this.d, this.d.getChunkProvider().getChunkGenerator(), new Random(), blockposition); // Paper - decompile fix } + // Purpur start diff --git a/patches/server/0081-Implement-infinite-lava.patch b/patches/server/0080-Implement-infinite-lava.patch similarity index 92% rename from patches/server/0081-Implement-infinite-lava.patch rename to patches/server/0080-Implement-infinite-lava.patch index 2e6975b1b..896ae27c4 100644 --- a/patches/server/0081-Implement-infinite-lava.patch +++ b/patches/server/0080-Implement-infinite-lava.patch @@ -1,4 +1,4 @@ -From f7042a404bdd4b7a5d79b5f8f0b9a2b46cfdb43e Mon Sep 17 00:00:00 2001 +From 4dee2c19e21f815569d565c56d5d7d25c9c5b00a Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 23 Nov 2019 17:55:42 -0600 Subject: [PATCH] Implement infinite lava @@ -9,13 +9,13 @@ Subject: [PATCH] Implement infinite lava 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/minecraft/server/FluidTypeLava.java b/src/main/java/net/minecraft/server/FluidTypeLava.java -index ff677c59e5..240f0a9fdc 100644 +index d25368d032..3ce21da824 100644 --- a/src/main/java/net/minecraft/server/FluidTypeLava.java +++ b/src/main/java/net/minecraft/server/FluidTypeLava.java @@ -149,7 +149,7 @@ public abstract class FluidTypeLava extends FluidTypeFlowing { @Override - protected boolean g() { + protected boolean f() { - return false; + return net.pl3x.purpur.PurpurConfig.infiniteLava; } diff --git a/patches/server/0082-Phantoms-only-attack-insomniacs.patch b/patches/server/0081-Phantoms-only-attack-insomniacs.patch similarity index 94% rename from patches/server/0082-Phantoms-only-attack-insomniacs.patch rename to patches/server/0081-Phantoms-only-attack-insomniacs.patch index 624ea2ff9..91bfba0bc 100644 --- a/patches/server/0082-Phantoms-only-attack-insomniacs.patch +++ b/patches/server/0081-Phantoms-only-attack-insomniacs.patch @@ -1,4 +1,4 @@ -From e4857b12fbb38db43e72a82ad6d9182619557d00 Mon Sep 17 00:00:00 2001 +From 8c66e5748d306678a0c33f2e4bf5eb7ed40f29c4 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Fri, 29 Nov 2019 20:33:41 -0600 Subject: [PATCH] Phantoms only attack insomniacs @@ -10,10 +10,10 @@ Subject: [PATCH] Phantoms only attack insomniacs 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/minecraft/server/EntityPhantom.java b/src/main/java/net/minecraft/server/EntityPhantom.java -index 69a1c79e74..02cd96f64e 100644 +index ccc1ade4e4..af0828c28a 100644 --- a/src/main/java/net/minecraft/server/EntityPhantom.java +++ b/src/main/java/net/minecraft/server/EntityPhantom.java -@@ -391,8 +391,11 @@ public class EntityPhantom extends EntityFlying implements IMonster { +@@ -392,8 +392,11 @@ public class EntityPhantom extends EntityFlying implements IMonster { EntityHuman entityhuman = (EntityHuman) iterator.next(); if (EntityPhantom.this.a((EntityLiving) entityhuman, PathfinderTargetCondition.a)) { @@ -28,7 +28,7 @@ index 69a1c79e74..02cd96f64e 100644 } } diff --git a/src/main/java/net/minecraft/server/IEntitySelector.java b/src/main/java/net/minecraft/server/IEntitySelector.java -index df79e4af9d..7312e1586b 100644 +index 71c61dc45e..becf9d29e2 100644 --- a/src/main/java/net/minecraft/server/IEntitySelector.java +++ b/src/main/java/net/minecraft/server/IEntitySelector.java @@ -25,6 +25,7 @@ public final class IEntitySelector { diff --git a/patches/server/0083-Villagers-follow-emerald-blocks.patch b/patches/server/0082-Villagers-follow-emerald-blocks.patch similarity index 91% rename from patches/server/0083-Villagers-follow-emerald-blocks.patch rename to patches/server/0082-Villagers-follow-emerald-blocks.patch index a7cce55ad..760806cf0 100644 --- a/patches/server/0083-Villagers-follow-emerald-blocks.patch +++ b/patches/server/0082-Villagers-follow-emerald-blocks.patch @@ -1,4 +1,4 @@ -From 133184a0864f4daec4b4b5752b620781176bf117 Mon Sep 17 00:00:00 2001 +From 0a7cb9e8304d9aebdda3063c6d1076a25e804bce Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Fri, 29 Nov 2019 22:10:12 -0600 Subject: [PATCH] Villagers follow emerald blocks @@ -9,7 +9,7 @@ Subject: [PATCH] Villagers follow emerald blocks 2 files changed, 12 insertions(+) diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java -index 2a848304df..f9da2f1058 100644 +index 8b036c3b53..22b6e02895 100644 --- a/src/main/java/net/minecraft/server/EntityVillager.java +++ b/src/main/java/net/minecraft/server/EntityVillager.java @@ -29,6 +29,7 @@ import org.bukkit.event.entity.VillagerReplenishTradeEvent; @@ -17,9 +17,9 @@ index 2a848304df..f9da2f1058 100644 public class EntityVillager extends EntityVillagerAbstract implements ReputationHandler, VillagerDataHolder { + private static final RecipeItemStack TEMPT_ITEMS = RecipeItemStack.a(Blocks.EMERALD_BLOCK.getItem()); // Purpur - private static final DataWatcherObject bC = DataWatcher.a(EntityVillager.class, DataWatcherRegistry.q); - public static final Map bA = ImmutableMap.of(Items.BREAD, 4, Items.POTATO, 1, Items.CARROT, 1, Items.BEETROOT, 1); - private static final Set bD = ImmutableSet.of(Items.BREAD, Items.POTATO, Items.CARROT, Items.WHEAT, Items.WHEAT_SEEDS, Items.BEETROOT, new Item[]{Items.BEETROOT_SEEDS}); + private static final DataWatcherObject bz = DataWatcher.a(EntityVillager.class, DataWatcherRegistry.q); + public static final Map bx = ImmutableMap.of(Items.BREAD, 4, Items.POTATO, 1, Items.CARROT, 1, Items.BEETROOT, 1); + private static final Set bA = ImmutableSet.of(Items.BREAD, Items.POTATO, Items.CARROT, Items.WHEAT, Items.WHEAT_SEEDS, Items.BEETROOT, new Item[]{Items.BEETROOT_SEEDS}); @@ -70,6 +71,15 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation brainTickOffset = getRandom().nextInt(100); // Purpur } diff --git a/patches/server/0084-Add-charged-creeper-spawn-chance.patch b/patches/server/0083-Add-charged-creeper-spawn-chance.patch similarity index 94% rename from patches/server/0084-Add-charged-creeper-spawn-chance.patch rename to patches/server/0083-Add-charged-creeper-spawn-chance.patch index 3e65cf901..f2b39dde1 100644 --- a/patches/server/0084-Add-charged-creeper-spawn-chance.patch +++ b/patches/server/0083-Add-charged-creeper-spawn-chance.patch @@ -1,4 +1,4 @@ -From 5a594c375f52e81252ca15d34e17a1fd8c37da34 Mon Sep 17 00:00:00 2001 +From 3a270f96763f004d959fc1d455972c2dac4a0d6a Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Fri, 29 Nov 2019 22:37:44 -0600 Subject: [PATCH] Add charged creeper spawn chance @@ -9,7 +9,7 @@ Subject: [PATCH] Add charged creeper spawn chance 2 files changed, 21 insertions(+) diff --git a/src/main/java/net/minecraft/server/EntityCreeper.java b/src/main/java/net/minecraft/server/EntityCreeper.java -index 038ff1d93c..0c49828b3d 100644 +index 9bce3f7716..be6a1ea054 100644 --- a/src/main/java/net/minecraft/server/EntityCreeper.java +++ b/src/main/java/net/minecraft/server/EntityCreeper.java @@ -1,11 +1,16 @@ @@ -29,7 +29,7 @@ index 038ff1d93c..0c49828b3d 100644 // CraftBukkit end public class EntityCreeper extends EntityMonster { -@@ -68,6 +73,17 @@ public class EntityCreeper extends EntityMonster { +@@ -70,6 +75,17 @@ public class EntityCreeper extends EntityMonster { this.datawatcher.register(EntityCreeper.d, false); } diff --git a/patches/server/0085-Despawn-egg-hatches-chicken.patch b/patches/server/0084-Despawn-egg-hatches-chicken.patch similarity index 89% rename from patches/server/0085-Despawn-egg-hatches-chicken.patch rename to patches/server/0084-Despawn-egg-hatches-chicken.patch index dd5042632..d558d8d05 100644 --- a/patches/server/0085-Despawn-egg-hatches-chicken.patch +++ b/patches/server/0084-Despawn-egg-hatches-chicken.patch @@ -1,4 +1,4 @@ -From 19dfa417405272bbab21d90f3fd0a88828ebb0c7 Mon Sep 17 00:00:00 2001 +From 209df14113e37519c2a2bfc00c15e04266c9ce31 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Fri, 29 Nov 2019 23:47:42 -0600 Subject: [PATCH] Despawn egg hatches chicken @@ -9,10 +9,10 @@ Subject: [PATCH] Despawn egg hatches chicken 2 files changed, 23 insertions(+) diff --git a/src/main/java/net/minecraft/server/EntityItem.java b/src/main/java/net/minecraft/server/EntityItem.java -index df26cef6a6..4849f600a1 100644 +index e61af3f5eb..b9ad1ff70e 100644 --- a/src/main/java/net/minecraft/server/EntityItem.java +++ b/src/main/java/net/minecraft/server/EntityItem.java -@@ -164,6 +164,24 @@ public class EntityItem extends Entity { +@@ -165,6 +165,24 @@ public class EntityItem extends Entity { } // Spigot end @@ -24,7 +24,7 @@ index df26cef6a6..4849f600a1 100644 + if (item != null && item.getItem() == Items.EGG) { + EntityChicken chicken = EntityTypes.CHICKEN.create(world); + if (chicken != null) { -+ chicken.setPosition(locX, locY, locZ); ++ chicken.setPosition(locX(), locY(), locZ()); + chicken.setAge(-24000); + world.addEntity(chicken, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.EGG); + } @@ -34,7 +34,7 @@ index df26cef6a6..4849f600a1 100644 + } + // Purpur end + - private void v() { + private void u() { Vec3D vec3d = this.getMot(); diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java diff --git a/patches/server/0086-Option-for-hay-block-fall-damage.patch b/patches/server/0085-Option-for-hay-block-fall-damage.patch similarity index 94% rename from patches/server/0086-Option-for-hay-block-fall-damage.patch rename to patches/server/0085-Option-for-hay-block-fall-damage.patch index 6c0e03b9b..602bea2d4 100644 --- a/patches/server/0086-Option-for-hay-block-fall-damage.patch +++ b/patches/server/0085-Option-for-hay-block-fall-damage.patch @@ -1,4 +1,4 @@ -From f8ffd6150b096620260a3bae19180b547ef2f493 Mon Sep 17 00:00:00 2001 +From 13e0dfab77cbabfffd3b5b83e86ffbab5f33ccb1 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 30 Nov 2019 01:31:09 -0600 Subject: [PATCH] Option for hay block fall damage @@ -9,7 +9,7 @@ Subject: [PATCH] Option for hay block fall damage 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/minecraft/server/BlockHay.java b/src/main/java/net/minecraft/server/BlockHay.java -index e820cc0b06..e872d4666a 100644 +index ca81c49f0a..ca8f957989 100644 --- a/src/main/java/net/minecraft/server/BlockHay.java +++ b/src/main/java/net/minecraft/server/BlockHay.java @@ -9,6 +9,6 @@ public class BlockHay extends BlockRotatable { diff --git a/patches/server/0087-Add-sleep-options.patch b/patches/server/0086-Add-sleep-options.patch similarity index 91% rename from patches/server/0087-Add-sleep-options.patch rename to patches/server/0086-Add-sleep-options.patch index 2110e7063..2c39f505e 100644 --- a/patches/server/0087-Add-sleep-options.patch +++ b/patches/server/0086-Add-sleep-options.patch @@ -1,4 +1,4 @@ -From b3254cd0c8a19f1773a50e43315a75fdb36a4ec0 Mon Sep 17 00:00:00 2001 +From 91cca1e9d85a776b1aeff360f49c93eeae35371d Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 30 Nov 2019 03:30:17 -0600 Subject: [PATCH] Add sleep options @@ -9,7 +9,7 @@ Subject: [PATCH] Add sleep options 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java -index 3610611299..26e1b8e2dc 100644 +index 2ec3e660b3..9d7122632b 100644 --- a/src/main/java/net/minecraft/server/EntityHuman.java +++ b/src/main/java/net/minecraft/server/EntityHuman.java @@ -14,6 +14,11 @@ import java.util.OptionalInt; @@ -33,7 +33,7 @@ index 3610611299..26e1b8e2dc 100644 public abstract class EntityHuman extends EntityLiving { @@ -143,6 +147,21 @@ public abstract class EntityHuman extends EntityLiving { - this.datawatcher.register(EntityHuman.bw, new NBTTagCompound()); + this.datawatcher.register(EntityHuman.bt, new NBTTagCompound()); } + // Purpur start @@ -60,18 +60,18 @@ index 3610611299..26e1b8e2dc 100644 - if (!this.world.isClientSide && this.world.J()) { + if (!this.world.isClientSide && unableToSleepRightNow()) { // Purpur - this.wakeup(false, true, true); + this.wakeup(false, true); } } else if (this.sleepTicks > 0) { -@@ -1268,7 +1287,7 @@ public abstract class EntityHuman extends EntityLiving { +@@ -1334,7 +1353,7 @@ public abstract class EntityHuman extends EntityLiving { return Either.left(EntityHuman.EnumBedResult.NOT_POSSIBLE_HERE); } - if (this.world.J()) { + if (unableToSleepRightNow()) { // Purpur + this.setRespawnPosition(blockposition, false, true); return Either.left(EntityHuman.EnumBedResult.NOT_POSSIBLE_NOW); } - diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java index a1237c5b9d..f61ed338ce 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java diff --git a/patches/server/0088-Double-Click-Jar-Check.patch b/patches/server/0087-Double-Click-Jar-Check.patch similarity index 90% rename from patches/server/0088-Double-Click-Jar-Check.patch rename to patches/server/0087-Double-Click-Jar-Check.patch index d2fc39747..e52609ac8 100644 --- a/patches/server/0088-Double-Click-Jar-Check.patch +++ b/patches/server/0087-Double-Click-Jar-Check.patch @@ -1,4 +1,4 @@ -From cb243d10d29ec985bc421e44127bf382b10de3e0 Mon Sep 17 00:00:00 2001 +From c111fde8e661027df0bed942b8878309eabf11b2 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 7 Dec 2019 14:35:43 -0600 Subject: [PATCH] Double Click Jar Check @@ -8,7 +8,7 @@ Subject: [PATCH] Double Click Jar Check 1 file changed, 6 insertions(+) diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 31af710a07..b105416ba3 100644 +index 3a4881fb18..5873ad54fa 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -20,6 +20,12 @@ public class Main { diff --git a/scripts/upstream.sh b/scripts/upstream.sh index e486a9a0a..25ec4c8d4 100755 --- a/scripts/upstream.sh +++ b/scripts/upstream.sh @@ -11,7 +11,7 @@ done if [[ "$1" == up* ]]; then ( cd "$basedir/Paper/" - git fetch && git reset --hard origin/ver/1.14 + git fetch && git reset --hard origin/master cd ../ git add Paper )