-
Notifications
You must be signed in to change notification settings - Fork 1
Description
Describe the bug
1.MCBBS权限列表的缺漏
在MCBBS的帖子中,您漏给了一个权限ambershop.user.query,这将导致玩家无法正常使用,
不过此权限确实有在github里给出,只是MCBBS里漏给了,以下是我的留言

https://www.mcbbs.net/thread-877173-5-1.html
2.疑似数据库的异常
【具体问题】
这是个很奇怪的错误,(在有上述权限的情况下)部分账号设置的商店无法出售与收购,而另一部分设置的商店完全正常,
以下是具体复现方式:

图中两个商店都是【id为wxy168】的玩家设置的,一个是收购石头,一个是出售石头
您可以看到我手里拿的就是一模一样的石头,但两个商店无论是买还是卖,都提示“没有足够的物品可供出售”,收购箱子也是给的这一提示,并且库存数不会同时更新,简而言之就是名为wxy168的玩家,无法使用牌子商店(权限是有的)。

↑图中,查询模组显示箱子内有57石头,而木牌、左键点击都提示库存未0
但当使用【id为Saku_wuhen】的账号设置时,都可以正常购买与出售,没有出现问题。
且用Saku_wuhen账号建立商店,并转让所有者给wxy168,同样未有异常。
因此,我判断这是由数据库里的元数据引发的问题。
【复现与详细的排查】
后台并没有报错,在反馈之前,我们做了大量的对比测试,可以确认这不是权限组或OP的问题,
随后便查看数据库进行了对比测试,并最终发现了问题
(wxy168也是位程序员,是他帮忙找出的问题)


【可能的解决方案】
当前,我们找到了一个临时的解决方案,也找到了一个代码错误
临时解决方案:
创建商店的时候,箱子里只能放一个那个物品,成功后再塞入更多
(如此操作,先前不能使用商店的wxy168所创建的商店可以正常使用)
代码错误:

这里应该是itemType = copy.createSnapshot();,否则itemType.quantity仍然可能不是1
但是到了最后,我们仍未能想通为什么名为Saku_wuhen的用户(我)为什么可以正常使用商店。
Environment:
- ___aaaspongeforge-1.12.2-2838-7.1.8
- AmberShop 1.1.6
  
