Skip to content

在量子存储中syncBlock在withdrawItem之前导致的刷物bug #136

@balugaq

Description

@balugaq

检查项目

  • 你使用的是从构建站下载的版本
  • 你已经检验过下载的文件的校验和,确认已完整下载文件
  • 你没有对下载的文件内容进行任何更改
  • 你已经寻找过已知问题列表,且没有找到相同的问题

问题描述

图为代码,上下执行顺序颠倒了,正确的应为:先执行 withdraw,再执行 syncBlock
https://github.com/SlimefunGuguProject/Networks/blob/master/src/main/java/io/github/sefiraat/networks/slimefun/network/NetworkQuantumStorage.java#L394
Image

复现步骤

Image 放置如图机器 ↓ Image

打开存储,将输出槽使用任意物品堵住,设置要刷取的物品,然后存入1个物品,如下
Image

打开网格,取出1个物品,再查看一次存储状态,如下。前后均为stored-amount:1,可证明刷物成功,此时重启服务器,存储中的物品恢复,同时自己背包有1个物品。

Image

刷取的数量为 单次操作取出物品前的已存储数量 - 单次操作取出物品后的已存储物品数量,在此案例中为 1 - 0 = 1 个刷取的物品

预期行为

修复代码执行顺序

服务器日志

No response

错误报告

No response

服务端软件

Paper

Minecraft 版本

1.20.1

Slimefun版本

2025.05-release

插件版本

Build 105

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions