进度
自定义进度
在你的 ItemsAdder YAML 文件中定义自定义 Minecraft 进度树,支持自定义触发器、新标签和完成动作
Since v1.0.9
直接在 ItemsAdder 内容 YML 文件中定义自定义 Minecraft 进度树,无需数据包,无需重启。添加一个 advancements 部分并运行 /iareload 即可
功能
- 使用自定义背景纹理创建新的进度标签
- 通过将进度相互关联来构建树状结构
- 使用 49 种内置触发器类型(获取物品、合成配方、击杀实体、进入生物群系、加入服务器、家具检查、玩家状态检查等)
- 在进度完成时执行完成动作(标题、音效、命令、动作栏消息)
- 为任意准则添加可选的玩家谓词,如潜行、游戏模式、等级、物品栏槽位、药水效果、位置等
- 授予经验值、战利品表和配方解锁作为奖励
- 玩家进度在重载后持久保留
基本结构
info:
namespace: my_pack
advancements:
root: # 根进度
display:
title: "我的服务器"
description: "我的服务器的成就"
icon: minecraft:nether_star
background: "minecraft:gui/advancements/backgrounds/adventure"
show_toast: false
announce_to_chat: false
first_sword:
parent: root
display:
title: "第一把红宝石剑"
description: "获得你的第一把自定义剑"
icon: my_pack:ruby_sword
frame: task
criteria:
obtain:
trigger: obtain_item
conditions:
items:
- my_pack:ruby_sword
on_complete:
sound:
name: minecraft:entity.player.levelup
title:
title: "<gold>成就达成!"
subtitle: "<gray>获得了第一把红宝石剑"工作原理
IAA 会加载每个包含 advancements 部分的内容文件。每个条目都会通过 NMS 在运行时注入为一个 Minecraft 进度。玩家进度由原版存储在世界的存档文件中,并在重载后持久保留。没有准则的根进度会被自动授予,以便玩家在加入或重载后能看到其标签
根进度(没有 parent)会在进度界面中创建一个新标签。子进度在树状结构中与其父进度在视觉上相连
同一文件中的所有进度共享相同的 info.namespace。支持使用 namespace:id 格式跨命名空间的父进度