From 8ad93574376ed92b65349a67bc7562d052ff5b42 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Tue, 21 Jan 2020 22:17:22 -0600 Subject: [PATCH] Updated Upstream (Paper) Upstream has released updates that appears to apply and compile correctly Paper Changes: 19ff55ef Update upstream B/CB 79710332 Update upstream CB 19de9af6 1.15.2 update (#2887) d4ae43fc Updated Upstream (Bukkit/CraftBukkit) 9c2d9a5f [CI-SKIP] Rebuild patches 86a4b752 Fix items not falling correctly (Resolves #2835) (#2872) 35472de2 Port activation range improvement patch (#2763) 617f6033 Add effect to block break naturally (#2819) f63cfe00 Updated Upstream (Bukkit/CraftBukkit) 00860e4e [CI-SKIP] rebuild patches 3d519668 Prevent sync chunk loads when villagers try to find beds (#2855) --- 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 +- ...intless-annotations-and-deprecations.patch | 8 +- patches/server/0001-Rebrand.patch | 18 +- patches/server/0002-Purpur-config-files.patch | 24 +- ...cows-to-mooshroom-when-fed-mushrooms.patch | 18 +- ...pumpkin-on-off-by-player-interaction.patch | 12 +- ...lement-LivingEntity-safeFallDistance.patch | 14 +- ...ed-to-crystals-and-crystals-shoot-ph.patch | 20 +- patches/server/0010-Integrate-ridables.patch | 52 ++-- ...e-giants-naturally-spawn-and-have-AI.patch | 18 +- .../0014-Add-regen-effect-to-campfires.patch | 12 +- .../0021-Advancement-API-Additions.patch | 26 +- .../server/0027-Controllable-Minecarts.patch | 12 +- ...able-loot-drops-on-death-by-cramming.patch | 10 +- ...-should-not-bypass-cramming-gamerule.patch | 22 +- .../0043-Implement-lagging-threshold.patch | 12 +- .../0045-Implement-elytra-settings.patch | 46 ++-- ...0046-Add-5-second-tps-average-in-tps.patch | 14 +- patches/server/0050-Implement-AFK-API.patch | 24 +- ...ispenser-curse-of-binding-protection.patch | 10 +- .../0060-Allow-leashing-villagers.patch | 10 +- patches/server/0065-Add-more-llama-API.patch | 22 +- patches/server/0066-Add-entity-jump-API.patch | 10 +- ...geEvent-not-firing-for-all-use-cases.patch | 8 +- .../0076-Add-MonsterEggSpawnEvent.patch | 8 +- patches/server/0087-Bring-back-the-GUI.patch | 83 ------- ...out-and-add-colors-to-the-Server-GUI.patch | 221 +++++++++++++++++ .../0088-Disable-outdated-build-check.patch | 6 +- ...Add-player-death-exp-control-options.patch | 8 +- ... => 0096-Add-EntityPortalReadyEvent.patch} | 14 +- ...w-beehives-to-generate-with-saplings.patch | 232 ------------------ ...nfigurable-beehive-generation-chance.patch | 82 ------- ...skeleton-takes-wither-damage-option.patch} | 8 +- 38 files changed, 466 insertions(+), 650 deletions(-) delete mode 100644 patches/server/0087-Bring-back-the-GUI.patch create mode 100644 patches/server/0087-Fix-layout-and-add-colors-to-the-Server-GUI.patch rename patches/server/{0098-Add-EntityPortalReadyEvent.patch => 0096-Add-EntityPortalReadyEvent.patch} (96%) delete mode 100644 patches/server/0096-Allow-beehives-to-generate-with-saplings.patch delete mode 100644 patches/server/0097-Add-configurable-beehive-generation-chance.patch rename patches/server/{0099-Add-wither-skeleton-takes-wither-damage-option.patch => 0097-Add-wither-skeleton-takes-wither-damage-option.patch} (90%) diff --git a/Paper b/Paper index f177f878a..19ff55ef0 160000 --- a/Paper +++ b/Paper @@ -1 +1 @@ -Subproject commit f177f878a8841e3a30455c83cfe7281ea0c4407e +Subproject commit 19ff55ef0d0764376ad2aa88e9161ac7b4994fa8 diff --git a/current-paper b/current-paper index 84131da1c..536ad8563 100644 --- a/current-paper +++ b/current-paper @@ -1 +1 @@ -1.15.1--613341485330744f24c3571d6155c3a22759de90 +1.15.2--49e3db289083b6b23361e320a7ddec4f66ede815 diff --git a/patches/api/0001-Rebrand.patch b/patches/api/0001-Rebrand.patch index 03c58a1ce..7184058d1 100644 --- a/patches/api/0001-Rebrand.patch +++ b/patches/api/0001-Rebrand.patch @@ -1,4 +1,4 @@ -From 8841ac5cfa4279d1c536f583e8923bebe49b728b Mon Sep 17 00:00:00 2001 +From 01a25cd141c95cc6334a73edb6bee77d55f893fa 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 252ddd226..24f885767 100644 +index a71015f40..dfaf8da6d 100644 --- a/pom.xml +++ b/pom.xml @@ -3,18 +3,17 @@ @@ -25,7 +25,7 @@ index 252ddd226..24f885767 100644 - com.destroystokyo.paper - paper-api + purpur-api - 1.15.1-R0.1-SNAPSHOT + 1.15.2-R0.1-SNAPSHOT jar - Paper-API @@ -45,5 +45,5 @@ index 252ddd226..24f885767 100644 org.apache.maven.plugins -- -2.24.0.rc1 +2.24.0 diff --git a/patches/api/0013-Implement-AFK-API.patch b/patches/api/0013-Implement-AFK-API.patch index 3aede1c4c..a5b6541f4 100644 --- a/patches/api/0013-Implement-AFK-API.patch +++ b/patches/api/0013-Implement-AFK-API.patch @@ -1,4 +1,4 @@ -From 6704edef6d63a6ec2fa6d2639af20b3ba04203f0 Mon Sep 17 00:00:00 2001 +From 817e206de1b706e4d070f4f8b9eae40cc5856dfa 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 e37c94e4e..81d2d2b86 100644 +index 7f771b356..d7c4118de 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -2048,4 +2048,25 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2073,4 +2073,25 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM @Override Spigot spigot(); // Spigot end @@ -116,5 +116,5 @@ index e37c94e4e..81d2d2b86 100644 + // Purpur end } -- -2.24.0.rc1 +2.24.0 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 14275f75b..d85eab634 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 086d06c91d3c358f3b7b0603530a5c668f488c76 Mon Sep 17 00:00:00 2001 +From cb458f71ac63c46f685c10bbf70b7a7db1328438 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 579b779aa..d6fd253e5 100644 +index b46b27194..72c83510e 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java -@@ -3064,6 +3064,36 @@ public interface World extends PluginMessageRecipient, Metadatable { +@@ -3061,6 +3061,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 43fc6d7c2..1848b9773 100644 --- a/patches/api/0020-Add-getPlacementBlockData-to-World.patch +++ b/patches/api/0020-Add-getPlacementBlockData-to-World.patch @@ -1,4 +1,4 @@ -From df13ad308de51c50e411f06f6a7380aff8bae8ec Mon Sep 17 00:00:00 2001 +From 80badd7d99ee6288238e318bfdb1ad8953f899c8 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 d6fd253e5..17a45a9b6 100644 +index 72c83510e..86d1f1663 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java -@@ -3092,6 +3092,16 @@ public interface World extends PluginMessageRecipient, Metadatable { +@@ -3089,6 +3089,16 @@ public interface World extends PluginMessageRecipient, Metadatable { * @param enabled True to enable */ void setFluidTickEventEnabled(boolean enabled); diff --git a/patches/api/0027-Remove-pointless-annotations-and-deprecations.patch b/patches/api/0027-Remove-pointless-annotations-and-deprecations.patch index 048a6e5d0..e141ec32a 100644 --- a/patches/api/0027-Remove-pointless-annotations-and-deprecations.patch +++ b/patches/api/0027-Remove-pointless-annotations-and-deprecations.patch @@ -1,4 +1,4 @@ -From 804e28a389aed21f58adc8deddd1b22252d99dbd Mon Sep 17 00:00:00 2001 +From f9315e180c14b58252a214df391a8aebe9e7d13e Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Tue, 31 Dec 2019 23:00:07 -0600 Subject: [PATCH] Remove pointless annotations and deprecations @@ -72,10 +72,10 @@ index e9cf71f5c..34d3462c7 100644 + public List onTabComplete(CommandSender sender, Command command, String alias, String[] args); // Purpur - remove pointless annotations } diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java -index 495161f62..4b8661bb3 100644 +index 5426e7c2f..cc324fe23 100644 --- a/src/main/java/org/bukkit/inventory/ItemStack.java +++ b/src/main/java/org/bukkit/inventory/ItemStack.java -@@ -186,13 +186,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable { +@@ -204,13 +204,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable { * Sets the durability of this item * * @param durability Durability of this item @@ -89,7 +89,7 @@ index 495161f62..4b8661bb3 100644 public void setDurability(final short durability) { ItemMeta meta = getItemMeta(); if (meta != null) { -@@ -205,9 +199,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable { +@@ -223,9 +217,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable { * Gets the durability of this item * * @return Durability of this item diff --git a/patches/server/0001-Rebrand.patch b/patches/server/0001-Rebrand.patch index 362c03e24..012895257 100644 --- a/patches/server/0001-Rebrand.patch +++ b/patches/server/0001-Rebrand.patch @@ -1,4 +1,4 @@ -From d7157493340eae748625f3acbcb8a4880e092c96 Mon Sep 17 00:00:00 2001 +From 56a276c134cd6770a63b90cf1f8b049fedf6f7de 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 495e11f0f..f0fc55ba9 100644 +index 907807ee5..37ff489db 100644 --- a/pom.xml +++ b/pom.xml @@ -1,11 +1,11 @@ @@ -25,7 +25,7 @@ index 495e11f0f..f0fc55ba9 100644 - paper + purpur jar - 1.15.1-R0.1-SNAPSHOT + 1.15.2-R0.1-SNAPSHOT - Paper - https://papermc.io + Purpur @@ -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 edb3a6035..f14d1b160 100644 +index 346664cee..ac45dbf59 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1474,7 +1474,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant Date: Thu, 9 May 2019 18:09:43 -0500 Subject: [PATCH] Purpur config files @@ -20,7 +20,7 @@ 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 1d7d1ffbf7..d886f1d145 100644 +index 1d7d1ffbf..d886f1d14 100644 --- a/src/main/java/com/destroystokyo/paper/PaperConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java @@ -96,10 +96,12 @@ public class PaperConfig { @@ -37,10 +37,10 @@ index 1d7d1ffbf7..d886f1d145 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 3ed74ae0ec..8139108470 100644 +index a74fae9ed..8b5f4cab0 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 +@@ -185,6 +185,15 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer return false; } com.destroystokyo.paper.PaperConfig.registerCommands(); @@ -57,7 +57,7 @@ index 3ed74ae0ec..8139108470 100644 // Paper end diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 5460ace8f8..c5cd19afa0 100644 +index 9df079d8a..7a7874c0a 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -96,6 +96,8 @@ public abstract class World implements GeneratorAccess, AutoCloseable { @@ -79,7 +79,7 @@ index 5460ace8f8..c5cd19afa0 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 0000000000..246eb8140f +index 000000000..246eb8140 --- /dev/null +++ b/src/main/java/net/pl3x/purpur/Metrics.java @@ -0,0 +1,598 @@ @@ -683,7 +683,7 @@ index 0000000000..246eb8140f +} 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 0000000000..f8cf4ad234 +index 000000000..f8cf4ad23 --- /dev/null +++ b/src/main/java/net/pl3x/purpur/PurpurCommand.java @@ -0,0 +1,66 @@ @@ -755,7 +755,7 @@ index 0000000000..f8cf4ad234 +} 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 0000000000..6f378b5f69 +index 000000000..6f378b5f6 --- /dev/null +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -0,0 +1,133 @@ @@ -894,7 +894,7 @@ index 0000000000..6f378b5f69 +} 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 0000000000..4985f21733 +index 000000000..4985f2173 --- /dev/null +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -0,0 +1,60 @@ @@ -959,7 +959,7 @@ index 0000000000..4985f21733 + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 55b8492373..4c15bd403d 100644 +index 55b849237..4c15bd403 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -794,6 +794,7 @@ public final class CraftServer implements Server { @@ -987,10 +987,10 @@ index 55b8492373..4c15bd403d 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 75d3cbc441..c9937fb0d6 100644 +index eb5f44e30..7e8b6cab7 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 { +@@ -138,6 +138,14 @@ public class Main { .describedAs("Yml file"); // 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 c2de820a8..b3a912b77 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 8f5f46daa61cc43483f5fe2385799d8c6290b1bb Mon Sep 17 00:00:00 2001 +From 33dcc02e3f144c7a4fd1467b79477ecdddce520d 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 @@ -11,10 +11,10 @@ Subject: [PATCH] cows to mooshroom when fed mushrooms 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 f0d1a5b14d..682457e285 100644 +index c1ffd6dc1..fefdd2b27 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -1036,6 +1036,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1037,6 +1037,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke return false; } @@ -22,7 +22,7 @@ index f0d1a5b14d..682457e285 100644 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); -@@ -2553,6 +2554,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -2554,6 +2555,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke this.invulnerable = flag; } @@ -31,7 +31,7 @@ index f0d1a5b14d..682457e285 100644 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..e1d0f0f38d 100644 +index 2c8bbf20a..e1d0f0f38 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 { @@ -124,10 +124,10 @@ index 2c8bbf20ae..e1d0f0f38d 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 80219f2df1..0e3062468b 100644 +index 6184cced7..ad6f96988 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java -@@ -2807,6 +2807,13 @@ public abstract class EntityLiving extends Entity { +@@ -2809,6 +2809,13 @@ public abstract class EntityLiving extends Entity { this.aK = f; } @@ -142,7 +142,7 @@ index 80219f2df1..0e3062468b 100644 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 +index 6f378b5f6..26e95035b 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -130,4 +130,9 @@ public class PurpurConfig { @@ -156,5 +156,5 @@ index 6f378b5f69..26e95035b2 100644 + } } -- -2.24.0.rc1 +2.24.0 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 3920aff75..f23a92c11 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,4 +1,4 @@ -From e8d0089b90abb1eb2cfda12880241af711203cfb Mon Sep 17 00:00:00 2001 +From aedad81d1950f053f3b8e58cb61a1d1089f3a86c 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 @@ -9,7 +9,7 @@ Subject: [PATCH] Snowman set pumpkin on/off by player interaction 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 291f4a72c6..53c5057d20 100644 +index 07ca1a498..54404dd4b 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; @@ -35,14 +35,14 @@ index 291f4a72c6..53c5057d20 100644 - // CraftBukkit end - this.setHasPumpkin(false); - itemstack.damage(1, entityhuman, (entityhuman1) -> { -- entityhuman1.d(enumhand); +- entityhuman1.broadcastItemBreak(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); ++ entityhuman1.broadcastItemBreak(enumhand); + }); + + if (net.pl3x.purpur.PurpurConfig.snowmanDropsPumpkin) { @@ -66,7 +66,7 @@ index 291f4a72c6..53c5057d20 100644 public boolean hasPumpkin() { diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 26e95035b2..0c408a10cf 100644 +index 26e95035b..0c408a10c 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 { @@ -82,5 +82,5 @@ index 26e95035b2..0c408a10cf 100644 + } } -- -2.24.0.rc1 +2.24.0 diff --git a/patches/server/0007-Implement-LivingEntity-safeFallDistance.patch b/patches/server/0007-Implement-LivingEntity-safeFallDistance.patch index ad368bcd7..21829e63a 100644 --- a/patches/server/0007-Implement-LivingEntity-safeFallDistance.patch +++ b/patches/server/0007-Implement-LivingEntity-safeFallDistance.patch @@ -1,4 +1,4 @@ -From 743a5398d50290d48be6395e2302ac853bdd0f51 Mon Sep 17 00:00:00 2001 +From 80f15a30500567abd6198792f83df09821255f8c 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 @@ -11,7 +11,7 @@ Subject: [PATCH] Implement LivingEntity safeFallDistance 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 d9e5eaad12..bcbade19ea 100644 +index d9e5eaad1..bcbade19e 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 { @@ -25,7 +25,7 @@ index d9e5eaad12..bcbade19ea 100644 @Override diff --git a/src/main/java/net/minecraft/server/EntityHorseAbstract.java b/src/main/java/net/minecraft/server/EntityHorseAbstract.java -index c56efe035a..9e708769f7 100644 +index c56efe035..9e708769f 100644 --- a/src/main/java/net/minecraft/server/EntityHorseAbstract.java +++ b/src/main/java/net/minecraft/server/EntityHorseAbstract.java @@ -202,7 +202,7 @@ public abstract class EntityHorseAbstract extends EntityAnimal implements IInven @@ -38,7 +38,7 @@ index c56efe035a..9e708769f7 100644 protected int getChestSlots() { diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index 0e3062468b..0d5236bd7e 100644 +index ad6f96988..d44977891 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java @@ -125,6 +125,7 @@ public abstract class EntityLiving extends Entity { @@ -49,7 +49,7 @@ index 0e3062468b..0d5236bd7e 100644 boolean forceDrops; ArrayList drops = new ArrayList(); public org.bukkit.craftbukkit.attribute.CraftAttributeMap craftAttributes; -@@ -1542,7 +1543,7 @@ public abstract class EntityLiving extends Entity { +@@ -1544,7 +1545,7 @@ public abstract class EntityLiving extends Entity { MobEffect mobeffect = this.getEffect(MobEffects.JUMP); float f2 = mobeffect == null ? 0.0F : (float) (mobeffect.getAmplifier() + 1); @@ -59,7 +59,7 @@ index 0e3062468b..0d5236bd7e 100644 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 b27fd44dcd..33f56b85ea 100644 +index b27fd44dc..33f56b85e 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 { @@ -80,5 +80,5 @@ index b27fd44dcd..33f56b85ea 100644 + // Purpur end } -- -2.24.0.rc1 +2.24.0 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 f46e98f2d..cd3436997 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 31106c152e9dda8876dbf2f89a26696f06f7aa61 Mon Sep 17 00:00:00 2001 +From c71a2b36871ed2f457ffd56b745e72148efabb7e 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,7 +13,7 @@ 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 816d301f1c..0971f25b56 100644 +index 816d301f1..0971f25b5 100644 --- a/src/main/java/net/minecraft/server/DamageSource.java +++ b/src/main/java/net/minecraft/server/DamageSource.java @@ -81,6 +81,7 @@ public class DamageSource { @@ -25,10 +25,10 @@ index 816d301f1c..0971f25b56 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 682457e285..bb355803d5 100644 +index fefdd2b27..863ff08fd 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -1378,6 +1378,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1379,6 +1379,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke return d3 * d3 + d4 * d4 + d5 * d5; } @@ -36,7 +36,7 @@ index 682457e285..bb355803d5 100644 public double h(Entity entity) { return this.c(entity.getPositionVector()); } -@@ -1897,14 +1898,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1898,14 +1899,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke return this.a(new ItemStack(imaterial), (float) i); } @@ -55,7 +55,7 @@ index 682457e285..bb355803d5 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 a57d0089d8..2d46c250ed 100644 +index a57d0089d..2d46c250e 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 { @@ -123,7 +123,7 @@ index a57d0089d8..2d46c250ed 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 82323bf4ac..052a741c0b 100644 +index 82323bf4a..052a741c0 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; @@ -361,7 +361,7 @@ index 82323bf4ac..052a741c0b 100644 @Override diff --git a/src/main/java/net/minecraft/server/IEntityAccess.java b/src/main/java/net/minecraft/server/IEntityAccess.java -index c8512f9f41..8b36252ae1 100644 +index 4157e50e4..774ec96f0 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 c8512f9f41..8b36252ae1 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 0c408a10cf..960361ff74 100644 +index 0c408a10c..960361ff7 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 0c408a10cf..960361ff74 100644 public static boolean snowmanPumpkinPutBack = false; private static void snowmansSettings() { -- -2.24.0.rc1 +2.24.0 diff --git a/patches/server/0010-Integrate-ridables.patch b/patches/server/0010-Integrate-ridables.patch index d4f3bbfd2..b90fed87c 100644 --- a/patches/server/0010-Integrate-ridables.patch +++ b/patches/server/0010-Integrate-ridables.patch @@ -1,4 +1,4 @@ -From be3d390a49f53f39c350fa8be8185ac808f25683 Mon Sep 17 00:00:00 2001 +From c379803cc6ac0a39a2722e78a47fb7d55011a50b Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Tue, 30 Apr 2019 19:17:21 -0500 Subject: [PATCH] Integrate ridables @@ -116,7 +116,7 @@ index 1d9ba04da..2bade947e 100644 this.d = false; 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 cd3ea3359..ad9e98358 100644 +index 863ff08fd..bdee6efe6 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -79,6 +79,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke @@ -148,7 +148,7 @@ index cd3ea3359..ad9e98358 100644 public boolean noclip; public float J; protected final Random random; -@@ -2107,7 +2110,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -2108,7 +2111,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke } else { this.passengers.add(entity); } @@ -163,7 +163,7 @@ index cd3ea3359..ad9e98358 100644 } return true; // CraftBukkit } -@@ -2142,6 +2151,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -2143,6 +2152,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke return false; } // Spigot end @@ -176,7 +176,7 @@ index cd3ea3359..ad9e98358 100644 this.passengers.remove(entity); entity.j = 60; } -@@ -3369,4 +3384,21 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -3370,4 +3385,21 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke void accept(Entity entity, double d0, double d1, double d2); } @@ -257,7 +257,7 @@ index 34239160b..b19028fa8 100644 + // Purpur end } diff --git a/src/main/java/net/minecraft/server/EntityBee.java b/src/main/java/net/minecraft/server/EntityBee.java -index 829aab7f7..0071e1869 100644 +index f67d66b9a..24b22741d 100644 --- a/src/main/java/net/minecraft/server/EntityBee.java +++ b/src/main/java/net/minecraft/server/EntityBee.java @@ -1,6 +1,7 @@ @@ -592,7 +592,7 @@ index e1d0f0f38..dcff77d8d 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 77ba92333..72efa596d 100644 +index 45dfc8104..d1acd38f9 100644 --- a/src/main/java/net/minecraft/server/EntityCreeper.java +++ b/src/main/java/net/minecraft/server/EntityCreeper.java @@ -21,12 +21,14 @@ public class EntityCreeper extends EntityMonster { @@ -931,7 +931,7 @@ index d332907b3..0ca3d45c9 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 bd62ac3ed..738e6cb8f 100644 +index 82a32d5db..00055c39e 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 { @@ -1264,7 +1264,7 @@ index 5782a25ec..dbe022340 100644 + // Purpur end } diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java -index 003df00b4..57c528d53 100644 +index 2edb99b63..d5e8831f1 100644 --- a/src/main/java/net/minecraft/server/EntityHuman.java +++ b/src/main/java/net/minecraft/server/EntityHuman.java @@ -374,9 +374,21 @@ public abstract class EntityHuman extends EntityLiving { @@ -1311,7 +1311,7 @@ index 81b7cd06f..18fedbc69 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 5fb3c948d..654229c28 100644 +index e0355d3a3..9aafac6db 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; @@ -1352,7 +1352,7 @@ index 5fb3c948d..654229c28 100644 this.bq = new ControllerJump(this); this.c = this.o(); this.navigation = this.b(world); -@@ -152,6 +156,7 @@ public abstract class EntityInsentient extends EntityLiving { +@@ -163,6 +167,7 @@ public abstract class EntityInsentient extends EntityLiving { } public boolean setGoalTarget(EntityLiving entityliving, EntityTargetEvent.TargetReason reason, boolean fireEvent) { @@ -1360,7 +1360,7 @@ index 5fb3c948d..654229c28 100644 if (getGoalTarget() == entityliving) return false; if (fireEvent) { if (reason == EntityTargetEvent.TargetReason.UNKNOWN && getGoalTarget() != null && entityliving == null) { -@@ -483,6 +488,7 @@ public abstract class EntityInsentient extends EntityLiving { +@@ -494,6 +499,7 @@ public abstract class EntityInsentient extends EntityLiving { return super.cW(); } @@ -1368,7 +1368,7 @@ index 5fb3c948d..654229c28 100644 public void r(float f) { this.bb = f; } -@@ -495,6 +501,7 @@ public abstract class EntityInsentient extends EntityLiving { +@@ -506,6 +512,7 @@ public abstract class EntityInsentient extends EntityLiving { this.aZ = f; } @@ -1376,7 +1376,7 @@ index 5fb3c948d..654229c28 100644 @Override public void o(float f) { super.o(f); -@@ -1064,7 +1071,7 @@ public abstract class EntityInsentient extends EntityLiving { +@@ -1075,7 +1082,7 @@ public abstract class EntityInsentient extends EntityLiving { } protected boolean a(EntityHuman entityhuman, EnumHand enumhand) { @@ -1385,7 +1385,7 @@ index 5fb3c948d..654229c28 100644 } public boolean ec() { -@@ -1363,4 +1370,43 @@ public abstract class EntityInsentient extends EntityLiving { +@@ -1374,4 +1381,43 @@ public abstract class EntityInsentient extends EntityLiving { public boolean a(Item item) { return this.getItemInMainHand().getItem() == item || this.getItemInOffHand().getItem() == item; } @@ -1464,7 +1464,7 @@ index 2f764776b..63b88f454 100644 float f1 = 1.0F + (this.random.nextFloat() - this.random.nextFloat()) * 0.2F; diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index 0d5236bd7..969a77c59 100644 +index d44977891..b28c0de9a 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java @@ -91,10 +91,10 @@ public abstract class EntityLiving extends Entity { @@ -1503,7 +1503,7 @@ index 0d5236bd7..969a77c59 100644 } protected void cD() { -@@ -2088,7 +2096,7 @@ public abstract class EntityLiving extends Entity { +@@ -2090,7 +2098,7 @@ public abstract class EntityLiving extends Entity { return 0.42F * this.ah(); } @@ -1512,7 +1512,7 @@ index 0d5236bd7..969a77c59 100644 float f = this.dp(); if (this.hasEffect(MobEffects.JUMP)) { -@@ -2097,6 +2105,7 @@ public abstract class EntityLiving extends Entity { +@@ -2099,6 +2107,7 @@ public abstract class EntityLiving extends Entity { Vec3D vec3d = this.getMot(); @@ -1520,7 +1520,7 @@ index 0d5236bd7..969a77c59 100644 this.setMot(vec3d.x, (double) f, vec3d.z); if (this.isSprinting()) { float f1 = this.yaw * 0.017453292F; -@@ -2315,10 +2324,12 @@ public abstract class EntityLiving extends Entity { +@@ -2317,10 +2326,12 @@ public abstract class EntityLiving extends Entity { return this.onGround ? this.dt() * (0.21600002F / (f * f * f)) : this.aM; } @@ -1534,7 +1534,7 @@ index 0d5236bd7..969a77c59 100644 this.bB = f; } diff --git a/src/main/java/net/minecraft/server/EntityLlama.java b/src/main/java/net/minecraft/server/EntityLlama.java -index 6d4d41c88..6ebb6fd66 100644 +index 193dbfc5f..ec0f57d90 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 @@ -1655,7 +1655,7 @@ index 1fdc248ba..b5e8857cb 100644 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 ce5bac35d..80c98c04b 100644 +index a9688fbfc..5c339fb56 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 { @@ -2357,7 +2357,7 @@ index 6be29f307..7347ffcd5 100644 @Override diff --git a/src/main/java/net/minecraft/server/EntitySheep.java b/src/main/java/net/minecraft/server/EntitySheep.java -index e3419a7f4..a065ddb90 100644 +index a8ef98981..f7d9dee92 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; @@ -2447,7 +2447,7 @@ index 0e78d5c62..908e51b63 100644 @Override diff --git a/src/main/java/net/minecraft/server/EntitySkeletonAbstract.java b/src/main/java/net/minecraft/server/EntitySkeletonAbstract.java -index fdeb8980d..347766e4b 100644 +index 3c95c0428..a8cd1dcb9 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 @@ -2510,7 +2510,7 @@ index 2efc18df9..71e8e95d2 100644 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 53c5057d2..9d9998820 100644 +index 54404dd4b..eabf5a15a 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 { @@ -2807,7 +2807,7 @@ index dd02cb348..f18261197 100644 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 dcba6d6c8..b82d53e5d 100644 +index 2157f0899..0dd9897b9 100644 --- a/src/main/java/net/minecraft/server/EntityTypes.java +++ b/src/main/java/net/minecraft/server/EntityTypes.java @@ -267,6 +267,10 @@ public class EntityTypes { @@ -2966,7 +2966,7 @@ index db15d5e0a..738a9e1db 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 7d882d9c7..8f9d252c1 100644 +index 8635d4f40..6139281e5 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 { 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 b1d5abade..82eb7eb6d 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 568d2c66c68ed82365e494a7e045a915bdc230a5 Mon Sep 17 00:00:00 2001 +From 6538d3e373f0bc9b0e65ac3c1a60047dab92a874 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,7 +13,7 @@ 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 0102a170dc..9637098462 100644 +index 0102a170d..963709846 100644 --- a/src/main/java/net/minecraft/server/BiomeBase.java +++ b/src/main/java/net/minecraft/server/BiomeBase.java @@ -112,6 +112,7 @@ public abstract class BiomeBase { @@ -25,7 +25,7 @@ index 0102a170dc..9637098462 100644 ((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 12742870ca..d1f8695fee 100644 +index 12742870c..d1f8695fe 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 12742870ca..d1f8695fee 100644 + // Purpur end } diff --git a/src/main/java/net/minecraft/server/EntityGiantZombie.java b/src/main/java/net/minecraft/server/EntityGiantZombie.java -index b7e2022b19..c2408e7211 100644 +index b7e2022b1..c2408e721 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 { @@ -122,10 +122,10 @@ index b7e2022b19..c2408e7211 100644 } } diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java -index e50b5fdcc1..afafbd4986 100644 +index 9aafac6db..89b45da1b 100644 --- a/src/main/java/net/minecraft/server/EntityInsentient.java +++ b/src/main/java/net/minecraft/server/EntityInsentient.java -@@ -857,6 +857,7 @@ public abstract class EntityInsentient extends EntityLiving { +@@ -868,6 +868,7 @@ public abstract class EntityInsentient extends EntityLiving { return f; } @@ -133,7 +133,7 @@ index e50b5fdcc1..afafbd4986 100644 protected void a(DifficultyDamageScaler difficultydamagescaler) { if (this.random.nextFloat() < 0.15F * difficultydamagescaler.d()) { int i = this.random.nextInt(2); -@@ -964,6 +965,7 @@ public abstract class EntityInsentient extends EntityLiving { +@@ -975,6 +976,7 @@ public abstract class EntityInsentient extends EntityLiving { } } @@ -142,7 +142,7 @@ index e50b5fdcc1..afafbd4986 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 58bbf2f9d2..53d5900411 100644 +index 58bbf2f9d..53d590041 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 58bbf2f9d2..53d5900411 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 c4955fae62..d7da38bf5c 100644 +index c4955fae6..d7da38bf5 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 { diff --git a/patches/server/0014-Add-regen-effect-to-campfires.patch b/patches/server/0014-Add-regen-effect-to-campfires.patch index ac15b727b..0f989ffd2 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 437b82c05e30e30bf70561ae8f235336055af24d Mon Sep 17 00:00:00 2001 +From 476d9a9f88033cc88be192b638cc1cfa025ce90c 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,10 +11,10 @@ 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 969a77c597..50c494503e 100644 +index b28c0de9a..5af703bd1 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java -@@ -2779,10 +2779,19 @@ public abstract class EntityLiving extends Entity { +@@ -2781,10 +2781,19 @@ public abstract class EntityLiving extends Entity { } public boolean hasLineOfSight(Entity entity) { @@ -38,7 +38,7 @@ index 969a77c597..50c494503e 100644 @Override diff --git a/src/main/java/net/minecraft/server/EntityPotion.java b/src/main/java/net/minecraft/server/EntityPotion.java -index 2f9a73ea33..9c9131d8d4 100644 +index 2f9a73ea3..9c9131d8d 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 2f9a73ea33..9c9131d8d4 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 a1580b8c6d..3a44454ed7 100644 +index a1580b8c6..3a44454ed 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 @@ -151,7 +151,7 @@ index a1580b8c6d..3a44454ed7 100644 } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 4985f21733..f4811a1d7b 100644 +index 4985f2173..f4811a1d7 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -57,4 +57,27 @@ public class PurpurWorldConfig { diff --git a/patches/server/0021-Advancement-API-Additions.patch b/patches/server/0021-Advancement-API-Additions.patch index 069920f04..f27661c96 100644 --- a/patches/server/0021-Advancement-API-Additions.patch +++ b/patches/server/0021-Advancement-API-Additions.patch @@ -1,30 +1,32 @@ -From 89db8d3ffb6701c7c4a9ff71cfe817cfc2c0285c Mon Sep 17 00:00:00 2001 +From 507d771b4b5a27cf3dc9232f4af6b62001b760d9 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Fri, 31 May 2019 21:24:33 -0500 Subject: [PATCH] Advancement API Additions --- - .../net/minecraft/server/Advancement.java | 2 +- + .../net/minecraft/server/Advancement.java | 4 +- .../minecraft/server/AdvancementDisplay.java | 8 +++- .../server/AdvancementFrameType.java | 14 ++++-- .../advancement/CraftAdvancement.java | 6 +++ .../advancement/CraftAdvancementDisplay.java | 48 +++++++++++++++++++ - 5 files changed, 73 insertions(+), 5 deletions(-) + 5 files changed, 74 insertions(+), 6 deletions(-) create mode 100644 src/main/java/org/bukkit/craftbukkit/advancement/CraftAdvancementDisplay.java diff --git a/src/main/java/net/minecraft/server/Advancement.java b/src/main/java/net/minecraft/server/Advancement.java -index 3ef2f4d2a..ac4c29f2b 100644 +index 4b85551fa..c9df67464 100644 --- a/src/main/java/net/minecraft/server/Advancement.java +++ b/src/main/java/net/minecraft/server/Advancement.java -@@ -20,7 +20,7 @@ import org.apache.commons.lang3.ArrayUtils; - public class Advancement { +@@ -64,8 +64,8 @@ public class Advancement { + return this.parent; + } + +- @Nullable +- public AdvancementDisplay c() { ++ @Nullable public AdvancementDisplay getDisplay() { return c(); } // Purpur - OBFHELPER ++ @Nullable public AdvancementDisplay c() { + return this.display; + } - private final Advancement a; -- private final AdvancementDisplay b; -+ private final AdvancementDisplay b; public AdvancementDisplay getDisplay() { return b; } // Purpur - OBFHELPER - private final AdvancementRewards c; - private final MinecraftKey d; - private final Map e; diff --git a/src/main/java/net/minecraft/server/AdvancementDisplay.java b/src/main/java/net/minecraft/server/AdvancementDisplay.java index e8172d56f..edfd7f84a 100644 --- a/src/main/java/net/minecraft/server/AdvancementDisplay.java diff --git a/patches/server/0027-Controllable-Minecarts.patch b/patches/server/0027-Controllable-Minecarts.patch index 2d34cd8f9..67832db9c 100644 --- a/patches/server/0027-Controllable-Minecarts.patch +++ b/patches/server/0027-Controllable-Minecarts.patch @@ -1,4 +1,4 @@ -From a5861c7ad2d16003948379c308f64b0eb6baa80d Mon Sep 17 00:00:00 2001 +From 327f2130ddb69565f47048e2df5af0ff9d8eeddc 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,10 +11,10 @@ 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 c40d3b56b1..36d11cfdf2 100644 +index bdee6efe6..5a5531c10 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -1283,6 +1283,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1284,6 +1284,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke this.inLava = true; } @@ -23,7 +23,7 @@ index c40d3b56b1..36d11cfdf2 100644 return this.inLava; } diff --git a/src/main/java/net/minecraft/server/EntityMinecartAbstract.java b/src/main/java/net/minecraft/server/EntityMinecartAbstract.java -index 4388186db5..5abd8a1819 100644 +index 4388186db..5abd8a181 100644 --- a/src/main/java/net/minecraft/server/EntityMinecartAbstract.java +++ b/src/main/java/net/minecraft/server/EntityMinecartAbstract.java @@ -8,6 +8,7 @@ import java.util.List; @@ -86,7 +86,7 @@ index 4388186db5..5abd8a1819 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 b73e317fbb..aa2186add7 100644 +index b73e317fb..aa2186add 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 b73e317fbb..aa2186add7 100644 } } diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 26c855b1cc..fce20c66ee 100644 +index 26c855b1c..fce20c66e 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -1,9 +1,13 @@ 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 983a39b49..61fb6f233 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 b4228af0149ea881aabe6a2eadf46781c3421a73 Mon Sep 17 00:00:00 2001 +From 3972fecf35718134bfc2b204d0ea27c9ea9249e3 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,10 +9,10 @@ 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 50c494503e..7a5a1a2d3e 100644 +index 5af703bd1..38948133e 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java -@@ -1381,8 +1381,10 @@ public abstract class EntityLiving extends Entity { +@@ -1383,8 +1383,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)) { @@ -24,7 +24,7 @@ index 50c494503e..7a5a1a2d3e 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 db98b4c3f6..f9623c7c7a 100644 +index fce20c66e..d6af36146 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 db98b4c3f6..f9623c7c7a 100644 private static void requireShiftToMount() { requireShiftToMount = getBoolean("settings.mobs.require-shift-to-mount", requireShiftToMount); -- -2.24.0.rc1 +2.24.0 diff --git a/patches/server/0040-Ladders-should-not-bypass-cramming-gamerule.patch b/patches/server/0040-Ladders-should-not-bypass-cramming-gamerule.patch index 42feff59c..9269c953a 100644 --- a/patches/server/0040-Ladders-should-not-bypass-cramming-gamerule.patch +++ b/patches/server/0040-Ladders-should-not-bypass-cramming-gamerule.patch @@ -1,4 +1,4 @@ -From a4dcd36d98f5f3a00f5201b777478de3bdf990ab Mon Sep 17 00:00:00 2001 +From b83d33f69a3f2665db1515cac7a598bf539499cb 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 36d11cfdf..dee92e5a7 100644 +index 5a5531c10..416eb5d77 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -1508,6 +1508,10 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1509,6 +1509,10 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke } public boolean isCollidable() { @@ -32,10 +32,10 @@ index 36d11cfdf..dee92e5a7 100644 } diff --git a/src/main/java/net/minecraft/server/EntityArmorStand.java b/src/main/java/net/minecraft/server/EntityArmorStand.java -index e6032e3ed..fc4e12d9a 100644 +index 8ad131e4f..dfe8c57ce 100644 --- a/src/main/java/net/minecraft/server/EntityArmorStand.java +++ b/src/main/java/net/minecraft/server/EntityArmorStand.java -@@ -323,7 +323,7 @@ public class EntityArmorStand extends EntityLiving { +@@ -318,7 +318,7 @@ public class EntityArmorStand extends EntityLiving { } @Override @@ -58,7 +58,7 @@ index b19028fa8..56bdaf0e0 100644 } diff --git a/src/main/java/net/minecraft/server/EntityBoat.java b/src/main/java/net/minecraft/server/EntityBoat.java -index 6a1d32df6..03624bbd6 100644 +index 399fdf2f0..cb1156901 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 { @@ -84,10 +84,10 @@ index 5cd46c747..c02d2afbe 100644 } diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index 7a5a1a2d3..758131649 100644 +index 38948133e..31cfac0c8 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java -@@ -2673,7 +2673,7 @@ public abstract class EntityLiving extends Entity { +@@ -2675,7 +2675,7 @@ public abstract class EntityLiving extends Entity { protected void doTick() {} protected void collideNearby() { @@ -96,7 +96,7 @@ index 7a5a1a2d3..758131649 100644 if (!list.isEmpty()) { int i = this.world.getGameRules().getInt(GameRules.MAX_ENTITY_CRAMMING); -@@ -2811,8 +2811,10 @@ public abstract class EntityLiving extends Entity { +@@ -2813,8 +2813,10 @@ public abstract class EntityLiving extends Entity { } @Override @@ -158,7 +158,7 @@ index a2d1ef360..8d7273a38 100644 } 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 debf152bc..6c4fafaf7 100644 +index 83112e6ec..627177731 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 { @@ -174,5 +174,5 @@ index debf152bc..6c4fafaf7 100644 private static void fixItemPositionDesync() { fixItemPositionDesync = getBoolean("settings.fix-item-position-desync", fixItemPositionDesync); -- -2.24.0.rc1 +2.24.0 diff --git a/patches/server/0043-Implement-lagging-threshold.patch b/patches/server/0043-Implement-lagging-threshold.patch index b3f8b4df3..aeb333169 100644 --- a/patches/server/0043-Implement-lagging-threshold.patch +++ b/patches/server/0043-Implement-lagging-threshold.patch @@ -1,4 +1,4 @@ -From c3f604dc22a1eba909826324190c3b1d7b7d34a6 Mon Sep 17 00:00:00 2001 +From 2c5f617cc5b908f85d0a8aafb4763b97e64ee506 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,7 +10,7 @@ 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 f14d1b160a..cf807e825f 100644 +index ac45dbf59..587bef915 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -178,6 +178,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant Date: Thu, 25 Jul 2019 18:07:37 -0500 Subject: [PATCH] Implement elytra settings --- - .../java/net/minecraft/server/EntityLiving.java | 14 +++++++++++--- - .../java/net/minecraft/server/ItemFireworks.java | 8 ++++++++ - src/main/java/net/minecraft/server/ItemStack.java | 8 +++++++- - .../java/net/minecraft/server/ItemTrident.java | 10 ++++++++++ - src/main/java/net/minecraft/server/Vec3D.java | 1 + - .../java/net/pl3x/purpur/PurpurWorldConfig.java | 13 +++++++++++++ - 6 files changed, 50 insertions(+), 4 deletions(-) + .../java/net/minecraft/server/EntityLiving.java | 13 ++++++++++--- + .../java/net/minecraft/server/ItemFireworks.java | 8 ++++++++ + src/main/java/net/minecraft/server/ItemStack.java | 8 +++++++- + src/main/java/net/minecraft/server/ItemTrident.java | 10 ++++++++++ + src/main/java/net/minecraft/server/Vec3D.java | 1 + + .../java/net/pl3x/purpur/PurpurWorldConfig.java | 13 +++++++++++++ + 6 files changed, 49 insertions(+), 4 deletions(-) diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index 7581316497..7d424040cc 100644 +index 31cfac0c8..d4fb8e4a6 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java -@@ -2652,9 +2652,16 @@ public abstract class EntityLiving extends Entity { +@@ -2654,9 +2654,16 @@ public abstract class EntityLiving extends Entity { if (itemstack.getItem() == Items.ELYTRA && ItemElytra.e(itemstack)) { flag = true; if (!this.world.isClientSide && (this.bm + 1) % 20 == 0) { - itemstack.damage(1, this, (entityliving) -> { -- entityliving.c(EnumItemSlot.CHEST); +- entityliving.broadcastItemBreak(EnumItemSlot.CHEST); - }); + // Purpur start + int damage = world.purpurConfig.elytraDamagePerSecond; @@ -31,21 +31,13 @@ index 7581316497..7d424040cc 100644 + damage *= (int) speed; + } + } -+ itemstack.damage(damage, this, (entityliving) -> entityliving.c(EnumItemSlot.CHEST)); ++ itemstack.damage(damage, this, (entityliving) -> entityliving.broadcastItemBreak(EnumItemSlot.CHEST)); + // Purpur end } } else { flag = false; -@@ -3317,6 +3324,7 @@ public abstract class EntityLiving extends Entity { - } - } - -+ public void sendBreakAnimation(EnumItemSlot slot) { c(slot); } // Purpur - OBFHELPER - public void c(EnumItemSlot enumitemslot) { - 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 a43e52889f..cc8fbccd16 100644 +index bd524a35b..c0e8cd0cd 100644 --- a/src/main/java/net/minecraft/server/ItemFireworks.java +++ b/src/main/java/net/minecraft/server/ItemFireworks.java @@ -39,6 +39,14 @@ public class ItemFireworks extends Item { @@ -56,7 +48,7 @@ index a43e52889f..cc8fbccd16 100644 + if (world.purpurConfig.elytraDamagePerFireworkBoost > 0) { + ItemStack chestItem = entityhuman.getEquipment(EnumItemSlot.CHEST); + if (chestItem.getItem() == Items.ELYTRA) { -+ chestItem.damage(world.purpurConfig.elytraDamagePerFireworkBoost, entityhuman, (entityliving) -> entityliving.sendBreakAnimation(EnumItemSlot.CHEST)); ++ chestItem.damage(world.purpurConfig.elytraDamagePerFireworkBoost, entityhuman, (entityliving) -> entityliving.broadcastItemBreak(EnumItemSlot.CHEST)); + } + } + // Purpur end @@ -64,7 +56,7 @@ index a43e52889f..cc8fbccd16 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 1108aa0852..2b39d5ca20 100644 +index 1108aa085..2b39d5ca2 100644 --- a/src/main/java/net/minecraft/server/ItemStack.java +++ b/src/main/java/net/minecraft/server/ItemStack.java @@ -401,7 +401,7 @@ public final class ItemStack { @@ -90,7 +82,7 @@ index 1108aa0852..2b39d5ca20 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 1cbaed9da4..b7610aaf70 100644 +index f571a1586..c26300eac 100644 --- a/src/main/java/net/minecraft/server/ItemTrident.java +++ b/src/main/java/net/minecraft/server/ItemTrident.java @@ -100,6 +100,16 @@ public class ItemTrident extends Item { @@ -102,7 +94,7 @@ index 1cbaed9da4..b7610aaf70 100644 + ItemStack chestItem = entityhuman.getEquipment(EnumItemSlot.CHEST); + if (chestItem.getItem() == Items.ELYTRA) { + if (world.purpurConfig.elytraDamagePerTridentBoost > 0) { -+ chestItem.damage(world.purpurConfig.elytraDamagePerTridentBoost, entityhuman, (entity) -> entity.sendBreakAnimation(EnumItemSlot.CHEST)); ++ chestItem.damage(world.purpurConfig.elytraDamagePerTridentBoost, entityhuman, (entity) -> entity.broadcastItemBreak(EnumItemSlot.CHEST)); + } + } + // Purpur end @@ -111,7 +103,7 @@ index 1cbaed9da4..b7610aaf70 100644 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 212af252be..fbc30e6ece 100644 +index 212af252b..fbc30e6ec 100644 --- a/src/main/java/net/minecraft/server/Vec3D.java +++ b/src/main/java/net/minecraft/server/Vec3D.java @@ -98,6 +98,7 @@ public class Vec3D implements IPosition { @@ -123,7 +115,7 @@ index 212af252be..fbc30e6ece 100644 return this.x * this.x + this.y * this.y + this.z * this.z; } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 6cc6d8015f..6d875b78b9 100644 +index 6cc6d8015..6d875b78b 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -116,6 +116,19 @@ public class PurpurWorldConfig { diff --git a/patches/server/0046-Add-5-second-tps-average-in-tps.patch b/patches/server/0046-Add-5-second-tps-average-in-tps.patch index 4581d9c40..e9edd0a17 100644 --- a/patches/server/0046-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 3e5cdd0aa4915e7bbcdd16870984b5a8de04217b Mon Sep 17 00:00:00 2001 +From ab03dbf8091533a537d8d3d446dbc9c300c88dcc 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,7 +10,7 @@ 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 cf807e825f..db4187e24a 100644 +index 587bef915..9d5ef40a0 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -177,7 +177,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant Date: Thu, 8 Aug 2019 15:29:15 -0500 Subject: [PATCH] Implement AFK API @@ -17,10 +17,10 @@ Subject: [PATCH] Implement AFK API 10 files changed, 112 insertions(+), 24 deletions(-) diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 1837842c7..cbddb1d6b 100644 +index 416eb5d77..c24f7071a 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -1374,6 +1374,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1375,6 +1375,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke return MathHelper.c(f * f + f1 * f1 + f2 * f2); } @@ -29,7 +29,7 @@ index 1837842c7..cbddb1d6b 100644 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 57c528d53..3c9f18096 100644 +index d5e8831f1..1302c36b2 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 { @@ -49,7 +49,7 @@ index 57c528d53..3c9f18096 100644 super(EntityTypes.PLAYER, world); 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 df20e5706..e91cf84f7 100644 +index 5545df892..621e3948e 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java @@ -1611,8 +1611,51 @@ public class EntityPlayer extends EntityHuman implements ICrafting { @@ -105,7 +105,7 @@ index df20e5706..e91cf84f7 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 818243351..69f4fedd0 100644 +index 774ec96f0..5ef881634 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 { @@ -205,13 +205,13 @@ index a4af019bc..2db59c55c 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 fbfe37ea0..4dfcce82d 100644 +index a0477134d..9d3df98e7 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java @@ -376,7 +376,7 @@ public class WorldServer extends World { } - if (this.C && this.players.stream().noneMatch((entityplayer) -> { + if (this.everyoneSleeping && this.players.stream().noneMatch((entityplayer) -> { - return !entityplayer.isSpectator() && !entityplayer.isDeeplySleeping() && !entityplayer.fauxSleeping; // CraftBukkit + return !entityplayer.isSpectator() && !entityplayer.isDeeplySleeping() && !entityplayer.fauxSleeping && !(purpurConfig.idleTimeoutCountAsSleeping && entityplayer.isAfk()); // CraftBukkit // Purpur })) { @@ -253,10 +253,10 @@ index 6d875b78b..7422f361e 100644 private void itemsCanBreakTurtleEggs() { itemsCanBreakTurtleEggs = getBoolean("items-can-break-turtle-eggs", itemsCanBreakTurtleEggs); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 3afcfeae1..df9e5c659 100644 +index c1acec87f..8c5d7bd2b 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2068,4 +2068,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2089,4 +2089,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player { return spigot; } // Spigot end @@ -279,10 +279,10 @@ index 3afcfeae1..df9e5c659 100644 + // Purpur end } diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java -index 92601c581..185717c80 100644 +index 6e165a164..da5fef091 100644 --- a/src/main/java/org/spigotmc/ActivationRange.java +++ b/src/main/java/org/spigotmc/ActivationRange.java -@@ -128,6 +128,7 @@ public class ActivationRange +@@ -137,6 +137,7 @@ public class ActivationRange { player.activatedTick = MinecraftServer.currentTick; diff --git a/patches/server/0056-Dispenser-curse-of-binding-protection.patch b/patches/server/0056-Dispenser-curse-of-binding-protection.patch index 01ca353fb..4372dcace 100644 --- a/patches/server/0056-Dispenser-curse-of-binding-protection.patch +++ b/patches/server/0056-Dispenser-curse-of-binding-protection.patch @@ -1,4 +1,4 @@ -From 5d4141703ef62a4d7b0e0febdf3a4c43ecc212aa Mon Sep 17 00:00:00 2001 +From d901d884e7242ab02972eff077cf363bd6f9f965 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 afafbd4986..ae02092218 100644 +index 89b45da1b..97081f6a4 100644 --- a/src/main/java/net/minecraft/server/EntityInsentient.java +++ b/src/main/java/net/minecraft/server/EntityInsentient.java -@@ -903,9 +903,15 @@ public abstract class EntityInsentient extends EntityLiving { +@@ -914,9 +914,15 @@ public abstract class EntityInsentient extends EntityLiving { } @@ -31,7 +31,7 @@ index afafbd4986..ae02092218 100644 } diff --git a/src/main/java/net/minecraft/server/ItemArmor.java b/src/main/java/net/minecraft/server/ItemArmor.java -index cef073c81e..4014c7d116 100644 +index df8c42bfb..a4b3d0c29 100644 --- a/src/main/java/net/minecraft/server/ItemArmor.java +++ b/src/main/java/net/minecraft/server/ItemArmor.java @@ -31,7 +31,7 @@ public class ItemArmor extends Item { @@ -52,7 +52,7 @@ index cef073c81e..4014c7d116 100644 return this.b; } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 0eb8f8bfa5..38d85c6389 100644 +index 0eb8f8bfa..38d85c638 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -103,6 +103,11 @@ public class PurpurWorldConfig { diff --git a/patches/server/0060-Allow-leashing-villagers.patch b/patches/server/0060-Allow-leashing-villagers.patch index 04f391583..4db156f22 100644 --- a/patches/server/0060-Allow-leashing-villagers.patch +++ b/patches/server/0060-Allow-leashing-villagers.patch @@ -1,4 +1,4 @@ -From 053f747d717deedde0518fe06b840c7f42070707 Mon Sep 17 00:00:00 2001 +From 5951f8637bdb457ae59201563ce04832cb1595ae 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 ae02092218..b223044f5b 100644 +index 97081f6a4..491db81ba 100644 --- a/src/main/java/net/minecraft/server/EntityInsentient.java +++ b/src/main/java/net/minecraft/server/EntityInsentient.java -@@ -1051,6 +1051,7 @@ public abstract class EntityInsentient extends EntityLiving { +@@ -1062,6 +1062,7 @@ public abstract class EntityInsentient extends EntityLiving { if (!this.isAlive()) { return false; } else if (this.getLeashHolder() == entityhuman) { @@ -22,7 +22,7 @@ index ae02092218..b223044f5b 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 7d146d9783..4187bb6026 100644 +index 10625b3ab..cd8da30a1 100644 --- a/src/main/java/net/minecraft/server/EntityVillager.java +++ b/src/main/java/net/minecraft/server/EntityVillager.java @@ -980,4 +980,11 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation @@ -38,7 +38,7 @@ index 7d146d9783..4187bb6026 100644 + // Purpur - end } diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 0537d06811..8298a12769 100644 +index 0537d0681..8298a1276 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -235,9 +235,11 @@ public class PurpurConfig { diff --git a/patches/server/0065-Add-more-llama-API.patch b/patches/server/0065-Add-more-llama-API.patch index d6e1c052d..318c11c8a 100644 --- a/patches/server/0065-Add-more-llama-API.patch +++ b/patches/server/0065-Add-more-llama-API.patch @@ -1,17 +1,17 @@ -From 78d42880d3d97db6fabdab39149a975189963a05 Mon Sep 17 00:00:00 2001 +From 0eb1d9482de3f315ebead0cac4ae90b1b152ca03 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 ++++++--- + .../net/minecraft/server/EntityLlama.java | 19 +++++--- .../minecraft/server/EntityLlamaTrader.java | 4 +- .../server/PathfinderGoalLlamaFollow.java | 4 +- .../bukkit/craftbukkit/entity/CraftLlama.java | 44 +++++++++++++++++++ - 4 files changed, 64 insertions(+), 8 deletions(-) + 4 files changed, 63 insertions(+), 8 deletions(-) diff --git a/src/main/java/net/minecraft/server/EntityLlama.java b/src/main/java/net/minecraft/server/EntityLlama.java -index 6ebb6fd663..14dc4d954b 100644 +index ec0f57d90..c9d8a4e13 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 @@ -46,7 +46,7 @@ index 6ebb6fd663..14dc4d954b 100644 this.eI(); } -@@ -403,29 +408,34 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn +@@ -403,19 +408,24 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn } } @@ -71,9 +71,7 @@ index 6ebb6fd663..14dc4d954b 100644 public boolean fc() { return this.bK != null; } - -+ public boolean inCaravan() { return fd(); } // Purpur - OBFHELPER - public boolean fd() { +@@ -425,8 +435,7 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn return this.bJ != null; } @@ -84,7 +82,7 @@ index 6ebb6fd663..14dc4d954b 100644 } diff --git a/src/main/java/net/minecraft/server/EntityLlamaTrader.java b/src/main/java/net/minecraft/server/EntityLlamaTrader.java -index f8129ef10d..c714b387c1 100644 +index f8129ef10..c714b387c 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 { @@ -99,7 +97,7 @@ index f8129ef10d..c714b387c1 100644 } // Purpur end diff --git a/src/main/java/net/minecraft/server/PathfinderGoalLlamaFollow.java b/src/main/java/net/minecraft/server/PathfinderGoalLlamaFollow.java -index e181d83505..8376f1dc4e 100644 +index e181d8350..8376f1dc4 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; @@ -128,7 +126,7 @@ index e181d83505..8376f1dc4e 100644 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 +index 3f94c5a92..a02763480 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLlama.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLlama.java @@ -65,4 +65,48 @@ public class CraftLlama extends CraftChestedHorse implements Llama, CraftRangedE @@ -181,5 +179,5 @@ index 3f94c5a920..a027634801 100644 + // Purpur end } -- -2.24.0.rc1 +2.24.0 diff --git a/patches/server/0066-Add-entity-jump-API.patch b/patches/server/0066-Add-entity-jump-API.patch index 9736f55b9..c3a5ffce8 100644 --- a/patches/server/0066-Add-entity-jump-API.patch +++ b/patches/server/0066-Add-entity-jump-API.patch @@ -1,4 +1,4 @@ -From 228403a7282633e9189efbb99bda4207eb192c26 Mon Sep 17 00:00:00 2001 +From 76ec68db1e1b4af4b2039dbc84b1a075bc760388 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,10 +9,10 @@ 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 7d424040cc..764021c17d 100644 +index d4fb8e4a6..3b6a337e6 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java -@@ -2617,8 +2617,10 @@ public abstract class EntityLiving extends Entity { +@@ -2619,8 +2619,10 @@ public abstract class EntityLiving extends Entity { } else if (this.aH()) { this.c(TagsFluid.LAVA); } else if ((this.onGround || this.N > 0.0D && this.N <= 0.4D) && this.jumpTicks == 0) { @@ -24,7 +24,7 @@ index 7d424040cc..764021c17d 100644 } else { this.jumpTicks = 0; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index ffd1372284..e408c89220 100644 +index ffd137228..e408c8922 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -733,5 +733,19 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { @@ -48,5 +48,5 @@ index ffd1372284..e408c89220 100644 // Purpur end } -- -2.24.0.rc1 +2.24.0 diff --git a/patches/server/0071-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch b/patches/server/0071-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch index d5dd52fff..e70185280 100644 --- a/patches/server/0071-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 9ca51998cd10d839a9df510e1c383e415b5ce20f Mon Sep 17 00:00:00 2001 +From a7d8078de39790a06c8bce73b3da4f87a6bc0768 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 c5cd19afa0..d918a1c7fe 100644 +index 7a7874c0a..726fcc7a1 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java -@@ -1406,8 +1406,11 @@ public abstract class World implements GeneratorAccess, AutoCloseable { +@@ -1410,8 +1410,11 @@ public abstract class World implements GeneratorAccess, AutoCloseable { return blockposition; } @@ -25,7 +25,7 @@ index c5cd19afa0..d918a1c7fe 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 4f4d9f0c0b..fe44a37305 100644 +index 02060223f..9a2d0e22b 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -380,12 +380,16 @@ public class CraftWorld implements World { diff --git a/patches/server/0076-Add-MonsterEggSpawnEvent.patch b/patches/server/0076-Add-MonsterEggSpawnEvent.patch index 1727d8670..9147d6645 100644 --- a/patches/server/0076-Add-MonsterEggSpawnEvent.patch +++ b/patches/server/0076-Add-MonsterEggSpawnEvent.patch @@ -1,4 +1,4 @@ -From ce0f3b251a0cab7ffe17066a5afc8cd36808d933 Mon Sep 17 00:00:00 2001 +From 3950117b027305da1674b84a54864525ee1a5510 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,7 +8,7 @@ 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 b82d53e5da..29ad29702c 100644 +index 0dd9897b9..149e25336 100644 --- a/src/main/java/net/minecraft/server/EntityTypes.java +++ b/src/main/java/net/minecraft/server/EntityTypes.java @@ -163,19 +163,45 @@ public class EntityTypes { @@ -40,7 +40,7 @@ index b82d53e5da..29ad29702c 100644 + @Nullable + public T spawnCreature(World world, @Nullable ItemStack itemstack, @Nullable NBTTagCompound nbttagcompound, @Nullable IChatBaseComponent ichatbasecomponent, @Nullable EntityHuman entityhuman, BlockPosition blockposition, EnumMobSpawn enummobspawn, boolean flag, boolean flag1, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason spawnReason) { + // Purpur end - T t0 = this.b(world, nbttagcompound, ichatbasecomponent, entityhuman, blockposition, enummobspawn, flag, flag1); + T t0 = this.createCreature(world, nbttagcompound, ichatbasecomponent, entityhuman, blockposition, enummobspawn, flag, flag1); + // Purpur start + if (spawnReason == org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.SPAWNER_EGG && itemstack != null && t0 != null) { @@ -59,5 +59,5 @@ index b82d53e5da..29ad29702c 100644 // CraftBukkit end } -- -2.24.0.rc1 +2.24.0 diff --git a/patches/server/0087-Bring-back-the-GUI.patch b/patches/server/0087-Bring-back-the-GUI.patch deleted file mode 100644 index 7714dd0a5..000000000 --- a/patches/server/0087-Bring-back-the-GUI.patch +++ /dev/null @@ -1,83 +0,0 @@ -From c9f532624c52ae48b4af5280b2dc57298f529e18 Mon Sep 17 00:00:00 2001 -From: William Blake Galbreath -Date: Thu, 16 Jan 2020 14:59:16 -0600 -Subject: [PATCH] Bring back the GUI - ---- - .../net/minecraft/server/MinecraftServer.java | 3 ++- - src/main/java/org/bukkit/craftbukkit/Main.java | 1 + - src/main/resources/log4j2.xml | 15 ++++++++++++++- - 3 files changed, 17 insertions(+), 2 deletions(-) - -diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index ab00ed8394..fd4fdaaac1 100644 ---- a/src/main/java/net/minecraft/server/MinecraftServer.java -+++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1367,12 +1367,13 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant -- -+ - - - -@@ -11,6 +11,18 @@ - - - -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ - - - -@@ -33,6 +45,7 @@ - - - -+ - - - --- -2.24.0 - diff --git a/patches/server/0087-Fix-layout-and-add-colors-to-the-Server-GUI.patch b/patches/server/0087-Fix-layout-and-add-colors-to-the-Server-GUI.patch new file mode 100644 index 000000000..1ee137b37 --- /dev/null +++ b/patches/server/0087-Fix-layout-and-add-colors-to-the-Server-GUI.patch @@ -0,0 +1,221 @@ +From dc3dc7f0e53caf7b9e9936243c9f994b87b3d883 Mon Sep 17 00:00:00 2001 +From: William Blake Galbreath +Date: Thu, 16 Jan 2020 14:59:16 -0600 +Subject: [PATCH] Fix layout and add colors to the Server GUI + +--- + .../java/net/minecraft/server/ServerGUI.java | 6 +- + .../java/net/pl3x/purpur/swing/ColorPane.java | 129 ++++++++++++++++++ + .../java/org/bukkit/craftbukkit/Main.java | 1 + + src/main/resources/log4j2.xml | 11 +- + 4 files changed, 144 insertions(+), 3 deletions(-) + create mode 100644 src/main/java/net/pl3x/purpur/swing/ColorPane.java + +diff --git a/src/main/java/net/minecraft/server/ServerGUI.java b/src/main/java/net/minecraft/server/ServerGUI.java +index 95561d9db..2ce99770b 100644 +--- a/src/main/java/net/minecraft/server/ServerGUI.java ++++ b/src/main/java/net/minecraft/server/ServerGUI.java +@@ -109,7 +109,7 @@ public class ServerGUI extends JComponent { + + private JComponent e() { + JPanel jpanel = new JPanel(new BorderLayout()); +- JTextArea jtextarea = new JTextArea(); ++ net.pl3x.purpur.swing.ColorPane jtextarea = new net.pl3x.purpur.swing.ColorPane(); // Purpur + JScrollPane jscrollpane = new JScrollPane(jtextarea, 22, 30); + + jtextarea.setEditable(false); +@@ -160,7 +160,7 @@ public class ServerGUI extends JComponent { + } + + private static final java.util.regex.Pattern ANSI = java.util.regex.Pattern.compile("\\x1B\\[([0-9]{1,2}(;[0-9]{1,2})*)?[m|K]"); // CraftBukkit +- public void a(JTextArea jtextarea, JScrollPane jscrollpane, String s) { ++ public void a(net.pl3x.purpur.swing.ColorPane jtextarea, JScrollPane jscrollpane, String s) { // Purpur + if (!SwingUtilities.isEventDispatchThread()) { + SwingUtilities.invokeLater(() -> { + this.a(jtextarea, jscrollpane, s); +@@ -174,11 +174,13 @@ public class ServerGUI extends JComponent { + flag = (double) jscrollbar.getValue() + jscrollbar.getSize().getHeight() + (double) (ServerGUI.a.getSize() * 4) > (double) jscrollbar.getMaximum(); + } + ++ /* // Purpur + try { + document.insertString(document.getLength(), ANSI.matcher(s).replaceAll(""), (AttributeSet) null); // CraftBukkit + } catch (BadLocationException badlocationexception) { + ; + } ++ */ jtextarea.appendANSI(s); // Purpur + + if (flag) { + jscrollbar.setValue(Integer.MAX_VALUE); +diff --git a/src/main/java/net/pl3x/purpur/swing/ColorPane.java b/src/main/java/net/pl3x/purpur/swing/ColorPane.java +new file mode 100644 +index 000000000..6f702ad4d +--- /dev/null ++++ b/src/main/java/net/pl3x/purpur/swing/ColorPane.java +@@ -0,0 +1,129 @@ ++package net.pl3x.purpur.swing; ++ ++import org.apache.commons.lang.StringEscapeUtils; ++ ++import javax.swing.*; ++import javax.swing.text.AttributeSet; ++import javax.swing.text.BadLocationException; ++import javax.swing.text.SimpleAttributeSet; ++import javax.swing.text.StyleConstants; ++import javax.swing.text.StyleContext; ++import java.awt.*; ++ ++/* ++ * Class from: https://stackoverflow.com/a/6899478 ++ */ ++ ++public class ColorPane extends JTextPane { ++ static final Color BLACK = Color.BLACK; ++ static final Color RED = Color.RED; ++ static final Color BLUE = Color.BLUE; ++ static final Color MAGENTA = Color.MAGENTA; ++ static final Color GREEN = Color.GREEN; ++ static final Color YELLOW = Color.getHSBColor(0.15f, 1.0f, 1.0f); ++ static final Color CYAN = Color.CYAN; ++ static final Color WHITE = Color.LIGHT_GRAY; ++ ++ static Color colorCurrent = BLACK; ++ String remaining = ""; ++ ++ public void append(Color c, String s) { ++ StyleContext sc = StyleContext.getDefaultStyleContext(); ++ AttributeSet aset = sc.addAttribute(SimpleAttributeSet.EMPTY, StyleConstants.Foreground, c); ++ if (c != BLACK) { ++ aset = sc.addAttribute(aset, StyleConstants.CharacterConstants.Bold, true); ++ } ++ int len = getDocument().getLength(); // same value as getText().length(); ++ ++ //setCaretPosition(len); // place caret at the end (with no selection) ++ //setCharacterAttributes(aset, false); ++ //replaceSelection(s); // there is no selection, so inserts at caret ++ ++ try { ++ getDocument().insertString(len, s, aset); ++ } catch (BadLocationException e) { ++ e.printStackTrace(); ++ } ++ } ++ ++ public void appendANSI(String s) { // convert ANSI color codes first ++ int aPos = 0; // current char position in addString ++ int aIndex = 0; // index of next Escape sequence ++ int mIndex = 0; // index of "m" terminating Escape sequence ++ String tmpString = ""; ++ boolean stillSearching = true; // true until no more Escape sequences ++ String addString = remaining + s; ++ remaining = ""; ++ colorCurrent = BLACK; // reset the colors ++ ++ if (addString.length() > 0) { ++ aIndex = addString.indexOf("\u001B"); // find first escape ++ if (aIndex == -1) { // no escape/color change in this string, so just send it with current color ++ append(colorCurrent, addString); ++ return; ++ } ++ // otherwise There is an escape character in the string, so we must process it ++ ++ if (aIndex > 0) { // Escape is not first char, so send text up to first escape ++ tmpString = addString.substring(0, aIndex); ++ append(colorCurrent, tmpString); ++ aPos = aIndex; ++ } ++ // aPos is now at the beginning of the first escape sequence ++ ++ stillSearching = true; ++ while (stillSearching) { ++ mIndex = addString.indexOf("m", aPos); // find the end of the escape sequence ++ if (mIndex < 0) { // the buffer ends halfway through the ansi string! ++ remaining = addString.substring(aPos, addString.length()); ++ stillSearching = false; ++ continue; ++ } else { ++ tmpString = addString.substring(aPos, mIndex + 1); ++ colorCurrent = getANSIColor(tmpString); ++ } ++ aPos = mIndex + 1; ++ // now we have the color, send text that is in that color (up to next escape) ++ ++ aIndex = addString.indexOf("\u001B", aPos); ++ ++ if (aIndex == -1) { // if that was the last sequence of the input, send remaining text ++ tmpString = addString.substring(aPos, addString.length()); ++ append(colorCurrent, tmpString); ++ stillSearching = false; ++ continue; // jump out of loop early, as the whole string has been sent now ++ } ++ ++ // there is another escape sequence, so send part of the string and prepare for the next ++ tmpString = addString.substring(aPos, aIndex); ++ aPos = aIndex; ++ append(colorCurrent, tmpString); ++ ++ } // while there's text in the input buffer ++ } ++ } ++ ++ public Color getANSIColor(String ANSIColor) { ++ if (ANSIColor.isEmpty()) { ++ return BLACK; ++ } else if (ANSIColor.contains("30")) { ++ return BLACK; ++ } else if (ANSIColor.contains("31")) { ++ return RED; ++ } else if (ANSIColor.contains("32")) { ++ return GREEN; ++ } else if (ANSIColor.contains("33")) { ++ return YELLOW; ++ } else if (ANSIColor.contains("34")) { ++ return BLUE; ++ } else if (ANSIColor.contains("35")) { ++ return MAGENTA; ++ } else if (ANSIColor.contains("36")) { ++ return CYAN; ++ } else if (ANSIColor.contains("37")) { ++ return WHITE; ++ } else { ++ return BLACK; ++ } ++ } ++} +diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java +index 7e8b6cab7..f30bcbd48 100644 +--- a/src/main/java/org/bukkit/craftbukkit/Main.java ++++ b/src/main/java/org/bukkit/craftbukkit/Main.java +@@ -144,6 +144,7 @@ public class Main { + .ofType(File.class) + .defaultsTo(new File("purpur.yml")) + .describedAs("Yml file"); ++ accepts("nogui", "Disables the graphical window"); + // Purpur end + + // Paper start +diff --git a/src/main/resources/log4j2.xml b/src/main/resources/log4j2.xml +index 869bff4af..2a3e57c2f 100644 +--- a/src/main/resources/log4j2.xml ++++ b/src/main/resources/log4j2.xml +@@ -2,7 +2,16 @@ + + + +- ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + +-- +2.24.0 + diff --git a/patches/server/0088-Disable-outdated-build-check.patch b/patches/server/0088-Disable-outdated-build-check.patch index 0a22ef52d..fe7a99e1b 100644 --- a/patches/server/0088-Disable-outdated-build-check.patch +++ b/patches/server/0088-Disable-outdated-build-check.patch @@ -1,4 +1,4 @@ -From c037cb674f0ed7d775555d0aabcdaeb291aaab7e Mon Sep 17 00:00:00 2001 +From fd558eb5594f12ec9911f00566a37a5ffba31977 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sun, 15 Dec 2019 12:53:59 -0600 Subject: [PATCH] Disable outdated build check @@ -8,10 +8,10 @@ Subject: [PATCH] Disable outdated build check 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 3423535d1e..f5bfbd7aba 100644 +index f30bcbd48..1980256b7 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java -@@ -220,7 +220,7 @@ public class Main { +@@ -221,7 +221,7 @@ public class Main { System.setProperty(TerminalConsoleAppender.JLINE_OVERRIDE_PROPERTY, "false"); // Paper } diff --git a/patches/server/0091-Add-player-death-exp-control-options.patch b/patches/server/0091-Add-player-death-exp-control-options.patch index 7da2bf639..b83ad99c8 100644 --- a/patches/server/0091-Add-player-death-exp-control-options.patch +++ b/patches/server/0091-Add-player-death-exp-control-options.patch @@ -1,4 +1,4 @@ -From fbb7a7da6ba3e70c8c4f28b8174140d4de743f7a Mon Sep 17 00:00:00 2001 +From f6ead952367f2367164bdf5592a8957f4c267827 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Thu, 26 Dec 2019 22:08:37 -0600 Subject: [PATCH] Add player death exp control options @@ -9,10 +9,10 @@ Subject: [PATCH] Add player death exp control options 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java -index e1301d3170..36ee2cdcce 100644 +index 5991a41c1..b6459cd47 100644 --- a/src/main/java/net/minecraft/server/EntityHuman.java +++ b/src/main/java/net/minecraft/server/EntityHuman.java -@@ -1858,9 +1858,18 @@ public abstract class EntityHuman extends EntityLiving { +@@ -1859,9 +1859,18 @@ public abstract class EntityHuman extends EntityLiving { @Override protected int getExpValue(EntityHuman entityhuman) { if (!this.world.getGameRules().getBoolean(GameRules.KEEP_INVENTORY) && !this.isSpectator()) { @@ -35,7 +35,7 @@ index e1301d3170..36ee2cdcce 100644 return 0; } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 3bb968cfa1..915b3beb2b 100644 +index 3bb968cfa..915b3beb2 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -178,9 +178,13 @@ public class PurpurWorldConfig { diff --git a/patches/server/0098-Add-EntityPortalReadyEvent.patch b/patches/server/0096-Add-EntityPortalReadyEvent.patch similarity index 96% rename from patches/server/0098-Add-EntityPortalReadyEvent.patch rename to patches/server/0096-Add-EntityPortalReadyEvent.patch index de32ea06b..b9da8328e 100644 --- a/patches/server/0098-Add-EntityPortalReadyEvent.patch +++ b/patches/server/0096-Add-EntityPortalReadyEvent.patch @@ -1,4 +1,4 @@ -From 66fd07748dbfff18e75f6026006e521c93cd13f5 Mon Sep 17 00:00:00 2001 +From a8ae7468ad8c26276f01c7e028bb3a123399079c Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 11 Jan 2020 23:12:52 -0600 Subject: [PATCH] Add EntityPortalReadyEvent @@ -11,7 +11,7 @@ Subject: [PATCH] Add EntityPortalReadyEvent 4 files changed, 17 insertions(+), 13 deletions(-) diff --git a/src/main/java/net/minecraft/server/BlockPortal.java b/src/main/java/net/minecraft/server/BlockPortal.java -index 2dc3ab4cfa..1c0df77c2b 100644 +index 2dc3ab4cf..1c0df77c2 100644 --- a/src/main/java/net/minecraft/server/BlockPortal.java +++ b/src/main/java/net/minecraft/server/BlockPortal.java @@ -52,6 +52,7 @@ public class BlockPortal extends Block { @@ -86,7 +86,7 @@ index 2dc3ab4cfa..1c0df77c2b 100644 break; // CraftBukkit start - add the block to our list diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index b502e589d4..e5a64e07da 100644 +index c24f7071a..053db1781 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -171,9 +171,9 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke @@ -102,7 +102,7 @@ index b502e589d4..e5a64e07da 100644 private boolean invulnerable; protected UUID uniqueID; protected String am; -@@ -2215,6 +2215,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -2216,6 +2216,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke this.world.getMethodProfiler().enter("portal"); this.ag = i; this.portalCooldown = this.ba(); @@ -111,7 +111,7 @@ index b502e589d4..e5a64e07da 100644 if (this instanceof EntityPlayer) { ((EntityPlayer) this).a(this.world.worldProvider.getDimensionManager().getType() == DimensionManager.NETHER ? DimensionManager.OVERWORLD : DimensionManager.NETHER, PlayerTeleportEvent.TeleportCause.NETHER_PORTAL); diff --git a/src/main/java/net/minecraft/server/PortalTravelAgent.java b/src/main/java/net/minecraft/server/PortalTravelAgent.java -index b5f224e3b4..32b9ad3d81 100644 +index f84dd6d9b..f50e9670b 100644 --- a/src/main/java/net/minecraft/server/PortalTravelAgent.java +++ b/src/main/java/net/minecraft/server/PortalTravelAgent.java @@ -11,6 +11,7 @@ public class PortalTravelAgent { @@ -141,12 +141,12 @@ index b5f224e3b4..32b9ad3d81 100644 } } diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index 53763216f0..ba8f62d112 100644 +index 00343a9fb..4ca4bd259 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java @@ -65,7 +65,7 @@ public class WorldServer extends World { public boolean savingDisabled; - private boolean C; + private boolean everyoneSleeping; private int emptyTime; - private final PortalTravelAgent portalTravelAgent; + public PortalTravelAgent portalTravelAgent; // Purpur - private final -> public non-final diff --git a/patches/server/0096-Allow-beehives-to-generate-with-saplings.patch b/patches/server/0096-Allow-beehives-to-generate-with-saplings.patch deleted file mode 100644 index e876dadcf..000000000 --- a/patches/server/0096-Allow-beehives-to-generate-with-saplings.patch +++ /dev/null @@ -1,232 +0,0 @@ -From c9f6ecb656be006f75656866d86fbb2a509b8272 Mon Sep 17 00:00:00 2001 -From: William Blake Galbreath -Date: Sat, 4 Jan 2020 11:41:38 -0600 -Subject: [PATCH] Allow beehives to generate with saplings - ---- - .../net/minecraft/server/BlockSapling.java | 3 ++ - .../server/WorldGenFeatureTreeBeehive.java | 21 ++++++++++-- - .../minecraft/server/WorldGenGroundBush.java | 10 +++--- - .../server/WorldGenTreeAbstract.java | 2 +- - .../server/WorldGenTreeProvider.java | 16 +++++++-- - .../server/WorldGenTreeProviderBirch.java | 10 +++++- - .../server/WorldGenTreeProviderOak.java | 33 ++++++++++++++++++- - .../net/pl3x/purpur/PurpurWorldConfig.java | 5 +++ - 8 files changed, 88 insertions(+), 12 deletions(-) - -diff --git a/src/main/java/net/minecraft/server/BlockSapling.java b/src/main/java/net/minecraft/server/BlockSapling.java -index 54c49e9ef9..425beb43cc 100644 ---- a/src/main/java/net/minecraft/server/BlockSapling.java -+++ b/src/main/java/net/minecraft/server/BlockSapling.java -@@ -17,6 +17,7 @@ public class BlockSapling extends BlockPlant implements IBlockFragilePlantElemen - protected static final VoxelShape b = Block.a(2.0D, 0.0D, 2.0D, 14.0D, 12.0D, 14.0D); - private final WorldGenTreeProvider c; - public static TreeType treeType; // CraftBukkit -+ public static boolean growing = false; // Purpur - - protected BlockSapling(WorldGenTreeProvider worldgentreeprovider, Block.Info block_info) { - super(block_info); -@@ -65,7 +66,9 @@ public class BlockSapling extends BlockPlant implements IBlockFragilePlantElemen - if ((Integer) iblockdata.get(BlockSapling.STAGE) == 0) { - worldserver.setTypeAndData(blockposition, (IBlockData) iblockdata.a((IBlockState) BlockSapling.STAGE), 4); - } else { -+ growing = true; // Purpur - this.c.a(worldserver, worldserver.getChunkProvider().getChunkGenerator(), blockposition, iblockdata, random); -+ growing = false; // Purpur - } - - } -diff --git a/src/main/java/net/minecraft/server/WorldGenFeatureTreeBeehive.java b/src/main/java/net/minecraft/server/WorldGenFeatureTreeBeehive.java -index 4fbc53068f..e85e096cd6 100644 ---- a/src/main/java/net/minecraft/server/WorldGenFeatureTreeBeehive.java -+++ b/src/main/java/net/minecraft/server/WorldGenFeatureTreeBeehive.java -@@ -24,6 +24,19 @@ public class WorldGenFeatureTreeBeehive extends WorldGenFeatureTree { - @Override - public void a(GeneratorAccess generatoraccess, Random random, List list, List list1, Set set, StructureBoundingBox structureboundingbox) { - if (random.nextFloat() < this.b) { -+ // Purpur start -+ if (BlockSapling.growing) { -+ MinecraftServer.getServer().scheduleOnMain(() -> { -+ generate(generatoraccess, random, list, list1, set, structureboundingbox); -+ }); -+ } else { -+ generate(generatoraccess, random, list, list1, set, structureboundingbox); -+ } -+ } -+ } -+ -+ private void generate(GeneratorAccess generatoraccess, Random random, List list, List list1, Set set, StructureBoundingBox structureboundingbox) { -+ // Purpur end - EnumDirection enumdirection = BlockBeehive.a[random.nextInt(BlockBeehive.a.length)]; - int i = !list1.isEmpty() ? Math.max(((BlockPosition) list1.get(0)).getY() - 1, ((BlockPosition) list.get(0)).getY()) : Math.min(((BlockPosition) list.get(0)).getY() + 1 + random.nextInt(3), ((BlockPosition) list.get(list.size() - 1)).getY()); - List list2 = (List) list.stream().filter((blockposition) -> { -@@ -50,11 +63,15 @@ public class WorldGenFeatureTreeBeehive extends WorldGenFeatureTree { - } - - } -- } -+ //} // Purpur - } - - @Override - public T a(DynamicOps dynamicops) { -- return (new Dynamic(dynamicops, dynamicops.createMap(ImmutableMap.of(dynamicops.createString("type"), dynamicops.createString(IRegistry.w.getKey(this.a).toString()), dynamicops.createString("probability"), dynamicops.createFloat(this.b))))).getValue(); -+ // Purpur start - decompile error -+ ImmutableMap.Builder builder = ImmutableMap.builder(); -+ builder.put(dynamicops.createString("type"), dynamicops.createString(IRegistry.w.getKey(this.a).toString())).put(dynamicops.createString("probability"), dynamicops.createFloat(this.b)); -+ return (new Dynamic(dynamicops, dynamicops.createMap(builder.build()))).getValue(); -+ // Purpur end - } - } -diff --git a/src/main/java/net/minecraft/server/WorldGenGroundBush.java b/src/main/java/net/minecraft/server/WorldGenGroundBush.java -index bd756fd201..815ec6c6bb 100644 ---- a/src/main/java/net/minecraft/server/WorldGenGroundBush.java -+++ b/src/main/java/net/minecraft/server/WorldGenGroundBush.java -@@ -38,10 +38,12 @@ public class WorldGenGroundBush extends WorldGenTreeAbstract chunkgenerator, Random random, BlockPosition blockposition, WorldGenFeatureTreeConfiguration fc) { -- return super.a(generatoraccess, chunkgenerator, random, blockposition, fc); -- } -+ //@Override -+ //public boolean generate(GeneratorAccess generatoraccess, ChunkGenerator chunkgenerator, Random random, BlockPosition blockposition, WorldGenFeatureTreeConfiguration fc) { -+ // return super.a(generatoraccess, chunkgenerator, random, blockposition, fc); -+ //} - // CraftBukkit end -+ // Purpur end - } -diff --git a/src/main/java/net/minecraft/server/WorldGenTreeAbstract.java b/src/main/java/net/minecraft/server/WorldGenTreeAbstract.java -index b7c1919ae4..0e5db4e3b2 100644 ---- a/src/main/java/net/minecraft/server/WorldGenTreeAbstract.java -+++ b/src/main/java/net/minecraft/server/WorldGenTreeAbstract.java -@@ -117,7 +117,7 @@ public abstract class WorldGenTreeAbstract chunkgenerator, Random random, BlockPosition blockposition, T t0) { -+ public final boolean generate(GeneratorAccess generatoraccess, ChunkGenerator chunkgenerator, Random random, BlockPosition blockposition, T t0) { // Purpur - Set set = Sets.newHashSet(); - Set set1 = Sets.newHashSet(); - Set set2 = Sets.newHashSet(); -diff --git a/src/main/java/net/minecraft/server/WorldGenTreeProvider.java b/src/main/java/net/minecraft/server/WorldGenTreeProvider.java -index 17ee097ac8..69ddae1bcc 100644 ---- a/src/main/java/net/minecraft/server/WorldGenTreeProvider.java -+++ b/src/main/java/net/minecraft/server/WorldGenTreeProvider.java -@@ -8,11 +8,11 @@ public abstract class WorldGenTreeProvider { - - public WorldGenTreeProvider() {} - -- @Nullable -- protected abstract WorldGenFeatureConfigured b(Random random); -+ @Nullable protected WorldGenFeatureConfigured getFeature(GeneratorAccess generatoraccess, BiomeBase biome) { return b(generatoraccess.getRandom()); } // Purpur -+ @Nullable protected abstract WorldGenFeatureConfigured b(Random random); - - public boolean a(GeneratorAccess generatoraccess, ChunkGenerator chunkgenerator, BlockPosition blockposition, IBlockData iblockdata, Random random) { -- WorldGenFeatureConfigured worldgenfeatureconfigured = this.b(random); -+ WorldGenFeatureConfigured worldgenfeatureconfigured = getFeature(generatoraccess, generatoraccess.getBiome(blockposition)); // Purpur - - if (worldgenfeatureconfigured == null) { - return false; -@@ -65,6 +65,16 @@ public abstract class WorldGenTreeProvider { - BlockSapling.treeType = TreeType.MEGA_REDWOOD; - } else if (worldgentreeabstract.c == BiomeDecoratorGroups.MEGA_JUNGLE_TREE) { - BlockSapling.treeType = TreeType.JUNGLE; -+ } else if (worldgentreeabstract.c == BiomeDecoratorGroups.k) { -+ BlockSapling.treeType = TreeType.TREE; -+ } else if (worldgentreeabstract.c == BiomeDecoratorGroups.l) { -+ BlockSapling.treeType = TreeType.BIG_TREE; -+ } else if (worldgentreeabstract.c == BiomeDecoratorGroups.m) { -+ BlockSapling.treeType = TreeType.TREE; -+ } else if (worldgentreeabstract.c == BiomeDecoratorGroups.n) { -+ BlockSapling.treeType = TreeType.BIG_TREE; -+ } else if (worldgentreeabstract.c == BiomeDecoratorGroups.o) { -+ BlockSapling.treeType = TreeType.BIRCH; - } else { - throw new IllegalArgumentException("Unknown tree generator " + worldgentreeabstract); - } -diff --git a/src/main/java/net/minecraft/server/WorldGenTreeProviderBirch.java b/src/main/java/net/minecraft/server/WorldGenTreeProviderBirch.java -index 0915718854..55c4ec0e55 100644 ---- a/src/main/java/net/minecraft/server/WorldGenTreeProviderBirch.java -+++ b/src/main/java/net/minecraft/server/WorldGenTreeProviderBirch.java -@@ -10,6 +10,14 @@ public class WorldGenTreeProviderBirch extends WorldGenTreeProvider { - @Nullable - @Override - protected WorldGenFeatureConfigured b(Random random) { -- return WorldGenerator.NORMAL_TREE.b((WorldGenFeatureConfiguration) BiomeDecoratorGroups.BIRCH_TREE); -+ return WorldGenerator.NORMAL_TREE.b(BiomeDecoratorGroups.BIRCH_TREE); // Purpur - decompile error - } -+ -+ // Purpur start -+ @Override -+ protected WorldGenFeatureConfigured getFeature(GeneratorAccess generatoraccess, BiomeBase biome) { -+ if (!generatoraccess.getMinecraftWorld().purpurConfig.beeHivesGenerateFromSaplings) return b(generatoraccess.getRandom()); -+ return WorldGenerator.NORMAL_TREE.b(biome == Biomes.FLOWER_FOREST ? BiomeDecoratorGroups.o : BiomeDecoratorGroups.BIRCH_TREE); -+ } -+ // Purpur end - } -diff --git a/src/main/java/net/minecraft/server/WorldGenTreeProviderOak.java b/src/main/java/net/minecraft/server/WorldGenTreeProviderOak.java -index 1998d19776..b9264c84c9 100644 ---- a/src/main/java/net/minecraft/server/WorldGenTreeProviderOak.java -+++ b/src/main/java/net/minecraft/server/WorldGenTreeProviderOak.java -@@ -10,6 +10,37 @@ public class WorldGenTreeProviderOak extends WorldGenTreeProvider { - @Nullable - @Override - protected WorldGenFeatureConfigured b(Random random) { -- return random.nextInt(10) == 0 ? WorldGenerator.FANCY_TREE.b((WorldGenFeatureConfiguration) BiomeDecoratorGroups.FANCY_TREE) : WorldGenerator.NORMAL_TREE.b((WorldGenFeatureConfiguration) BiomeDecoratorGroups.NORMAL_TREE); -+ return random.nextInt(10) == 0 ? WorldGenerator.FANCY_TREE.b(BiomeDecoratorGroups.FANCY_TREE) : WorldGenerator.NORMAL_TREE.b(BiomeDecoratorGroups.NORMAL_TREE); // Purpur - decompile error - } -+ -+ // Purpur start -+ @Override -+ protected WorldGenFeatureConfigured getFeature(GeneratorAccess generatoraccess, BiomeBase biome) { -+ if (!generatoraccess.getMinecraftWorld().purpurConfig.beeHivesGenerateFromSaplings) return b(generatoraccess.getRandom()); -+ boolean fancy = generatoraccess.getRandom().nextInt(10) == 0; -+ boolean more = biome == Biomes.PLAINS || biome == Biomes.SUNFLOWER_PLAINS; -+ boolean bees = more || biome == Biomes.FLOWER_FOREST; -+ if (fancy) { -+ if (bees) { -+ if (more) { -+ return WorldGenerator.FANCY_TREE.b(BiomeDecoratorGroups.l); -+ } else { -+ return WorldGenerator.FANCY_TREE.b(BiomeDecoratorGroups.n); -+ } -+ } else { -+ return WorldGenerator.FANCY_TREE.b(BiomeDecoratorGroups.FANCY_TREE); -+ } -+ } else { -+ if (bees) { -+ if (more) { -+ return WorldGenerator.NORMAL_TREE.b(BiomeDecoratorGroups.k); -+ } else { -+ return WorldGenerator.NORMAL_TREE.b(BiomeDecoratorGroups.m); -+ } -+ } else { -+ return WorldGenerator.NORMAL_TREE.b(BiomeDecoratorGroups.NORMAL_TREE); -+ } -+ } -+ } -+ // Purpur end - } -diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index a49ccf2898..da3adb3fae 100644 ---- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -155,6 +155,11 @@ public class PurpurWorldConfig { - milkCuresBadOmen = getBoolean("milk-cures-bad-omen", milkCuresBadOmen); - } - -+ public boolean beeHivesGenerateFromSaplings = false; -+ private void beehiveSettings() { -+ beeHivesGenerateFromSaplings = getBoolean("beehive.can-generate-from-saplings", beeHivesGenerateFromSaplings); -+ } -+ - public boolean hayBlockFallDamage = true; - private void hayBlockFallDamage() { - hayBlockFallDamage = getBoolean("hay-block-fall-damage", hayBlockFallDamage); --- -2.24.0 - diff --git a/patches/server/0097-Add-configurable-beehive-generation-chance.patch b/patches/server/0097-Add-configurable-beehive-generation-chance.patch deleted file mode 100644 index 794bf9b0b..000000000 --- a/patches/server/0097-Add-configurable-beehive-generation-chance.patch +++ /dev/null @@ -1,82 +0,0 @@ -From f4bc1de0cdd05c3ea3a26bfa1afcd7f2b0238c3d Mon Sep 17 00:00:00 2001 -From: William Blake Galbreath -Date: Sun, 5 Jan 2020 12:07:28 -0600 -Subject: [PATCH] Add configurable beehive generation chance - ---- - .../server/WorldGenFeatureTreeBeehive.java | 18 ++++++++++++++++-- - .../net/pl3x/purpur/PurpurWorldConfig.java | 12 ++++++++++++ - 2 files changed, 28 insertions(+), 2 deletions(-) - -diff --git a/src/main/java/net/minecraft/server/WorldGenFeatureTreeBeehive.java b/src/main/java/net/minecraft/server/WorldGenFeatureTreeBeehive.java -index e85e096cd6..ca4b5b77fb 100644 ---- a/src/main/java/net/minecraft/server/WorldGenFeatureTreeBeehive.java -+++ b/src/main/java/net/minecraft/server/WorldGenFeatureTreeBeehive.java -@@ -10,7 +10,7 @@ import java.util.stream.Collectors; - - public class WorldGenFeatureTreeBeehive extends WorldGenFeatureTree { - -- private final float b; -+ private final float b; public float getChance() { return b; } // Purpur - OBFHELPER - - public WorldGenFeatureTreeBeehive(float f) { - super(WorldGenFeatureTrees.d); -@@ -23,8 +23,8 @@ public class WorldGenFeatureTreeBeehive extends WorldGenFeatureTree { - - @Override - public void a(GeneratorAccess generatoraccess, Random random, List list, List list1, Set set, StructureBoundingBox structureboundingbox) { -- if (random.nextFloat() < this.b) { - // Purpur start -+ if (random.nextFloat() < getChance(generatoraccess.getMinecraftWorld(), list.get(0))) { - if (BlockSapling.growing) { - MinecraftServer.getServer().scheduleOnMain(() -> { - generate(generatoraccess, random, list, list1, set, structureboundingbox); -@@ -35,6 +35,20 @@ public class WorldGenFeatureTreeBeehive extends WorldGenFeatureTree { - } - } - -+ private float getChance(World world, BlockPosition position) { -+ BiomeBase biome = world.getBiome(position); -+ if (BlockSapling.growing) { -+ if (biome == Biomes.PLAINS) return world.purpurConfig.beehivesGrowPlainsChance; -+ else if (biome == Biomes.SUNFLOWER_PLAINS) return world.purpurConfig.beehivesGrowSunflowerPlainsChance; -+ else if (biome == Biomes.FLOWER_FOREST) return world.purpurConfig.beehivesGrowFlowerForestChance; -+ } else { -+ if (biome == Biomes.PLAINS) return world.purpurConfig.beehivesGeneratePlainsChance; -+ else if (biome == Biomes.SUNFLOWER_PLAINS) return world.purpurConfig.beehivesGenerateSunflowerPlainsChance; -+ else if (biome == Biomes.FLOWER_FOREST) return world.purpurConfig.beehivesGenerateFlowerForestChance; -+ } -+ return getChance(); -+ } -+ - private void generate(GeneratorAccess generatoraccess, Random random, List list, List list1, Set set, StructureBoundingBox structureboundingbox) { - // Purpur end - EnumDirection enumdirection = BlockBeehive.a[random.nextInt(BlockBeehive.a.length)]; -diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index da3adb3fae..8fe470150e 100644 ---- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -156,8 +156,20 @@ public class PurpurWorldConfig { - } - - public boolean beeHivesGenerateFromSaplings = false; -+ public float beehivesGeneratePlainsChance = 0.05F; -+ public float beehivesGenerateSunflowerPlainsChance = 0.05F; -+ public float beehivesGenerateFlowerForestChance = 0.01F; -+ public float beehivesGrowPlainsChance = 0.05F; -+ public float beehivesGrowSunflowerPlainsChance = 0.05F; -+ public float beehivesGrowFlowerForestChance = 0.01F; - private void beehiveSettings() { - beeHivesGenerateFromSaplings = getBoolean("beehive.can-generate-from-saplings", beeHivesGenerateFromSaplings); -+ beehivesGeneratePlainsChance = (float) getDouble("beehive.generation-chance.plains", beehivesGeneratePlainsChance); -+ beehivesGenerateSunflowerPlainsChance = (float) getDouble("beehive.generation-chance.sunflower-plains", beehivesGenerateSunflowerPlainsChance); -+ beehivesGenerateFlowerForestChance = (float) getDouble("beehive.generation-chance.flower-forest", beehivesGenerateFlowerForestChance); -+ beehivesGrowPlainsChance = (float) getDouble("beehive.grow-chance.plains", beehivesGrowPlainsChance); -+ beehivesGrowSunflowerPlainsChance = (float) getDouble("beehive.grow-chance.sunflower-plains", beehivesGrowSunflowerPlainsChance); -+ beehivesGrowFlowerForestChance = (float) getDouble("beehive.grow-chance.flower-forest", beehivesGrowFlowerForestChance); - } - - public boolean hayBlockFallDamage = true; --- -2.24.0 - diff --git a/patches/server/0099-Add-wither-skeleton-takes-wither-damage-option.patch b/patches/server/0097-Add-wither-skeleton-takes-wither-damage-option.patch similarity index 90% rename from patches/server/0099-Add-wither-skeleton-takes-wither-damage-option.patch rename to patches/server/0097-Add-wither-skeleton-takes-wither-damage-option.patch index 71ef81729..23218f9de 100644 --- a/patches/server/0099-Add-wither-skeleton-takes-wither-damage-option.patch +++ b/patches/server/0097-Add-wither-skeleton-takes-wither-damage-option.patch @@ -1,4 +1,4 @@ -From 03487b653cd66c255cc7b08f16f80df334bddd6e Mon Sep 17 00:00:00 2001 +From 832e1674894790e314de7c3793663fd64d85e139 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Tue, 14 Jan 2020 19:43:40 -0600 Subject: [PATCH] Add wither skeleton takes wither damage option @@ -9,7 +9,7 @@ Subject: [PATCH] Add wither skeleton takes wither damage option 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/minecraft/server/EntitySkeletonWither.java b/src/main/java/net/minecraft/server/EntitySkeletonWither.java -index c2b93010a3..a00133f13d 100644 +index c2b93010a..a00133f13 100644 --- a/src/main/java/net/minecraft/server/EntitySkeletonWither.java +++ b/src/main/java/net/minecraft/server/EntitySkeletonWither.java @@ -92,6 +92,6 @@ public class EntitySkeletonWither extends EntitySkeletonAbstract { @@ -21,10 +21,10 @@ index c2b93010a3..a00133f13d 100644 } } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 8fe470150e..3ac7f468cf 100644 +index a49ccf289..7b621edd9 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -255,6 +255,11 @@ public class PurpurWorldConfig { +@@ -238,6 +238,11 @@ public class PurpurWorldConfig { villagerSpawnIronGolemLimit = getInt("mobs.villager.spawn-iron-golem.limit", villagerSpawnIronGolemLimit); }