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