java - 如何选择可以放置元素的方 block ?

标签 java minecraft bukkit

我想知道如何选择放置我的 TNT 的方 block 。这是我的代码。

ItemStack tnt = new ItemStack(Material.TNT, 1);

give @p tnt 1 0 {PlaceOn:emerald_block}

我正在为 Minecraft 1.12 和 Eclipse 使用 Spigot。

最佳答案

native 无法通过 Spigot API 执行此操作,您需要使用 NMS 和 NBT:

net.minecraft.server.v1_12_R1.ItemStack stack = CraftItemStack.asNMSCopy(tnt);

NBTTagList tags = (NBTTagList) stack.getTag().get("CanPlaceOn");

if (tags == null)
    tags = new NBTTagList();

tags.add(new NBTTagString("minecraft:emerald_block"));

stack.getTag().set("CanPlaceOn", tags);

ItemStack toUse = CraftItemStack.asCraftMirror(stack);

关于java - 如何选择可以放置元素的方 block ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44672527/

相关文章:

java - ZK 组件设置组件不是值

java - 从成功编码的 XML 中解码返回 null 对象

java - 为什么不给凶手加钱,而不给受害者减钱呢?并且消息未发送

java - 如何将 Minecraft bukkit 插件的玩家实体设置为 Model()

api - 使用 api spigot/bukkit 在 config.yml 中保存注释

java - Mapstruct:尝试映射嵌入对象内的字段时返回 null

java - 在方法中重用时如何获取类的泛型类型 "T"

linux - 服务器启动脚本问题

java - 在 Bukkit 的骷髅马周围生成生物刷怪器粒子

mysql - 从我的代码中在我的控制台中得到一些错误