Skip to main content

物品匹配器

ItemMatcher是QuickShop-Hikari用来比较项目的工具,它是整个系统中最重要的东西。

caution

如果此功能配置错误,将导致插件停止工作,甚至可用于物品复制、物品克隆、刷钱甚至更糟的事情。
TL;DR:除非您知道自己在做什么,否则保持默认设定。

匹配器

默认情况下,QuickShop-Hikari支持两个匹配器:

  • Bukkit 物品匹配(默认)
  • QuickShop 物品匹配
  • 严格 Bukkit 物品匹配
  • 现代匹配

您可以通过调整设置更改匹配器:

matcher:
# 匹配类型:
# 0 = QuickShop 匹配(可在下方配置)
# 1 = Bukkit 匹配
# 2 = 严格 Bukkit 匹配(等价方法)
# 3 = 现代匹配
work-type: 1

# 匹配物品时是否忽略数量。
# 推荐商店匹配使用。
ignore-count: true

# 需要匹配材料/类型(强烈建议)
check-material: true

默认情况下,QuickShop-Hikari 会使用 Bukkit 的匹配保证最佳兼容性。
但你仍然可以切换到 QuickShop 物品匹配,使用自定义比较行为,或者在 Bukkit 比较无法正常使用时作为代替手段。

自定义元数据比较

自定义只能在 QuickShop 项目匹配下使用。

info

使用 QuickShop 的物品判断可能会对服务器有轻微性能影响。 Bukkit API 可以用于匹配物品间涉及较多序列与反序列化的问题。

若无必要请保持使用 Bukkit 物品匹配。

你可以在配置里指定启用或禁用相关检查。

matcher:
# 只比较如下启用的组件。
#
# 单键会与 DataComponentTypeKeys.<KEY> 一比一匹配
# 组键会拓展至多个如下的组件键名
components:
# 比较耐久度/损坏程度。
DAMAGE: true

# 比较自定义显示名称。
CUSTOM_NAME: true

# 比较描述。
LORE: true

# 比较 CustomModelData。
CUSTOM_MODEL_DATA: true

# 比较携带附魔。
ENCHANTMENTS: true

# 比较存储附魔(附魔书)。
STORED_ENCHANTMENTS: true

# 比较属性修饰符。
ATTRIBUTE_MODIFIERS: true

# 比较不可破坏标签。
UNBREAKABLE: true

# 比较盔甲纹饰。
TRIM: true

# 比较盔甲染色。
DYED_COLOR: true

# 比较提示框隐藏标签。
HIDE_ADDITIONAL_TOOLTIP: true

# 比较附魔光泽覆盖。
ENCHANTMENT_GLINT_OVERRIDE: true

# 比较药水内容。
POTION_CONTENTS: true

# 比较药水是否存在延长效果。
POTION_DURATION_SCALE: true

# 比较书本内容(成书/书与笔)
BOOKS: true

# 比较旗帜图案。
BANNER: true

# 比较头颅对应玩家/纹理。
SKULL: true

# 比较烟花元数据(烟花火箭/烟火之星)。
FIREWORK: true

# 比较地图元数据。
MAP: true

# 比较皮革盔甲染色。
LEATHER_ARMOR: true

# 比较鱼桶实体数据。
FISH_BUCKET: true

# 比较谜之炖菜效果。
SUSPICIOUS_STEW: true

# 比较潜影盒内容。
SHULKER_BOX: true

# 比较收纳袋内容。
BUNDLE: true

# 对于物品(只在使用 QuickShop 物品匹配时有效)
item:
# 插件是否检查物品的损坏值?
damage: true
# 插件是否检查物品的修复惩罚?
repaircost: false
# 插件是否检查物品的显示名称?
displayname: true
# 插件是否检查物品的描述?
lores: true
# 插件是否检查物品的携带附魔?
enchs: true
# 插件是否检查物品的药水效果?
potions: true
# 插件是否检查物品的属性?
attributes: true
# 插件是否检查物品的物品标志?
itemflags: true
# 插件是否检查物品的custommodeldata?
custommodeldata: true
# 插件是否检查物品的书本元数据?
books: true
# 插件是否检查旗帜元数据?
banner: true
# 插件是否检查头颅元数据?
skull: true
# 插件是否检查烟花元数据?
firework: true
# 插件是否检查地图元数据?
map: true
# 插件是否检查皮革盔甲元数据?
leatherArmor: true
# 插件是否检查鱼桶元数据?
fishBucket: true
# 插件是否检查谜之炖菜元数据?
suspiciousStew: true
# 插件是否检查潜影盒内容?
shulkerBox: true
# 插件是否检查收纳袋内容?
bundle: true