搜索

存储与跨服

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% 会显示消息来源。

推荐上线检查

  1. 两个测试账号分别进入不同子服。
  2. 在 A 服获得并佩戴称号,切换到 B 服确认所有权和佩戴状态。
  3. 分别修改中文昵称、彩色英文昵称和聊天颜色,切服确认。
  4. 测试全服频道与管理频道的发送、收听和权限隔离。
  5. 暂停 Redis 或代理链路,确认故障只影响跨服聊天,不破坏玩家数据。
  6. 检查各子服称号配置哈希或版本,防止同一 ID 显示成不同称号。

切换存储或 Redis 配置后完整重启,不依赖热重载更换数据库连接。