diff options
author | Aikar <[email protected]> | 2016-06-06 19:56:51 -0400 |
---|---|---|
committer | Aikar <[email protected]> | 2016-06-06 19:56:51 -0400 |
commit | 092733e8ffb29344bc8c2dbd1397a5ed78bf5308 (patch) | |
tree | e6eb3bdd9e5091f5c2c62572f3264f639308617c | |
parent | 3e06e28523ef48dde8dce7d3ff775b054270744a (diff) | |
download | Paper-092733e8ffb29344bc8c2dbd1397a5ed78bf5308.tar.gz Paper-092733e8ffb29344bc8c2dbd1397a5ed78bf5308.zip |
Fix bug with lootable refresh not saving inventory if on
-rw-r--r-- | Spigot-Server-Patches/0147-LootTable-API-Replenishable-Lootables-Feature.patch | 38 |
1 files changed, 30 insertions, 8 deletions
diff --git a/Spigot-Server-Patches/0147-LootTable-API-Replenishable-Lootables-Feature.patch b/Spigot-Server-Patches/0147-LootTable-API-Replenishable-Lootables-Feature.patch index 01a7fc3022..327424b9a8 100644 --- a/Spigot-Server-Patches/0147-LootTable-API-Replenishable-Lootables-Feature.patch +++ b/Spigot-Server-Patches/0147-LootTable-API-Replenishable-Lootables-Feature.patch @@ -1,4 +1,4 @@ -From 83e8df21605fee2b292d84c84fd1d19f40db2794 Mon Sep 17 00:00:00 2001 +From fc136a9094e3abb4812ca3cbf1128166136460f2 Mon Sep 17 00:00:00 2001 From: Aikar <[email protected]> Date: Sun, 1 May 2016 21:19:14 -0400 Subject: [PATCH] LootTable API & Replenishable Lootables Feature @@ -418,7 +418,7 @@ index 0000000..01c2713 + } +} diff --git a/src/main/java/net/minecraft/server/EntityMinecartContainer.java b/src/main/java/net/minecraft/server/EntityMinecartContainer.java -index 19f9eb6..7216fa5 100644 +index 19f9eb6..9162348 100644 --- a/src/main/java/net/minecraft/server/EntityMinecartContainer.java +++ b/src/main/java/net/minecraft/server/EntityMinecartContainer.java @@ -5,17 +5,21 @@ import javax.annotation.Nullable; @@ -445,7 +445,7 @@ index 19f9eb6..7216fa5 100644 // CraftBukkit start public List<HumanEntity> transaction = new java.util.ArrayList<HumanEntity>(); -@@ -141,6 +145,7 @@ public abstract class EntityMinecartContainer extends EntityMinecartAbstract imp +@@ -141,12 +145,13 @@ public abstract class EntityMinecartContainer extends EntityMinecartAbstract imp protected void b(NBTTagCompound nbttagcompound) { super.b(nbttagcompound); @@ -453,7 +453,14 @@ index 19f9eb6..7216fa5 100644 if (this.c != null) { nbttagcompound.setString("LootTable", this.c.toString()); if (this.d != 0L) { -@@ -167,6 +172,7 @@ public abstract class EntityMinecartContainer extends EntityMinecartAbstract imp + nbttagcompound.setLong("LootTableSeed", this.d); + } +- } else { ++ } if (true) { // Paper - Always save the items, Table may stick around + NBTTagList nbttaglist = new NBTTagList(); + + for (int i = 0; i < this.items.length; ++i) { +@@ -167,10 +172,11 @@ public abstract class EntityMinecartContainer extends EntityMinecartAbstract imp protected void a(NBTTagCompound nbttagcompound) { super.a(nbttagcompound); this.items = new ItemStack[this.getSize()]; @@ -461,6 +468,11 @@ index 19f9eb6..7216fa5 100644 if (nbttagcompound.hasKeyOfType("LootTable", 8)) { this.c = new MinecraftKey(nbttagcompound.getString("LootTable")); this.d = nbttagcompound.getLong("LootTableSeed"); +- } else { ++ } if (true) { // Paper - always load the items, table may still remain + NBTTagList nbttaglist = nbttagcompound.getList("Items", 10); + + for (int i = 0; i < nbttaglist.size(); ++i) { @@ -228,10 +234,10 @@ public abstract class EntityMinecartContainer extends EntityMinecartAbstract imp } @@ -528,10 +540,10 @@ index 19f9eb6..7216fa5 100644 + // Paper end } diff --git a/src/main/java/net/minecraft/server/TileEntityLootable.java b/src/main/java/net/minecraft/server/TileEntityLootable.java -index 3dc58bf..7717316 100644 +index 3dc58bf..5a494d2 100644 --- a/src/main/java/net/minecraft/server/TileEntityLootable.java +++ b/src/main/java/net/minecraft/server/TileEntityLootable.java -@@ -1,16 +1,21 @@ +@@ -1,26 +1,32 @@ package net.minecraft.server; +import com.destroystokyo.paper.loottable.CraftLootableInventoryData; // Paper @@ -555,7 +567,11 @@ index 3dc58bf..7717316 100644 if (nbttagcompound.hasKeyOfType("LootTable", 8)) { this.m = new MinecraftKey(nbttagcompound.getString("LootTable")); this.n = nbttagcompound.getLong("LootTableSeed"); -@@ -21,6 +26,7 @@ public abstract class TileEntityLootable extends TileEntityContainer implements + return true; + } else { +- return false; ++ return true; // Paper - always load the items, table may still remain + } } protected boolean e(NBTTagCompound nbttagcompound) { @@ -563,7 +579,13 @@ index 3dc58bf..7717316 100644 if (this.m != null) { nbttagcompound.setString("LootTable", this.m.toString()); if (this.n != 0L) { -@@ -34,10 +40,10 @@ public abstract class TileEntityLootable extends TileEntityContainer implements +@@ -29,15 +35,15 @@ public abstract class TileEntityLootable extends TileEntityContainer implements + + return true; + } else { +- return false; ++ return true; // Paper - always save the items, table may still remain + } } protected void d(@Nullable EntityHuman entityhuman) { |