Skip to content

主配置 config.yml

plugins/GTDungeonTeam/config.yml 控制队伍、体力、掉落、竞拍、经验、存储、代理和界面。副本本身不写在这里,副本固定放在 dungeons/ 文件夹。

修改后执行:

text
/gdt reload

存储、代理、经济、客户端 UI 这类加载顺序相关的内容,正式服建议完整重启一次。

队伍 team

yaml
team:
  default-max-players: 4
  default-name: "<leader>的队伍"
  default-description: "欢迎加入队伍。"
  default-public: true
  default-allow-apply: true
  default-allow-pvp: false
  default-random-distribution: false
  pvp-damage-in-dungeon: false
  invite-expire-seconds: 60
  application-expire-seconds: 45
  max-applications: 6
字段作用
default-max-players新队伍默认人数上限
default-name新队伍默认显示名,支持 <leader>
default-description新队伍默认介绍
default-public新队伍是否默认公开
default-allow-apply是否默认接收入队申请
default-allow-pvp队伍是否默认允许队友伤害
default-random-distribution队伍是否默认开启掉落分配开关
pvp-damage-in-dungeon副本内是否允许队伍 PVP 逻辑生效
invite-expire-seconds邀请过期时间
application-expire-seconds入队申请过期时间
max-applications单个队伍最多保留多少条申请

队伍 ID 和队伍显示名是两回事。队伍 ID 用于内部索引、跨服同步、公开房间操作;队伍显示名给玩家看,队长可以改。

公开房间

yaml
team:
  public-room:
    enabled: true
    quick-join: true
字段作用
enabled是否开放公开房间列表
quick-join是否允许 /gdt rooms quick 快速加入

公开房间不是强制进队。队伍开启申请时,玩家会提交入队申请;队伍关闭申请或条件不满足时,会收到失败提示。

入队条件模板

yaml
team:
  join-requirements:
    templates:
      power:
        name: "战斗力"
        placeholder: "%player_zhandouli%"
        default-operator: ">="
        description:
          - "限制申请者战斗力。"
      job:
        name: "职业"
        placeholder: "%player_job%"
        default-operator: "="
        description:
          - "限制申请者职业。"

这里是服主给队长准备“可选条件”。队长在游戏里决定要不要启用、比较符是什么、值填多少。

字段作用
name玩家看到的条件名称
placeholder检查申请者时读取的 PAPI
default-operator队长只输入值时使用的默认比较符
descriptionGUI 说明文字

可用比较符:

text
>= <= > < = == != contains !contains

中文输入也能识别一部分:

text
大于 大于等于 小于 小于等于 等于 不等于 包含 不包含

职业、阵营、称号这类文本条件,默认比较符用 =。战力、等级、转生次数这类数值条件,默认比较符用 >=

副本默认适配器

yaml
dungeon:
  default-provider: command

当副本文件没写 provider 时,会使用这里的默认值。新服测试建议先用 command,流程通了再换成真实副本适配器。

体力 stamina

yaml
stamina:
  enabled: true
  max: 120
  initial: 120
  recover-amount: 1
  recover-seconds: 60
字段作用
enabled是否启用体力
max体力上限
initial玩家首次记录时的初始体力
recover-amount每次恢复多少体力
recover-seconds每隔多少秒恢复一次

maxinitialrecover-amount 支持变量和公式:

yaml
stamina:
  max: "{calc:120+%player_level%*2}"
  initial: "<stamina_max>"
  recover-amount: "{calc:1+%vip_level%}"
  recover-seconds: 60

<stamina_max> 是当前计算出的体力上限。恢复量结果小于 0 时会按 0 处理。

战斗统计 stats

yaml
stats:
  damage-enabled: true

开启后插件会记录副本中的队伍伤害,用于结算页、DPS 展示、HUD 或客户端 UI 显示。

掉落分配 loot

yaml
loot:
  enabled: true
  mode: random
  require-team-toggle: true
  require-active-run: false
  same-world-only: true
  include-picker: true
  announce: true
字段作用
enabled总开关
mode分配模式
require-team-toggle是否要求队伍自己的掉落分配开关已开启
require-active-run是否必须在副本运行中才接管掉落
same-world-only只分给同世界在线队员
include-picker拾取者是否也参与分配
announce是否通知队伍成员

mode 可填:

效果
random在线候选队员随机获得
round_robin轮流获得
leader优先给队长
picker给拾取者
off不接管掉落

普通组队服可以保持:

yaml
loot:
  require-active-run: false

这样没有副本插件时也能使用队伍掉落分配。

掉落黑名单

yaml
loot:
  blacklist:
    materials: []
    lore-keywords:
      - "绑定"
      - "限定"

匹配黑名单的物品不会被队伍分配接管。适合绑定物品、任务物品、不可交易物品。

materials 写原版材料名:

yaml
materials:
  - BARRIER
  - COMMAND_BLOCK

lore-keywords 会去掉颜色后做包含匹配。

经验共享 exp-share

yaml
exp-share:
  enabled: false
  require-active-run: false
  same-world-only: false
  include-earner: false
  announce: false
  proportions:
    default: 0
    2: 5
    3: 10
    4: 15
字段作用
enabled是否启用经验共享
require-active-run是否必须在副本中才共享
same-world-only只给同世界队友
include-earner获得经验的人是否也拿共享经验
proportions按队伍人数配置共享百分比

示例:队伍 3 人时,玩家获得 100 点经验,其他在线队友各获得 10 点额外经验。

yaml
exp-share:
  enabled: true
  include-earner: false
  proportions:
    3: 10

副本适配器 providers

yaml
providers:
  btdungeons:
    prefer-api: true
  command:
    enabled: true

command 是兜住流程用的适配器,适合测试、临时副本、只执行命令的玩法。真实副本插件能用 API 时,优先走 API。

查看当前适配器状态:

text
/gdt providers

存储 storage

yaml
storage:
  mode: auto
说明
local本地存储,适合单服测试
mysql使用 MySQL
redis使用 Redis
auto按 Redis、MySQL、local 的顺序选择可用存储

单服测试用 local。跨服网络推荐 MySQL 或 Redis,多个子服必须使用同一套存储。

MySQL

yaml
mysql:
  enabled: false
  host: 127.0.0.1
  port: 3306
  database: gtdungeonteam
  username: root
  password: ""
  params:
    useSSL: false
    serverTimezone: Asia/Shanghai
    characterEncoding: utf8
  pool:
    maximum-pool-size: 8

一般不用手写完整 JDBC。确实需要自定义时,可以额外配置旧式 mysql.jdbc-url,插件会优先使用它。

Redis

yaml
redis:
  enabled: false
  host: 127.0.0.1
  port: 6379
  password: ""
  database: 0

Redis 适合跨服队伍状态和短期请求。生产服注意给 Redis 设置密码,并限制外网访问。

代理 proxy

yaml
proxy:
  enabled: false
  type: none
  server-id: lobby-1
  custom-channel: "gtdungeonteam:main"
  legacy-custom-channel: "GTDungeonTeam"
字段作用
enabled是否启用跨服桥
typevelocitybungeewaterfallnone
server-id当前子服 ID,要和代理服务器名对应
custom-channel现代插件消息通道
legacy-custom-channel旧版本插件消息通道

每个子服的 server-id 必须不同,且和副本文件中的 target-server 对得上。

跨服开本 cross-server

yaml
cross-server:
  auto-start-on-target: true
  pending-expire-seconds: 120
  join-delay-ticks: 40
字段作用
auto-start-on-target队员到达目标服后自动消费开本请求
pending-expire-seconds跨服开本请求过期时间
join-delay-ticks玩家进目标服后延迟多少 tick 再尝试开本

跨服开本流程见 跨服与存储

客户端界面 ui

yaml
ui:
  default: vanilla
  prefer-client-ui: true
  client-views:
    main: "gtdungeonteam/main"
    team: "gtdungeonteam/team"
    rooms: "gtdungeonteam/rooms"
    dungeons: "gtdungeonteam/dungeons"
    result: "gtdungeonteam/result"

default 可填:

text
vanilla
paiui
ax
dragoncore
kongcore
dialog

prefer-client-ui: true 时,插件先尝试客户端 UI,失败再回原版 GUI。各引擎详细配置在 client-ui/providers.yml

消息前缀

yaml
messages:
  prefix: "&8[&3GTDungeonTeam&8] &r"

所有普通提示都会带这个前缀。颜色符号支持 &