diff --git a/Paper b/Paper index 932e97f34..cc477e6ab 160000 --- a/Paper +++ b/Paper @@ -1 +1 @@ -Subproject commit 932e97f345fa539c0a690ff298e61cc13e3071b8 +Subproject commit cc477e6abb7dfb1697296bc6191ca8993d248613 diff --git a/current-paper b/current-paper index 06db1a343..386a55ca0 100644 --- a/current-paper +++ b/current-paper @@ -1 +1 @@ -1.15.2--d3e890f5f1c3b822b2fab60de3af8bc0c3b1f16a +1.15.2--2bfa820e227768fa937f45494564265a51b4c6e2 diff --git a/patches/api/0009-Bring-back-server-name.patch b/patches/api/0009-Bring-back-server-name.patch index da75b035c..8a573e327 100644 --- a/patches/api/0009-Bring-back-server-name.patch +++ b/patches/api/0009-Bring-back-server-name.patch @@ -1,4 +1,4 @@ -From 0b90223266a44ecb1cdaa22ec463a24d231cb174 Mon Sep 17 00:00:00 2001 +From cc89d98244645c403a461188a6fb49bc86288213 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sun, 26 May 2019 15:18:40 -0500 Subject: [PATCH] Bring back server name @@ -9,10 +9,10 @@ Subject: [PATCH] Bring back server name 2 files changed, 20 insertions(+) diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 5d42cf62..7164ff2c 100644 +index 780d603e..33ccf297 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -1704,4 +1704,15 @@ public final class Bukkit { +@@ -1714,4 +1714,15 @@ public final class Bukkit { public static Server.Spigot spigot() { return server.spigot(); } @@ -29,12 +29,12 @@ index 5d42cf62..7164ff2c 100644 + // Purpur end } diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index aabf82b5..5313b152 100644 +index bbb2946f..8d3501a6 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -1497,4 +1497,13 @@ public interface Server extends PluginMessageRecipient { - */ - boolean isStopping(); +@@ -1505,4 +1505,13 @@ public interface Server extends PluginMessageRecipient { + @NotNull + com.destroystokyo.paper.entity.ai.MobGoals getMobGoals(); // Paper end + + // Purpur start diff --git a/patches/api/0013-Implement-lagging-threshold.patch b/patches/api/0013-Implement-lagging-threshold.patch index 0f08495ff..5c28a4c93 100644 --- a/patches/api/0013-Implement-lagging-threshold.patch +++ b/patches/api/0013-Implement-lagging-threshold.patch @@ -1,4 +1,4 @@ -From f95a1f1d184934497e26f6cb76f87e0018ece82d Mon Sep 17 00:00:00 2001 +From d2beebd0b8bca2ad0eef2138675d81cd0f0f9568 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Tue, 23 Jul 2019 10:07:24 -0500 Subject: [PATCH] Implement lagging threshold @@ -9,10 +9,10 @@ Subject: [PATCH] Implement lagging threshold 2 files changed, 16 insertions(+) diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 7164ff2c..a5cc0944 100644 +index 33ccf297..ee8fe48a 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -1714,5 +1714,14 @@ public final class Bukkit { +@@ -1724,5 +1724,14 @@ public final class Bukkit { public static String getServerName() { return server.getServerName(); } @@ -28,10 +28,10 @@ index 7164ff2c..a5cc0944 100644 // Purpur end } diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 5313b152..86ffcf87 100644 +index 8d3501a6..c35405e0 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -1505,5 +1505,12 @@ public interface Server extends PluginMessageRecipient { +@@ -1513,5 +1513,12 @@ public interface Server extends PluginMessageRecipient { */ @NotNull String getServerName(); diff --git a/patches/api/0019-Add-moon-phase-API.patch b/patches/api/0019-Add-moon-phase-API.patch index cdc4f3d88..5044b0165 100644 --- a/patches/api/0019-Add-moon-phase-API.patch +++ b/patches/api/0019-Add-moon-phase-API.patch @@ -1,4 +1,4 @@ -From 1d2e2036690801fe7389be75853dcdd94f636d6c Mon Sep 17 00:00:00 2001 +From f7117483a092158d2028933b04c54d53a637b7b8 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 1 Feb 2020 22:22:07 -0600 Subject: [PATCH] Add moon phase API @@ -11,7 +11,7 @@ Subject: [PATCH] Add moon phase API diff --git a/src/main/java/net/pl3x/purpur/MoonPhase.java b/src/main/java/net/pl3x/purpur/MoonPhase.java new file mode 100644 -index 000000000..f5ad98c62 +index 00000000..f5ad98c6 --- /dev/null +++ b/src/main/java/net/pl3x/purpur/MoonPhase.java @@ -0,0 +1,36 @@ @@ -52,10 +52,10 @@ index 000000000..f5ad98c62 + } +} diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index db18f70ec..af66b8255 100644 +index 421ad6a9..a9a274a9 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java -@@ -3216,6 +3216,16 @@ public interface World extends PluginMessageRecipient, Metadatable { +@@ -3244,6 +3244,16 @@ public interface World extends PluginMessageRecipient, Metadatable { @NotNull public List getRaids(); diff --git a/patches/api/0020-Add-API-for-Villager-resetOffers.patch b/patches/api/0020-Add-API-for-Villager-resetOffers.patch index 7a396b1b9..be62807ec 100644 --- a/patches/api/0020-Add-API-for-Villager-resetOffers.patch +++ b/patches/api/0020-Add-API-for-Villager-resetOffers.patch @@ -1,4 +1,4 @@ -From bc0eb5d1698988e0434827cfb36e16b19f169df1 Mon Sep 17 00:00:00 2001 +From 013e7bc6e20e097f054a3b76f9d6a3aa49d2f256 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Mon, 7 Oct 2019 00:15:28 -0500 Subject: [PATCH] Add API for Villager#resetOffers() @@ -8,10 +8,10 @@ Subject: [PATCH] Add API for Villager#resetOffers() 1 file changed, 7 insertions(+) diff --git a/src/main/java/org/bukkit/entity/Villager.java b/src/main/java/org/bukkit/entity/Villager.java -index d1579153..14434ca8 100644 +index e0a3285b..32b8c4f2 100644 --- a/src/main/java/org/bukkit/entity/Villager.java +++ b/src/main/java/org/bukkit/entity/Villager.java -@@ -110,6 +110,13 @@ public interface Villager extends AbstractVillager { +@@ -113,6 +113,13 @@ public interface Villager extends AbstractVillager { */ public void wakeup(); diff --git a/patches/api/0024-Add-getPlacementBlockData-to-World.patch b/patches/api/0024-Add-getPlacementBlockData-to-World.patch index a82e75a56..dca4599da 100644 --- a/patches/api/0024-Add-getPlacementBlockData-to-World.patch +++ b/patches/api/0024-Add-getPlacementBlockData-to-World.patch @@ -1,4 +1,4 @@ -From 9781735cd943b5c4b202fd3ea32acf628fc6e492 Mon Sep 17 00:00:00 2001 +From bf422cd39e795cf7b12b77774a4c5ff1208ec819 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 af66b8255..04ced7551 100644 +index a9a274a9..d67d4355 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java -@@ -3224,6 +3224,16 @@ public interface World extends PluginMessageRecipient, Metadatable { +@@ -3252,6 +3252,16 @@ public interface World extends PluginMessageRecipient, Metadatable { */ @NotNull net.pl3x.purpur.MoonPhase getMoonPhase(); diff --git a/patches/api/0033-More-anvil-controls.patch b/patches/api/0033-More-anvil-controls.patch index 7eed0f170..12f3d434a 100644 --- a/patches/api/0033-More-anvil-controls.patch +++ b/patches/api/0033-More-anvil-controls.patch @@ -1,4 +1,4 @@ -From b1ef79818f5336bb401f9a43c0c388a1670bf434 Mon Sep 17 00:00:00 2001 +From 1f9945fb4f4524e6faf06b2b374a3c4a66aaf80b Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sun, 19 Apr 2020 00:25:09 -0500 Subject: [PATCH] More anvil controls @@ -13,7 +13,7 @@ Subject: [PATCH] More anvil controls diff --git a/src/main/java/net/pl3x/purpur/event/inventory/AnvilTakeResultEvent.java b/src/main/java/net/pl3x/purpur/event/inventory/AnvilTakeResultEvent.java new file mode 100644 -index 000000000..85663c0a4 +index 00000000..85663c0a --- /dev/null +++ b/src/main/java/net/pl3x/purpur/event/inventory/AnvilTakeResultEvent.java @@ -0,0 +1,52 @@ @@ -71,7 +71,7 @@ index 000000000..85663c0a4 +} diff --git a/src/main/java/net/pl3x/purpur/event/inventory/AnvilUpdateResultEvent.java b/src/main/java/net/pl3x/purpur/event/inventory/AnvilUpdateResultEvent.java new file mode 100644 -index 000000000..2717ad82c +index 00000000..2717ad82 --- /dev/null +++ b/src/main/java/net/pl3x/purpur/event/inventory/AnvilUpdateResultEvent.java @@ -0,0 +1,35 @@ @@ -111,13 +111,13 @@ index 000000000..2717ad82c + } +} diff --git a/src/main/java/org/bukkit/inventory/AnvilInventory.java b/src/main/java/org/bukkit/inventory/AnvilInventory.java -index 4af562426..086d4b022 100644 +index b95e563b..435026e5 100644 --- a/src/main/java/org/bukkit/inventory/AnvilInventory.java +++ b/src/main/java/org/bukkit/inventory/AnvilInventory.java -@@ -49,4 +49,14 @@ public interface AnvilInventory extends Inventory { - * @param levels the maximum experience cost - */ - void setMaximumRepairCost(int levels); +@@ -109,4 +109,14 @@ public interface AnvilInventory extends Inventory { + setItem(2, result); + } + // Paper end + + // Purpur start + boolean canBypassCost(); diff --git a/patches/server/0001-Rebrand.patch b/patches/server/0001-Rebrand.patch index fdadbff72..6ad342e25 100644 --- a/patches/server/0001-Rebrand.patch +++ b/patches/server/0001-Rebrand.patch @@ -1,4 +1,4 @@ -From 49c857402f8682d8b5e6da6e30af1fbdcd3fb221 Mon Sep 17 00:00:00 2001 +From 83354a397f8da9106fa538b50ae6a182722db15d 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 fd417a9ee..cdb556405 100644 +index 0c0051f7f..6ca410444 100644 --- a/pom.xml +++ b/pom.xml @@ -1,11 +1,11 @@ @@ -75,7 +75,7 @@ index fd417a9ee..cdb556405 100644 net.minecrell terminalconsoleappender -@@ -146,7 +160,7 @@ +@@ -153,7 +167,7 @@ @@ -84,7 +84,7 @@ index fd417a9ee..cdb556405 100644 clean install -@@ -154,7 +168,7 @@ +@@ -161,7 +175,7 @@ gitdescribe-maven-plugin 1.3 @@ -107,10 +107,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 98f039834..3bd3e5044 100644 +index b952e9efa..89afe0933 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1543,7 +1543,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant Date: Thu, 9 May 2019 18:09:43 -0500 Subject: [PATCH] Purpur config files @@ -62,7 +62,7 @@ index e62ca0543..018def64a 100644 // Paper end diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 899c535c4..d0896d944 100644 +index 0e6368d0f..352cbe6c0 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -85,6 +85,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { @@ -364,7 +364,7 @@ index 000000000..7d983d9a5 + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 8cf8a46a7..55f157433 100644 +index a1d3bc7ea..a3024da0f 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -814,6 +814,7 @@ public final class CraftServer implements Server { @@ -411,10 +411,10 @@ index 8cf8a46a7..55f157433 100644 public void restart() { org.spigotmc.RestartCommand.restart(); diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 093dbeae2..e05bfa352 100644 +index 93340e947..05e8da40f 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java -@@ -138,6 +138,14 @@ public class Main { +@@ -139,6 +139,14 @@ public class Main { .describedAs("Yml file"); // Paper end diff --git a/patches/server/0007-Ridables.patch b/patches/server/0007-Ridables.patch index b296c3c8e..0d3204817 100644 --- a/patches/server/0007-Ridables.patch +++ b/patches/server/0007-Ridables.patch @@ -1,9 +1,10 @@ -From 774014565ecf69c694e3f94091d3de52240e49d3 Mon Sep 17 00:00:00 2001 +From 129bb5241948459108c22dd3c2eaa78463c9c19e Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Thu, 6 Feb 2020 19:53:59 -0600 Subject: [PATCH] Ridables --- + .../paper/entity/ai/MobGoalHelper.java | 7 + .../net/minecraft/server/AxisAlignedBB.java | 2 + .../server/ControllerLookDolphin.java | 4 +- .../net/minecraft/server/ControllerMove.java | 6 +- @@ -88,7 +89,6 @@ Subject: [PATCH] Ridables .../java/net/minecraft/server/FoodInfo.java | 1 + .../java/net/minecraft/server/ItemDye.java | 1 + .../java/net/minecraft/server/MathHelper.java | 2 + - .../net/minecraft/server/PathfinderGoal.java | 1 + .../minecraft/server/PathfinderGoalSwell.java | 5 +- .../minecraft/server/ProjectileHelper.java | 1 + src/main/java/net/minecraft/server/Vec3D.java | 3 + @@ -104,7 +104,7 @@ Subject: [PATCH] Ridables .../pathfinder/PathfinderGoalHasRider.java | 21 + .../craftbukkit/entity/CraftEntity.java | 27 + src/main/resources/purpur.lang | 4 +- - 100 files changed, 3623 insertions(+), 211 deletions(-) + 100 files changed, 3629 insertions(+), 211 deletions(-) create mode 100644 src/main/java/net/pl3x/purpur/controller/ControllerLookWASD.java create mode 100644 src/main/java/net/pl3x/purpur/controller/ControllerMoveWASD.java create mode 100644 src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDFlying.java @@ -114,6 +114,24 @@ Subject: [PATCH] Ridables create mode 100644 src/main/java/net/pl3x/purpur/entity/PhantomFlames.java create mode 100644 src/main/java/net/pl3x/purpur/pathfinder/PathfinderGoalHasRider.java +diff --git a/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java b/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java +index d6ee94107..e8e0b3d25 100644 +--- a/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java ++++ b/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java +@@ -118,6 +118,13 @@ public class MobGoalHelper { + ignored.add("selector_1"); + ignored.add("selector_2"); + ignored.add("wrapped"); ++ // Purpur start ++ ignored.add("horse_abstract_1"); ++ ignored.add("llama_3"); ++ ignored.add("llama_4"); ++ ignored.add("find_crystal_goal"); ++ ignored.add("orbit_crystal_goal"); ++ // Purpur end + + bukkitMap.put(EntityInsentient.class, Mob.class); + bukkitMap.put(EntityAgeable.class, Ageable.class); diff --git a/src/main/java/net/minecraft/server/AxisAlignedBB.java b/src/main/java/net/minecraft/server/AxisAlignedBB.java index 3fdb52007..7e67292c2 100644 --- a/src/main/java/net/minecraft/server/AxisAlignedBB.java @@ -198,7 +216,7 @@ index 816d301f1..f7344d3ae 100644 this.C = true; return this; diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 14ba037c1..f630edb37 100644 +index 8820e4b65..36088330e 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -79,7 +79,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke @@ -237,7 +255,7 @@ index 14ba037c1..f630edb37 100644 private float headHeight; // CraftBukkit start public boolean persist = true; -@@ -857,6 +857,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -872,6 +872,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke return vec3d1; } @@ -245,7 +263,7 @@ index 14ba037c1..f630edb37 100644 public static double b(Vec3D vec3d) { return vec3d.x * vec3d.x + vec3d.z * vec3d.z; } -@@ -1183,6 +1184,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1198,6 +1199,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke return flag; } @@ -253,7 +271,7 @@ index 14ba037c1..f630edb37 100644 private boolean l() { return this.world.getType(new BlockPosition(this)).getBlock() == Blocks.BUBBLE_COLUMN; } -@@ -1196,8 +1198,9 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1211,8 +1213,9 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke return this.isInWater() || this.isInRain() || this.l(); } @@ -264,7 +282,7 @@ index 14ba037c1..f630edb37 100644 } public boolean aA() { -@@ -1328,6 +1331,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1343,6 +1346,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke return this.inLava; } @@ -272,7 +290,7 @@ index 14ba037c1..f630edb37 100644 public void a(float f, Vec3D vec3d) { Vec3D vec3d1 = a(vec3d, f, this.yaw); -@@ -2162,7 +2166,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -2177,7 +2181,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke } else { this.passengers.add(entity); } @@ -287,7 +305,7 @@ index 14ba037c1..f630edb37 100644 } return true; // CraftBukkit } -@@ -2197,6 +2207,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -2212,6 +2222,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke return false; } // Spigot end @@ -300,7 +318,7 @@ index 14ba037c1..f630edb37 100644 this.passengers.remove(entity); entity.j = 60; } -@@ -2365,6 +2381,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -2380,6 +2396,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke this.setFlag(4, flag); } @@ -308,7 +326,7 @@ index 14ba037c1..f630edb37 100644 public boolean bt() { return this.glowing || this.world.isClientSide && this.getFlag(6); } -@@ -2583,6 +2600,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -2598,6 +2615,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke public void setHeadRotation(float f) {} @@ -316,7 +334,7 @@ index 14ba037c1..f630edb37 100644 public void l(float f) {} public boolean bA() { -@@ -3437,4 +3455,43 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -3452,4 +3470,43 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke void accept(Entity entity, double d0, double d1, double d2); } @@ -1304,7 +1322,7 @@ index 77885f67f..63f5969b1 100644 @Override diff --git a/src/main/java/net/minecraft/server/EntityEnderDragon.java b/src/main/java/net/minecraft/server/EntityEnderDragon.java -index 2887cb14e..a6a79f5e9 100644 +index aecdaacfc..ab1747198 100644 --- a/src/main/java/net/minecraft/server/EntityEnderDragon.java +++ b/src/main/java/net/minecraft/server/EntityEnderDragon.java @@ -46,6 +46,7 @@ public class EntityEnderDragon extends EntityInsentient implements IMonster { @@ -2744,10 +2762,10 @@ index 1fdc248ba..a5a36af21 100644 protected void initAttributes() { super.initAttributes(); diff --git a/src/main/java/net/minecraft/server/EntityMushroomCow.java b/src/main/java/net/minecraft/server/EntityMushroomCow.java -index 3706c31aa..b20f4afd3 100644 +index 8b199971b..53bc31287 100644 --- a/src/main/java/net/minecraft/server/EntityMushroomCow.java +++ b/src/main/java/net/minecraft/server/EntityMushroomCow.java -@@ -20,6 +20,23 @@ public class EntityMushroomCow extends EntityCow { +@@ -19,6 +19,23 @@ public class EntityMushroomCow extends EntityCow { super(entitytypes, world); } @@ -3387,7 +3405,7 @@ index 0357c9da9..98a657cec 100644 this.targetSelector.a(2, new PathfinderGoalNearestAttackableTarget<>(this, EntityHuman.class, true)); this.targetSelector.a(3, new PathfinderGoalNearestAttackableTarget<>(this, EntityVillagerAbstract.class, false)); diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java -index 90c5dc1d6..db54bcc7e 100644 +index b37301598..6a7a9dc3d 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java @@ -1291,6 +1291,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { @@ -3757,7 +3775,7 @@ index 6be29f307..189515b0f 100644 public int es() { return 5; diff --git a/src/main/java/net/minecraft/server/EntitySheep.java b/src/main/java/net/minecraft/server/EntitySheep.java -index d5ffdc110..d4f2642d3 100644 +index f63528ca3..43eefa46c 100644 --- a/src/main/java/net/minecraft/server/EntitySheep.java +++ b/src/main/java/net/minecraft/server/EntitySheep.java @@ -55,10 +55,28 @@ public class EntitySheep extends EntityAnimal { @@ -4065,10 +4083,10 @@ index 2efc18df9..1469e3b23 100644 } else { this.h = ControllerMove.Operation.WAIT; diff --git a/src/main/java/net/minecraft/server/EntitySnowman.java b/src/main/java/net/minecraft/server/EntitySnowman.java -index 07ca1a498..941873513 100644 +index dee55c5de..65d746899 100644 --- a/src/main/java/net/minecraft/server/EntitySnowman.java +++ b/src/main/java/net/minecraft/server/EntitySnowman.java -@@ -14,12 +14,31 @@ public class EntitySnowman extends EntityGolem implements IRangedEntity { +@@ -13,12 +13,31 @@ public class EntitySnowman extends EntityGolem implements IRangedEntity { super(entitytypes, world); } @@ -4100,7 +4118,7 @@ index 07ca1a498..941873513 100644 this.targetSelector.a(1, new PathfinderGoalNearestAttackableTarget<>(this, EntityInsentient.class, 10, true, false, (entityliving) -> { return entityliving instanceof IMonster; })); -@@ -73,6 +92,7 @@ public class EntitySnowman extends EntityGolem implements IRangedEntity { +@@ -72,6 +91,7 @@ public class EntitySnowman extends EntityGolem implements IRangedEntity { return; } @@ -4108,16 +4126,16 @@ index 07ca1a498..941873513 100644 IBlockData iblockdata = Blocks.SNOW.getBlockData(); for (int l = 0; l < 4; ++l) { -@@ -119,7 +139,7 @@ public class EntitySnowman extends EntityGolem implements IRangedEntity { - this.world.getServer().getPluginManager().callEvent(event); - - if (event.isCancelled()) { +@@ -115,7 +135,7 @@ public class EntitySnowman extends EntityGolem implements IRangedEntity { + if (!this.world.isClientSide) { + // CraftBukkit start + if (!CraftEventFactory.handlePlayerShearEntityEvent(entityhuman, this, itemstack, enumhand)) { - return false; -+ return tryRide(entityhuman, enumhand); // Purpur; ++ return tryRide(entityhuman, enumhand); // Purpur } // CraftBukkit end this.setHasPumpkin(false); -@@ -130,7 +150,7 @@ public class EntitySnowman extends EntityGolem implements IRangedEntity { +@@ -126,7 +146,7 @@ public class EntitySnowman extends EntityGolem implements IRangedEntity { return true; } else { @@ -4593,7 +4611,7 @@ index cf274666c..d919f44ab 100644 Vec3D vec3d = new Vec3D(this.b - EntityVex.this.locX(), this.c - EntityVex.this.locY(), this.d - EntityVex.this.locZ()); double d0 = vec3d.f(); diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java -index ef2ee68cd..c78a77a4a 100644 +index 1094324d0..ee6b133d1 100644 --- a/src/main/java/net/minecraft/server/EntityVillager.java +++ b/src/main/java/net/minecraft/server/EntityVillager.java @@ -68,6 +68,28 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation @@ -4743,7 +4761,7 @@ index 1432d3f6b..447387bd7 100644 this.targetSelector.a(2, this.bz); this.targetSelector.a(3, this.bA); diff --git a/src/main/java/net/minecraft/server/EntityWither.java b/src/main/java/net/minecraft/server/EntityWither.java -index 8977c3516..ad97fe7ea 100644 +index 2f466af4d..8c1fa3717 100644 --- a/src/main/java/net/minecraft/server/EntityWither.java +++ b/src/main/java/net/minecraft/server/EntityWither.java @@ -18,7 +18,7 @@ public class EntityWither extends EntityMonster implements IRangedEntity { @@ -5184,18 +5202,6 @@ index c4aa38ddf..3d52a396e 100644 public static float g(float f, float f1, float f2) { return f1 + f * (f2 - f1); } -diff --git a/src/main/java/net/minecraft/server/PathfinderGoal.java b/src/main/java/net/minecraft/server/PathfinderGoal.java -index 93009d83f..1a8ebb673 100644 ---- a/src/main/java/net/minecraft/server/PathfinderGoal.java -+++ b/src/main/java/net/minecraft/server/PathfinderGoal.java -@@ -29,6 +29,7 @@ public abstract class PathfinderGoal { - - public void e() {} - -+ public void setTypes(EnumSet types) { this.a(types); } // Purpur - OBFHELPER - public void a(EnumSet enumset) { - // Paper start - remove streams from pathfindergoalselector - this.goalTypes.clear(); diff --git a/src/main/java/net/minecraft/server/PathfinderGoalSwell.java b/src/main/java/net/minecraft/server/PathfinderGoalSwell.java index e07c7674a..3c077b687 100644 --- a/src/main/java/net/minecraft/server/PathfinderGoalSwell.java @@ -5260,10 +5266,10 @@ index 0c7f094e5..62a081006 100644 return new Vec3D(this.x * d0, this.y * d1, this.z * d2); } diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index d0896d944..28c8fd3d4 100644 +index 352cbe6c0..4442f5cc0 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java -@@ -985,6 +985,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { +@@ -990,6 +990,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { } } @@ -5271,7 +5277,7 @@ index d0896d944..28c8fd3d4 100644 public boolean a(AxisAlignedBB axisalignedbb, Material material) { int i = MathHelper.floor(axisalignedbb.minX); int j = MathHelper.f(axisalignedbb.maxX); -@@ -1620,4 +1621,10 @@ public abstract class World implements GeneratorAccess, AutoCloseable { +@@ -1625,4 +1626,10 @@ public abstract class World implements GeneratorAccess, AutoCloseable { @Override public BiomeManager d() { return this.biomeManager; } diff --git a/patches/server/0009-Disable-outdated-build-check.patch b/patches/server/0009-Disable-outdated-build-check.patch index a1e3401ec..c69194900 100644 --- a/patches/server/0009-Disable-outdated-build-check.patch +++ b/patches/server/0009-Disable-outdated-build-check.patch @@ -1,4 +1,4 @@ -From f93e01c96967071c18cd68ba86a5e21168256f73 Mon Sep 17 00:00:00 2001 +From 9f076b9cec808602cb65e0ed2324846ffacd6218 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 e05bfa352..9f61c266c 100644 +index 05e8da40f..717c2759f 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/0019-Cows-eat-mushrooms.patch b/patches/server/0019-Cows-eat-mushrooms.patch index d1a2f0b84..564046ed5 100644 --- a/patches/server/0019-Cows-eat-mushrooms.patch +++ b/patches/server/0019-Cows-eat-mushrooms.patch @@ -1,4 +1,4 @@ -From ee88642c8335366ee44406a6fe24d5f9ffebf436 Mon Sep 17 00:00:00 2001 +From a51f4b1ec17222b8c99220ecc19fdec9bb881754 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 4 May 2019 01:10:30 -0500 Subject: [PATCH] Cows eat mushrooms @@ -11,10 +11,10 @@ Subject: [PATCH] Cows eat mushrooms 4 files changed, 77 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index f630edb37..3e9406b15 100644 +index 36088330e..cdf908cc1 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -1081,6 +1081,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1096,6 +1096,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke return false; } @@ -22,7 +22,7 @@ index f630edb37..3e9406b15 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); -@@ -2627,6 +2628,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -2642,6 +2643,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke this.invulnerable = flag; } diff --git a/patches/server/0020-Fix-cow-rotation-when-shearing-mooshroom.patch b/patches/server/0020-Fix-cow-rotation-when-shearing-mooshroom.patch index 50a3471f1..e9ff53006 100644 --- a/patches/server/0020-Fix-cow-rotation-when-shearing-mooshroom.patch +++ b/patches/server/0020-Fix-cow-rotation-when-shearing-mooshroom.patch @@ -1,4 +1,4 @@ -From 1e6fed4c8ec31bc74507375d2da965338dcb24cb Mon Sep 17 00:00:00 2001 +From 1d65387a081f39fa4878f89bb059b6e142e3ad16 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Fri, 3 May 2019 23:53:16 -0500 Subject: [PATCH] Fix cow rotation when shearing mooshroom @@ -8,10 +8,10 @@ Subject: [PATCH] Fix cow rotation when shearing mooshroom 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/minecraft/server/EntityMushroomCow.java b/src/main/java/net/minecraft/server/EntityMushroomCow.java -index b20f4afd3f..02d76a6c61 100644 +index 53bc31287..bf835aaf9 100644 --- a/src/main/java/net/minecraft/server/EntityMushroomCow.java +++ b/src/main/java/net/minecraft/server/EntityMushroomCow.java -@@ -118,7 +118,13 @@ public class EntityMushroomCow extends EntityCow { +@@ -114,7 +114,13 @@ public class EntityMushroomCow extends EntityCow { entitycow.setPositionRotation(this.locX(), this.locY(), this.locZ(), this.yaw, this.pitch); entitycow.setHealth(this.getHealth()); diff --git a/patches/server/0022-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch b/patches/server/0022-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch index 80d566ba3..c4b89d4d2 100644 --- a/patches/server/0022-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch +++ b/patches/server/0022-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch @@ -1,4 +1,4 @@ -From 7eb5dc2697e63f21e355f411c5299e8427608824 Mon Sep 17 00:00:00 2001 +From fe16df95ac31d875b31c4deae029b3f6586634b9 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 @@ -25,10 +25,10 @@ index f7344d3ae..f6c0165f9 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 d91c54fa9..0d5e942a0 100644 +index cdf908cc1..c8afacb64 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -1427,6 +1427,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1442,6 +1442,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke return d3 * d3 + d4 * d4 + d5 * d5; } @@ -36,7 +36,7 @@ index d91c54fa9..0d5e942a0 100644 public double h(Entity entity) { return this.c(entity.getPositionVector()); } -@@ -1956,14 +1957,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1971,14 +1972,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke return this.a(new ItemStack(imaterial), (float) i); } diff --git a/patches/server/0023-Snowman-drop-and-put-back-pumpkin.patch b/patches/server/0023-Snowman-drop-and-put-back-pumpkin.patch index 3cc369ba1..bb9fcfc0d 100644 --- a/patches/server/0023-Snowman-drop-and-put-back-pumpkin.patch +++ b/patches/server/0023-Snowman-drop-and-put-back-pumpkin.patch @@ -1,4 +1,4 @@ -From d661297b2f62eea8c5b474b4ded7973ec8e026fd Mon Sep 17 00:00:00 2001 +From 0cdfff808b4570fe20e44a30c12880318b2942f6 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Fri, 3 May 2019 23:58:44 -0500 Subject: [PATCH] Snowman drop and put back pumpkin @@ -9,10 +9,10 @@ Subject: [PATCH] Snowman drop and put back pumpkin 2 files changed, 21 insertions(+) diff --git a/src/main/java/net/minecraft/server/EntitySnowman.java b/src/main/java/net/minecraft/server/EntitySnowman.java -index 941873513..efc2205f7 100644 +index 65d746899..3f6f8ad45 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; +@@ -7,6 +7,7 @@ import org.bukkit.craftbukkit.event.CraftEventFactory; public class EntitySnowman extends EntityGolem implements IRangedEntity { @@ -20,7 +20,7 @@ index 941873513..efc2205f7 100644 private static final DataWatcherObject b = DataWatcher.a(EntitySnowman.class, DataWatcherRegistry.a); public EntitySnowman(EntityTypes entitytypes, World world) { -@@ -146,9 +147,25 @@ public class EntitySnowman extends EntityGolem implements IRangedEntity { +@@ -142,9 +143,25 @@ public class EntitySnowman extends EntityGolem implements IRangedEntity { itemstack.damage(1, entityhuman, (entityhuman1) -> { entityhuman1.broadcastItemBreak(enumhand); }); diff --git a/patches/server/0030-Controllable-Minecarts.patch b/patches/server/0030-Controllable-Minecarts.patch index 3efaec9a0..079957411 100644 --- a/patches/server/0030-Controllable-Minecarts.patch +++ b/patches/server/0030-Controllable-Minecarts.patch @@ -1,4 +1,4 @@ -From df00076495ac61bf6978a5d5d1d66146d06ad231 Mon Sep 17 00:00:00 2001 +From 63a27259e3672fa56ce6c6952ec89b6b9caeba91 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, 76 insertions(+), 3 deletions(-) diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 0d5e942a0..478ddf34e 100644 +index c8afacb64..b64e287db 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -1328,6 +1328,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1343,6 +1343,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke this.inLava = true; } diff --git a/patches/server/0036-Dont-send-useless-entity-packets.patch b/patches/server/0036-Dont-send-useless-entity-packets.patch index ee5b82a7e..4e8ae2769 100644 --- a/patches/server/0036-Dont-send-useless-entity-packets.patch +++ b/patches/server/0036-Dont-send-useless-entity-packets.patch @@ -1,4 +1,4 @@ -From 154cd96b04812374e0b146234d568ee7c0b90483 Mon Sep 17 00:00:00 2001 +From 8d6b566ea1808ad7ec747ea5224fc9f6c10cfabd Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 6 Jul 2019 17:00:04 -0500 Subject: [PATCH] Dont send useless entity packets @@ -10,10 +10,10 @@ Subject: [PATCH] Dont send useless entity packets 3 files changed, 27 insertions(+), 5 deletions(-) diff --git a/src/main/java/net/minecraft/server/EntityTrackerEntry.java b/src/main/java/net/minecraft/server/EntityTrackerEntry.java -index 3a88c9a67..1f7c8f7da 100644 +index 6d3b34ead..8d4bcd34c 100644 --- a/src/main/java/net/minecraft/server/EntityTrackerEntry.java +++ b/src/main/java/net/minecraft/server/EntityTrackerEntry.java -@@ -162,6 +162,7 @@ public class EntityTrackerEntry { +@@ -163,6 +163,7 @@ public class EntityTrackerEntry { this.o = 0; packet1 = new PacketPlayOutEntityTeleport(this.tracker); } @@ -21,7 +21,7 @@ index 3a88c9a67..1f7c8f7da 100644 } if ((this.e || this.tracker.impulse || this.tracker instanceof EntityLiving && ((EntityLiving) this.tracker).isGliding()) && this.tickCounter > 0) { -@@ -248,6 +249,22 @@ public class EntityTrackerEntry { +@@ -249,6 +250,22 @@ public class EntityTrackerEntry { } diff --git a/patches/server/0037-Implement-AFK-API.patch b/patches/server/0037-Implement-AFK-API.patch index 43c4f08d2..104174775 100644 --- a/patches/server/0037-Implement-AFK-API.patch +++ b/patches/server/0037-Implement-AFK-API.patch @@ -1,4 +1,4 @@ -From c3a713fef3eb8bae961209d6dad09202bac0657e Mon Sep 17 00:00:00 2001 +From 3a361398ad21e98a81237dd15cff86cd3aa94201 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Thu, 8 Aug 2019 15:29:15 -0500 Subject: [PATCH] Implement AFK API @@ -18,10 +18,10 @@ Subject: [PATCH] Implement AFK API 11 files changed, 111 insertions(+), 25 deletions(-) diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 153596b94..eed7878a4 100644 +index b64e287db..944199404 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -1420,6 +1420,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1435,6 +1435,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke return MathHelper.c(f * f + f1 * f1 + f2 * f2); } @@ -50,7 +50,7 @@ index 27cfc6654..d62174e9c 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 192ec4378..40a2308e4 100644 +index f3278d356..219a274f9 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java @@ -1624,8 +1624,51 @@ public class EntityPlayer extends EntityHuman implements ICrafting { @@ -171,10 +171,10 @@ index 1398c47a2..0bf1a14b7 100644 public static Predicate a(double d0, double d1, double d2, double d3) { double d4 = d3 * d3; diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index 2e6411100..1cfe6709c 100644 +index c61edea48..f641aa30c 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java -@@ -235,6 +235,12 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -233,6 +233,12 @@ public class PlayerConnection implements PacketListenerPlayIn { } if (this.player.F() > 0L && this.minecraftServer.getIdleTimeout() > 0 && SystemUtils.getMonotonicMillis() - this.player.F() > (long) (this.minecraftServer.getIdleTimeout() * 1000 * 60)) { @@ -187,7 +187,7 @@ index 2e6411100..1cfe6709c 100644 this.player.resetIdleTimer(); // CraftBukkit - SPIGOT-854 this.disconnect(new ChatMessage("multiplayer.disconnect.idling", new Object[0])); } -@@ -451,6 +457,8 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -449,6 +455,8 @@ public class PlayerConnection implements PacketListenerPlayIn { this.lastYaw = to.getYaw(); this.lastPitch = to.getPitch(); @@ -196,7 +196,7 @@ index 2e6411100..1cfe6709c 100644 // Skip the first time we do this if (true) { // Spigot - don't skip any move events Location oldTo = to.clone(); -@@ -1135,6 +1143,8 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -1134,6 +1142,8 @@ public class PlayerConnection implements PacketListenerPlayIn { this.lastYaw = to.getYaw(); this.lastPitch = to.getPitch(); @@ -206,7 +206,7 @@ index 2e6411100..1cfe6709c 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 fc3a41e35..c85639e48 100644 +index a4a441fea..c4a09eda3 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java @@ -405,7 +405,7 @@ public class WorldServer extends World { @@ -250,7 +250,7 @@ index d6405b2ec..41dd1b861 100644 public boolean batRidableInWater = false; public boolean batRequireShiftToMount = true; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 3515b7268..00f7fc3ec 100644 +index dcbda5b35..c14493929 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -2079,4 +2079,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -276,7 +276,7 @@ index 3515b7268..00f7fc3ec 100644 + // Purpur end } diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java -index d873b8cf3..9d9cc06f0 100644 +index f735217e7..818f8070c 100644 --- a/src/main/java/org/spigotmc/ActivationRange.java +++ b/src/main/java/org/spigotmc/ActivationRange.java @@ -207,6 +207,7 @@ public class ActivationRange diff --git a/patches/server/0042-Make-the-GUI-better.patch b/patches/server/0042-Make-the-GUI-better.patch index 239e84c81..9edfd3cd6 100644 --- a/patches/server/0042-Make-the-GUI-better.patch +++ b/patches/server/0042-Make-the-GUI-better.patch @@ -1,4 +1,4 @@ -From b14034a9f9af83c9873e567ebbe6bb8626abb7a7 Mon Sep 17 00:00:00 2001 +From 30c61bc04a59a9312d587f60881a58f9703c032a Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Thu, 16 Jan 2020 14:59:16 -0600 Subject: [PATCH] Make the GUI better @@ -88,10 +88,10 @@ index 018def64a..fe474e4eb 100644 } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 3bd3e5044..8207e7f8a 100644 +index 89afe0933..a8d572aa4 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1350,6 +1350,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant Date: Sat, 11 Jan 2020 23:12:52 -0600 Subject: [PATCH] Add EntityPortalReadyEvent @@ -86,7 +86,7 @@ index 09c7c1318..6880cdd7f 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 7658d257d..ac814f4ab 100644 +index 944199404..ceba4f355 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -169,9 +169,9 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke @@ -102,7 +102,7 @@ index 7658d257d..ac814f4ab 100644 private boolean invulnerable; protected UUID uniqueID; protected String am; -@@ -2268,6 +2268,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -2283,6 +2283,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke this.world.getMethodProfiler().enter("portal"); this.ag = i; this.portalCooldown = this.ba(); @@ -141,7 +141,7 @@ index f84dd6d9b..f50e9670b 100644 } } diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index 9b8739485..e1387ddce 100644 +index c4a09eda3..71719ce63 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java @@ -75,7 +75,7 @@ public class WorldServer extends World { diff --git a/patches/server/0047-Implement-lagging-threshold.patch b/patches/server/0047-Implement-lagging-threshold.patch index d2b94ba02..728f68c77 100644 --- a/patches/server/0047-Implement-lagging-threshold.patch +++ b/patches/server/0047-Implement-lagging-threshold.patch @@ -1,4 +1,4 @@ -From caa69a1bbf529f8da69d513e1e346436695598e8 Mon Sep 17 00:00:00 2001 +From 78083ab2e5aeb0c439fbb0d8565427b7213b4524 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, 14 insertions(+) diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 8207e7f8a..4d25bd747 100644 +index a8d572aa4..533230432 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -184,6 +184,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant Date: Sun, 21 Jul 2019 18:06:20 -0500 Subject: [PATCH] Climbing should not bypass cramming gamerule @@ -17,10 +17,10 @@ Subject: [PATCH] Climbing 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 7ca7a148b..a8b1f4892 100644 +index ceba4f355..ae119067e 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -1555,6 +1555,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1570,6 +1570,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke } public boolean isCollidable() { diff --git a/patches/server/0053-Bring-back-server-name.patch b/patches/server/0053-Bring-back-server-name.patch index 0a7cbb359..61585fcd2 100644 --- a/patches/server/0053-Bring-back-server-name.patch +++ b/patches/server/0053-Bring-back-server-name.patch @@ -1,4 +1,4 @@ -From 4ec72eea0a0d8df4c68aab0c857d79a81f05dc8b Mon Sep 17 00:00:00 2001 +From 008c94f5ef0faf47199d34ebe95cfca35dba957e Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sun, 26 May 2019 15:19:14 -0500 Subject: [PATCH] Bring back server name @@ -21,10 +21,10 @@ index 0c3ec8357..309f5562b 100644 public final boolean spawnNpcs = this.getBoolean("spawn-npcs", true); public final boolean pvp = this.getBoolean("pvp", true); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 44b3dca47..68c7dbdb8 100644 +index 0b474f64e..047d48873 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2248,6 +2248,11 @@ public final class CraftServer implements Server { +@@ -2254,6 +2254,11 @@ public final class CraftServer implements Server { // Paper end // Purpur start diff --git a/patches/server/0060-Alternative-Keepalive-Handling.patch b/patches/server/0060-Alternative-Keepalive-Handling.patch index 3c066c499..473cb369f 100644 --- a/patches/server/0060-Alternative-Keepalive-Handling.patch +++ b/patches/server/0060-Alternative-Keepalive-Handling.patch @@ -1,4 +1,4 @@ -From 6b5a1fa86ca426fa82857f6d4dd082970eefe878 Mon Sep 17 00:00:00 2001 +From 4f27c69dd03c244d9f695afa6313b48ba67fce4d Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Fri, 11 Oct 2019 00:17:39 -0500 Subject: [PATCH] Alternative Keepalive Handling @@ -22,7 +22,7 @@ index 8e93f1540..470f92c4f 100644 return this.a; } diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index 1cfe6709c..d89a30659 100644 +index f641aa30c..f83a35c9f 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java @@ -75,6 +75,7 @@ public class PlayerConnection implements PacketListenerPlayIn { @@ -33,7 +33,7 @@ index 1cfe6709c..d89a30659 100644 // CraftBukkit start - multithreaded fields private volatile int chatThrottle; private static final AtomicIntegerFieldUpdater chatSpamField = AtomicIntegerFieldUpdater.newUpdater(PlayerConnection.class, "chatThrottle"); -@@ -203,6 +204,21 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -201,6 +202,21 @@ public class PlayerConnection implements PacketListenerPlayIn { long currentTime = SystemUtils.getMonotonicMillis(); long elapsedTime = currentTime - this.getLastPing(); diff --git a/patches/server/0066-Add-5-second-tps-average-in-tps.patch b/patches/server/0066-Add-5-second-tps-average-in-tps.patch index 4a383ae98..dbd47a960 100644 --- a/patches/server/0066-Add-5-second-tps-average-in-tps.patch +++ b/patches/server/0066-Add-5-second-tps-average-in-tps.patch @@ -1,4 +1,4 @@ -From a1fd8828f3b58853f6a00532529360299d277870 Mon Sep 17 00:00:00 2001 +From 1701f8bd731b30777cb1513bb38f32408ecba9e3 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 4d25bd747..7a7c9213d 100644 +index 533230432..493d9efe6 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -183,7 +183,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant Date: Mon, 7 Oct 2019 00:15:37 -0500 Subject: [PATCH] Add API for Villager#resetOffers() @@ -35,13 +35,13 @@ index 9b75c67c7..ddd19aa2f 100644 protected void a(MerchantRecipeList merchantrecipelist, VillagerTrades.IMerchantRecipeOption[] avillagertrades_imerchantrecipeoption, int i) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java -index a8384081c..f78a23e42 100644 +index 19409c7a2..d9e19648f 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java -@@ -124,4 +124,11 @@ public class CraftVillager extends CraftAbstractVillager implements Villager { - public static VillagerProfession bukkitToNmsProfession(Profession bukkit) { - return IRegistry.VILLAGER_PROFESSION.get(CraftNamespacedKey.toMinecraft(bukkit.getKey())); +@@ -164,4 +164,11 @@ public class CraftVillager extends CraftAbstractVillager implements Villager { + } } + // Paper end + + // Purpur start + @Override diff --git a/patches/server/0075-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch b/patches/server/0075-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch index 119fc5456..208da3762 100644 --- a/patches/server/0075-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch +++ b/patches/server/0075-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch @@ -1,4 +1,4 @@ -From 3d083e02e266b26cc31944bf3df22bc1823e4b8d Mon Sep 17 00:00:00 2001 +From 1d30eeeb7722d1dc6a30725d763f2724f7d8906a 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 28c8fd3d4..0c4aae6ce 100644 +index 4442f5cc0..71a47ca2a 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java -@@ -1427,8 +1427,11 @@ public abstract class World implements GeneratorAccess, AutoCloseable { +@@ -1432,8 +1432,11 @@ public abstract class World implements GeneratorAccess, AutoCloseable { return blockposition; } @@ -25,7 +25,7 @@ index 28c8fd3d4..0c4aae6ce 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 83bd0a95d..05d3a0dcc 100644 +index acf854322..ba8b0e756 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -383,12 +383,16 @@ public class CraftWorld implements World { diff --git a/patches/server/0082-Add-permission-for-F3-N-debug.patch b/patches/server/0082-Add-permission-for-F3-N-debug.patch index 019555b79..0f6c71a9a 100644 --- a/patches/server/0082-Add-permission-for-F3-N-debug.patch +++ b/patches/server/0082-Add-permission-for-F3-N-debug.patch @@ -1,4 +1,4 @@ -From db022ecbbae92bbacaf3e880d56313d3cbf8807d Mon Sep 17 00:00:00 2001 +From f92c808c4d70752623932d33a603c811a8a05097 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 28 Dec 2019 04:21:54 -0600 Subject: [PATCH] Add permission for F3+N debug @@ -8,10 +8,10 @@ Subject: [PATCH] Add permission for F3+N debug 1 file changed, 1 insertion(+) diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index edf9df8c8..642160065 100644 +index 9786f110c..5155537e7 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java -@@ -973,6 +973,7 @@ public abstract class PlayerList { +@@ -975,6 +975,7 @@ public abstract class PlayerList { } else { b0 = (byte) (24 + i); } diff --git a/patches/server/0083-Allow-leashing-villagers.patch b/patches/server/0083-Allow-leashing-villagers.patch index c9c40582d..6fd562098 100644 --- a/patches/server/0083-Allow-leashing-villagers.patch +++ b/patches/server/0083-Allow-leashing-villagers.patch @@ -1,4 +1,4 @@ -From bc52f2bbaf2e74b173968089b5ddcac97876285a Mon Sep 17 00:00:00 2001 +From bc95738e40b609fe775192630e50327feb046e79 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 @@ -23,10 +23,10 @@ index bf9d044b0..3adc3434e 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 ec457de62..f67195de9 100644 +index d2680bb09..0abf72871 100644 --- a/src/main/java/net/minecraft/server/EntityVillager.java +++ b/src/main/java/net/minecraft/server/EntityVillager.java -@@ -1015,4 +1015,11 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation +@@ -1016,4 +1016,11 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation this.bL = restocksToday; } // Paper end diff --git a/patches/server/0087-UPnP-Port-Forwarding-Service.patch b/patches/server/0087-UPnP-Port-Forwarding-Service.patch index 31237a146..e834bd4e1 100644 --- a/patches/server/0087-UPnP-Port-Forwarding-Service.patch +++ b/patches/server/0087-UPnP-Port-Forwarding-Service.patch @@ -1,4 +1,4 @@ -From d6c311e7c232a6269e25a05fb3136ef4b8aa698c Mon Sep 17 00:00:00 2001 +From c6a8dc971d2342d520ab4deb98e220dcc8fa0b04 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Wed, 22 Jan 2020 20:13:40 -0600 Subject: [PATCH] UPnP Port Forwarding Service @@ -14,7 +14,7 @@ Subject: [PATCH] UPnP Port Forwarding Service create mode 100644 src/main/java/net/pl3x/purpur/gui/info/UPnPComponent.java diff --git a/pom.xml b/pom.xml -index 07c50510c..5ecec5c20 100644 +index 6ca410444..46101cdbe 100644 --- a/pom.xml +++ b/pom.xml @@ -56,6 +56,12 @@ @@ -30,7 +30,7 @@ index 07c50510c..5ecec5c20 100644 net.minecrell -@@ -149,6 +155,10 @@ +@@ -156,6 +162,10 @@ spigotmc-public https://hub.spigotmc.org/nexus/content/groups/public/ @@ -78,7 +78,7 @@ index fe474e4eb..18fdaf53e 100644 // this.a((PlayerList) (new DedicatedPlayerList(this))); // Spigot - moved up server.loadPlugins(); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 7a7c9213d..971466e2a 100644 +index 493d9efe6..f6260c34b 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -187,6 +187,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant Date: Tue, 18 Feb 2020 20:07:08 -0600 Subject: [PATCH] Add option to disable saving projectiles to disk @@ -15,7 +15,7 @@ Subject: [PATCH] Add option to disable saving projectiles to disk 8 files changed, 58 insertions(+) diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java -index 57a6e7c13..89fa4f0a9 100644 +index fa893b14b..a60e4ef36 100644 --- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java +++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java @@ -437,6 +437,7 @@ public class ChunkRegionLoader { @@ -27,10 +27,10 @@ index 57a6e7c13..89fa4f0a9 100644 // Paper start if (asyncsavedata == null && !entity.dead && (int) Math.floor(entity.locX()) >> 4 != chunk.getPos().x || (int) Math.floor(entity.locZ()) >> 4 != chunk.getPos().z) { diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 8304b42cc..b626c6ada 100644 +index ae119067e..6406e6c5d 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -1572,6 +1572,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1587,6 +1587,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke } diff --git a/patches/server/0091-Add-item-entity-options.patch b/patches/server/0091-Add-item-entity-options.patch index 69d645186..db9ac5806 100644 --- a/patches/server/0091-Add-item-entity-options.patch +++ b/patches/server/0091-Add-item-entity-options.patch @@ -1,4 +1,4 @@ -From 12201a8ab87a002d24b9d088f94da98cd3bf81b8 Mon Sep 17 00:00:00 2001 +From 78498ce0b82d11b1ec78e6a598e14fb8a4e2b1db Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 22 Feb 2020 15:54:08 -0600 Subject: [PATCH] Add item entity options @@ -10,10 +10,10 @@ Subject: [PATCH] Add item entity options 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index b626c6ada..ecccbe12a 100644 +index 6406e6c5d..e5a2414c1 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -1303,6 +1303,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1318,6 +1318,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke } diff --git a/patches/server/0093-Configurable-void-damage-height.patch b/patches/server/0093-Configurable-void-damage-height.patch index 1e7888434..07cd5b7e8 100644 --- a/patches/server/0093-Configurable-void-damage-height.patch +++ b/patches/server/0093-Configurable-void-damage-height.patch @@ -1,4 +1,4 @@ -From 88244c3a5893802b573d7661b5bd6958c906ad2e Mon Sep 17 00:00:00 2001 +From 62230b26b7bf0f5f96ad902dc0d3fa5474d12ec5 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Thu, 27 Feb 2020 21:42:19 -0600 Subject: [PATCH] Configurable void damage height @@ -9,10 +9,10 @@ Subject: [PATCH] Configurable void damage height 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index ecccbe12a..22033b82d 100644 +index e5a2414c1..f04319b1f 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -487,7 +487,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -502,7 +502,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke // Paper start protected void performVoidDamage() { diff --git a/patches/server/0094-Fix-the-dead-lagging-the-server.patch b/patches/server/0094-Fix-the-dead-lagging-the-server.patch index 0f310d41d..7a13af76e 100644 --- a/patches/server/0094-Fix-the-dead-lagging-the-server.patch +++ b/patches/server/0094-Fix-the-dead-lagging-the-server.patch @@ -1,4 +1,4 @@ -From 097e37ea5cea8ea5ab46607e92477b4523d062a0 Mon Sep 17 00:00:00 2001 +From ef29b912a54e3489dfada87a8006f210cd2e3681 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Fri, 6 Mar 2020 13:37:26 -0600 Subject: [PATCH] Fix the dead lagging the server @@ -9,10 +9,10 @@ Subject: [PATCH] Fix the dead lagging the server 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index f2fb5404a..bff644763 100644 +index f04319b1f..074a0ee0c 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -1389,7 +1389,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1404,7 +1404,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke this.pitch = MathHelper.a(f1, -90.0F, 90.0F) % 360.0F; this.lastYaw = this.yaw; this.lastPitch = this.pitch; diff --git a/patches/server/0097-Configurable-server-mod-name.patch b/patches/server/0097-Configurable-server-mod-name.patch index 5bf1a060e..ed2929f7a 100644 --- a/patches/server/0097-Configurable-server-mod-name.patch +++ b/patches/server/0097-Configurable-server-mod-name.patch @@ -1,4 +1,4 @@ -From 7bbb5d4e67c00a878e483cd207408c9b08f05fdb Mon Sep 17 00:00:00 2001 +From 9776c64707afaad5f98971260985d922230e8f1a Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 21 Mar 2020 11:47:39 -0500 Subject: [PATCH] Configurable server mod name @@ -9,10 +9,10 @@ Subject: [PATCH] Configurable server mod name 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 971466e2a..1b76ce463 100644 +index f6260c34b..6e1d698af 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1561,7 +1561,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant Date: Thu, 26 Mar 2020 19:06:22 -0500 Subject: [PATCH] Configurable TPS Catchup @@ -9,10 +9,10 @@ Subject: [PATCH] Configurable TPS Catchup 2 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 1b76ce463..e9f1fd78a 100644 +index 6e1d698af..902a5f98f 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -964,6 +964,13 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant Date: Thu, 2 Apr 2020 00:28:06 -0500 Subject: [PATCH] Optimize Chunk Ticks --- - .../minecraft/server/ChunkProviderServer.java | 70 ++++++------------- - .../minecraft/server/EnumCreatureType.java | 14 ++++ - .../net/minecraft/server/PlayerChunkMap.java | 30 ++++---- - 3 files changed, 51 insertions(+), 63 deletions(-) + .../minecraft/server/ChunkProviderServer.java | 50 ++++--------------- + .../minecraft/server/EnumCreatureType.java | 14 ++++++ + 2 files changed, 25 insertions(+), 39 deletions(-) diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java -index 78a8a3cc6..0a09e8dd7 100644 +index e2abda1bc..8ffb2e6b7 100644 --- a/src/main/java/net/minecraft/server/ChunkProviderServer.java +++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java -@@ -737,11 +737,12 @@ public class ChunkProviderServer extends IChunkProvider { +@@ -767,11 +767,12 @@ public class ChunkProviderServer extends IChunkProvider { int k = this.world.getGameRules().getInt(GameRules.RANDOM_TICK_SPEED); BlockPosition blockposition = this.world.getSpawn(); // CraftBukkit start - Other mob type spawn tick rate @@ -31,35 +30,8 @@ index 78a8a3cc6..0a09e8dd7 100644 // CraftBukkit end this.world.getMethodProfiler().enter("naturalSpawnCount"); -@@ -767,15 +768,17 @@ public class ChunkProviderServer extends IChunkProvider { - - this.world.timings.countNaturalMobs.stopTiming(); // Paper - timings - this.world.getMethodProfiler().exit(); -- //Paper start - call player naturally spawn event -- int chunkRange = world.spigotConfig.mobSpawnRange; -- chunkRange = (chunkRange > world.spigotConfig.viewDistance) ? (byte) world.spigotConfig.viewDistance : chunkRange; -- chunkRange = Math.min(chunkRange, 8); -- for (EntityPlayer entityPlayer : this.world.players) { -- entityPlayer.playerNaturallySpawnedEvent = new com.destroystokyo.paper.event.entity.PlayerNaturallySpawnCreaturesEvent(entityPlayer.getBukkitEntity(), (byte) chunkRange); -- entityPlayer.playerNaturallySpawnedEvent.callEvent(); -- }; -- // Paper end -+ // Purpur start -+ if (com.destroystokyo.paper.event.entity.PlayerNaturallySpawnCreaturesEvent.getHandlerList().getRegisteredListeners().length > 0) { -+ // Paper start - call player naturally spawn event -+ byte chunkRange = (byte) Math.min(Math.min(world.spigotConfig.mobSpawnRange, world.spigotConfig.viewDistance), 8); -+ for (EntityPlayer entityPlayer : this.world.players) { -+ entityPlayer.playerNaturallySpawnedEvent = new com.destroystokyo.paper.event.entity.PlayerNaturallySpawnCreaturesEvent(entityPlayer.getBukkitEntity(), (byte) chunkRange); -+ entityPlayer.playerNaturallySpawnedEvent.callEvent(); -+ } -+ // Paper end -+ } -+ // Purpur end - final int[] chunksTicked = {0}; this.playerChunkMap.forEachVisibleChunk((playerchunk) -> { // Paper - safe iterator incase chunk loads, also no wrapping - Optional optional = ((Either) playerchunk.b().getNow(PlayerChunk.UNLOADED_CHUNK)).left(); - -@@ -795,40 +798,11 @@ public class ChunkProviderServer extends IChunkProvider { - if (flag1 && (this.allowMonsters || this.allowAnimals) && this.world.getWorldBorder().isInBounds(chunk.getPos()) && !this.playerChunkMap.isOutsideOfRange(chunkcoordintpair, true)) { // Spigot +@@ -817,40 +818,11 @@ public class ChunkProviderServer extends IChunkProvider { + if (flag1 && (this.allowMonsters || this.allowAnimals) && this.world.getWorldBorder().isInBounds(chunk.getPos()) && !this.playerChunkMap.isOutsideOfRange(playerchunk, chunkcoordintpair, true)) { // Spigot // Paper - optimise isOutsideOfRange this.world.getMethodProfiler().enter("spawner"); this.world.timings.mobSpawn.startTiming(); // Spigot - EnumCreatureType[] aenumcreaturetype1 = aenumcreaturetype; @@ -134,54 +106,6 @@ index 3ed7fa324..7f236585d 100644 + } + // Purpur end } -diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java -index aabb9220d..b0c95aebf 100644 ---- a/src/main/java/net/minecraft/server/PlayerChunkMap.java -+++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java -@@ -1386,28 +1386,28 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { - } - - boolean isOutsideOfRange(ChunkCoordIntPair chunkcoordintpair, boolean reducedRange) { -- int chunkRange = world.spigotConfig.mobSpawnRange; -- chunkRange = (chunkRange > world.spigotConfig.viewDistance) ? (byte) world.spigotConfig.viewDistance : chunkRange; -- chunkRange = (chunkRange > 8) ? 8 : chunkRange; -- -- final int finalChunkRange = chunkRange; // Paper for lambda below -- //double blockRange = (reducedRange) ? Math.pow(chunkRange << 4, 2) : 16384.0D; // Paper - use from event -- // Spigot end -+ // Purpur start - long i = chunkcoordintpair.pair(); -- -- return !this.chunkDistanceManager.d(i) ? true : this.playerMap.a(i).noneMatch((entityplayer) -> { -- // Paper start - -- com.destroystokyo.paper.event.entity.PlayerNaturallySpawnCreaturesEvent event; -+ return !this.chunkDistanceManager.d(i) || this.playerMap.a(i).noneMatch((player) -> { -+ // Paper start - double blockRange = 16384.0D; - if (reducedRange) { -- event = entityplayer.playerNaturallySpawnedEvent; -- if (event == null || event.isCancelled()) return false; -- blockRange = (double) ((event.getSpawnRadius() << 4) * (event.getSpawnRadius() << 4)); -+ int radius; -+ if (player.playerNaturallySpawnedEvent != null) { -+ if (player.playerNaturallySpawnedEvent.isCancelled()) { -+ return false; -+ } -+ radius = player.playerNaturallySpawnedEvent.getSpawnRadius(); -+ } else { -+ radius = Math.min(Math.min(world.spigotConfig.mobSpawnRange, world.spigotConfig.viewDistance), 8) << 4; -+ } -+ blockRange = radius * radius; - } - -- return (!entityplayer.isSpectator() && a(chunkcoordintpair, (Entity) entityplayer) < blockRange); // Spigot -+ return (!player.isSpectator() && a(chunkcoordintpair, player) < blockRange); // Spigot - // Paper end - }); -+ // Purpur end - } - - private boolean b(EntityPlayer entityplayer) { -- 2.24.0 diff --git a/patches/server/0113-Player-invulnerabilities.patch b/patches/server/0113-Player-invulnerabilities.patch index db014f1fb..39d24e37d 100644 --- a/patches/server/0113-Player-invulnerabilities.patch +++ b/patches/server/0113-Player-invulnerabilities.patch @@ -1,4 +1,4 @@ -From 94e476eb077f2094206185c6d9b0007d713d4b99 Mon Sep 17 00:00:00 2001 +From f65a4661cd8809abc4cf81ad6256849d15c4c51f Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 2 May 2020 20:55:44 -0500 Subject: [PATCH] Player invulnerabilities @@ -12,7 +12,7 @@ Subject: [PATCH] Player invulnerabilities 5 files changed, 42 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java -index 2453f0149..b4652a2c2 100644 +index 19cfdf6c8..621171584 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java @@ -131,6 +131,8 @@ public class EntityPlayer extends EntityHuman implements ICrafting { @@ -75,7 +75,7 @@ index 2453f0149..b4652a2c2 100644 public Scoreboard getScoreboard() { return getBukkitEntity().getScoreboard().getHandle(); diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index d89a30659..5065a6aa9 100644 +index f83a35c9f..4d6e7c249 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java @@ -1522,6 +1522,7 @@ public class PlayerConnection implements PacketListenerPlayIn { @@ -87,10 +87,10 @@ index d89a30659..5065a6aa9 100644 this.server.getPluginManager().callEvent(new PlayerResourcePackStatusEvent(getPlayer(), packStatus)); // Paper end diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index 642160065..5e15eb46e 100644 +index 5155537e7..652a954b5 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java -@@ -821,6 +821,8 @@ public abstract class PlayerList { +@@ -823,6 +823,8 @@ public abstract class PlayerList { } // Paper end @@ -122,7 +122,7 @@ index efdc176e6..81969d2dc 100644 playerSleepCondition = getString("gameplay-mechanics.player.sleep.condition", playerSleepCondition); useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 00f7fc3ec..0d410968c 100644 +index c14493929..a3ffa34e0 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -2095,5 +2095,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0116-MC-4-Fix-Item-position-desync.patch b/patches/server/0116-MC-4-Fix-Item-position-desync.patch index c8fe06353..b3b01ae97 100644 --- a/patches/server/0116-MC-4-Fix-Item-position-desync.patch +++ b/patches/server/0116-MC-4-Fix-Item-position-desync.patch @@ -1,4 +1,4 @@ -From d66b7e2f84df8ce9968cd57fd67f08fd459860ab Mon Sep 17 00:00:00 2001 +From 38d451e1f9556d05be4854849084f53771e2b061 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 6 Jul 2019 21:12:58 -0500 Subject: [PATCH] MC-4 Fix - Item position desync @@ -10,10 +10,10 @@ Subject: [PATCH] MC-4 Fix - Item position desync 3 files changed, 10 insertions(+) diff --git a/src/main/java/net/minecraft/server/EntityTrackerEntry.java b/src/main/java/net/minecraft/server/EntityTrackerEntry.java -index 1f7c8f7da..1589b46b7 100644 +index 8d4bcd34c..ec0abe429 100644 --- a/src/main/java/net/minecraft/server/EntityTrackerEntry.java +++ b/src/main/java/net/minecraft/server/EntityTrackerEntry.java -@@ -126,6 +126,12 @@ public class EntityTrackerEntry { +@@ -127,6 +127,12 @@ public class EntityTrackerEntry { j = MathHelper.d(this.tracker.pitch * 256.0F / 360.0F); Vec3D vec3d = this.tracker.getPositionVector().d(PacketPlayOutEntity.a(this.xLoc, this.yLoc, this.zLoc)); boolean flag1 = vec3d.g() >= 7.62939453125E-6D; diff --git a/patches/server/0122-Tuinity-Delay-chunk-unloads.patch b/patches/server/0122-Tuinity-Delay-chunk-unloads.patch index 8f50e8de8..91329684b 100644 --- a/patches/server/0122-Tuinity-Delay-chunk-unloads.patch +++ b/patches/server/0122-Tuinity-Delay-chunk-unloads.patch @@ -1,4 +1,4 @@ -From 768d10e0f31cc40dc3803b8631f953f4de958653 Mon Sep 17 00:00:00 2001 +From 3755fa9ef7cb0798f63098b7cc08db5a4bac6b73 Mon Sep 17 00:00:00 2001 From: Spottedleaf Date: Fri, 25 Oct 2019 02:11:30 -0700 Subject: [PATCH] Tuinity - Delay chunk unloads @@ -15,12 +15,12 @@ without tickets get unloaded immediately. Configurable under `delay-chunkunloads-by` in config. --- .../java/net/minecraft/server/ChunkMap.java | 1 + - .../minecraft/server/ChunkMapDistance.java | 69 ++++++++++++++++++- + .../minecraft/server/ChunkMapDistance.java | 68 ++++++++++++++++++- .../java/net/minecraft/server/Ticket.java | 6 +- .../java/net/minecraft/server/TicketType.java | 1 + .../java/net/pl3x/purpur/PurpurConfig.java | 9 +++ .../org/bukkit/craftbukkit/CraftWorld.java | 1 + - 6 files changed, 83 insertions(+), 4 deletions(-) + 6 files changed, 82 insertions(+), 4 deletions(-) diff --git a/src/main/java/net/minecraft/server/ChunkMap.java b/src/main/java/net/minecraft/server/ChunkMap.java index 55f9f4e6e..ac21fdb4c 100644 @@ -35,7 +35,7 @@ index 55f9f4e6e..ac21fdb4c 100644 this.a(ChunkCoordIntPair.a, i, j, flag); } diff --git a/src/main/java/net/minecraft/server/ChunkMapDistance.java b/src/main/java/net/minecraft/server/ChunkMapDistance.java -index 279c7a85f..f26bc3417 100644 +index 942efe62f..6f710ffa2 100644 --- a/src/main/java/net/minecraft/server/ChunkMapDistance.java +++ b/src/main/java/net/minecraft/server/ChunkMapDistance.java @@ -30,7 +30,7 @@ public abstract class ChunkMapDistance { @@ -44,13 +44,13 @@ index 279c7a85f..f26bc3417 100644 public final Long2ObjectOpenHashMap>> tickets = new Long2ObjectOpenHashMap(); - private final ChunkMapDistance.a e = new ChunkMapDistance.a(); + private final ChunkMapDistance.a e = new ChunkMapDistance.a(); final ChunkMapDistance.a getTicketTracker() { return this.e; } // Purpur - OBFHELPER - private final ChunkMapDistance.b f = new ChunkMapDistance.b(8); + public static final int MOB_SPAWN_RANGE = 8; //private final ChunkMapDistance.b f = new ChunkMapDistance.b(8); // Paper - no longer used private final ChunkMapDistance.c g = new ChunkMapDistance.c(33); private final java.util.Queue pendingChunkUpdates = new java.util.LinkedList<>(); // PAIL pendingChunkUpdates // Paper - use a queue -@@ -41,6 +41,47 @@ public abstract class ChunkMapDistance { - private final Executor m; +@@ -42,6 +42,46 @@ public abstract class ChunkMapDistance { private long currentTick; + PlayerChunkMap chunkMap; // Paper + // Purpur start + private long nextUnloadId; + private final Long2ObjectOpenHashMap> delayedChunks = new Long2ObjectOpenHashMap<>(); @@ -91,11 +91,10 @@ index 279c7a85f..f26bc3417 100644 + tickets.add(ticket); // re-add with new expire time and ticket level + } + // Purpur end -+ + protected ChunkMapDistance(Executor executor, Executor executor1) { executor1.getClass(); - Mailbox mailbox = Mailbox.a("player ticket throttler", executor1::execute); -@@ -56,12 +97,30 @@ public abstract class ChunkMapDistance { +@@ -58,12 +98,30 @@ public abstract class ChunkMapDistance { ++this.currentTick; ObjectIterator objectiterator = this.tickets.long2ObjectEntrySet().fastIterator(); @@ -127,7 +126,7 @@ index 279c7a85f..f26bc3417 100644 this.e.b(entry.getLongKey(), a((ArraySetSorted) entry.getValue()), false); } -@@ -72,6 +131,7 @@ public abstract class ChunkMapDistance { +@@ -74,6 +132,7 @@ public abstract class ChunkMapDistance { } @@ -135,7 +134,7 @@ index 279c7a85f..f26bc3417 100644 private static int a(ArraySetSorted> arraysetsorted) { return !arraysetsorted.isEmpty() ? ((Ticket) arraysetsorted.b()).b() : PlayerChunkMap.GOLDEN_TICKET + 1; } -@@ -154,6 +214,11 @@ public abstract class ChunkMapDistance { +@@ -156,6 +215,11 @@ public abstract class ChunkMapDistance { boolean removed = false; // CraftBukkit if (arraysetsorted.remove(ticket)) { removed = true; // CraftBukkit @@ -173,12 +172,12 @@ index 7a8397815..8aae0b63e 100644 long j = this.a.b(); diff --git a/src/main/java/net/minecraft/server/TicketType.java b/src/main/java/net/minecraft/server/TicketType.java -index 6e0d0a54a..07f77dbb8 100644 +index 8055f5998..93587068f 100644 --- a/src/main/java/net/minecraft/server/TicketType.java +++ b/src/main/java/net/minecraft/server/TicketType.java -@@ -24,6 +24,7 @@ public class TicketType { +@@ -23,6 +23,7 @@ public class TicketType { + public static final TicketType PLUGIN_TICKET = a("plugin_ticket", (plugin1, plugin2) -> plugin1.getClass().getName().compareTo(plugin2.getClass().getName())); // CraftBukkit public static final TicketType FUTURE_AWAIT = a("future_await", Long::compareTo); // Paper - public static final TicketType ANTIXRAY = a("antixray", Integer::compareTo); // Paper - Anti-Xray public static final TicketType ASYNC_LOAD = a("async_load", Long::compareTo); // Paper + public static final TicketType DELAYED_UNLOAD = a("delayed_unload", Long::compareTo); // Purpur @@ -210,7 +209,7 @@ index ab88636ca..becb13e0e 100644 + } } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 97c2994a9..1f5e1a5a1 100644 +index 6a50d7de3..513e84f76 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -487,6 +487,7 @@ public class CraftWorld implements World { diff --git a/patches/server/0123-Tuinity-Always-able-to-execute-tasks-on-the-main-ser.patch b/patches/server/0123-Tuinity-Always-able-to-execute-tasks-on-the-main-ser.patch index 0940d6ee0..09bc5bc4a 100644 --- a/patches/server/0123-Tuinity-Always-able-to-execute-tasks-on-the-main-ser.patch +++ b/patches/server/0123-Tuinity-Always-able-to-execute-tasks-on-the-main-ser.patch @@ -1,4 +1,4 @@ -From 0ab7bd16c955aa134f4e121b004a1162775fe7e2 Mon Sep 17 00:00:00 2001 +From d7a4327da2fedcd01c616bb9789e4483dd67c3de Mon Sep 17 00:00:00 2001 From: Spottedleaf Date: Fri, 3 Apr 2020 02:21:13 -0700 Subject: [PATCH] Tuinity - Always able to execute tasks on the main server @@ -12,10 +12,10 @@ chunks. 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index e9f1fd78a..1ba86d12f 100644 +index 902a5f98f..23f2da8a8 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1090,7 +1090,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant Date: Thu, 5 Mar 2020 23:08:01 +0100 Subject: [PATCH] YAPFA - Disable mojang profiler @@ -43,7 +43,7 @@ index f0d72ea39..e38a68406 100644 throw CommandDebug.b.create(); } else { diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 1ba86d12f..2f58c3b44 100644 +index 23f2da8a8..a1905366f 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -80,7 +80,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant