▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Моды/World Progress
World Progress

World Progress

An addon mod to AnvilLib. Adds a World Progress system, and the CompeletedProgress predicate for InWorldRecipe.

8
0

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

Совместимость

Minecraft: Java Edition

1.21.x

Платформы

Поддерживаемые окружения

Клиент и сервер

Создатели

Детали

Лицензия:LGPL-3.0-or-later
Опубликован:1 месяц назад
Обновлён:1 месяц назад
Главная