升级系统
升级状态按熔炉独立保存。玩家的不同熔炉可以拥有不同类型、槽位等级、速度、燃料效率和永久能力,不存在玩家级全局升级。
玩家操作流程#
- 执行
/kf打开主菜单。 - 右键点击要管理的熔炉,直接打开该熔炉的升级菜单;也可先左键打开详细熔炉,再点击
L熔炉信息按钮。 - 点击类型、等级或永久能力按钮完成购买。
玩家通过菜单购买,价格来自 upgrades.yml;没有免付费的玩家购买指令。快速连续点击也不会同时发起多笔购买。
每次事务会先检查玩家的数量、等级、能力和炉型权限,再检查经济并扣款。权限拒绝不会产生扣款。完整节点和 LuckPerms 示例见权限。
可购买项目#
| 项目 | 初始状态 | 购买规则 |
|---|---|---|
| 熔炉 | initial-furnace-count 配置的数量免费 |
超出免费数量后按目标序号收费,且不能超过数量权限上限 |
| 普通熔炉、高炉、烟熏炉类型 | FURNACE |
目标炉型权限允许时,每次切换到不同类型收费 |
| 五类等级 | 1 级 |
只能逐级购买到下一等级,不能超过该属性权限上限或系统 6 级上限 |
| 三类永久能力 | 未解锁 | 能力权限允许时,每座熔炉每项只购买一次 |
选择当前设备类型、购买已解锁能力或点击已满级属性不会扣款。类型切换还要求全部原料、燃料和输出槽为空,并且当前已点燃燃料已经耗尽。
五类等级效果#
| 配置键 | 实际效果 |
|---|---|
input_slot |
等级等于可使用的原料槽数量;引擎从低序号槽开始选择第一个有效配方 |
fuel_slot |
等级等于可使用的燃料槽数量;需要点燃时从低序号槽开始选择第一个有效燃料 |
output_slot |
等级等于可使用的输出槽数量;优先合并相似产物,再选择低序号空槽 |
fuel_efficiency |
实际燃烧时长 = 基础时长 × burn_duration_multiplier |
smelting_speed |
实际熔炼时长 = 基础时长 ÷ speed_multiplier |
多个原料槽共享一套熔炼进度和燃料,不会并行加工。当前轮次会固定配方、原料槽、产物、经验和熔炼时长;速度升级或 /kf reload 不会改变已经开始的轮次。燃料效率同样只影响之后点燃的燃料,不会重算当前燃料余量。
普通玩家只能升级,不能降级。管理员降低槽位等级时,如果将被锁定的槽位仍有物品,操作会被拒绝;必须先取空这些槽位。
三类永久能力#
离线熔炼#
offline_smelting 解锁后,该熔炉在所有者离线时仍使用绝对时间推进。未解锁的熔炉在离线时冻结时间基线,上线后从新基线继续,不补算暂停区间。
玩家离线很久后,结果可能不会在上线瞬间全部显示;稍等几次后台刷新即可。
自动配送#
auto_output_delivery 解锁后,插件会定期检查该玩家的熔炉:
- 只在所有者在线时执行;
- 按已解锁输出槽顺序配送;
- 只提取背包当前能够接收的数量;
- 同步发放对应产物经验;
- 背包放不下的产物和经验继续留在原输出槽;
- 只有保存成功的提取才会完成。
完成通知#
completion_notification 会在一批可熔炼原料加工完后通知玩家一次;如果玩家暂时不在线,上线后再通知。留下不能熔炼的原料不会妨碍完成通知。
无效配方物品可以继续留在原料槽中;“完成”指当前没有可继续熔炼的有效原料,不表示所有原料槽物理为空。
扣费失败怎么办?#
每个价格都在 upgrades.yml 中选择 vault 或 playerpoints。插件会先检查余额和权限,再扣款,最后保存购买结果:
检查权限与余额 → 扣款 → 保存熔炉 → 购买成功
如果扣款后保存失败,插件会恢复原熔炉状态并尝试退款。退款也失败时,控制台会记录 SEVERE 日志,需要管理员人工核对。
价格为 0 仍要求对应提供者可用,并执行完整事务。如果希望测试 Vault 项目,需要 Vault 和一个 Economy 实现;Vault 本身不保存余额。PlayerPoints 价格必须是整数。
默认 upgrades.yml 同时使用 Vault 和 PlayerPoints。首次测试前应安装两套提供者,或把所有收费节点统一改为当前服务器已有的提供者并执行 /kf reload。
管理员管理#
管理员可以查看或强制设置指定玩家某座现有熔炉的状态:
/kf admin furnace <玩家名|UUID> <1-10> get
/kf admin furnace <玩家名|UUID> <1-10> set <属性> <值>
/kf admin furnace <玩家名|UUID> <1-10> reset <属性>
set 和 reset 不扣除经济,也不要求逐级修改,但仍会执行数值范围、槽位物品和数据库写入校验。命令不会替玩家创建尚不存在的熔炉。完整属性名和权限见命令与权限。
重载边界#
/kf reload 会先完整校验新的价格和倍率,只有全部有效时才原子替换当前配置。重载不会切换数据库连接,也不会改写已开始轮次和已点燃燃料的时长。新的价格用于重载完成后发起的购买事务。