#1431: Add API for InventoryView derivatives

By: Miles Holder <mwholder2005@gmail.com>
This commit is contained in:
CraftBukkit/Spigot
2024-07-27 10:01:29 +10:00
parent 7fae51f18d
commit bfad1aa117
23 changed files with 537 additions and 72 deletions

View File

@@ -5,7 +5,7 @@
import org.slf4j.Logger;
+// CraftBukkit start
+import org.bukkit.craftbukkit.inventory.CraftInventoryView;
+import org.bukkit.craftbukkit.inventory.view.CraftAnvilView;
+// CraftBukkit end
+
public class ContainerAnvil extends ContainerAnvilAbstract {
@@ -18,7 +18,7 @@
+ // CraftBukkit start
+ public static final int DEFAULT_DENIED_COST = -1;
+ public int maximumRepairCost = 40;
+ private CraftInventoryView bukkitEntity;
+ private CraftAnvilView bukkitEntity;
+ // CraftBukkit end
public ContainerAnvil(int i, PlayerInventory playerinventory) {
@@ -105,21 +105,22 @@
}
}
@@ -323,4 +333,18 @@
@@ -323,4 +333,19 @@
public int getCost() {
return this.cost.get();
}
+
+ // CraftBukkit start
+ @Override
+ public CraftInventoryView getBukkitView() {
+ public CraftAnvilView getBukkitView() {
+ if (bukkitEntity != null) {
+ return bukkitEntity;
+ }
+
+ org.bukkit.craftbukkit.inventory.CraftInventory inventory = new org.bukkit.craftbukkit.inventory.CraftInventoryAnvil(
+ access.getLocation(), this.inputSlots, this.resultSlots, this);
+ bukkitEntity = new CraftInventoryView(this.player.getBukkitEntity(), inventory, this);
+ org.bukkit.craftbukkit.inventory.CraftInventoryAnvil inventory = new org.bukkit.craftbukkit.inventory.CraftInventoryAnvil(
+ access.getLocation(), this.inputSlots, this.resultSlots);
+ bukkitEntity = new CraftAnvilView(this.player.getBukkitEntity(), inventory, this);
+ bukkitEntity.updateFromLegacy(inventory);
+ return bukkitEntity;
+ }
+ // CraftBukkit end