UltimateAdvancementAPI

UltimateAdvancementAPI - 自定义进度API

一个强大的API,可为您的Minecraft服务器创建自定义进度。
Bukkit / Spigot 作者 fren_gor 支持版本 1.15 - 1.21
服务器使用量
未统计
服务玩家数
未统计
下载量
13,063
插件详细介绍

UltimateAdvancementAPI 是一款强大的 Minecraft 插件,它允许服务器管理员和开发者轻松创建、管理自定义进度,并提供完整的 API 供其他插件调用。所有操作均基于数据包,确保服务器运行流畅无延迟。

重要须知

  • 请通过 DiscordGitHub 提交 Bug 报告,在评论中提交的 Bug 将不予处理。
  • 若新 Minecraft 版本发布后插件未更新,请先查阅 FAQ 获取信息。

核心特性

  • 简单易用:轻松为服务器创建自定义进度。
  • 异步无延迟:所有操作均基于数据包,不会造成服务器卡顿。
  • 进度可见性:可自定义进度界面的显示方式。
  • 团队进度:同一团队成员的进度会自动同步。
  • 离线玩家支持:提供完整的 API 来修改离线玩家的进度数据。
  • 自定义提示:发送自定义的进度完成提示(Toast)。
  • 数据库系统:支持快速可靠的存储方式(SQLite、MySQL、内存存储)。
  • 禁用原版进度:无需修改服务端核心文件,即可完全禁用原版进度。

使用说明

本插件主要面向开发者。如果您使用的某个插件依赖它,只需下载对应服务器版本的插件,并将其放入 plugins 文件夹即可。

开发者集成

  • 通过 Maven 将依赖添加到您的项目并开始编码。
  • 请查阅 Wiki 以了解如何使用 API。

Maven 依赖

<repositories>
    <repository>
        <id>fren_gor</id>
        <url>https://nexus.frengor.com/repository/public/</url>
    </repository>
</repositories>
<dependency>
    <groupId>com.frengor</groupId>
    <artifactId>ultimateadvancementapi</artifactId>
    <version>2.7.2</version>
    <scope>provided</scope>
</dependency>
  • 插件也提供可嵌入(Shadeable)版本,详情请查阅相关 Wiki 页面。

优势亮点

  • 高度可定制:创建属于您自己的进度。
  • 易于使用:提供完整且文档齐全的 API。
  • 支持玩家团队:原生支持团队,让多名玩家可以协作。
  • Maven 与嵌入支持:API 通过 Maven 分发,并可嵌入到您的插件中。
  • 优质支持:欢迎在我们的 Discord 服务器 提问。
  • 在线生成器:配套 UltimateAdvancementGenerator 官方工具,可图形化设计进度并自动生成 Java 代码。

UltimateAdvancementGenerator

这是用于图形化设计进度的官方在线工具。该工具会自动为您的插件生成相应的 Java 类。

> 警告:该工具目前处于 BETA 测试阶段,请在 GitHub 上报告遇到的问题。

命令与权限

主命令

  • /ultimateadvancementapi <progression|grant|revoke> ...
- 权限:`ultimateadvancementapi.command`

授予进度

  • /ultimateadvancementapi grant <all|tab|one> ...
- 权限:`ultimateadvancementapi.grant`
  • /ultimateadvancementapi grant all <player> [giveRewards]
- 权限:`ultimateadvancementapi.grant.all`
  • /ultimateadvancementapi grant tab <advancementTab> [player] [giveRewards]
- 权限:`ultimateadvancementapi.grant.tab`
  • /ultimateadvancementapi grant one <advancement> [player] [giveRewards]
- 权限:`ultimateadvancementapi.grant.one`

撤销进度

  • /ultimateadvancementapi revoke <all|tab|one> ...
- 权限:`ultimateadvancementapi.revoke`
  • /ultimateadvancementapi revoke all <player> [hideTab]
- 权限:`ultimateadvancementapi.revoke.all`
  • /ultimateadvancementapi revoke tab <advancementTab> [player] [hideTab]
- 权限:`ultimateadvancementapi.revoke.tab`
  • /ultimateadvancementapi revoke one <advancement> [player]
- 权限:`ultimateadvancementapi.revoke.one`

管理进度值

  • /ultimateadvancementapi progression <get|set> ...
- 权限:`ultimateadvancementapi.progression`
  • /ultimateadvancementapi progression get <advancement> [player]
- 权限:`ultimateadvancementapi.progression.get`
  • /ultimateadvancementapi progression set <advancement> <progression> [player] [giveRewards]
- 权限:`ultimateadvancementapi.progression.set`

代码示例

以下示例创建一个名为 “Example” 的进度,其描述为 “A random” 和 “description.”。

// Creates an advancement called "Example" with the description:
// - "A random"
// - "description."
public class MainClass extends JavaPlugin implements Listener {
    private AdvancementTab advancementTab;
    private UltimateAdvancementAPI api;

    @Override
    public void onEnable() {
        api = UltimateAdvancementAPI.getInstance(this);
        advancementTab = api.createAdvancementTab("your_tab_name");

        AdvancementDisplay rootDisplay = new AdvancementDisplay(
            Material.GRASS_BLOCK,
            "Example",
            AdvancementFrameType.TASK,
            true,
            true,
            0,
            0,
            "A random",
            "description."
        );

        RootAdvancement root = new RootAdvancement(advancementTab, "root", rootDisplay, "textures/block/stone.png");
        advancementTab.registerAdvancements(root);
        Bukkit.getPluginManager().registerEvents(this, this);
    }

    @EventHandler
    public void onJoin(PlayerLoadingCompletedEvent e) {
        // Called after a player has successfully been loaded by the API
        Player p = e.getPlayer();
        // Here you can show tabs to players
        advancementTab.showTab(p);
    }
}

相关链接

  • WikiIssuesJavadocGitHubDiscordGeneratorFAQ
  • 本插件使用 Metrics 收集匿名数据以帮助改进。

完整的 Wiki 可在官方 GitHub 页面找到。

以下是一个简单的示例,用于创建一个带有随机描述的示例进度:

代码示例 (Java)

public class MainClass extends JavaPlugin implements Listener {
    private AdvancementTab advancementTab;
    private UltimateAdvancementAPI api;

    @Override
    public void onEnable() {
        api = UltimateAdvancementAPI.getInstance(this);
        advancementTab = api.createAdvancementTab("your_tab_name");

        AdvancementDisplay rootDisplay = new AdvancementDisplay(
            Material.GRASS_BLOCK,
            "Example",
            AdvancementFrameType.TASK,
            true,
            true,
            0,
            0,
            "A random",
            "description."
        );

        RootAdvancement root = new RootAdvancement(advancementTab, "root", rootDisplay, "textures/block/stone.png");
        advancementTab.registerAdvancements(root);
        Bukkit.getPluginManager().registerEvents(this, this);
    }

    @EventHandler
    public void onJoin(PlayerLoadingCompletedEvent e) {
        // 在玩家被 API 成功加载后调用
        Player p = e.getPlayer();
        // 在这里可以向玩家显示进度标签页
        advancementTab.showTab(p);
    }
}

示例结果

该代码将创建一个名为“Example”的进度标签页,其根进度显示为草方块图标,并带有“A random description.”的描述。当玩家加入服务器并加载完成后,该进度标签页将自动显示给玩家。

测试支持版本
1.15 1.16 1.17 1.18 1.19 1.20 1.20.6 1.21
版本分布
基本信息
插件名称 UltimateAdvancementAPI
作者 fren_gor
平台 Bukkit / Spigot
支持版本 1.15 - 1.21
点赞数 3
最近版本
暂无数据 -

友情链接: 网易我的世界 | 泰拉瑞亚 | ocent云计算 | 米饭Minecraft插件文档 | 友链合作

历史访问人数:2,605,594  |  历史访问人次:3,159,212

今日访问人数:26,418  |  今日访问人次:28,833

昨日访问人数:24,332  |  昨日访问人次:29,698

Copyright © 2019-2026 我的世界服务器列表站. All rights reserved.

Powered by GermMC 京ICP备17023959号-6