新锻造 LyGalaxyForge
MySQL 前置要求
启用 MySQL 存储时,必须安装 LyMySQLCore,并确认它已成功连接数据库。否则本插件的 MySQL 数据读取、保存、同步及相关记录功能不会生效。
LyGalaxyForge 是图纸驱动的锻造系统。玩家解锁图纸后,可从分类菜单进入对应锻造界面,提交必选材料、货币和可选材料,将任务加入制作队列。等待时间结束后,插件按图纸配置结算成功率,并发放成功或失败产物。
系统同时提供可扩展的词条计算机制。锻造结果与可选材料可以修改变量、成功率、物品 NBT 和最终产物,也可以通过指令对已有物品执行词条重铸。
插件信息
| 项目 | 内容 |
|---|---|
| 插件名 | LyGalaxyForge |
| 中文名 | 新锻造 |
| 作者 | 离渊 |
| 主命令 | /lgf |
| 可选依赖 | PlaceholderAPI、Vault、PlayerPoints |
| MySQL 前置 | 使用 MySQL 存储时必须安装并正确连接 LyMySQLCore |
| 扩展接口 | 提供服务端 API、客户端 API、锻造结果事件和可选材料应用事件 |
支持版本
项目中已包含以下服务端 NMS 适配模块:
| NMS 版本 | 对应 Minecraft 版本 |
|---|---|
v1_7_R4 | 1.7.10 |
v1_8_R3 | 1.8.8 |
v1_11_R1 | 1.11.2 |
v1_12_R1 | 1.12.2 |
v1_13_R2 | 1.13.2 |
v1_14_R1 | 1.14.4 |
v1_15_R1 | 1.15.2 |
v1_16_R3 | 1.16.5 |
v1_17_R1 | 1.17.1 |
v1_18_R2 | 1.18.2 |
v1_19_R1 | 1.19.2 |
v1_19_R3 | 1.19.4 |
v1_20_R1 | 1.20.1 |
v1_20_R2 | 1.20.2 |
v1_20_R3 | 1.20.4 |
这些是项目中能够确认存在专用 NMS 实现的版本,不代表未列出的中间版本可以直接使用。
玩法流程
- 玩家通过自动条件、使用指定物品、权限或变量条件解锁图纸。
- 图纸按照
forge-menu配置显示在不同分类菜单中。 - 玩家打开图纸界面并提交物品、货币与可选材料。
- 插件检查基础条件、额外条件、材料数量和货币余额。
- 条件满足后扣除消耗,并将锻造任务加入制作队列。
- 制作时间结束后,根据最终成功率结算锻造结果。
- 插件执行对应词条与结果逻辑,发放成功产物或失败产物。
主要功能
| 功能 | 说明 |
|---|---|
| 图纸系统 | 每张图纸可以独立配置显示物品、锻造界面、材料、条件、制作时间、成功率和结果。 |
| 图纸解锁 | 支持自动解锁、使用物品解锁、需要权限、禁止权限及变量条件判断。 |
| 分类菜单 | 通过 forge-menu 将图纸分配到不同菜单,便于按装备、材料或玩法分类。 |
| 基础条件 | 锻造前检查图纸定义的基础条件,条件不满足时阻止提交。 |
| 额外条件 | 支持为锻造过程配置额外判断,与必选材料和可选材料共同参与结算。 |
| 必选材料 | 支持检查并扣除玩家背包中的指定物品与数量。 |
| 多种货币 | 支持金币、点券、LyShopReload 货币和 CX 变量货币。金币与点券功能依赖对应经济插件。 |
| 可选材料 | 玩家可以额外提交材料,用于执行词条、修改变量、调整成功率或改变最终产物。 |
| 制作队列 | 锻造任务可以设置制作时间,玩家可在队列界面查看和结算任务。 |
| 权限加速 | 可以按权限缩短制作时间,并支持将 OP 配置为立即完成。 |
| 成功率控制 | 基础成功率可被可选材料和锻造函数增加、减少或直接设置。 |
| 成功与失败产物 | 图纸可以分别定义锻造成功和失败时发放的物品及处理逻辑。 |
| 物品库读取 | 指令和锻造结果可通过 物品库@ID 格式读取已接入物品库中的物品。 |
| 词条系统 | 支持变量、条件、随机数、权重、文本处理、数学处理、PAPI 变量、权限判断和锻造次数读取。 |
| NBT 处理 | 词条及锻造函数可以设置物品 NBT,并通过对应版本的 NMS 模块处理物品数据。 |
| 物品重铸 | 可以对玩家手中物品重新执行指定词条。 |
| 调试输出 | 管理员可以切换词条计算调试输出,用于排查变量与计算结果。 |
| 数据存储 | 玩家图纸、锻造次数、制作队列等数据可由 YAML 或 MySQL 相关模块处理。 |
| 文件监听 | 项目包含 YAML 监听与安全写入逻辑,用于处理配置和玩家数据文件。 |
| 开发接口 | 提供 LyGalaxyForgeAPI、LyGalaxyForgeAPIServer、ForgeOptionalApplyEvent 和 ForgeResultEvent。 |
图纸解锁方式
| 类型 | 说明 |
|---|---|
| 自动解锁 | 满足图纸设定后自动加入玩家已解锁图纸。 |
| 使用物品 | 玩家使用指定物品时尝试解锁对应图纸。 |
| 需要权限 | 玩家拥有指定权限时满足解锁条件。 |
| 禁止权限 | 玩家没有指定权限时满足解锁条件。 |
| 变量条件 | 使用变量与表达式计算解锁结果。 |
图纸的具体字段、材料格式和条件写法见 图纸配置。
材料与货币
锻造消耗分为必选材料、货币和可选材料。必选内容不满足时不能提交锻造;可选材料由玩家自行放入,并在任务创建或结果结算时影响词条和成功率。
| 类型 | 用途 | 前置要求 |
|---|---|---|
| 普通物品 | 检查并扣除指定物品和数量 | 无额外软依赖 |
| 金币 | 扣除 Vault 经济账户余额 | 需要 Vault 及可用的经济实现 |
| 点券 | 扣除 PlayerPoints 点数 | 需要 PlayerPoints |
| LyShopReload 货币 | 使用 LyShopReload 的货币数据 | 需要对应插件与货币配置 |
| CX 变量货币 | 通过变量形式检查和扣除货币 | 需要对应变量环境可用 |
| 可选材料 | 修改成功率、变量、词条或产物 | 按图纸中的可选材料配置执行 |
制作队列
锻造任务提交后可以进入制作队列。队列记录玩家、图纸、制作时间及相关锻造数据,完成后再执行结果结算。
| 机制 | 说明 |
|---|---|
| 制作时间 | 每张图纸可以设置独立的等待时间。 |
| 权限加速 | 根据玩家拥有的加速权限缩短等待时间。 |
| OP 加速 | 可配置 OP 玩家立即完成制作。 |
| 队列界面 | 玩家可以打开自己的制作队列,管理员也可以查看指定玩家的队列。 |
| 结果结算 | 时间结束后按最终成功率执行成功或失败结果。 |
| 数据恢复 | 队列数据由插件的数据存储模块管理;使用 MySQL 时依赖 LyMySQLCore 的数据库连接。 |
词条与表达式
词条系统用于处理锻造变量、结果物品和可选材料效果。项目中能够确认的内置处理能力包括:
| 分类 | 能力 |
|---|---|
| 数值处理 | 整数与小数转换、向上取整、向下取整、四舍五入、平均值、最大值、最小值。 |
| 随机处理 | 随机数、概率判断和权重选择。 |
| 条件处理 | 条件选择、相等判断、包含判断、开头判断、结尾判断。 |
| 文本处理 | 替换、裁剪、拼接、分割、重复、去除首尾空白、长度和索引读取。 |
| 变量处理 | 获取变量、设置变量、条件选值及列表大小读取。 |
| 玩家数据 | 读取 PAPI 变量、检查权限、读取指定图纸的锻造次数。 |
| 日期处理 | 获取或处理日期相关值。 |
| 物品处理 | 设置 NBT、匹配物品、统计物品、给予物品和扣除物品。 |
| 锻造处理 | 增加成功率、降低成功率、直接设置成功率、发送消息、广播消息和执行命令。 |
| 音效处理 | 在锻造逻辑中执行 Minecraft 音效函数。 |
完整语法与方法参数见 词条方法。
指令
指令中的方括号表示参数位置,不要在实际输入时保留方括号。
| 指令 | 使用者 | 说明 |
|---|---|---|
/lgf reload | OP | 重载插件配置与相关数据。 |
/lgf give [玩家] [图纸ID] | OP | 给予指定玩家一张图纸。 |
/lgf take [玩家] [图纸ID] | OP | 移除指定玩家已经解锁的图纸。 |
/lgf making [玩家] | 玩家或 OP | 打开制作队列;省略玩家参数时打开自己的队列。 |
/lgf forge [图纸ID] [玩家] | 玩家或 OP | 打开指定图纸的锻造界面;省略玩家参数时为自己打开。 |
/lgf menu [分类ID] [玩家] | 玩家或 OP | 打开指定分类菜单;省略玩家参数时为自己打开。 |
/lgf try [玩家] [图纸ID] | OP | 让指定玩家尝试制作指定图纸。 |
/lgf setcount [玩家] [图纸ID] [次数] | OP | 设置玩家对指定图纸的已锻造次数。 |
/lgf givecount [玩家] [图纸ID] [次数] | OP | 增加玩家对指定图纸的已锻造次数。 |
/lgf takecount [玩家] [图纸ID] [次数] | OP | 扣除玩家对指定图纸的已锻造次数。 |
/lgf giveitem [玩家] [物品库@ID] [数量] [词条] | OP | 给予物品库中的物品,并可对物品执行指定词条。 |
/lgf recast [词条] | OP | 对手中物品执行指定词条重铸。 |
/lgf entry-debug | OP | 切换词条计算调试输出。 |
权限说明
现有项目证据能够确认管理指令使用 OP 限制,图纸解锁与制作加速可以读取自定义权限。具体权限字符串由图纸和加速配置定义,没有能够确认的固定权限节点,因此本文不额外列出权限名称。
扩展能力
项目提供面向其他插件的 API 与事件类,可用于读取锻造数据或介入锻造流程。
| 接口或事件 | 用途 |
|---|---|
LyGalaxyForgeAPI | 客户端插件侧的主要 API 入口。 |
LyGalaxyForgeAPIServer | 核心服务端 API 入口。 |
ForgeOptionalApplyEvent | 可选材料应用时触发的事件。 |
ForgeResultEvent | 锻造结果生成或结算时触发的事件。 |
EntryMethodRegistry | 管理和调用词条方法。 |
EntryMethodContext | 向词条方法传递本次计算所需的上下文。 |
文档索引
| 页面 | 内容 |
|---|---|
| 配置说明 | 数据存储、菜单、货币、队列、权限加速、音效和界面设置。 |
| 图纸配置 | 图纸字段、解锁方式、条件、必选材料、成功失败产物和可选材料。 |
| 词条方法 | 词条变量、表达式、内置方法和物品处理能力。 |
| 插件变量 | PlaceholderAPI 变量及返回内容。 |
| 常见问题 | 图纸无法打开、材料不足、队列异常、数据库连接和词条计算排查。 |