提问者:小点点

有没有办法使用Bukkit将Block ID添加到CanPlaceOn和CanDestroy-Tags?


我想制作一个插件,允许用户将块ID添加到项目或块的CanPlaceOn或CanDestroy标签。我知道这也可以通过 /give命令来实现,但我服务器的许多玩家绝对不熟悉命令。因此,我试图制作一个命令,其中一个gui弹出,您可以将块放入某个插槽中,将它们添加到正在“编辑”的项目中(到canplace eon或canrest)。

我已经设置了Gui和其他一切,现在我遇到了无法使用bukkit修改NBT标签的问题。没有办法使用bukkit做到这一点,我看到了一些使用NMS的答案(我可以使用mns解决方案,如果它们有效的话!)但是它们似乎已经过时了,不再适用于我的1.17.1 Spigot服务器。我添加块ID方法目前如下所示:

public void addBlockToCanPlaceOn(ItemStack item, Material block){

     // Add the block-ID of 'block' to the CanPlaceOnTag of 'item'

}

是否有人有将块ID添加到项目的CanPlaceOn/CanDestroy-Tag的想法?


共1个答案

匿名用户

块ID已被Mojang弃用,许多获取块ID的功能已被替换为它们的材质名称替代品。(我是一个遗留开发人员,看起来很糟糕,但没什么大不了的)。这可能是你麻烦的一部分。

你看过这个吗?https://www.spigotmc.org/threads/adding-canplaceon-nbttag-via-plugin.247846/在SpigetMC上的帖子?看起来他们有