Skip to content

1. 为什么 HNWarehouse 启动不了?

先确认:

  • HNCore 是否已安装并正常启动
  • 当前服务端是否为 Paper 1.20.1
  • Java 版本是否为 17

当前 HNCore 是硬依赖,不是可选依赖。


2. 为什么仓库明明存在,但玩家打不开?

当前常见原因有:

  • 仓库还没购买
  • 仓库还没解锁
  • use-requirements 当前不满足
  • 仓库处于锁定状态但 visible-when-lockedfalse

建议先执行:

text
/hnwarehouse inspect <玩家> access

再看具体锁定原因。


3. 为什么奖励没有进到预期仓库?

优先检查:

  • capture.reward-enabled 是否开启
  • capture.reward-default-warehouse 是否正确
  • 目标页面是否允许 reward 来源
  • item-admission 是否命中 blacklist 或未命中 whitelist

排查命令:

text
/hnwarehouse routecheck <玩家> <仓库> reward

4. 为什么自动收纳没生效?

当前要同时满足:

  • 全局 capture.auto-collect-enabled: true
  • 目标页面 auto-collect: true
  • 目标页面 allowed-sources 包含 auto-collect

另外要注意:当前自动收纳更多还是“路由骨架”,并不是所有监听与接管都已完整落地。


5. 为什么 routecheck 显示有拦截仓库?

这通常不是坏事,而是说明当前调试信息是完整的。

被拦截的常见原因包括:

  • 访问条件不满足
  • 仓库未解锁
  • item-admission 命中 blacklist
  • 物品没有命中 whitelist
  • 当前来源不允许进入对应页

routecheck 的意义就是把这些原因提前展示出来。


6. 为什么 withdraw 提取失败?

优先检查:

  • 玩家是否在线
  • 仓库 ID / 页面 ID / 条目 ID 是否正确
  • 目标玩家背包是否能回填
  • 当前仓库是否仍处于可访问状态

排查建议:

text
/hnwarehouse inspect <玩家> detail

先确认条目确实存在,再执行 withdraw


7. 为什么我改了仓库文件,但效果不对?

先确认两件事:

  1. 你改的是 plugins/HNWarehouse/warehouses/*.yml,而不是仓库源码模板
  2. 改完后是否执行了:
text
/hnwarehouse reload

如果只是改了源码里的 src/main/resources/...,但线上目录里的实际配置没变,运行时当然不会生效。


8. 为什么配置了 placeholder / economy 条件,但一直失败?

分别确认:

  • placeholder 条件:PlaceholderAPI 是否已安装
  • economy 条件:HNEconomy 是否已安装并可用

再用:

text
/hnwarehouse status

看 Hook 状态是否正常。


9. 为什么 data/players 里没有新的玩家 YAML 文件?

这是正常现象。

当前 HNWarehouse 的主存储后端已经是数据库,旧:

text
plugins/HNWarehouse/data/players/

主要用于历史版本升级时的 YAML 迁移来源。

也就是说:

  • 新版本不再把它当成正式玩家主档目录
  • 日常排查应优先看数据库状态、statusinspect
  • 如果你是从旧版本升级,原始 YAML 可能仍然保留,但它不代表当前正式运行时主数据源

10. 为什么短时间连续 inspect 离线玩家时结果看起来一致?

当前离线摘要查询有短 TTL 缓存

这意味着:

  • 短时间内重复查看同一个离线玩家摘要,可能会复用缓存结果
  • 写入发生后会主动失效缓存
  • 这主要是为了减少短时间重复离线查询对数据库的压力

如果你怀疑结果没更新,先确认:

  • 当前目标是不是离线玩家
  • 是否刚好还处于摘要缓存时间窗内
  • 是否已经发生写入并触发缓存失效

11. 玩家退出时会不会卡一下?

当前 join / quit / autosave 相关的 Session 生命周期已经按异步保存 / 异步卸载语义处理。

这意味着:

  • 玩家退出时不再应该被简单理解成“主线程上同步整档落盘”
  • 插件关闭仍然会走安全保存流程
  • 管理员执行 reload 时,重载本身已经切到后台执行,但仍会保留安全收尾语义
  • 如果你看到偶发写入压力,更应优先排查数据库负载,而不是默认归因到“退出就同步卡顿”

12. 可以直接手改玩家 YAML 吗?

可以读,但不建议作为常规操作。

更推荐:

  • 先用 status / inspect / routecheck 排查
  • 再用 unlockforce / unlockreset / withdraw 做修复
  • 最后才考虑人工核对数据库或旧 YAML 迁移源

因为当前正式状态不仅包含条目,还包含:

  • 购买状态
  • 解锁状态
  • 页扩容状态
  • 运行时 Session 状态
  • 数据库中的分层持久化结构

旧 YAML 现在更适合作为历史迁移参考,而不是当前主运维入口。


13. 当前版本是否已经完整接管玩家物品流?

还没有。

当前已经具备:

  • 仓库领域模型
  • 统一投递路由
  • 提取与查询能力
  • 基础 GUI 与命令能力

但以下能力仍未完整接入:

  • 掉落拾取接管监听器
  • 死亡掉落改写
  • 原版背包热栏投影
  • 更完整的 InventoryClick / InventoryDrag 接管策略

所以更准确的理解是:

当前 HNWarehouse 已经是可用的仓库系统骨架,但还不是“已完全接管所有物品流转”的最终态。

HN 系列插件文档