Skip to content

SealItems 管理员指南

安装

  1. 使用 Java 21 和 Paper、Purpur 或 Leaf 1.21.x。
  2. 安装 SealAttributes,并在其 sources.yml 中关闭 built-in-equipment-reader.enabled
  3. SealItems-1.0.0.jar 放入 plugins/
  4. 正常启动服务器,确认控制台出现“SealItems 已就绪”。
  5. 执行 /si admin system status,确认运行状态为 READY、装备属性联动可写。

SQLite 驱动和数据库连接由插件统一管理;单服不需要安装 MySQL。

配置目录

text
plugins/SealItems/
├─ config.yml
├─ messages.yml
├─ items/
├─ rules/
│  ├─ affixes/
│  ├─ qualities/
│  ├─ identification/
│  ├─ modification/
│  ├─ sockets/
│  ├─ resonance/
│  ├─ enhancement/
│  ├─ binding/
│  ├─ crafting/
│  ├─ decomposition/
│  ├─ loot/
│  └─ sets/
└─ gui/
  • config.yml:全局开关、宝石 Lore、套装收藏条件、数据库和 Redis。
  • items/:物品外观、属性、品质、词条和物品固有玩法行为。
  • rules/:可被多件物品复用的玩法规则。
  • gui/:界面标题、槽位、按钮、名称、Lore 和声音。
  • messages.yml:聊天和操作结果文本。

旧版 content/gameplay/plans/trash/ 不再支持。

使用示例

每个业务目录只有一份中文总示例。文件名以 示例- 开头时不会加载。

测试完整闭环:

  1. 复制 items/示例-物品.yml,把副本改成普通文件名。
  2. 复制 rules/ 下全部 12 份示例,同样去掉 示例- 前缀。
  3. 执行 /si admin system reload all
  4. 执行 /si admin system status,应看到 15 个示例物品和各玩法已发布。

不要直接修改原始示例;以后插件更新时可以继续对照最新字段。

物品写法

物品 ID 是顶层键,一个文件可以写多个物品:

yaml
echo_blade:
  material: NETHERITE_SWORD
  name: '<gold>回响长剑'
  stackable: false
  category: weapon
  slot: main-hand
  attributes:
    physical_attack: { add: 12, total-percent: 10% }
  gameplay:
    identification: standard_identification
    modification: standard_weapon_modification
    sockets: { rule: standard_weapon_sockets, maximum-sockets: 3 }
    enhancement: { rule: standard_weapon_enhancement, maximum-level: 20 }

写出玩法节点即表示参与,不需要 enabled。删除节点即关闭该物品的对应玩法。

公共规则与物品行为

公共规则适合多件物品共享:

  • 强化等级、概率、失败和费用写在 rules/enhancement/
  • 孔型、操作和费用写在 rules/sockets/
  • 配方写在 rules/crafting/
  • 分解、鉴定、改造、绑定、掉落和套装同理。

下列行为属于物品自身:

  • 宝石的分类、限制和属性。
  • 强化幸运材料、保护符和直升卷轴。
  • 图纸解锁的配方编号。

不要为每颗宝石或每种强化材料再建立第二份行为规则。

费用

所有玩法统一使用 costs

yaml
costs:
  - { type: seal-item, id: upgrade_stone, amount: '2 + target_level' }
  - { type: vanilla, material: DIAMOND, amount: 1 }
  - { type: vault, amount: '100 + target_level * 25' }

支持的类型以对应示例为准:

  • seal-item:SealItems 材料 ID。
  • vanilla:原版材质。
  • vault:Vault 经济。
  • playerpoints:PlayerPoints 点数。
  • experience-points:经验值。
  • experience-levels:经验等级。

公式可用变量、函数和实际算例都写在示例字段旁。重载时会先编译公式,错误公式不会进入运行时。

数据库

config.yml 默认:

yaml
database:
  mysql:
    enabled: false

false 自动使用 plugins/SealItems/sealitems.db。启用 MySQL 时填写 hostportdatabaseusernamepasswordssl,不要填写 JDBC 地址。

数据库连接信息修改后完整重启服务器。多服共享数据必须使用 MySQL,不要让多台服务器同时操作同一个 SQLite 文件。

Redis 当前没有必须依赖它的玩法,保持关闭即可。

GUI

gui/ 下每个玩法一份文件,可修改:

  • 标题和槽位。
  • 原版材质与 Custom Model Data。
  • 按钮名称、Lore、颜色和声音。
  • 确认、取消、翻页和状态提示。

GUI 不配置成功率、费用、材料或产物。当前没有合成或分解游戏内配置编辑器,YAML 是唯一配置真值。

命令

玩家:

text
/si gui identify
/si gui modify
/si gui socket
/si gui enhance
/si gui craft
/si gui decompose
/si gui sets
/si gui unbind

管理员常用:

text
/si admin system status
/si admin system reload all
/si admin system reload <玩法> config
/si admin system reload <玩法> gui
/si admin item list
/si admin item give <玩家> <物品ID> [数量]
/si admin item inspect
/si admin item binding

管理员默认拥有全部管理权限。

重载规则

  • reload all 会先构建整套候选;任何问题都拒绝整组发布。
  • 拒绝发布后,玩家继续使用旧快照,不会看到半套新配置。
  • GUI 重载会关闭对应旧会话,避免按钮布局与会话状态不一致。
  • 数据库类型、连接参数和依赖变更需要完整重启。

运维底线

  • 正式发放后保持物品、规则、品质、词条、配方和属性 ID 稳定。
  • 不要手工编辑物品 PDC、SQLite、outbox 或 incident 文件。
  • 外部经济出现 UNKNOWN 时先查账,再执行 reconcile。
  • 材料只扫描玩家普通背包和快捷栏,不递归潜影盒、末影箱或第三方仓库。
  • 配置问题先看控制台完整路径和字段,再使用 /si admin system status 确认旧快照仍在。