config.yml
config.yml 是 AchieveMaster 的总控台。存储、跨服同步、全局变量、背包扫描、默认奖励、GUI 默认值和旧版区域兼容配置,都是从这里起步。
先看最重要的几组
| 分组 | 作用 |
|---|---|
settings | 调试、自动保存、重置扫描、玩家上线加载 |
storage | SQLite / 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.typevariables.sync-intervalvariables.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.intervalinventory-scan.batch-size- 在线玩家数量
- 你是否同时配了太多高频背包扫描成就
改了区域配置没反应
如果你改的是 regions/ 目录里的文件,记得执行 /ach reload,而不是只改 config.yml。