From 1d28f62522d0159e4b0909626095fa4ed5a6c39e Mon Sep 17 00:00:00 2001 From: Aikar Date: Sat, 21 Jul 2018 16:43:00 -0400 Subject: [PATCH] Rebuild patches for upstream merge --- ...078-Use-a-Shared-Random-for-Entities.patch | 6 +-- .../0079-Don-t-teleport-dead-entities.patch | 6 +-- ...nilla-per-world-scoreboard-coloring-.patch | 6 +-- ...0-Vehicle-Event-Cancellation-Changes.patch | 10 ++-- .../0115-Entity-Tracking-Improvements.patch | 6 +-- ...2-Optional-TNT-doesn-t-move-in-water.patch | 8 +-- ...6-Don-t-let-fishinghooks-use-portals.patch | 6 +-- ...llow-entities-to-ride-themselves-572.patch | 8 +-- .../0176-Cap-Entity-Collisions.patch | 6 +-- .../0195-Entity-fromMobSpawner.patch | 10 ++-- ...emove-entities-on-dimension-teleport.patch | 8 +-- ...pawn-if-entity-is-in-a-chunk-schedu.patch} | 2 +- ...-if-stack-size-above-max-stack-size.patch} | 4 +- ...97-Use-asynchronous-Log4j-2-loggers.patch} | 6 +-- ...-more-information-to-Entity.toString.patch | 23 +++++++++ ...es-option-to-debug-dupe-uuid-issues.patch} | 49 ++++++++----------- ...300-Additional-Paper-Config-options.patch} | 6 +-- ... 0301-Duplicate-UUID-Resolve-Option.patch} | 42 ++++++++-------- ...-more-information-to-Entity.toString.patch | 23 --------- 19 files changed, 114 insertions(+), 121 deletions(-) rename Spigot-Server-Patches/{0296-Don-t-process-despawn-if-entity-is-in-a-chunk-schedu.patch => 0295-Don-t-process-despawn-if-entity-is-in-a-chunk-schedu.patch} (95%) rename Spigot-Server-Patches/{0297-Avoid-item-merge-if-stack-size-above-max-stack-size.patch => 0296-Avoid-item-merge-if-stack-size-above-max-stack-size.patch} (90%) rename Spigot-Server-Patches/{0298-Use-asynchronous-Log4j-2-loggers.patch => 0297-Use-asynchronous-Log4j-2-loggers.patch} (87%) create mode 100644 Spigot-Server-Patches/0298-add-more-information-to-Entity.toString.patch rename Spigot-Server-Patches/{0336-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch => 0299-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch} (71%) rename Spigot-Server-Patches/{0337-Additional-Paper-Config-options.patch => 0300-Additional-Paper-Config-options.patch} (87%) rename Spigot-Server-Patches/{0338-Duplicate-UUID-Resolve-Option.patch => 0301-Duplicate-UUID-Resolve-Option.patch} (89%) delete mode 100644 Spigot-Server-Patches/0332-add-more-information-to-Entity.toString.patch diff --git a/Spigot-Server-Patches/0078-Use-a-Shared-Random-for-Entities.patch b/Spigot-Server-Patches/0078-Use-a-Shared-Random-for-Entities.patch index cad02b15a7..3a401143c6 100644 --- a/Spigot-Server-Patches/0078-Use-a-Shared-Random-for-Entities.patch +++ b/Spigot-Server-Patches/0078-Use-a-Shared-Random-for-Entities.patch @@ -1,4 +1,4 @@ -From 39039bfaab07bf1d1c0eec274aac6a6187a8781b Mon Sep 17 00:00:00 2001 +From ce7ffaa9f437f871b1c1b87d5f22b482e25e9edc Mon Sep 17 00:00:00 2001 From: Aikar Date: Tue, 22 Mar 2016 00:33:47 -0400 Subject: [PATCH] Use a Shared Random for Entities @@ -6,7 +6,7 @@ Subject: [PATCH] Use a Shared Random for Entities Reduces memory usage and provides ensures more randomness, Especially since a lot of garbage entity objects get created. diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index e16579116..c0367df20 100644 +index e16579116..56aa89b45 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -50,6 +50,20 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke @@ -30,7 +30,7 @@ index e16579116..c0367df20 100644 static boolean isLevelAtLeast(NBTTagCompound tag, int level) { return tag.hasKey("Bukkit.updateLevel") && tag.getInt("Bukkit.updateLevel") >= level; } -@@ -182,7 +183,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -182,7 +196,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke this.length = 1.8F; this.aA = 1.0F; this.aB = 1.0F; diff --git a/Spigot-Server-Patches/0079-Don-t-teleport-dead-entities.patch b/Spigot-Server-Patches/0079-Don-t-teleport-dead-entities.patch index 42f0912b06..9af0f571ad 100644 --- a/Spigot-Server-Patches/0079-Don-t-teleport-dead-entities.patch +++ b/Spigot-Server-Patches/0079-Don-t-teleport-dead-entities.patch @@ -1,4 +1,4 @@ -From 22bc88a7734d7cd8f0e59448076b9f781b60cc59 Mon Sep 17 00:00:00 2001 +From 66f0b458722d01614e1ecb8a82d09a92e4f5864a Mon Sep 17 00:00:00 2001 From: Aikar Date: Tue, 22 Mar 2016 00:55:23 -0400 Subject: [PATCH] Don't teleport dead entities @@ -7,10 +7,10 @@ Had some issue with this in past, and this is the vanilla logic. Potentially an old CB change that's no longer needed. diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index c0367df20..c37c46e71 100644 +index 56aa89b45..f98f93c5c 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -2556,7 +2556,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -2569,7 +2569,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke } public Entity teleportTo(Location exit, boolean portal) { diff --git a/Spigot-Server-Patches/0099-Option-to-use-vanilla-per-world-scoreboard-coloring-.patch b/Spigot-Server-Patches/0099-Option-to-use-vanilla-per-world-scoreboard-coloring-.patch index 39e315ae22..31814ff952 100644 --- a/Spigot-Server-Patches/0099-Option-to-use-vanilla-per-world-scoreboard-coloring-.patch +++ b/Spigot-Server-Patches/0099-Option-to-use-vanilla-per-world-scoreboard-coloring-.patch @@ -1,4 +1,4 @@ -From 9cfa1f4bdd459c8f829f60b971a5af65fb5ecb0c Mon Sep 17 00:00:00 2001 +From 95364b7e710394eda68ea6d81a7691c02b21907f Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Wed, 6 Apr 2016 01:04:23 -0500 Subject: [PATCH] Option to use vanilla per-world scoreboard coloring on names @@ -19,10 +19,10 @@ index 6ac58e5ec..ff9929a05 100644 + } } diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index c37c46e71..88092d823 100644 +index f98f93c5c..31c580de1 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -2251,6 +2251,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -2264,6 +2264,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke return this.getFlag(5); } diff --git a/Spigot-Server-Patches/0110-Vehicle-Event-Cancellation-Changes.patch b/Spigot-Server-Patches/0110-Vehicle-Event-Cancellation-Changes.patch index 8619f48037..20ace0aafe 100644 --- a/Spigot-Server-Patches/0110-Vehicle-Event-Cancellation-Changes.patch +++ b/Spigot-Server-Patches/0110-Vehicle-Event-Cancellation-Changes.patch @@ -1,14 +1,14 @@ -From 3813dcf8105186f2ad6b22b3e3c8e129656c6dbb Mon Sep 17 00:00:00 2001 +From 173ce5b19ace1cc6316fe318b79cc36ee2c207d5 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Fri, 22 Apr 2016 18:20:05 -0500 Subject: [PATCH] Vehicle Event Cancellation Changes diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 88092d823..9af242380 100644 +index 31c580de1..16d521dfd 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -80,7 +80,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -93,7 +93,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke public boolean j; public final List passengers; protected int k; @@ -17,7 +17,7 @@ index 88092d823..9af242380 100644 public boolean attachedToPlayer; public World world; public double lastX; -@@ -2110,6 +2110,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -2123,6 +2123,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke throw new IllegalStateException("Use x.stopRiding(y), not y.removePassenger(x)"); } else { // CraftBukkit start @@ -25,7 +25,7 @@ index 88092d823..9af242380 100644 CraftEntity craft = (CraftEntity) entity.getBukkitEntity().getVehicle(); Entity orig = craft == null ? null : craft.getHandle(); if (getBukkitEntity() instanceof Vehicle && entity.getBukkitEntity() instanceof LivingEntity) { -@@ -2125,7 +2126,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -2138,7 +2139,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke } } // CraftBukkit end diff --git a/Spigot-Server-Patches/0115-Entity-Tracking-Improvements.patch b/Spigot-Server-Patches/0115-Entity-Tracking-Improvements.patch index dd8c333b09..dfa8f65f8a 100644 --- a/Spigot-Server-Patches/0115-Entity-Tracking-Improvements.patch +++ b/Spigot-Server-Patches/0115-Entity-Tracking-Improvements.patch @@ -1,4 +1,4 @@ -From be50c643cdcb8dc000e4a1bc88c37232418fbd0d Mon Sep 17 00:00:00 2001 +From dde88036ee16b61e39407d75420102c714842eef Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 17 Jun 2013 01:24:00 -0400 Subject: [PATCH] Entity Tracking Improvements @@ -7,10 +7,10 @@ If any part of a Vehicle/Passenger relationship is visible to a player, send all passenger/vehicles to the player in the chain. diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 9af242380..70694c8e5 100644 +index 16d521dfd..dd4ac4bfe 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -57,6 +57,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -70,6 +70,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke protected CraftEntity bukkitEntity; diff --git a/Spigot-Server-Patches/0122-Optional-TNT-doesn-t-move-in-water.patch b/Spigot-Server-Patches/0122-Optional-TNT-doesn-t-move-in-water.patch index f9f4198b54..b35726fb29 100644 --- a/Spigot-Server-Patches/0122-Optional-TNT-doesn-t-move-in-water.patch +++ b/Spigot-Server-Patches/0122-Optional-TNT-doesn-t-move-in-water.patch @@ -1,4 +1,4 @@ -From 4a54757b19677e73932cc2db44dd47a907d8f82b Mon Sep 17 00:00:00 2001 +From 66110221d713089a4bd59d79a17a4b8f6100f015 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Sun, 22 May 2016 20:20:55 -0500 Subject: [PATCH] Optional TNT doesn't move in water @@ -32,10 +32,10 @@ index 38de48ebc..321da3be3 100644 + } } diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 70694c8e5..51b42933d 100644 +index dd4ac4bfe..34c617958 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -1182,6 +1182,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1195,6 +1195,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke } public boolean aq() { @@ -48,7 +48,7 @@ index 70694c8e5..51b42933d 100644 return this.isInWater() || this.q(); } -@@ -2724,6 +2730,11 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -2737,6 +2743,11 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke } public boolean bw() { diff --git a/Spigot-Server-Patches/0156-Don-t-let-fishinghooks-use-portals.patch b/Spigot-Server-Patches/0156-Don-t-let-fishinghooks-use-portals.patch index f1720f02d1..be6e24e4c3 100644 --- a/Spigot-Server-Patches/0156-Don-t-let-fishinghooks-use-portals.patch +++ b/Spigot-Server-Patches/0156-Don-t-let-fishinghooks-use-portals.patch @@ -1,14 +1,14 @@ -From cfd9c680af983aa5d1f25a5dc51d505beaa229be Mon Sep 17 00:00:00 2001 +From 3b917e4772c474dd49cf79fb2fcc46cbddf928bf Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Fri, 16 Dec 2016 16:03:19 -0600 Subject: [PATCH] Don't let fishinghooks use portals diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 51b42933d..eb2a693af 100644 +index 34c617958..c7ef67a52 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -143,7 +143,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -156,7 +156,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke public boolean ak; public boolean impulse; public int portalCooldown; diff --git a/Spigot-Server-Patches/0173-Don-t-allow-entities-to-ride-themselves-572.patch b/Spigot-Server-Patches/0173-Don-t-allow-entities-to-ride-themselves-572.patch index 5a8283ed3b..17ea7f498f 100644 --- a/Spigot-Server-Patches/0173-Don-t-allow-entities-to-ride-themselves-572.patch +++ b/Spigot-Server-Patches/0173-Don-t-allow-entities-to-ride-themselves-572.patch @@ -1,14 +1,14 @@ -From 9998cb5e703231aa7a957c741909a28c120e59dd Mon Sep 17 00:00:00 2001 +From ed67deba02ff56017e9557fc956c66b39cf8c645 Mon Sep 17 00:00:00 2001 From: Alfie Cleveland Date: Sun, 8 Jan 2017 04:31:36 +0000 Subject: [PATCH] Don't allow entities to ride themselves - #572 diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index eb2a693af..b47bf9738 100644 +index c7ef67a52..4bfc49076 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -2075,6 +2075,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -2088,6 +2088,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke } protected void o(Entity entity) { @@ -17,5 +17,5 @@ index eb2a693af..b47bf9738 100644 throw new IllegalStateException("Use x.startRiding(y), not y.addPassenger(x)"); } else { -- -2.17.1 +2.18.0 diff --git a/Spigot-Server-Patches/0176-Cap-Entity-Collisions.patch b/Spigot-Server-Patches/0176-Cap-Entity-Collisions.patch index 54dc4fad6e..40512af49f 100644 --- a/Spigot-Server-Patches/0176-Cap-Entity-Collisions.patch +++ b/Spigot-Server-Patches/0176-Cap-Entity-Collisions.patch @@ -1,4 +1,4 @@ -From 6dcddbc648362d5b4fa1548043beacd6596d15d7 Mon Sep 17 00:00:00 2001 +From a831d40bdd5ca262053ca1c02870cc533a90a306 Mon Sep 17 00:00:00 2001 From: Aikar Date: Sun, 22 Jan 2017 18:07:56 -0500 Subject: [PATCH] Cap Entity Collisions @@ -27,10 +27,10 @@ index 5df8b1143..0b748d402 100644 + } } diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index b47bf9738..db7e37aee 100644 +index 4bfc49076..8a04a801b 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -168,6 +168,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -181,6 +181,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke public final boolean defaultActivationState; public long activatedTick = Integer.MIN_VALUE; public boolean fromMobSpawner; diff --git a/Spigot-Server-Patches/0195-Entity-fromMobSpawner.patch b/Spigot-Server-Patches/0195-Entity-fromMobSpawner.patch index 8cd57f47d3..a4065b75f1 100644 --- a/Spigot-Server-Patches/0195-Entity-fromMobSpawner.patch +++ b/Spigot-Server-Patches/0195-Entity-fromMobSpawner.patch @@ -1,14 +1,14 @@ -From e199a3a50ef50a8cb6818a7b18871b3dfdac874c Mon Sep 17 00:00:00 2001 +From fc4ab62ab798d05629a58a87394aedefd66ed528 Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Sun, 18 Jun 2017 18:17:05 -0500 Subject: [PATCH] Entity#fromMobSpawner() diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index db7e37aee..cd1639e26 100644 +index 8a04a801b..0d69e6187 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -168,6 +168,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -181,6 +181,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke public final boolean defaultActivationState; public long activatedTick = Integer.MIN_VALUE; public boolean fromMobSpawner; @@ -16,7 +16,7 @@ index db7e37aee..cd1639e26 100644 protected int numCollisions = 0; // Paper public void inactiveTick() { } // Spigot end -@@ -1658,6 +1659,10 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1671,6 +1672,10 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke if (origin != null) { nbttagcompound.set("Paper.Origin", this.createList(origin.getX(), origin.getY(), origin.getZ())); } @@ -27,7 +27,7 @@ index db7e37aee..cd1639e26 100644 // Paper end return nbttagcompound; } catch (Throwable throwable) { -@@ -1806,6 +1811,8 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1819,6 +1824,8 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke if (!originTag.isEmpty()) { origin = new Location(world.getWorld(), originTag.getDoubleAt(0), originTag.getDoubleAt(1), originTag.getDoubleAt(2)); } diff --git a/Spigot-Server-Patches/0271-Properly-remove-entities-on-dimension-teleport.patch b/Spigot-Server-Patches/0271-Properly-remove-entities-on-dimension-teleport.patch index f8b8f01169..b21fe4402e 100644 --- a/Spigot-Server-Patches/0271-Properly-remove-entities-on-dimension-teleport.patch +++ b/Spigot-Server-Patches/0271-Properly-remove-entities-on-dimension-teleport.patch @@ -1,4 +1,4 @@ -From 014b84371464966ee131a8b52ddf87154e02343e Mon Sep 17 00:00:00 2001 +From e8322305c667ce125bb50e00bd4e90c377f5348b Mon Sep 17 00:00:00 2001 From: Aikar Date: Sun, 10 Jun 2018 20:04:42 -0400 Subject: [PATCH] Properly remove entities on dimension teleport @@ -22,10 +22,10 @@ requirement, but plugins (such as my own) use this method to trigger a "reload" of the entity on the client. diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index cd1639e26..ea42800ae 100644 +index 0d69e6187..67af3e25c 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -2594,7 +2594,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -2607,7 +2607,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke } // CraftBukkit end */ @@ -35,7 +35,7 @@ index cd1639e26..ea42800ae 100644 this.world.methodProfiler.a("reposition"); /* CraftBukkit start - Handled in calculateTarget diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index 4ac2d39c5..d6d3ffa6f 100644 +index 9e3804579..44d867663 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java @@ -1025,6 +1025,7 @@ public class WorldServer extends World implements IAsyncTaskHandler { diff --git a/Spigot-Server-Patches/0296-Don-t-process-despawn-if-entity-is-in-a-chunk-schedu.patch b/Spigot-Server-Patches/0295-Don-t-process-despawn-if-entity-is-in-a-chunk-schedu.patch similarity index 95% rename from Spigot-Server-Patches/0296-Don-t-process-despawn-if-entity-is-in-a-chunk-schedu.patch rename to Spigot-Server-Patches/0295-Don-t-process-despawn-if-entity-is-in-a-chunk-schedu.patch index 16803aeb02..cf4b522838 100644 --- a/Spigot-Server-Patches/0296-Don-t-process-despawn-if-entity-is-in-a-chunk-schedu.patch +++ b/Spigot-Server-Patches/0295-Don-t-process-despawn-if-entity-is-in-a-chunk-schedu.patch @@ -1,4 +1,4 @@ -From d826de1e7aa6bc2cd8e10f847e3617cbc895084e Mon Sep 17 00:00:00 2001 +From 0c344c05aeeb72e97f326c21aed89d3fa3ce316d Mon Sep 17 00:00:00 2001 From: Aikar Date: Thu, 19 Jul 2018 01:23:00 -0400 Subject: [PATCH] Don't process despawn if entity is in a chunk scheduled for diff --git a/Spigot-Server-Patches/0297-Avoid-item-merge-if-stack-size-above-max-stack-size.patch b/Spigot-Server-Patches/0296-Avoid-item-merge-if-stack-size-above-max-stack-size.patch similarity index 90% rename from Spigot-Server-Patches/0297-Avoid-item-merge-if-stack-size-above-max-stack-size.patch rename to Spigot-Server-Patches/0296-Avoid-item-merge-if-stack-size-above-max-stack-size.patch index f7e05ca483..df781f6b12 100644 --- a/Spigot-Server-Patches/0297-Avoid-item-merge-if-stack-size-above-max-stack-size.patch +++ b/Spigot-Server-Patches/0296-Avoid-item-merge-if-stack-size-above-max-stack-size.patch @@ -1,11 +1,11 @@ -From 6e4c3841196ccf68344d2220c4e48186d0028e6f Mon Sep 17 00:00:00 2001 +From b2e003731c21eab3980ab9b81ff1cf52b6411e81 Mon Sep 17 00:00:00 2001 From: Hugo Manrique Date: Mon, 16 Jul 2018 12:42:20 +0200 Subject: [PATCH] Avoid item merge if stack size above max stack size diff --git a/src/main/java/net/minecraft/server/EntityItem.java b/src/main/java/net/minecraft/server/EntityItem.java -index d232bab745..b0f22f8f09 100644 +index d232bab74..b0f22f8f0 100644 --- a/src/main/java/net/minecraft/server/EntityItem.java +++ b/src/main/java/net/minecraft/server/EntityItem.java @@ -173,6 +173,10 @@ public class EntityItem extends Entity { diff --git a/Spigot-Server-Patches/0298-Use-asynchronous-Log4j-2-loggers.patch b/Spigot-Server-Patches/0297-Use-asynchronous-Log4j-2-loggers.patch similarity index 87% rename from Spigot-Server-Patches/0298-Use-asynchronous-Log4j-2-loggers.patch rename to Spigot-Server-Patches/0297-Use-asynchronous-Log4j-2-loggers.patch index 5d7823b370..0031bf96ff 100644 --- a/Spigot-Server-Patches/0298-Use-asynchronous-Log4j-2-loggers.patch +++ b/Spigot-Server-Patches/0297-Use-asynchronous-Log4j-2-loggers.patch @@ -1,11 +1,11 @@ -From 033fcb77bd332732f270f7a66f42cf2dfb3bc51e Mon Sep 17 00:00:00 2001 +From 3136e6f07a5a0626b4855b8be5470e0df089e9c5 Mon Sep 17 00:00:00 2001 From: Minecrell Date: Tue, 17 Jul 2018 16:42:17 +0200 Subject: [PATCH] Use asynchronous Log4j 2 loggers diff --git a/pom.xml b/pom.xml -index 8fd1e36283..0c4b0daf56 100644 +index a034c87d6..efa52f356 100644 --- a/pom.xml +++ b/pom.xml @@ -103,6 +103,14 @@ @@ -25,7 +25,7 @@ index 8fd1e36283..0c4b0daf56 100644 junit diff --git a/src/main/resources/log4j2.component.properties b/src/main/resources/log4j2.component.properties new file mode 100644 -index 0000000000..ee7c90784c +index 000000000..ee7c90784 --- /dev/null +++ b/src/main/resources/log4j2.component.properties @@ -0,0 +1 @@ diff --git a/Spigot-Server-Patches/0298-add-more-information-to-Entity.toString.patch b/Spigot-Server-Patches/0298-add-more-information-to-Entity.toString.patch new file mode 100644 index 0000000000..64b850e4f3 --- /dev/null +++ b/Spigot-Server-Patches/0298-add-more-information-to-Entity.toString.patch @@ -0,0 +1,23 @@ +From 978703a87b11832ffaecca876f32c3610f67fd56 Mon Sep 17 00:00:00 2001 +From: Aikar +Date: Thu, 19 Jul 2018 01:13:28 -0400 +Subject: [PATCH] add more information to Entity.toString() + +UUID, ticks lived, valid, dead + +diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java +index 67af3e25c..0e0dc72f0 100644 +--- a/src/main/java/net/minecraft/server/Entity.java ++++ b/src/main/java/net/minecraft/server/Entity.java +@@ -2506,7 +2506,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke + } + + public String toString() { +- return String.format(Locale.ROOT, "%s[\'%s\'/%d, l=\'%s\', x=%.2f, y=%.2f, z=%.2f]", new Object[] { this.getClass().getSimpleName(), this.getDisplayName().getText(), Integer.valueOf(this.id), this.world == null ? "~NULL~" : this.world.getWorldData().getName(), Double.valueOf(this.locX), Double.valueOf(this.locY), Double.valueOf(this.locZ)}); ++ return String.format(Locale.ROOT, "%s[\'%s\'/%d, l=\'%s\', x=%.2f, y=%.2f, z=%.2f, cx=%d, cz=%d, tl=%d, v=%b, d=%b]", new Object[] { this.getClass().getSimpleName(), this.getDisplayName().getText(), Integer.valueOf(this.id), this.world == null ? "~NULL~" : this.world.getWorldData().getName(), Double.valueOf(this.locX), Double.valueOf(this.locY), Double.valueOf(this.locZ), getChunkX(), getChunkZ(), this.ticksLived, this.valid, this.dead}); // Paper - add more information + } + + public boolean isInvulnerable(DamageSource damagesource) { +-- +2.18.0 + diff --git a/Spigot-Server-Patches/0336-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch b/Spigot-Server-Patches/0299-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch similarity index 71% rename from Spigot-Server-Patches/0336-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch rename to Spigot-Server-Patches/0299-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch index c5f5055e2a..68788ffc93 100644 --- a/Spigot-Server-Patches/0336-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch +++ b/Spigot-Server-Patches/0299-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch @@ -1,4 +1,4 @@ -From b061a231214e88cde43e0c3880f779723828b2b4 Mon Sep 17 00:00:00 2001 +From 0318662b299542a2245da28c82d08f5a3455fa69 Mon Sep 17 00:00:00 2001 From: Aikar Date: Sat, 21 Jul 2018 08:25:40 -0400 Subject: [PATCH] Add Debug Entities option to debug dupe uuid issues @@ -6,53 +6,45 @@ Subject: [PATCH] Add Debug Entities option to debug dupe uuid issues Add -Ddebug.entities=true to your JVM flags to gain more information diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index f6b755863..108654d63 100644 +index 0e0dc72f0..d725bf13e 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -73,6 +73,7 @@ public abstract class Entity implements ICommandListener, KeyedObject { // Paper - } - return bukkitEntity; - } -+ Throwable addedToWorldStack; // Paper - entity debug - // CraftBukikt end +@@ -71,6 +71,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke + protected CraftEntity bukkitEntity; - private static final Logger a = LogManager.getLogger(); + EntityTrackerEntry tracker; // Paper ++ Throwable addedToWorldStack; // Paper - entity debug + public CraftEntity getBukkitEntity() { + if (bukkitEntity == null) { + bukkitEntity = CraftEntity.getEntity(world.getServer(), this); diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index b16324e1a..994d4bbb8 100644 +index fcb5f68f8..013f4eef5 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java -@@ -7,6 +7,7 @@ import com.google.common.util.concurrent.ListenableFuture; - import java.io.File; - import java.util.ArrayList; - import java.util.Collection; -+import java.util.Date; - import java.util.Iterator; - import java.util.List; - import java.util.Map; -@@ -53,6 +54,10 @@ public class WorldServer extends World implements IAsyncTaskHandler { - private final List W = Lists.newArrayList(); +@@ -53,6 +53,10 @@ public class WorldServer extends World implements IAsyncTaskHandler { + private boolean Q; // CraftBukkit start + private static final boolean DEBUG_ENTITIES = Boolean.getBoolean("debug.entities"); // Paper + private static Throwable getAddToWorldStackTrace(Entity entity) { -+ return new Throwable(entity + " Added to world at " + new Date()); ++ return new Throwable(entity + " Added to world at " + new java.util.Date()); + } public final int dimension; // Add env and gen to constructor -@@ -1160,6 +1165,7 @@ public class WorldServer extends World implements IAsyncTaskHandler { +@@ -980,6 +984,7 @@ public class WorldServer extends World implements IAsyncTaskHandler { private boolean j(Entity entity) { if (entity.dead) { - WorldServer.a.warn("Tried to add entity {} but it was marked as removed already", EntityTypes.a(entity)); // CraftBukkit // Paper + WorldServer.a.warn("Tried to add entity {} but it was marked as removed already: " + entity); // CraftBukkit // Paper + if (DEBUG_ENTITIES) getAddToWorldStackTrace(entity).printStackTrace(); return false; } else { UUID uuid = entity.getUniqueID(); -@@ -1171,8 +1177,14 @@ public class WorldServer extends World implements IAsyncTaskHandler { - this.f.remove(entity1); +@@ -991,8 +996,14 @@ public class WorldServer extends World implements IAsyncTaskHandler { + this.g.remove(entity1); } else { if (!(entity instanceof EntityHuman)) { -- WorldServer.a.error("Keeping entity {} that already exists with UUID {} - " + entity1, EntityTypes.a(entity1), uuid.toString()); // CraftBukkit // Paper +- WorldServer.a.error("Keeping entity {} that already exists with UUID {} - " + entity1, EntityTypes.getName(entity1.P()), uuid.toString()); // CraftBukkit // Paper + WorldServer.a.error("Keeping entity {} that already exists with UUID {}", entity1, uuid.toString()); // CraftBukkit // Paper WorldServer.a.error("Deleting duplicate entity {}", entity); // Paper + if (DEBUG_ENTITIES) { @@ -64,7 +56,7 @@ index b16324e1a..994d4bbb8 100644 return false; } -@@ -1189,7 +1201,24 @@ public class WorldServer extends World implements IAsyncTaskHandler { +@@ -1009,7 +1020,25 @@ public class WorldServer extends World implements IAsyncTaskHandler { protected void b(Entity entity) { super.b(entity); this.entitiesById.a(entity.getId(), entity); @@ -73,6 +65,7 @@ index b16324e1a..994d4bbb8 100644 + if (DEBUG_ENTITIES) { + entity.addedToWorldStack = getAddToWorldStackTrace(entity); + } ++ + Entity old = this.entitiesByUUID.put(entity.getUniqueID(), entity); + if (old != null && old.getId() != entity.getId() && old.valid) { + Logger logger = LogManager.getLogger(); @@ -87,7 +80,7 @@ index b16324e1a..994d4bbb8 100644 + } + } + // Paper end - Entity[] aentity = entity.bb(); + Entity[] aentity = entity.bi(); if (aentity != null) { -- diff --git a/Spigot-Server-Patches/0337-Additional-Paper-Config-options.patch b/Spigot-Server-Patches/0300-Additional-Paper-Config-options.patch similarity index 87% rename from Spigot-Server-Patches/0337-Additional-Paper-Config-options.patch rename to Spigot-Server-Patches/0300-Additional-Paper-Config-options.patch index dfb9b18afc..9f3e05e555 100644 --- a/Spigot-Server-Patches/0337-Additional-Paper-Config-options.patch +++ b/Spigot-Server-Patches/0300-Additional-Paper-Config-options.patch @@ -1,4 +1,4 @@ -From 9ac674cfb6f5f71dd61a4952c4bc7d88e3cfa3e5 Mon Sep 17 00:00:00 2001 +From fec119593dd482c5e813c4b3e343f17cfa6185d9 Mon Sep 17 00:00:00 2001 From: Aikar Date: Sat, 21 Jul 2018 14:23:31 -0400 Subject: [PATCH] Additional Paper Config options @@ -21,10 +21,10 @@ index 62bce1806..5a17ce3d2 100644 if (verbose) { Bukkit.getLogger().info(s); diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 50416f40a..14c8edeff 100644 +index 692206127..7bd7aa0d9 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -11,6 +11,7 @@ import org.bukkit.configuration.file.YamlConfiguration; +@@ -8,6 +8,7 @@ import org.bukkit.configuration.file.YamlConfiguration; import org.spigotmc.SpigotWorldConfig; import static com.destroystokyo.paper.PaperConfig.log; diff --git a/Spigot-Server-Patches/0338-Duplicate-UUID-Resolve-Option.patch b/Spigot-Server-Patches/0301-Duplicate-UUID-Resolve-Option.patch similarity index 89% rename from Spigot-Server-Patches/0338-Duplicate-UUID-Resolve-Option.patch rename to Spigot-Server-Patches/0301-Duplicate-UUID-Resolve-Option.patch index 5e9ec904e8..b3077d9f72 100644 --- a/Spigot-Server-Patches/0338-Duplicate-UUID-Resolve-Option.patch +++ b/Spigot-Server-Patches/0301-Duplicate-UUID-Resolve-Option.patch @@ -1,4 +1,4 @@ -From 2a6d7b5cf9db036928914e854416039d7c8a14af Mon Sep 17 00:00:00 2001 +From 728fd7183c4e5a63f03aec4b53bfabb64d62f533 Mon Sep 17 00:00:00 2001 From: Aikar Date: Sat, 21 Jul 2018 14:27:34 -0400 Subject: [PATCH] Duplicate UUID Resolve Option @@ -33,10 +33,10 @@ But for those who are ok with leaving this inconsistent behavior, you may use WA It is recommended you regenerate the entities, as these were legit entities, and deserve your love. diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 14c8edeff..e3f6557e1 100644 +index 7bd7aa0d9..ba6d5b7ff 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -541,4 +541,40 @@ public class PaperWorldConfig { +@@ -430,4 +430,40 @@ public class PaperWorldConfig { log("Bed Search Radius: " + bedSearchRadius); } } @@ -78,7 +78,7 @@ index 14c8edeff..e3f6557e1 100644 + } } diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 04adf4e3c..ea9559583 100644 +index 03afa1236..1f50004cb 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java @@ -1,5 +1,10 @@ @@ -90,17 +90,17 @@ index 04adf4e3c..ea9559583 100644 +import java.util.UUID; +// Paper end import com.destroystokyo.paper.exception.ServerInternalException; - import com.google.common.base.Predicate; import com.google.common.collect.Maps; -@@ -31,6 +36,7 @@ public class Chunk { + import com.google.common.collect.Queues; +@@ -40,6 +45,7 @@ public class Chunk implements IChunkAccess { public final World world; - public final int[] heightMap; + public final Map heightMap; public Long scheduledForUnload; // Paper - delay chunk unloads + private static final Logger logger = LogManager.getLogger(); // Paper public final int locX; public final int locZ; private boolean m; -@@ -658,6 +664,7 @@ public class Chunk { +@@ -689,6 +695,7 @@ public class Chunk implements IChunkAccess { if (i != this.locX || j != this.locZ) { Chunk.e.warn("Wrong location! ({}, {}) should be ({}, {}), {}", Integer.valueOf(i), Integer.valueOf(j), Integer.valueOf(this.locX), Integer.valueOf(this.locZ), entity); entity.die(); @@ -108,7 +108,7 @@ index 04adf4e3c..ea9559583 100644 } int k = MathHelper.floor(entity.locY / 16.0D); -@@ -851,6 +858,37 @@ public class Chunk { +@@ -868,6 +875,37 @@ public class Chunk implements IChunkAccess { for (int j = 0; j < i; ++j) { List entityslice = aentityslice[j]; // Spigot @@ -147,32 +147,32 @@ index 04adf4e3c..ea9559583 100644 this.world.a((Collection) entityslice); } diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 0d3af8cb7..7188d0c99 100644 +index d725bf13e..7154692ee 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -2614,6 +2614,7 @@ public abstract class Entity implements ICommandListener, KeyedObject { // Paper +@@ -2735,6 +2735,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke }); } + public void setUUID(UUID uuid) { a(uuid); } // Paper - OBFHELPER public void a(UUID uuid) { this.uniqueID = uuid; - this.ar = this.uniqueID.toString(); + this.au = this.uniqueID.toString(); diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index 994d4bbb8..1244baf45 100644 +index 013f4eef5..b9d03d801 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java -@@ -42,7 +42,7 @@ public class WorldServer extends World implements IAsyncTaskHandler { +@@ -40,7 +40,7 @@ public class WorldServer extends World implements IAsyncTaskHandler { + private final MinecraftServer server; + public EntityTracker tracker; private final PlayerChunkMap manager; - // private final Set nextTickListHash = Sets.newHashSet(); - private final HashTreeSet nextTickList = new HashTreeSet(); // CraftBukkit - HashTreeSet - private final Map entitiesByUUID = Maps.newHashMap(); + public final Map entitiesByUUID = Maps.newHashMap(); // Paper public boolean savingDisabled; - private boolean Q; + private boolean K; private int emptyTime; -@@ -1177,14 +1177,17 @@ public class WorldServer extends World implements IAsyncTaskHandler { - this.f.remove(entity1); +@@ -996,14 +996,17 @@ public class WorldServer extends World implements IAsyncTaskHandler { + this.g.remove(entity1); } else { if (!(entity instanceof EntityHuman)) { - WorldServer.a.error("Keeping entity {} that already exists with UUID {}", entity1, uuid.toString()); // CraftBukkit // Paper @@ -195,9 +195,9 @@ index 994d4bbb8..1244baf45 100644 return false; } -@@ -1206,7 +1209,7 @@ public class WorldServer extends World implements IAsyncTaskHandler { - entity.addedToWorldStack = getAddToWorldStackTrace(entity); +@@ -1026,7 +1029,7 @@ public class WorldServer extends World implements IAsyncTaskHandler { } + Entity old = this.entitiesByUUID.put(entity.getUniqueID(), entity); - if (old != null && old.getId() != entity.getId() && old.valid) { + if (old != null && old.getId() != entity.getId() && old.valid && entity.world.paperConfig.duplicateUUIDMode != com.destroystokyo.paper.PaperWorldConfig.DuplicateUUIDMode.NOTHING) { diff --git a/Spigot-Server-Patches/0332-add-more-information-to-Entity.toString.patch b/Spigot-Server-Patches/0332-add-more-information-to-Entity.toString.patch deleted file mode 100644 index 770ff6a464..0000000000 --- a/Spigot-Server-Patches/0332-add-more-information-to-Entity.toString.patch +++ /dev/null @@ -1,23 +0,0 @@ -From b0c9be521fc1613e6ab93cbc058b8fbf2de7068a Mon Sep 17 00:00:00 2001 -From: Aikar -Date: Thu, 19 Jul 2018 01:13:28 -0400 -Subject: [PATCH] add more information to Entity.toString() - -UUID, ticks lived, valid, dead - -diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 80ecdb282..99dac412f 100644 ---- a/src/main/java/net/minecraft/server/Entity.java -+++ b/src/main/java/net/minecraft/server/Entity.java -@@ -2361,7 +2361,7 @@ public abstract class Entity implements ICommandListener, KeyedObject { // Paper - } - - public String toString() { -- return String.format("%s[\'%s\'/%d, l=\'%s\', x=%.2f, y=%.2f, z=%.2f]", new Object[] { this.getClass().getSimpleName(), this.getName(), Integer.valueOf(this.id), this.world == null ? "~NULL~" : this.world.getWorldData().getName(), Double.valueOf(this.locX), Double.valueOf(this.locY), Double.valueOf(this.locZ)}); -+ return String.format("%s[\'%s\'/%d, uuid=\'%s\', l=\'%s\', x=%.2f, y=%.2f, z=%.2f, cx=%d, cd=%d, tl=%d, v=%b, d=%b]", new Object[] { this.getClass().getSimpleName(), this.getName(), Integer.valueOf(this.id), this.uniqueID.toString(), this.world == null ? "~NULL~" : this.world.getWorldData().getName(), Double.valueOf(this.locX), Double.valueOf(this.locY), Double.valueOf(this.locZ), getChunkX(), getChunkZ(), this.ticksLived, this.valid, this.dead}); // Paper - add more information - } - - public boolean isInvulnerable(DamageSource damagesource) { --- -2.18.0 -