Compatibility
Minecraft: Java Edition
Platforms
Supported environments
Links
Creators
Details
WorldProgress
A world-level persistent progress / flag system for Minecraft
一个用于 Minecraft 的世界级持久化进度 / 标记系统
📖 简介 | Introduction
WorldProgress 是一个基于 AnvilLib 的附属库 Mod。
它为 Minecraft 提供了一套世界级(World-level)进度标记系统,可用于在整个存档范围内持久化记录“某件事是否已经发生”。
这些进度信息会被写入世界存档,并且可以:
- 通过 API 在代码中查询 / 设置
- 通过 命令 手动管理
- 通过 AnvilLib 的 InWorldRecipe 作为 predicate 使用,从而控制配方是否可用
WorldProgress is an addon library mod for AnvilLib.
It provides a persistent world-level progress / flag system, allowing mods and datapacks to record whether certain events have been completed in a save.
Progress data is saved to disk with the world, and can be:
- Queried or modified via Java API
- Managed via commands
- Used as a predicate in AnvilLib InWorldRecipe, enabling world-state–dependent recipes
📦 依赖 | Dependencies
- NeoForge
- AnvilLib (required)
✨ 特性 | Features
- ✅ 世界级进度(与玩家无关)
- 💾 自动随世界存档持久化
- 🧩 提供简洁的 Java API
- 🛠 内置管理指令
- 🔗 与 AnvilLib
InWorldRecipe深度集成 - 🌍 支持本地化显示名称(通过资源包)
🧩 API 使用 | API Usage
测试进度是否完成
Test whether a world progress is completed:
boolean completed = WorldProgressAPI.testProgress(server, progressId);
完成某个世界进度
Mark a world progress as completed:
WorldProgressAPI.achieveProgress(server, progressId);
移除某个世界进度
Remove a completed world progress:
WorldProgressAPI.removeProgress(server, progressId);
获取所有世界进度
Get all completed world progress IDs:
List<ResourceLocation> list = WorldProgressAPI.getProgressList(server);
获取进度的显示名称
Get localized display name of a progress:
String name = WorldProgressAPI.getProgressString(progressId);
本地化规则 | Localization rule
在语言文件中添加:
progress_name.<namespace>.<path>="显示名称"
如果未提供翻译,则会显示 namespace:path
⌨ 指令 | Commands
权限等级:2(默认 OP)
列出当前世界中所有已完成的进度
List all completed world progress in the current world
/worldprogress list
测试某个进度是否已完成
Test whether a progress is completed
/worldprogress test <id>
将某个进度标记为完成
Mark a progress as completed
/worldprogress achieve <id>
移除某个已完成的进度
Remove a completed progress
/worldprogress remove <id>
🔧 与 InWorldRecipe 集成 | InWorldRecipe Integration
WorldProgress 提供了一个新的 InWorldRecipe predicate:
world_progress:complete_progress
示例 | Example
{
"type": "world_progress:complete_progress",
"progress_id": "world_progress:downed_ender_dragon"
}
该 predicate 仅在指定世界进度已完成时才会满足条件。
This predicate passes only if the specified world progress has been completed.
配方示例(节选) | Recipe Example (Excerpt)
"non_conflicting": [
{
"type": "anvilcraft:has_cauldron",
"offset": [0.0, -1.0, 0.0]
},
{
"type": "world_progress:complete_progress",
"progress_id": "world_progress:downed_ender_dragon"
}
]
👉 这可以用于:
-
击杀末影龙后解锁配方
-
世界进入某阶段后启用新内容
-
剧情 / 科技线控制
🎯 适用场景 | Use Cases
-
🌍 世界阶段系统(World Stages)
-
🐉 Boss 击杀判定
-
🧪 科技线 / 配方解锁
-
📜 剧情 / 事件触发
-
🧩 作为其他 Mod 的底层库
📄 许可证 | License
LGPL3



