跳到主要内容

物品防刷

唯一物品模块会给绑定物品写入唯一标识,并在扫描时删除或截断超过允许数量的重复物品。

实验性功能

该功能仍处于实验阶段,不建议在生产环境直接用于高价值物品。启用前先在测试服验证。

启用方式

  1. modules/unique-item.yml 设置 enable: true,重启服务端。
  2. settings.yml 的目标匹配器中设置 module.unique-item
settings.yml
matchers:
unique-demo:
match:
name: 唯一物品
settings:
auto-bind:
enable: true
onClick: true
module:
unique-item: 1

module.unique-item 的含义:

含义
-1关闭该物品的唯一检查
0绑定时立刻删除
>0同一唯一键允许存在的最大数量

不可堆叠物品建议设置为 1,稳定性更高。

配置文件

modules/unique-item.yml
# 请注意!!! 该功能还在实验性阶段,不推荐在生产环境使用!!!
# 请注意!!! 该功能还在实验性阶段,不推荐在生产环境使用!!!
# 请注意!!! 该功能还在实验性阶段,不推荐在生产环境使用!!!

# 唯一物品, 物品防刷功能。这是一个独立的功能,关闭不会产生任何性能消耗
# 在物品第一次绑定时记录其数量和生成一个唯一的UUID,并检查所有玩家的物品栏、所有世界掉落物、方块中的数量, 超过的将会删除
# 开启功能后请在 settings.yml 中配置 unique-item 选项以启用
readme: ''

# 功能总开关,重启生效
enable: false

# 扫描频率,单位 tick
scanner-period: 10

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

# 唯一Id的NBT路径,'.'为分隔符
unique-nbt-path: SakuraBind_Unique

# 默认绑定新物品时使用随机的UUID标识
# 可以自定义随机标识以减少空间占用,但是请不要太短以免重复
random-template:
# 自定义随机标识功能开关
enable: false
# 随机的字符库, 请不要出现英文逗号 ','
chars: 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
# 被随机字符替换的字符
char: X
# 模板,由 char-replaced 组成
template: XXXX-XXXXXX

# 是否忽略玩家打开的界面, 只扫描玩家背包,打开之后下方的几个选项将失效
skip-top-inv: false

# 跳过原版容器的输出槽, 比如铁砧、砂轮、熔炉的输出槽,仅 1.14+有效
skip-result-slot: true

# 容器标题过滤器(黑名单),主要用于排除特殊的界面, 正则表达式, 填入容器标题
# 原版的容器标题是英文的,可以通过命令 '/sakurabind debug' 打开调试模式在控制台输出容器标题
inventory-filter: []

# 反转上面过滤器,从黑名单变为白名单
inventory-filter-reversed: false

# 日志系统,用于记录删除日志
logger:
# 总开关
enable: false
# 日志格式
formatter: '&6[唯一物品] 物主: {0} 唯一键: {1} 最大数量 {2}
ID: {3} 子ID: {4} 减少数量: {5};类型: {6} 玩家: {7}'
# 将日志输出到控制台
console: true
# 将日志输出到数据库中,可跨服
database: false
# 将日志输出到独立的文件中
file: false
# 独立的文件的位置,修改需重启生效
file-path: plugins\SakuraBind\log\unique-log-%g-%u.log

# 独立的文件的最大数量,每个1M,修改需重启生效
file-max-count: 10

扫描范围包括玩家鼠标指针、玩家背包、玩家打开的容器和插件追踪到的掉落物。拥有 sakurabind.bypass.all 的玩家不会参与扫描。