FallingCreams
如题
目的:保存一个物品的ItemStack,在读取保存的ItemStack的时候再操作这个物品可以更新原来保存时的物品(此时物品可能在末影箱,离线玩家背包,箱子,地上或者其它容器中)

直接保存ItemStack到yaml里再读取操作的就不是保存时传入的ItemStack了,也许可以用NBT API之类的?求各位大佬解答

婲样的女孩_
无法做到实时的更新,只能通过监听大量事件来解决,比如掉落物拾取,打开箱子等大量事件,通过物品特征来更新

FallingCreams
婲样的女孩_ 发表于 2022-11-15 10:28
无法做到实时的更新,只能通过监听大量事件来解决,比如掉落物拾取,打开箱子等大量事件,通过物品特征来更 ...

我现在就是这么做的,监听事件记录这个东西在哪个容器或者是哪个玩家的背包,但是这么做真的是太费事了qwq

‮tcejorPoiK
不可能的,ItemStack又没有唯一性的追踪标识(比如UUID),而且玩家在容器间移动其实相当于删除旧的,生成了一个新的,这个ItemStack已经不是之前的ItemStack了,包括Bukkit API内部也对ItemStack进行了大量的Clone操作。
唯一的办法只能通过各种监听来追踪物品

第一页 上一页 下一页 最后一页