如何设置块数据值?
How to set block data value?
Bukkit 的 setData(data)
和 getData()
已弃用。但是没有替代品。
Bukkit/Spigot JavaDoc 关于 setData()
的说法:
Deprecated. Magic value
这是为什么?
到目前为止,唯一的方法是使用:
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 和其他大多数大插件的源代码看起来很乱,因为它们使用了很多接口。对开发人员来说,它看起来非常有条理,但对于阅读它的人来说,它看起来非常混乱,除非你可以实际可视化层次结构。
Bukkit 的 setData(data)
和 getData()
已弃用。但是没有替代品。
Bukkit/Spigot JavaDoc 关于 setData()
的说法:
Deprecated. Magic value
这是为什么?
到目前为止,唯一的方法是使用:
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 和其他大多数大插件的源代码看起来很乱,因为它们使用了很多接口。对开发人员来说,它看起来非常有条理,但对于阅读它的人来说,它看起来非常混乱,除非你可以实际可视化层次结构。