跳到主要内容

数据迁移

数据迁移模块用于从旧绑定插件的 lore 中读取物主信息,并转换为 SakuraBind 的 NBT 绑定。

启用后会定时扫描在线玩家背包和打开的容器。建议迁移完成后关闭该模块。

配置文件

modules/migration.yml
# 数据迁移模块, 从其他lore类型的绑定插件中读取数据重新绑定
# 启用将会定时扫描玩家背包和打开的容器
readme: {}

# 是否启用
enable: false

# 扫描的周期, 单位tick
scanning-period: 10

# 是否在主线程扫描, 如果你的服务端在扫描时报错请开启此选项
is-sync-scanning: false

# 从物品中读取lore,将其转换为SakuraBind的物品, 正则表达式
# 默认为: '\[绑定]: (.*)' 可以匹配lore: '[绑定]: Iseason', 如果lore中有符号请在前面加上'\' 请将代表玩家名的地方使用()包围
# 在这测试你的正则表达式: https://www.bejson.com/othertools/regex/
match-lore:
- '\[绑定]: (.*)'

# 匹配lore前先将颜色代码删除,这样 match-lore 里的正则表达式不用考虑颜色代码的影响
remove-color: false

# lore中不是玩家名,而是玩家的uuid
lore-is-uuid: false

# 如果检测不到这个玩家的数据, 强行绑定物品
# 如果安装了AuthMe将尝试通过AuthMe获取UUID
# 如果没有则使用该名字对应的离线UUID
force-bind: false

# 删除匹配到的lore
remove-lore: true

# 不绑定,如果打开了,且上面也是打开的,那么就是删除旧的绑定lore的效果
dont-bind: false

# 匹配到的设置(settings.yml),留空或者填写错误都会使用常规匹配
bind-setting: ''

# 物品读取设置的缓存个数,建议值是 玩家背包格子数量*玩家数量, 重启生效
cache-size: 2000

示例

旧 lore 为 [绑定]: Iseason,迁移到 SakuraBind 并删除旧 lore:

modules/migration.yml
enable: true
match-lore:
- '\[绑定]: (.*)'
remove-color: false
lore-is-uuid: false
remove-lore: true
dont-bind: false
bind-setting: ''

如果旧 lore 带有颜色代码,建议开启:

remove-color: true

开启后,插件会在执行 match-lore 正则匹配前先去掉颜色代码。这样正则只需要按玩家实际看到的文字写,例如仍然使用 '\[绑定]: (.*)',不需要把颜色代码写进正则。

如果旧 lore 中保存的是 UUID:

lore-is-uuid: true

如果只想删除旧 lore,不写入 SakuraBind 绑定:

remove-lore: true
dont-bind: true

bind-setting 填写 settings.yml 的匹配器键。留空或填写错误时,插件会按目标物品自动匹配设置。

升级旧配置

remove-color 是新配置项。旧版本已经生成的 modules/migration.yml 可能没有这一行,需要手动补到 match-lore 后面。