Skip to content

config.yml

config.yml 是 AchieveMaster 的总控台。存储、跨服同步、全局变量、背包扫描、默认奖励、GUI 默认值和旧版区域兼容配置,都是从这里起步。

先看最重要的几组

分组作用
settings调试、自动保存、重置扫描、玩家上线加载
storageSQLite / MySQL 存储与连接池
sync跨服同步开关与间隔
variables全局变量同步与即时落库
inventory-scan背包扫描频率与分批量
default-rewards默认音效、标题停留时间
gui主界面和分类界面的默认标题与大小
custom-regions老写法的自定义区域兼容段

settings

yaml
settings:
  debug: false
  auto-save-interval: 300
  reset-check-interval: 60
  load-on-join: true

几个关键点:

  • debug 会影响脚本、反射、函数加载等额外日志输出,排错时临时开。
  • auto-save-interval 是玩家数据自动保存间隔,单位秒。
  • reset-check-interval 是“哪些成就该重置了”的扫描周期,不是成就自己的重置规则。
  • load-on-join 开着时,玩家进服就会预加载数据。

storage

yaml
storage:
  type: SQLITE
  maintenance:
    enabled: true
    interval: 60
    vacuum-interval: 24
    cleanup-orphans: true
  mysql:
    host: "localhost"
    port: 3306
    database: "achieveMaster"
    username: "root"
    password: "password"

调整建议

  • 小服测试先用 SQLITE,最省事。
  • 正式服、多服共库、变量同步场景,直接上 MYSQL
  • cleanup-orphans 会清掉那些“配置里已经不存在,但数据库里还残留”的成就进度记录。

sync

yaml
sync:
  enabled: false
  interval: 30

这组是跨服数据同步的总开关。

如果你只是一台服,不开最稳。

如果你要做跨服协作,别只盯着这里,还要一起看:

  • storage.type
  • variables.sync-interval
  • variables.instant-sync

variables

yaml
variables:
  sync-interval: 40
  instant-sync: true

这组管的是全局变量同步,不是玩家普通进度。

按当前实现:

  • sync-interval 只在 MySQL 模式下有意义
  • instant-sync 开着后,变量修改会尽快写库,但会增加写入频率

适合用在:

  • 跨服共享状态
  • 龙核面板共享变量
  • 活动倒计时 / 世界状态

inventory-scan

yaml
inventory-scan:
  interval: 3
  batch-size: 10

这组会直接影响 INVENTORY_SCAN 触发器。

你可以这样理解

  • interval:每隔多少秒做一轮扫描
  • batch-size:每 tick 处理多少个玩家

如果你服里做了很多“是否持有某物品”的收集成就,这组参数会直接影响灵敏度和性能。

default-rewards

yaml
default-rewards:
  sound: "UI_TOAST_CHALLENGE_COMPLETE"
  title:
    fade-in: 10
    stay: 40
    fade-out: 10

这是奖励表现的全局默认值。

单个成就自己在 rewards: 里写了更具体的标题、音效、烟花时,会优先按成就自己的走。

gui

yaml
gui:
  main:
    title: "&8成就系统"
    size: 54
  category:
    title: "&8{category}"
    size: 54

这组更像 GUI 默认值;真正更细的样式还在 gui.yml 里。

如果你已经全面接管了 gui.yml,这里通常只需要保留最基础的默认项。

prefix

yaml
prefix: "&6[成就] &r"

这是主配置里的全局前缀定义。

实际服里更常用的聊天文案前缀,通常还是在 messages.yml 里统一维护。

custom-regions

yaml
custom-regions:
  spawn:
    world: "world"
    x1: -100
    y1: 0
    z1: -100
    x2: 100
    y2: 256
    z2: 100

这段是老写法兼容区。少量区域时还能用,但当前实现更推荐:

  • regions/ 文件夹里建独立区域文件

因为 regions/ 有这些优势:

  • 能拆文件
  • 能写多区域文件
  • 自带示例
  • 不会把主配置越堆越大

使用建议

  • 单服、测试服先用 SQLITE;多服再切 MYSQL
  • 背包扫描别盲目拉得太快,先按默认值跑一轮再看服里体感。
  • 需要排查脚本、反射、函数加载问题时,再临时打开 debug
  • custom-regions 只留少量兼容内容,真正长期维护的区域建议全转去 regions/

常见问题

切了 MySQL 以后还是不同服不同步

先检查:

  • storage.type 是否真的改成了 MYSQL
  • 两台服是不是连的同一个库
  • sync.enabled 是否开启
  • 你同步的是不是“全局变量”,而不是玩家本地临时状态

背包类成就触发很慢

优先看:

  • inventory-scan.interval
  • inventory-scan.batch-size
  • 在线玩家数量
  • 你是否同时配了太多高频背包扫描成就

改了区域配置没反应

如果你改的是 regions/ 目录里的文件,记得执行 /ach reload,而不是只改 config.yml

TQ Minecraft Server Plugin Docs