Skip to content

排错与测试

这一页按实际测试顺序排。先确定插件启动,再看队伍,再看副本,再看跨服和客户端 UI。

启动后先看三条命令

text
/gdt status
/gdt providers
/gdt help

/gdt status 看总状态。
/gdt providers 看副本适配器。
/gdt help 看命令是否注册正常。

插件没有启用

先看控制台完整报错,不要只看最后一行。

常见方向:

报错处理
找不到 GTCore安装 GTCore,确认先于 GTDungeonTeam 启用
找不到 Kotlin 类使用新版构建包,确认没有被错误混淆或删库
1.12 出现 InventoryView 类/接口错误使用兼容构建,GUI 不应直调高版本字节码
依赖插件红色先修依赖插件
Java 版本不对1.12 常用 Java 8,高版本常用 Java 17

/gdt 能打开,但界面是原版 GUI

说明客户端 UI 没打开成功,插件回到了原版 GUI。

检查:

yaml
ui:
  default: paiui
  prefer-client-ui: true

再看:

text
plugins/GTDungeonTeam/client-ui/providers.yml

确认对应 provider 的 enabledtrue

PaiUI 页面没有更新

检查源文件:

text
plugins/GTDungeonTeam/client-ui/paiui/webgui/gtdungeonteam/

执行:

text
/gdt reload

如果还是旧页面,检查是否同步到了 PaiUI 目录:

text
plugins/PaiDaXingPlugins/advanced/WebGui/layout/gtdungeonteam/
plugins/PaiUI/advanced/WebGui/layout/gtdungeonteam/

看配置:

yaml
providers:
  paiui:
    mirror-webgui: true
    mirror-overwrite-newer-source: true

如果你直接改 PaiUI 目标目录,而 GTDungeonTeam 源文件没改,重载时可能被覆盖。

PaiUI 点击无效

先看 client-ui/providers.yml

yaml
providers:
  paiui:
    action-route: "gtdungeonteam.action"
    data-route: "gtdungeonteam.data"
    sync-on-open: true

再看页面是否引用:

text
ui.js
ui.css

点击不生效通常是:

  • 页面没有发 action-route。
  • PaiUI 服务端桥没有启动。
  • 页面缓存没清。
  • 改的是目标目录,重载又被源目录覆盖。
  • 玩家客户端没有对应 PaiUI 能力。

原版 GUI 物品能拿出来

这是严重问题。正常情况下,插件自己的 GUI 点击和拖拽都会被取消。

排查:

  1. 确认用的是最新构建。
  2. 看控制台是否有 InventoryClickEvent 报错。
  3. 如果报错里有 InventoryView,说明版本兼容包不对。
  4. 如果没有报错,看是否是其他插件在高优先级改了事件。
  5. 临时关掉其他背包插件测试。

没有副本显示

检查:

text
plugins/GTDungeonTeam/dungeons/

至少要有一个 .yml,并且有:

yaml
dungeon:
  id: forest
  provider: command

重载:

text
/gdt reload
/gdt providers
/gdt dungeon list

如果 /gdt providers 显示目标适配器不可用,先检查副本插件是否启用。

队长不能选择副本

如果副本配置了入口限制:

yaml
entry:
  require-open-command: true

队长必须先从入口执行:

text
/gdt dungeon open 副本ID

不能直接从列表里跳过详情选择。

开始副本失败

按提示逐条查:

提示处理
请先创建或加入队伍玩家还没有队伍
只有队长可以开始副本换队长操作
请先选择副本先打开副本详情并选择
未找到副本配置dungeons/ 里没有该 ID
人数不足/过多调整队伍人数或副本人数限制
未满足进入条件检查 PAPI 和 requirements.list
体力不足检查体力配置和玩家体力
经济扣除失败检查 GTCore 经济或 Vault
适配器拒绝启动看对应副本插件自己的配置和控制台

体力显示 0/0

检查:

yaml
stamina:
  enabled: true
  max: 120
  initial: 120

如果用了公式:

yaml
max: "{calc:120+%player_level%*2}"

确认 %player_level% 能被 PlaceholderAPI 正常解析。PAPI 返回空或非数字时,公式可能算成 0。

入队条件不生效

先看模板:

yaml
team:
  join-requirements:
    templates:
      power:
        name: "战斗力"
        placeholder: "%player_zhandouli%"
        default-operator: ">="

再让队长查看模板:

text
/gdt team req templates

设置条件:

text
/gdt team req add power >= 50000

如果申请者明明满足但失败,先用 PAPI 测申请者自己的变量值。

掉落分配不生效

检查:

yaml
loot:
  enabled: true
  mode: random
  require-team-toggle: true
  require-active-run: false

如果 require-team-toggle: true,队长还要执行:

text
/gdt team loot on

如果 require-active-run: true,普通野外组队不会分配,必须在副本运行状态里。

如果物品 Lore 含黑名单关键词,也不会分配:

yaml
blacklist:
  lore-keywords:
    - "绑定"

竞拍不触发

检查:

yaml
loot:
  auction:
    enabled: true
    require-active-run: true
    rules:
      rare:
        include:
          lore-keywords:
            - "史诗"

常见原因:

  • enabled 没开。
  • require-active-run: true,但当前不在副本中。
  • 物品没有命中 nameslore-keywordsnbt-keywordsmaterials
  • 掉落分配本身没开启。
  • 队伍没有成员或候选成员都不在线。

竞拍扣款失败

金币模式先看是否有 GTCore 经济或 Vault。

自定义货币先看:

yaml
balance: "%playerpoints_points%"
take-actions:
  - "[console] points take <player> <amount>"
give-actions:
  - "[console] points give <player> <amount>"

检查:

  • balance 返回的是数字。
  • 扣款命令能在控制台手动执行。
  • <amount> 不要带中文单位。
  • 货币插件命令权限正常。

跨服不启动

先查:

text
/gdt status

确认:

  • 存储不是各服独立 local。
  • 所有子服用同一套 MySQL 或 Redis。
  • proxy.enabled: true
  • proxy.type 正确。
  • server-id 和代理端服务器名一致。
  • 副本文件 target-server 写的是目标副本服。
  • 目标服也安装 GTDungeonTeam。
  • 目标服 /gdt providers 里对应适配器可用。

重载没生效

/gdt reload 会读取大部分配置,但下面情况建议重启:

  • 刚改数据库连接。
  • 刚改代理类型。
  • 刚安装或卸载副本插件。
  • 刚安装或卸载客户端 UI 插件。
  • 修改了服务端核心或 Java。

客户端 UI 文件改完后,除了 /gdt reload,玩家也要关闭并重新打开界面。

建议的上线前测试表

项目结果
/gdt 能打开
创建队伍正常
邀请、接受正常
公开房间能看到队伍
入队申请能同意和拒绝
队伍名和介绍能修改
入队条件能拦住不满足玩家
副本详情页能打开
副本展示掉落显示正确
开始副本能扣体力
开始副本能扣金币
开始副本能扣门票
掉落分配不会分配黑名单物品
竞拍物品能进入竞拍池
出价会刷新倒计时
竞拍胜利后能扣款、给物品、分红
跨服能把队伍送到目标服
目标服能自动启动副本
结算页能显示结果