因为原版没有把箱子的容器数据同步到客户端,除非打开;;; 取出物品貌似调用的是 removeItemNoUpdate(?),所以没有更新到。 |
最后还是手动发包解决,但是不明白为什么按照forge官方文档上说的方块实体同步消息为何不行,猜测是因为我继承的原版箱子,而原版箱子做了什么我不知道的操作? |
QQ酱277476 发表于 2024-3-9 22:30 这样看应该是你的状态没更新我想了想可以通过网络消息检测箱子中物品种类是否发生变化,然后标记需要更新,接下来再次调用渲染代码更新全部需要更新的方块,这样做比较暴力且可能在多人游戏里卡顿比较明显,不过我能想到就这样了其他的方法我就不知道了。 |
C、江秋菌 发表于 2024-3-9 21:00 emmm,看了一下,我继承的是原版的箱子,原版中removeItem()和这个逻辑是一样的,还是不行 |
C、江秋菌 发表于 2024-3-9 21:00 我试试,但渲染是没问题的,只是渲染的时候获取的容器内的items在取出时不能更新,而放入时就可以更新 |
本帖最后由 C、江秋菌 于 2024-3-9 21:18 编辑 我也不是特别懂渲染的问题,但你可以试试先创建一个类:
再在你的实体类代码里加一段这个:
这个我拿Mcr的“物品槽内容改变时的”代码改的,不知道能不能成功 |