跳到主要内容

核心概念

理解下面几个概念后,SakuraBind 的配置会清晰很多。

绑定物主

插件把物主 UUID 写入物品 NBT,默认路径是:

config.yml
nbt-path-uuid: sakura_bind_uuid

只要这个 NBT 存在,物品就会被视为绑定物品。绑定 lore 只是显示效果,不是判断绑定的唯一依据。

绑定设置

每个绑定目标都会读取一个“绑定设置”。设置来源有两层:

来源作用
global-setting.yml全局默认设置,所有物品都会继承
settings.yml用匹配器识别某类物品,并覆盖全局同名设置

例如 settings.yml 中只写了:

settings:
item-deny:
drop: true

那么这个匹配器只覆盖 item-deny.drop,其他未写的设置仍读取 global-setting.yml

匹配器

匹配器在 settings.ymlmatchers 下配置,用来识别某类物品。

matchers:
demo:
match:
material: '.*_SWORD'
name-without-color: '.*神剑.*'
settings:
auto-bind:
enable: true
onClick: true

match 下多个条件是“同时满足”的关系。上面的例子表示:材质是剑,并且去色后的自定义名包含 神剑

匹配器按文件顺序检测,先匹配到的先生效。常用、简单的匹配器放前面,复杂匹配器放后面。

@ 取反规则

布尔配置键后面加 @,表示物主读取相反值。

item-deny:
click@: true

效果:

玩家读取结果行为
非物主true禁止拿走
物主false允许拿走

常见写法:

item-deny:
drop@: true
click@: true
pickup@: true

这表示非物主不能丢弃、拿走、捡起,物主可以正常操作。

权限覆盖

开启后,权限可以覆盖配置:

config.yml
enable-setting-permission-check: true

权限优先级从高到低:

  1. sakurabind.setting.<匹配器名>.<配置键>.true|false
  2. sakurabind.settings.<配置键>.true|false
  3. settings.yml
  4. global-setting.yml

示例:

sakurabind.setting.vip_sword.item-deny.drop.false
sakurabind.settings.item-deny.click.true

sakurabind.bypass.all 不依赖这个开关,拥有后会跳过绑定限制和扫描。

送回队列

物品丢失、掉虚空、被扫描器发现、被召回时,会通过 send-back-queue 送回物主。

config.yml
send-back-queue:
- player
- ender-chest
- database

插件会按顺序尝试。当前一种方式放不下或不可用时,剩余物品继续尝试下一种。

途径条件
player玩家在线、存活、背包有空间
ender-chest玩家在线,末影箱有空间
database数据库连接正常,且 send-back-database: true
GlobalMarketPlus安装对应插件并在队列中配置
SweetMail安装对应插件并在队列中配置

高级服建议保留 database 作为兜底。

监听器与模块

物品绑定默认可用。下面这些功能需要额外开关:

功能开关是否通常需要重启
方块绑定config.yml block-listener
实体绑定config.yml entity-listener
绑定/解绑道具modules/bind-item.yml enable
唯一物品防刷modules/unique-item.yml enable
自动解绑模块modules/auto-unbind.yml enable否,缓存大小改动需重启
数据迁移模块modules/migration.yml enable

配置注释里写“重启生效”的,以配置注释为准。