UltimateAdvancementAPI

A powerful API to create custom advancements for your Minecraft server.

4,93k

Quick challenge

How far can you run before the mobs catch you?

UltimateAdvancementAPI

Logo

WikiIssuesJavadocGitHubDiscordGeneratorFAQ

Advancement Tab Image

*Bugs should be reported on Discord or opening an issue on GitHub.*

If a Minecraft version just come out and you are waiting for the update, please check out the FAQ.

3.0.0 Beta

> 3.0.0 Beta is available on the 3.0.0 Beta. Download it if you want to try it out. > The Javadoc for the beta is published %%MD1%%.

Features

Disable vanilla advancements - Create advancements for your server with ease Disable vanilla advancements - Every operation is packet based. This means no lag for the server! Disable vanilla advancements - Easy visibility system to customize advancement visibilities Disable vanilla advancements - The player progression is synchronized between members of the same team Disable vanilla advancements - Extensive and complete API to modify offline players progressions Disable vanilla advancements - Send custom toast notifications Disable vanilla advancements - Fast and reliable savings wherever you want (SQLite, MySQL, In-Memory) Disable vanilla advancements - Completely disable vanilla advancements without touching the server jar

For server owners

This is a plugin for developers. If a plugin you use needs it, just download the correct version for you server and drop it into your plugins folder.

For developers

Add the dependency with maven to your project and start coding. Check out the wiki to learn how to use the API.

Maven

```xml <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.8.0</version> <scope>provided</scope> </dependency> ```

There is also a shadeable version, see the related wiki page to know more about it.

Why our API

Fully customizable - Make your own advancements Easy to use - Complete and well-documented API Support teams of players - Let more players collaborate together thanks to native support for teams Maven and shadeable version - API is distributed with maven and it can be shaded into your plugins Great support - Ask your questions on our Discord server Online generator - The API comes with UltimateAdvancementGenerator, the official tool that helps you designing your advancements graphically

UltimateAdvancementGenerator

The official online tool to design your advancement graphically. The Java classes for your plugin are then generated by the tool automatically.

Try it now Try it now

Video tutorial

❗WARNING❗: The tool is still in BETA, please report bugs on BETA.


Commands and permissions

Commands and Permissions

/ultimateadvancementapi <progression|grant|revoke> ... <small>Permission: ultimateadvancementapi.command</small>

/ultimateadvancementapi grant <all|tab|one> ... <small>Permission: ultimateadvancementapi.grant</small>

/ultimateadvancementapi grant all <player> [giveRewards] <small>Permission: ultimateadvancementapi.grant.all</small>

/ultimateadvancementapi grant tab <advancementTab> [player] [giveRewards] <small>Permission: ultimateadvancementapi.grant.tab</small>

/ultimateadvancementapi grant one <advancement> [player] [giveRewards] <small>Permission: ultimateadvancementapi.grant.one</small>

/ultimateadvancementapi revoke <all|tab|one> ... <small>Permission: ultimateadvancementapi.revoke</small>

/ultimateadvancementapi revoke all <player> [hideTab] <small>Permission: ultimateadvancementapi.revoke.all</small>

/ultimateadvancementapi revoke tab <advancementTab> [player] [hideTab] <small>Permission: ultimateadvancementapi.revoke.tab</small>

/ultimateadvancementapi revoke one <advancement> [player] <small>Permission: ultimateadvancementapi.revoke.one</small>

/ultimateadvancementapi progression <get|set> ... <small>Permission: ultimateadvancementapi.progression</small>

/ultimateadvancementapi progression get <advancement> [player] <small>Permission: ultimateadvancementapi.progression.get</small>

/ultimateadvancementapi progression set <advancement> <progression> [player] [giveRewards] <small>Permission: ultimateadvancementapi.progression.set</small>

Example

```java // 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); } } ```

Result:

Result of the example

Metrics

ADS