如何使用item_handler_capability在玩家身上储存物品

镜界开放


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

情况简述
要制作直接用快捷键唤出的背包,不依赖于itemstack、tileentity,自己捣鼓了很久,物品一直无法保存,关闭gui再次打开后物品就会消失。
在提问区看到一个帖子上说可以使用ITEM_HANDLER_CAPABILITY将物品保存在玩家身上,但是不知道具体如何操作,要在何地调用能力,又要怎样才能保存物品。
想请问有没有相关的例子可以学习。


FledgeXu


我有点不理解不用IteamStack是什么意思。
顺便你这个需求其实就是原版的末影箱啊,你需要把打开GUI那一部分和快捷键绑定就行了……其他的Capability的内容抄末影箱就行了。


镜界开放


在backpack模组中将物品信息保存在背包ItemStack的tag中。
谢谢了,我去学习一下


镜界开放


最近上班有点忙,都没有什么时间研究学习,所以拖得有点久了。
末影箱的物品保存通过PlayerEntity中的writeAdditional和readAdditional调用了末影箱Inventory中的write和read,但是如何让我自制inventory中的内容被保存呢?


FledgeXu


你给玩家attach上一个新的capability,然后在那个capability里存物品不就行了。


镜界开放


对,就是这里不会,有什么例子吗?


FledgeXu



镜界开放


谢谢,问题已经解决了,因为之前看到可以用ITEM_HANDLER_CAPABILITY来进行物品储存,导致我一直执着于使用这个能力和ItemStackHandler来完成目标,忘了还可以自制能力。


system


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