From efeb4bbba18065e655102f20d9411482e01bb235 Mon Sep 17 00:00:00 2001
From: Zach Brown <1254957+zachbr@users.noreply.github.com>
Date: Tue, 27 Nov 2018 18:14:57 -0500
Subject: [PATCH] Persist ArmorStand canTick API value across restarts

---
 ...Allow-disabling-armour-stand-ticking.patch | 22 ++++++++++++++++++-
 .../Improve-death-events.patch                | 16 +++++++-------
 2 files changed, 29 insertions(+), 9 deletions(-)

diff --git a/Spigot-Server-Patches/Allow-disabling-armour-stand-ticking.patch b/Spigot-Server-Patches/Allow-disabling-armour-stand-ticking.patch
index 09798bdbf6..7084207f5d 100644
--- a/Spigot-Server-Patches/Allow-disabling-armour-stand-ticking.patch
+++ b/Spigot-Server-Patches/Allow-disabling-armour-stand-ticking.patch
@@ -20,7 +20,7 @@ index a2656abaf..95fc2d8ed 100644
 +    }
  }
 diff --git a/src/main/java/net/minecraft/server/EntityArmorStand.java b/src/main/java/net/minecraft/server/EntityArmorStand.java
-index 7647311df..d2b208888 100644
+index 7647311df..8167fe5c9 100644
 --- a/src/main/java/net/minecraft/server/EntityArmorStand.java
 +++ b/src/main/java/net/minecraft/server/EntityArmorStand.java
 @@ -0,0 +0,0 @@ public class EntityArmorStand extends EntityLiving {
@@ -51,6 +51,26 @@ index 7647311df..d2b208888 100644
      }
  
      public boolean c(int i, ItemStack itemstack) {
+@@ -0,0 +0,0 @@ public class EntityArmorStand extends EntityLiving {
+         }
+ 
+         nbttagcompound.set("Pose", this.z());
++        nbttagcompound.setBoolean("Paper.CanTick", this.canTick); // Paper - persist no tick setting
+     }
+ 
+     public void a(NBTTagCompound nbttagcompound) {
+@@ -0,0 +0,0 @@ public class EntityArmorStand extends EntityLiving {
+         this.setMarker(nbttagcompound.getBoolean("Marker"));
+         this.bI = !this.isMarker();
+         this.noclip = this.isNoGravity();
++        // Paper start - persist no tick
++        if (nbttagcompound.hasKey("Paper.CanTick")) {
++            this.canTick = nbttagcompound.getBoolean("Paper.CanTick");
++        }
++        // Paper end
+         NBTTagCompound nbttagcompound1 = nbttagcompound.getCompound("Pose");
+ 
+         this.g(nbttagcompound1);
 @@ -0,0 +0,0 @@ public class EntityArmorStand extends EntityLiving {
      }
  
diff --git a/Spigot-Server-Patches/Improve-death-events.patch b/Spigot-Server-Patches/Improve-death-events.patch
index 0cb71fca0d..468d4d8400 100644
--- a/Spigot-Server-Patches/Improve-death-events.patch
+++ b/Spigot-Server-Patches/Improve-death-events.patch
@@ -15,7 +15,7 @@ items and experience which is otherwise only properly possible by using
 internal code.
 
 diff --git a/src/main/java/net/minecraft/server/CombatTracker.java b/src/main/java/net/minecraft/server/CombatTracker.java
-index 9a74601b..6e60d15c 100644
+index 9a74601b0..6e60d15cc 100644
 --- a/src/main/java/net/minecraft/server/CombatTracker.java
 +++ b/src/main/java/net/minecraft/server/CombatTracker.java
 @@ -0,0 +0,0 @@ public class CombatTracker {
@@ -27,7 +27,7 @@ index 9a74601b..6e60d15c 100644
          int i = this.f ? 300 : 100;
          if (this.g && (!this.b.isAlive() || this.b.ticksLived - this.c > i)) {
 diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
-index 665c85ca..8abd71df 100644
+index 665c85ca4..8abd71dfc 100644
 --- a/src/main/java/net/minecraft/server/Entity.java
 +++ b/src/main/java/net/minecraft/server/Entity.java
 @@ -0,0 +0,0 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -55,7 +55,7 @@ index 665c85ca..8abd71df 100644
          return SoundCategory.NEUTRAL;
      }
 diff --git a/src/main/java/net/minecraft/server/EntityArmorStand.java b/src/main/java/net/minecraft/server/EntityArmorStand.java
-index d2b20888..965ace8d 100644
+index 8167fe5c9..36e2c2e15 100644
 --- a/src/main/java/net/minecraft/server/EntityArmorStand.java
 +++ b/src/main/java/net/minecraft/server/EntityArmorStand.java
 @@ -0,0 +0,0 @@ public class EntityArmorStand extends EntityLiving {
@@ -69,7 +69,7 @@ index d2b20888..965ace8d 100644
      }
  
 diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
-index 2aedfa80..83d648ff 100644
+index 2aedfa808..83d648fff 100644
 --- a/src/main/java/net/minecraft/server/EntityLiving.java
 +++ b/src/main/java/net/minecraft/server/EntityLiving.java
 @@ -0,0 +0,0 @@ public abstract class EntityLiving extends Entity {
@@ -207,7 +207,7 @@ index 2aedfa80..83d648ff 100644
          return this.isBaby() ? (this.random.nextFloat() - this.random.nextFloat()) * 0.2F + 1.5F : (this.random.nextFloat() - this.random.nextFloat()) * 0.2F + 1.0F;
      }
 diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
-index 9dcf2960..720eb918 100644
+index 9dcf29609..720eb9184 100644
 --- a/src/main/java/net/minecraft/server/EntityPlayer.java
 +++ b/src/main/java/net/minecraft/server/EntityPlayer.java
 @@ -0,0 +0,0 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -258,7 +258,7 @@ index 9dcf2960..720eb918 100644
          }
      }
 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftSound.java b/src/main/java/org/bukkit/craftbukkit/CraftSound.java
-index 17fab031..ee8219e3 100644
+index 17fab031b..ee8219e3b 100644
 --- a/src/main/java/org/bukkit/craftbukkit/CraftSound.java
 +++ b/src/main/java/org/bukkit/craftbukkit/CraftSound.java
 @@ -0,0 +0,0 @@ public enum CraftSound {
@@ -285,7 +285,7 @@ index 17fab031..ee8219e3 100644
          this.minecraftKey = minecraftKey;
      }
 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 8be0a47b..f56ef6f7 100644
+index 8be0a47ba..f56ef6f71 100644
 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
 @@ -0,0 +0,0 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -306,7 +306,7 @@ index 8be0a47b..f56ef6f7 100644
  
      public void injectScaledMaxHealth(Collection<AttributeInstance> collection, boolean force) {
 diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index e592dfb4..c70890cc 100644
+index e592dfb44..c70890cc5 100644
 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
 @@ -0,0 +0,0 @@ public class CraftEventFactory {