跳到主要内容

常见问题

现在货币应该写在哪里

当前版本已经把统一货币定义入口收敛到 MatrixLib

plugins/MatrixLib/Economy/currency.yml

运行时会同步到:

  • plugins/MatrixShop/Economy/currency.yml
  • plugins/MatrixStorage/Economy/currency.yml

推荐写法是引用货币 key,而不是在每个业务配置里重复写整段货币逻辑。

优先级如下:

  1. 商品级
  2. 商店级
  3. 模块级
  4. 默认回退 vault

如果你在改:

  • SystemShop:可写商品级 currency
  • PlayerShop / GlobalMarket / Auction / Transaction:优先写商店级 Currency.Key
  • ChestShop:写模块级 Currency.Key
  • Cart / Record:不需要配置货币

为什么改了 shops/*.yml 文件名后,原来的入口和数据不见了

因为现在的 shopId 就是文件名。对这些模块来说,改文件名相当于改了运行时作用域:

  • player-shop
  • global-market
  • auction
  • transaction

以下模块当前不依赖 shops/*.yml 作为主入口:

  • chestshop
  • cart
  • record

/ms open <id> 打不开或提示歧义怎么办

如果多个模块里出现了同名 shopId,就不要再用短写法,直接改成显式前缀:

/ms open playershop:default
/ms open auction:default

数据库明明配了,为什么还是走文件后端

先执行:

/matrixshopadmin status

然后重点看:

  • Configured data backend
  • Active data backend
  • Data backend reason

只要 JDBC 初始化失败,插件就会自动回退到文件后端。

Redis 能不能当主存储

不能。当前代码只会把 Redis 配置显示在状态信息里,不会把主数据层切到 Redis。

为什么切换独立命令绑定后,reload 不生效

因为独立命令注册只在插件启动时执行。改这些字段后需要重启:

  • Bindings.Commands.Register
  • 独立命令关键字本身

为什么 /cart/record 能直接使用,但不需要 shops/*.yml

因为这两个模块当前已经改成“模块级入口 + UI 文件”模型:

  • Cart/settings.yml + Cart/ui/*.yml
  • Record/settings.yml + Record/ui/*.yml

它们仍然支持独立命令和帮助输出,但不再通过 shops/*.yml 划分主入口。

SystemShop 为什么没有数据库表

因为当前 SystemShop 是纯配置驱动模块,不依赖 JDBC 运行表。真正大量落表的是拍卖、市场、玩家商店、购物车、箱店和记录系统。

MatrixShop 会不会发送遥测数据

会。当前版本集成了 bStats,但只发送聚合级的配置和模块统计,不发送玩家交易明细或敏感配置。

详细说明见: