如何在铁砧库存中设置ItemStack?我需要1.8.8-1.14.4版本支持的方法。我可以创建库存,但不能设置项目。这就是我所拥有的:

void open(Player player) {
        Inventory createKitGUI = Bukkit.createInventory(null, InventoryType.ANVIL);

        createKitGUI.setItem(1, new ItemStack(XMaterial.PAPER.parseMaterial()));

        player.openInventory(createKitGUI);
    }

我已经尝试在插槽0和1中进行设置,但是它不起作用。 0和1是砧座清单中的前2个插槽。

最佳答案

为什么不使用NMS就无法做到这一点

经过进一步研究,我发现了这一点:

  • 您无法将CraftInventoryCustom投射到AnvilInventory,因为:
  • AnvilInventory是CraftInventory的子类。
  • CraftInventoryCustom是CraftInventory的子类。
  • 如果不先转换为CraftInventory,就无法将CraftInventoryCustom转换为AnvilInventory。
  • 根据this post上的主要插头开发人员,他说您不能将CraftInventoryCustom投射到CraftInventory。

  • 因此,您唯一的机会就是实施NMS解决方案。

    ANVIL GUI

    如果您不想参与NMS开发,则可以使用WesJD的以下API,称为AnvilGUI。在这里,您具有此API的documentation

    10-08 10:59