Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

频发重启后机器槽位丢失现象 #992

Open
m1919810 opened this issue Jan 3, 2025 · 8 comments
Open

频发重启后机器槽位丢失现象 #992

m1919810 opened this issue Jan 3, 2025 · 8 comments
Labels
🐞 Bug 抓虫子

Comments

@m1919810
Copy link

m1919810 commented Jan 3, 2025

问题描述

多个服务器中观测和反馈到重启后机器界面(机器内放的东西)丢失,
例如我附属的堆叠机器,堆叠发电机,网络合成机的蓝图,网络量子存储的设置物品
一般需要久置物品于一个槽位,机器只需要读取不需要替换的槽位非常容易丢东西(量子存储尽管每个sft会替换中间物品(if hasViewer),但也会小概率丢失)
这种是什么造成的?机器需要手动执行保存么?机器尝试频繁replaceExistingItem会缓解这些问题吗?

问题复现率

低偶发

复现步骤

未知,在重启后随机发生

服务端类型

Paper

Minecraft 版本

1.20.x

Slimefun 版本

Slimefun 2024.09

其他插件信息

NetworksExpansion v2.1(构建站final version)
LogiTech v1.0.3(

补充信息

其他插件没有观察到,但是我觉得那是因为玩家很少用其他的进行物品存储

@m1919810 m1919810 added the 🐞 Bug 抓虫子 label Jan 3, 2025
@m1919810
Copy link
Author

m1919810 commented Jan 3, 2025

以及这个令人感到迷惑的保存机制
为什么要使用地址比较?
机器可以只进行getItemInSlot和setItemMeta,但是这样就无法触发该槽位的保存

@StarWishsama
Copy link
Member

怀疑重启时此类特殊节点读写 inv 快照可能有问题,有空搞个 debug log 看看

@m1919810
Copy link
Author

m1919810 commented Jan 3, 2025

怀疑重启时此类特殊节点读写 inv 快照可能有问题,有空搞个 debug log 看看

运行中有定时保存吗
不太记得了
等我考完了反正得把这个修了,隔几天就来一个跟我哭诉丢机器的烦死了

@m1919810
Copy link
Author

m1919810 commented Jan 3, 2025

啊 顺便加一下 我认为无尽存储也是因为这个原因而频繁丢失 但是显然无尽存储丢失频率比网络的要高.
他总不可能是运行到一半突然没了吧

@m1919810
Copy link
Author

m1919810 commented Jan 3, 2025

以及这个令人感到迷惑的保存机制 为什么要使用地址比较? 机器可以只进行getItemInSlot和setItemMeta,但是这样就无法触发该槽位的保存

这只是我顺便吐槽一下和该issue无关,我自己的附属里已经增加了充分多的replaceExistingItem保证肯定能保存
CraftItemStack可以instance不同而handle相同(指mirror),通过一个instance进行setItemMeta可以直接"同步"到另一个上

@JWJUN233233
Copy link

以及这个令人感到迷惑的保存机制
为什么要使用地址比较?
机器可以只进行getItemInSlot和setItemMeta,但是这样就无法触发该槽位的保存

如果比较物品数据会很消耗性能 在我的sfae可以看出来 为此我记得加了个新的方法来强制保存数据 也可以将物品clone然后set

@m1919810
Copy link
Author

以及这个令人感到迷惑的保存机制
为什么要使用地址比较?
机器可以只进行getItemInSlot和setItemMeta,但是这样就无法触发该槽位的保存

如果比较物品数据会很消耗性能 在我的sfae可以看出来 为此我记得加了个新的方法来强制保存数据 也可以将物品clone然后set

保存又不是频发的,你就算全部物品栏都做一遍比较最多也不会超过10秒钟 我觉得的

@m1919810
Copy link
Author

今日在别的服玩耍,偶然间发现我用于测试的充电台槽位在重启后多了东西,输入和输出都多了一把我不小心搁进去的剑(可能和我用的某些离谱刷物方法有关)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🐞 Bug 抓虫子
Projects
None yet
Development

No branches or pull requests

3 participants