Bukkit的setData(data)
和getData()
已弃用。但没有替代品。
Bukkit / Spigot JavaDoc说这是关于setData()
:
已过时。魔术值
为什么?
答案 0 :(得分:9)
到目前为止,唯一的方法是使用:
Block.setData(byte data);
所以,你可以这样做:
myBlock.setData(2); // Set block data to 2
尽管Block.setData()
已被弃用,但它仍然有效,并且将继续有效(很少删除Bukkit中不推荐使用的方法,尤其是那些没有替代方法的方法)。
我希望我能给出更好的答案,但这是你现在唯一可以做的事情。
它被弃用的原因是因为Minecraft正在远离商品ID,并切换到商品名称,以便将来更容易扩展。您曾经必须运行/give player 19
的位置,您现在应该运行/give player minecraft:sponge
(尽管ID仍然有效)。同样的事情将发生在数据值上,而不是给某人35:14
,你现在给他们red wool
。
要删除使用弃用方法给出的警告,请在使用时将@SuppressWarnings("deprecation")
置于已弃用的方法之上,或者高于使用它的方法。
要设置块的类型,您可以使用:
Block.setType(Material type);
一个例子是:
myBlock.setType(Material.GOLD_BLOCK); // Set block to gold block
您也可以使用MaterialData
,但没有人真正知道如何使用它(据我所知)。它是Bukkit API中包含的内容之一,但没有人知道原因。
WorldEdit和大多数其他大插件的来源看起来很混乱,因为它们使用了很多接口。对于开发人员来说,它似乎非常有条理,但对于阅读它的人来说,它看起来非常混乱,除非你能够实际可视化层次结构。