如何给物品添加tag

镜界开放


版本信息
使用的系统:win10 x64
是用的JDK: 8u251 x64
使用的IDE:IntelliJ IDEA
使用的IDE版本:2020.1.4
Forge版本: 31.2.0
Minecraft版本: 1.15.2
Mapping 文件版本: 20200904

情况简述
想要给物品添加tag,在Item类中只找到了onCreated方法,可以在工作台制作或烧制出物品时调用,然而使用这个方法去添加tag的话,用其他途径获取物品,例如从创造模式物品栏中取出的itemStack是无法直接拥有tag的。
请问如何让物品的itemstack无论以何种方式获得都可以添加指定tag。


FledgeXu


这个不是一个Mod开发的问题,这是一个对原版熟悉程度还不够的问题……

为了使用方块、物品、流体、实体类型或函数标签,标签JSON文件必须分别放置于数据包的 data/(命名空间)/tags/blocksdata/(命名空间)/tags/itemsdata/(命名空间)/tags/fluidsdata/(命名空间)/tags/entity_typesdata/(命名空间)/tags/functions 目录下。
Minecraft Wiki


镜界开放


原来如此,受教了


镜界开放


我看了一下资料,我觉的你可能理解错我的意思了,我要添加的是NBTtag,用来储存数据的那种


FledgeXu


没有这种办法,如果何种方式取出都应该有NBT值的话,那么说明这个值不应该存放在ItemStack里也不应该用NBT存。这个不是NBT应该干的事。
这个问题是个XY问题
请说清楚你究竟想实现什么功能。


镜界开放


我想给物品添加不同的级别档位,当我将这个物品放入自制的slot中时,我需要读取这个级别数据来实现不同等级的方法,而且这个数据是可以修改的。


FledgeXu


那你在你的Item类里新增一个字段就行了。



可以通过断点debug来看原版物品如何实现的,比如重写物品的onItemUseFinish并添加一个断点,debug启动。比如说想要看原版的附魔实现,就给这个物品用铁砧上个附魔,再右击使用就可以在debug窗口查看这个item的所有属性。


FledgeXu


你在说什么……


FledgeXu


你在说什么……


system


该主题在最后一个回复创建后7天后自动关闭。不再允许新的回复。