存储与跨服
SQLite、MySQL、Redis、Velocity 与多子服配置一致性。
LiTitle 把“玩家资料保存”和“聊天消息跨服”拆成两层:SQLite 或 MySQL 保存称号与昵称数据,Redis 或代理消息通道负责跨服聊天。
单服:SQLite
storage:
type: sqlite
sqlite:
file: "data.db"
SQLite 不需要外部数据库,适合单个生存服。定期备份 plugins/LiTitle/data.db 与配置目录。
群组服:MySQL
storage:
type: mysql
mysql:
host: "127.0.0.1"
port: 3306
database: "lititle"
username: "lititle"
password: "请替换为强密码"
params: "?useSSL=false&allowPublicKeyRetrieval=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai"
所有子服连接同一个数据库。MySQL 同步的玩家数据包括:
- 已拥有称号与当前佩戴称号。
- 聊天颜色。
- 中文昵称与英文彩色昵称。
- 自定义称号等玩家侧资料。
MySQL 不会同步 titles.yml、titles/、shop_titles/ 与 GUI 等本地配置。每个子服必须部署同一套称号 ID 和展示规则。
Redis 与代理
Redis 用于跨服聊天通信;Velocity 是推荐代理端,不需要 BungeeCord。按当前版本配置启用 Redis,并保证所有子服的频道名称、权限与格式能够对应。
每个子服应设置独立名称:
chat:
server-name: "生存服"
资源服可改为 资源服,副本服可改为 副本服。聊天格式中的 %server% 会显示消息来源。
推荐上线检查
- 两个测试账号分别进入不同子服。
- 在 A 服获得并佩戴称号,切换到 B 服确认所有权和佩戴状态。
- 分别修改中文昵称、彩色英文昵称和聊天颜色,切服确认。
- 测试全服频道与管理频道的发送、收听和权限隔离。
- 暂停 Redis 或代理链路,确认故障只影响跨服聊天,不破坏玩家数据。
- 检查各子服称号配置哈希或版本,防止同一 ID 显示成不同称号。
切换存储或 Redis 配置后完整重启,不依赖热重载更换数据库连接。