Bukkit插件ItemMeta始终为null

时间:2013-09-22 01:38:10

标签: junit4 bukkit

我花了几个小时看着有这个问题的人,但他们的解决方案似乎都没有用!

我正在尝试设置知识并显示ItemStacks ItemMeta的名称。

以下是代码:

  ItemStack is = new ItemStack(Material.DIAMOND_SWORD, 1);
    ItemMeta meta = is.getItemMeta();

通过运行它(JUnit测试),发生1个错误。它是.getItemMeta(),它始终为null。如果我做的话,它怎么能为空呢?

感谢您的阅读,我已经被困了大约一个小时了:)

2 个答案:

答案 0 :(得分:1)

Kezz101的答案大多是正确的,但 已经有了ItemMeta。我建议:

Material mat = Material.DIAMOND_SWORD;
ItemStack is = new ItemStack(mat, 1);
ItemMeta  im = is.hasItemMeta() ?
    is.getItemMeta() : Bukkit.getItemFactory().getItemMeta(mat);
/* ...Do something with im... */
is.setItemMeta(im);

答案 1 :(得分:0)

' getItemMeta()'如果没有要获取的元数据,则会返回null。您需要先创建元:

ItemMeta meta = Bukkit.getItemFactory().getItemMeta(Material.DIAMOND_SWORD);

然后你可以操纵元数据。完成后,只需将其设置为itemstack:

is.setItemMeta(meta);