跨服设置
所有子服连到 同一个 MySQL / MariaDB 数据库,玩家在哪个子服打开都是同一个行囊。
database:
type: mysql # 或 mariadb
host: 127.0.0.1
port: 3306
database: starbag
username: root
password: '你的密码'
table-prefix: 'sb_'
pool-size: 6
server:
id: 'survival' # 每个子服填不同的名字
lease-seconds: 30
server.id留空时第一次启动自动生成并写回config.yml;两个子服不能用同一个名字;- 内置 HikariCP 连接池(预编译快取、批量写入、自动保活),不需要额外安装驱动(Paper 自带)。
租约:同一时间只在一个子服使用
- 打开行囊的子服拿下租约,每隔
lease-seconds / 3秒续约; - 关闭行囊 3 秒后、或玩家下线时立刻还回去;
- 别的子服在这段时间打开会提示「正在子服 xxx 使用中,请稍候几秒再打开」;
- 子服当机:租约最多
lease-seconds秒后失效,那个子服重启时也会立刻释放。管理员也可以/bag unlock <玩家>强制释放。
玩家通过 BungeeCord / Velocity 切换子服时,离开的子服在玩家下线那一刻就还回租约,所以到了新子服马上就能打开。
Minecraft 版本
物品以 Paper 的格式存进数据库,较新版本存入的物品较旧的服务器读不出来。共用行囊的子服请使用同一个 Minecraft 版本。 万一读不出来,那一格会显示「无法读取的物品」并锁住(不会被改动或删除),换回较新的子服就能正常取出。
和同步插件一起用
如果你用 CloudSync、HuskSync 之类的插件同步玩家物品栏,星月行囊会自动配合它的存档方式做当机保护,见 当机保护。