Add missing InventoryHolders to inventories

This commit is contained in:
Jake Potrebic
2022-01-24 00:09:02 -08:00
parent a24a58dfab
commit 183683ecc5
13 changed files with 177 additions and 29 deletions

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/SimpleContainer.java
+++ b/net/minecraft/world/SimpleContainer.java
@@ -14,16 +14,84 @@
@@ -14,18 +14,98 @@
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;
@@ -20,7 +20,7 @@
+ // CraftBukkit start - add fields and methods
+ public List<HumanEntity> transaction = new java.util.ArrayList<HumanEntity>();
+ private int maxStack = MAX_STACK;
+ protected org.bukkit.inventory.InventoryHolder bukkitOwner;
+ protected @Nullable org.bukkit.inventory.InventoryHolder bukkitOwner; // Paper - annotation
+
+ public List<ItemStack> getContents() {
+ return this.items;
@@ -48,6 +48,11 @@
+ }
+
+ public org.bukkit.inventory.InventoryHolder getOwner() {
+ // Paper start - Add missing InventoryHolders
+ if (this.bukkitOwner == null && this.bukkitOwnerCreator != null) {
+ this.bukkitOwner = this.bukkitOwnerCreator.get();
+ }
+ // Paper end - Add missing InventoryHolders
+ return this.bukkitOwner;
+ }
@@ -78,12 +83,21 @@
- this.items = NonNullList.withSize(size, ItemStack.EMPTY);
+ this(size, null);
+ }
+
+ // Paper start - Add missing InventoryHolders
+ private @Nullable java.util.function.Supplier<? extends org.bukkit.inventory.InventoryHolder> bukkitOwnerCreator;
+ public SimpleContainer(java.util.function.Supplier<? extends org.bukkit.inventory.InventoryHolder> bukkitOwnerCreator, int size) {
+ this(size);
+ this.bukkitOwnerCreator = bukkitOwnerCreator;
}
+ // Paper end - Add missing InventoryHolders
+ public SimpleContainer(int i, org.bukkit.inventory.InventoryHolder owner) {
+ this.bukkitOwner = owner;
+ // CraftBukkit end
+ this.size = i;
+ this.items = NonNullList.withSize(i, ItemStack.EMPTY);
}
+ }
+
public SimpleContainer(ItemStack... items) {
this.size = items.length;
this.items = NonNullList.of(ItemStack.EMPTY, items);