From 86e5224d94c15f4a5baef4b4fcedbee0be4ff244 Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 2 Jan 2017 01:58:15 -0500 Subject: [PATCH] Update upstream - fixes more Spawn Egg issues --- Spigot-Server-Patches/0005-Timings-v2.patch | 74 +++++++++---------- .../0037-Disable-explosion-knockback.patch | 14 ++-- ...working-with-arrows-stuck-in-living-.patch | 10 +-- .../0198-Fix-ItemStack-Data-Conversion.patch | 71 ------------------ work/CraftBukkit | 2 +- 5 files changed, 50 insertions(+), 121 deletions(-) delete mode 100644 Spigot-Server-Patches/0198-Fix-ItemStack-Data-Conversion.patch diff --git a/Spigot-Server-Patches/0005-Timings-v2.patch b/Spigot-Server-Patches/0005-Timings-v2.patch index 3429d31b4a..1f3e5fb041 100644 --- a/Spigot-Server-Patches/0005-Timings-v2.patch +++ b/Spigot-Server-Patches/0005-Timings-v2.patch @@ -1,11 +1,11 @@ -From e60c0b82ac056c2191c4d5d81b94078b7b52d42f Mon Sep 17 00:00:00 2001 +From 1fe272b953204b2245b13d9c628b424b2eec9168 Mon Sep 17 00:00:00 2001 From: Aikar Date: Thu, 3 Mar 2016 04:00:11 -0600 Subject: [PATCH] Timings v2 diff --git a/pom.xml b/pom.xml -index 0e88ae2..31b8401 100644 +index 0e88ae2a7..31b8401aa 100644 --- a/pom.xml +++ b/pom.xml @@ -66,6 +66,12 @@ @@ -23,7 +23,7 @@ index 0e88ae2..31b8401 100644 3.0.3 diff --git a/src/main/java/co/aikar/timings/MinecraftTimings.java b/src/main/java/co/aikar/timings/MinecraftTimings.java new file mode 100644 -index 0000000..29838de +index 000000000..29838de47 --- /dev/null +++ b/src/main/java/co/aikar/timings/MinecraftTimings.java @@ -0,0 +1,114 @@ @@ -143,7 +143,7 @@ index 0000000..29838de +} diff --git a/src/main/java/co/aikar/timings/TimedChunkGenerator.java b/src/main/java/co/aikar/timings/TimedChunkGenerator.java new file mode 100644 -index 0000000..b79f1be +index 000000000..b79f1be7a --- /dev/null +++ b/src/main/java/co/aikar/timings/TimedChunkGenerator.java @@ -0,0 +1,126 @@ @@ -275,7 +275,7 @@ index 0000000..b79f1be +} diff --git a/src/main/java/co/aikar/timings/WorldTimingsHandler.java b/src/main/java/co/aikar/timings/WorldTimingsHandler.java new file mode 100644 -index 0000000..e778911 +index 000000000..e7789117b --- /dev/null +++ b/src/main/java/co/aikar/timings/WorldTimingsHandler.java @@ -0,0 +1,101 @@ @@ -381,7 +381,7 @@ index 0000000..e778911 + } +} diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java -index 3d0a005..f509bed 100644 +index c009c5f12..e67989083 100644 --- a/src/main/java/com/destroystokyo/paper/PaperConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java @@ -14,11 +14,14 @@ import java.util.concurrent.TimeUnit; @@ -425,7 +425,7 @@ index 3d0a005..f509bed 100644 + } } diff --git a/src/main/java/net/minecraft/server/Block.java b/src/main/java/net/minecraft/server/Block.java -index e8511ac..d3f1a4a 100644 +index e8511ac9a..d3f1a4ac0 100644 --- a/src/main/java/net/minecraft/server/Block.java +++ b/src/main/java/net/minecraft/server/Block.java @@ -35,6 +35,15 @@ public class Block { @@ -445,7 +445,7 @@ index e8511ac..d3f1a4a 100644 public static int getId(Block block) { return Block.REGISTRY.a(block); // CraftBukkit - decompile error diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 81fc04e..bd3b160 100644 +index 81fc04ed3..bd3b16025 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java @@ -900,7 +900,7 @@ public class Chunk { @@ -493,7 +493,7 @@ index 81fc04e..bd3b160 100644 private void z() { diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java -index b39937f..17d39bb 100644 +index b39937f3b..17d39bb0f 100644 --- a/src/main/java/net/minecraft/server/ChunkProviderServer.java +++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java @@ -195,7 +195,7 @@ public class ChunkProviderServer implements IChunkProvider { @@ -515,7 +515,7 @@ index b39937f..17d39bb 100644 this.chunkLoader.a(this.world, chunk); } catch (IOException ioexception) { diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java -index a97e7d3..4890023 100644 +index a97e7d3c2..4890023d7 100644 --- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java +++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java @@ -402,7 +402,7 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { @@ -555,7 +555,7 @@ index a97e7d3..4890023 100644 // return chunk; // CraftBukkit } diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java -index cb83e4f..4dab9e9 100644 +index cb83e4f56..4dab9e962 100644 --- a/src/main/java/net/minecraft/server/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/DedicatedServer.java @@ -23,7 +23,7 @@ import java.io.PrintStream; @@ -586,7 +586,7 @@ index cb83e4f..4dab9e9 100644 public boolean aa() { diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index dd946b9..4d28933 100644 +index dd946b948..4d289330e 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -25,7 +25,8 @@ import org.bukkit.block.BlockFace; @@ -625,7 +625,7 @@ index dd946b9..4d28933 100644 public void recalcPosition() { diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index 9a3c573..9c0b889 100644 +index b231bfe7c..4fbe92a5a 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java @@ -31,7 +31,7 @@ import org.bukkit.event.entity.EntityTeleportEvent; @@ -637,7 +637,7 @@ index 9a3c573..9c0b889 100644 public abstract class EntityLiving extends Entity { -@@ -1815,7 +1815,6 @@ public abstract class EntityLiving extends Entity { +@@ -1816,7 +1816,6 @@ public abstract class EntityLiving extends Entity { } public void A_() { @@ -645,7 +645,7 @@ index 9a3c573..9c0b889 100644 super.A_(); this.cA(); if (!this.world.isClientSide) { -@@ -1888,9 +1887,7 @@ public abstract class EntityLiving extends Entity { +@@ -1889,9 +1888,7 @@ public abstract class EntityLiving extends Entity { } } @@ -655,7 +655,7 @@ index 9a3c573..9c0b889 100644 double d0 = this.locX - this.lastX; double d1 = this.locZ - this.lastZ; float f = (float) (d0 * d0 + d1 * d1); -@@ -1959,8 +1956,6 @@ public abstract class EntityLiving extends Entity { +@@ -1960,8 +1957,6 @@ public abstract class EntityLiving extends Entity { } else { this.bp = 0; } @@ -664,7 +664,7 @@ index 9a3c573..9c0b889 100644 } protected float h(float f, float f1) { -@@ -2025,7 +2020,6 @@ public abstract class EntityLiving extends Entity { +@@ -2026,7 +2021,6 @@ public abstract class EntityLiving extends Entity { } this.world.methodProfiler.a("ai"); @@ -672,7 +672,7 @@ index 9a3c573..9c0b889 100644 if (this.isFrozen()) { this.bd = false; this.be = 0.0F; -@@ -2036,7 +2030,6 @@ public abstract class EntityLiving extends Entity { +@@ -2037,7 +2031,6 @@ public abstract class EntityLiving extends Entity { this.doTick(); this.world.methodProfiler.b(); } @@ -680,7 +680,7 @@ index 9a3c573..9c0b889 100644 this.world.methodProfiler.b(); this.world.methodProfiler.a("jump"); -@@ -2059,14 +2052,10 @@ public abstract class EntityLiving extends Entity { +@@ -2060,14 +2053,10 @@ public abstract class EntityLiving extends Entity { this.bf *= 0.98F; this.bg *= 0.9F; this.r(); @@ -696,7 +696,7 @@ index 9a3c573..9c0b889 100644 } diff --git a/src/main/java/net/minecraft/server/EntityTracker.java b/src/main/java/net/minecraft/server/EntityTracker.java -index 347a2b6..aceb08c 100644 +index 347a2b671..aceb08ce1 100644 --- a/src/main/java/net/minecraft/server/EntityTracker.java +++ b/src/main/java/net/minecraft/server/EntityTracker.java @@ -175,7 +175,7 @@ public class EntityTracker { @@ -727,7 +727,7 @@ index 347a2b6..aceb08c 100644 } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 90b6678..9e3a8d1 100644 +index 90b667893..9e3a8d155 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -47,7 +47,7 @@ import org.bukkit.Bukkit; @@ -869,7 +869,7 @@ index 90b6678..9e3a8d1 100644 this.methodProfiler.b(); } diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java -index a5a096b..c546139 100644 +index a5a096be5..c546139c8 100644 --- a/src/main/java/net/minecraft/server/PlayerChunkMap.java +++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java @@ -1,5 +1,6 @@ @@ -969,7 +969,7 @@ index a5a096b..c546139 100644 } diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index 01f8343..a10d8a7 100644 +index 01f834304..a10d8a7b8 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java @@ -56,6 +56,7 @@ import org.bukkit.inventory.CraftingInventory; @@ -1017,7 +1017,7 @@ index 01f8343..a10d8a7 100644 // CraftBukkit end } diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index 7be0135..9f52995 100644 +index 7be013599..9f5299570 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java @@ -1,5 +1,6 @@ @@ -1041,7 +1041,7 @@ index 7be0135..9f52995 100644 public void addWhitelist(GameProfile gameprofile) { diff --git a/src/main/java/net/minecraft/server/StructureGenerator.java b/src/main/java/net/minecraft/server/StructureGenerator.java -index f1f2065..fb350c4 100644 +index f1f206501..fb350c408 100644 --- a/src/main/java/net/minecraft/server/StructureGenerator.java +++ b/src/main/java/net/minecraft/server/StructureGenerator.java @@ -1,5 +1,7 @@ @@ -1083,7 +1083,7 @@ index f1f2065..fb350c4 100644 return flag; } diff --git a/src/main/java/net/minecraft/server/TileEntity.java b/src/main/java/net/minecraft/server/TileEntity.java -index 6958a2e..b3d3df4 100644 +index 6958a2e0f..b3d3df4cf 100644 --- a/src/main/java/net/minecraft/server/TileEntity.java +++ b/src/main/java/net/minecraft/server/TileEntity.java @@ -4,12 +4,13 @@ import javax.annotation.Nullable; @@ -1103,7 +1103,7 @@ index 6958a2e..b3d3df4 100644 private static final RegistryMaterials> f = new RegistryMaterials(); protected World world; diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 09ca809..47e3b4d 100644 +index 09ca809f0..47e3b4d98 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -18,11 +18,11 @@ import com.google.common.collect.Maps; @@ -1209,7 +1209,7 @@ index 09ca809..47e3b4d 100644 } diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index 4713150..26627ce 100644 +index 47131503d..26627ce82 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java @@ -246,13 +246,13 @@ public class WorldServer extends World implements IAsyncTaskHandler { @@ -1342,7 +1342,7 @@ index 4713150..26627ce 100644 // CraftBukkit start diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index f4b0871..761c8e4 100644 +index f4b0871ed..761c8e462 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1729,6 +1729,7 @@ public final class CraftServer implements Server { @@ -1380,7 +1380,7 @@ index f4b0871..761c8e4 100644 } diff --git a/src/main/java/org/bukkit/craftbukkit/SpigotTimings.java b/src/main/java/org/bukkit/craftbukkit/SpigotTimings.java deleted file mode 100644 -index 41d2d87..0000000 +index 41d2d87ee..000000000 --- a/src/main/java/org/bukkit/craftbukkit/SpigotTimings.java +++ /dev/null @@ -1,173 +0,0 @@ @@ -1558,7 +1558,7 @@ index 41d2d87..0000000 - } -} diff --git a/src/main/java/org/bukkit/craftbukkit/chunkio/ChunkIOProvider.java b/src/main/java/org/bukkit/craftbukkit/chunkio/ChunkIOProvider.java -index 3a95b44..b5efb9c 100644 +index 3a95b4465..b5efb9c3f 100644 --- a/src/main/java/org/bukkit/craftbukkit/chunkio/ChunkIOProvider.java +++ b/src/main/java/org/bukkit/craftbukkit/chunkio/ChunkIOProvider.java @@ -1,6 +1,8 @@ @@ -1602,7 +1602,7 @@ index 3a95b44..b5efb9c 100644 public void callStage3(QueuedChunk queuedChunk, Chunk chunk, Runnable runnable) throws RuntimeException { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index d057cce..877a0c8 100644 +index d057cce36..877a0c88d 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -37,15 +37,9 @@ import org.bukkit.configuration.serialization.DelegateDeserialization; @@ -1636,7 +1636,7 @@ index d057cce..877a0c8 100644 public Player.Spigot spigot() diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java -index 92d217b..198c37c 100644 +index 92d217bce..198c37c3c 100644 --- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java +++ b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java @@ -189,7 +189,7 @@ public class CraftScheduler implements BukkitScheduler { @@ -1677,7 +1677,7 @@ index 92d217b..198c37c 100644 task.getOwner().getLogger().log( Level.WARNING, diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftTask.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftTask.java -index 220e39a..afc6c17 100644 +index 220e39abe..afc6c17e6 100644 --- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftTask.java +++ b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftTask.java @@ -1,8 +1,8 @@ @@ -1759,7 +1759,7 @@ index 220e39a..afc6c17 100644 - // Spigot end } diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftIconCache.java b/src/main/java/org/bukkit/craftbukkit/util/CraftIconCache.java -index e52ef47..3d90b34 100644 +index e52ef47b7..3d90b3426 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftIconCache.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftIconCache.java @@ -5,6 +5,7 @@ import org.bukkit.util.CachedServerIcon; @@ -1771,7 +1771,7 @@ index e52ef47..3d90b34 100644 this.value = value; } diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java -index c32d44d..5c2fb00 100644 +index c32d44df0..5c2fb0058 100644 --- a/src/main/java/org/spigotmc/ActivationRange.java +++ b/src/main/java/org/spigotmc/ActivationRange.java @@ -29,7 +29,7 @@ import net.minecraft.server.EntityWither; @@ -1833,5 +1833,5 @@ index c32d44d..5c2fb00 100644 } } -- -2.9.3 +2.11.0 diff --git a/Spigot-Server-Patches/0037-Disable-explosion-knockback.patch b/Spigot-Server-Patches/0037-Disable-explosion-knockback.patch index 59e1542a55..31e51500b2 100644 --- a/Spigot-Server-Patches/0037-Disable-explosion-knockback.patch +++ b/Spigot-Server-Patches/0037-Disable-explosion-knockback.patch @@ -1,11 +1,11 @@ -From 7d1dd59d14b025644570acfcdca2a484ab8b1c6a Mon Sep 17 00:00:00 2001 +From 100a23ef34a94e51c53f5c30f6f516bcc22b8194 Mon Sep 17 00:00:00 2001 From: Sudzzy Date: Wed, 2 Mar 2016 14:48:03 -0600 Subject: [PATCH] Disable explosion knockback diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index b5a106d..fcbf8a2 100644 +index b5a106d5b..fcbf8a25c 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java @@ -205,4 +205,9 @@ public class PaperWorldConfig { @@ -19,10 +19,10 @@ index b5a106d..fcbf8a2 100644 + } } diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index b328b25..fe6fe3f 100644 +index 4fbe92a5a..b959fdac8 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java -@@ -892,12 +892,14 @@ public abstract class EntityLiving extends Entity { +@@ -893,12 +893,14 @@ public abstract class EntityLiving extends Entity { } } @@ -37,7 +37,7 @@ index b328b25..fe6fe3f 100644 this.world.broadcastEntityEffect(this, (byte) 2); } -@@ -921,6 +923,8 @@ public abstract class EntityLiving extends Entity { +@@ -922,6 +924,8 @@ public abstract class EntityLiving extends Entity { } } @@ -47,7 +47,7 @@ index b328b25..fe6fe3f 100644 if (!this.d(damagesource)) { SoundEffect soundeffect = this.bX(); diff --git a/src/main/java/net/minecraft/server/Explosion.java b/src/main/java/net/minecraft/server/Explosion.java -index 49fc95e..d7bc6a0 100644 +index 49fc95e35..d7bc6a0ed 100644 --- a/src/main/java/net/minecraft/server/Explosion.java +++ b/src/main/java/net/minecraft/server/Explosion.java @@ -146,7 +146,7 @@ public class Explosion { @@ -69,5 +69,5 @@ index 49fc95e..d7bc6a0 100644 } } -- -2.9.3 +2.11.0 diff --git a/Spigot-Server-Patches/0065-Add-methods-for-working-with-arrows-stuck-in-living-.patch b/Spigot-Server-Patches/0065-Add-methods-for-working-with-arrows-stuck-in-living-.patch index 7fff157b2c..82546dfdb9 100644 --- a/Spigot-Server-Patches/0065-Add-methods-for-working-with-arrows-stuck-in-living-.patch +++ b/Spigot-Server-Patches/0065-Add-methods-for-working-with-arrows-stuck-in-living-.patch @@ -1,14 +1,14 @@ -From d4b532c8addb75217b3f2a8461df8dda9bb2f75c Mon Sep 17 00:00:00 2001 +From 7a13996738912fc0d21b933fdf57cf51987d83b9 Mon Sep 17 00:00:00 2001 From: mrapple Date: Sun, 25 Nov 2012 13:43:39 -0600 Subject: [PATCH] Add methods for working with arrows stuck in living entities diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index 885c108..42347e7 100644 +index b959fdac8..bf8fbac4e 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java -@@ -1379,10 +1379,12 @@ public abstract class EntityLiving extends Entity { +@@ -1380,10 +1380,12 @@ public abstract class EntityLiving extends Entity { return (float) this.getAttributeInstance(GenericAttributes.maxHealth).getValue(); } @@ -22,7 +22,7 @@ index 885c108..42347e7 100644 this.datawatcher.set(EntityLiving.bq, Integer.valueOf(i)); } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index aaea4e8..2a77cd4 100644 +index aaea4e860..2a77cd462 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -559,4 +559,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { @@ -43,5 +43,5 @@ index aaea4e8..2a77cd4 100644 + // Paper end } -- -2.9.3 +2.11.0 diff --git a/Spigot-Server-Patches/0198-Fix-ItemStack-Data-Conversion.patch b/Spigot-Server-Patches/0198-Fix-ItemStack-Data-Conversion.patch deleted file mode 100644 index 3fd028b6e4..0000000000 --- a/Spigot-Server-Patches/0198-Fix-ItemStack-Data-Conversion.patch +++ /dev/null @@ -1,71 +0,0 @@ -From 976cceb1eaba63b9e7bcf5726db579aaf9bc2069 Mon Sep 17 00:00:00 2001 -From: Aikar -Date: Thu, 29 Dec 2016 07:54:48 -0500 -Subject: [PATCH] Fix ItemStack Data Conversion - -Spigot did not copy our version, and their version is not 100% correct. - -The current state results in item meta and damage data value conversions clashing for control - -For example on a horse egg, on itemstack creation, the 100 Damage is converted to 0 and sets EntityTag - -SetItemMeta then drops the previous NBTTagCompound and makes a new one, which has no EntityType associated -to it as the previous stack had no metadata. - -This change makes it so that itemstack conversion is delayed until after meta applies - -Pretty much restores our previous implementation before Spigot tried to resolve it. - -diff --git a/src/main/java/net/minecraft/server/ItemStack.java b/src/main/java/net/minecraft/server/ItemStack.java -index 6db93b953..2d7cac940 100644 ---- a/src/main/java/net/minecraft/server/ItemStack.java -+++ b/src/main/java/net/minecraft/server/ItemStack.java -@@ -56,6 +56,9 @@ public final class ItemStack { - } - - public ItemStack(Item item, int i, int j) { -+ this(item, i, j, true); // Paper -+ } -+ public ItemStack(Item item, int i, int j, boolean convert) { // Paper - this.item = item; - this.damage = j; - this.count = i; -@@ -63,7 +66,7 @@ public final class ItemStack { - if (MinecraftServer.getServer() != null) { - this.setData(j); - } -- this.convertStack(); -+ if (convert) this.convertStack(); // Paper - // CraftBukkit end - if (this.damage < 0) { - // this.damage = 0; // CraftBukkit - remove this. -@@ -454,7 +457,7 @@ public final class ItemStack { - } - - public ItemStack cloneItemStack() { -- ItemStack itemstack = new ItemStack(this.item, this.count, this.damage); -+ ItemStack itemstack = new ItemStack(this.item, this.count, this.damage, false); // Paper - no need to convert a clone - - if (this.tag != null) { - itemstack.tag = this.tag.g(); -diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java -index fafc6b68d..dc1c416c7 100644 ---- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java -+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java -@@ -41,10 +41,11 @@ public final class CraftItemStack extends ItemStack { - return net.minecraft.server.ItemStack.a; - } - -- net.minecraft.server.ItemStack stack = new net.minecraft.server.ItemStack(item, original.getAmount(), original.getDurability()); -+ net.minecraft.server.ItemStack stack = new net.minecraft.server.ItemStack(item, original.getAmount(), original.getDurability(), false); // Paper - if (original.hasItemMeta()) { - setItemMeta(stack, original.getItemMeta()); -- } -+ } else { stack.convertStack(); } // Paper - setItemMeta will convert also -+ - return stack; - } - --- -2.11.0 - diff --git a/work/CraftBukkit b/work/CraftBukkit index e2a288c863..613be0d841 160000 --- a/work/CraftBukkit +++ b/work/CraftBukkit @@ -1 +1 @@ -Subproject commit e2a288c863b383397057b742e9289bc4c31e44d1 +Subproject commit 613be0d8418c044807040bb4c9b72ae4c118f5cd