Skip to content
This repository has been archived by the owner on Oct 2, 2022. It is now read-only.

Advancement

Zoyn edited this page Dec 2, 2017 · 2 revisions

Advancement

Waaaaaaarn: This API supports only 1.12+
see below codes

ItemStack item = new ItemStack(Material.APPLE);
JsonObject itemJSON = new JsonObject();
itemJSON.addProperty("item", "minecraft:" + item.getType().name().toLowerCase());
itemJSON.addProperty("amount", item.getAmount());
itemJSON.addProperty("data", item.getData().getData());

AdvancementBuilder builder = new AdvancementBuilder()
        .setAdvancementId(new NamespacedKey(this, "may/root")) // set namespace key
        .setTitle("Test1") // set advancement title
        .setDescription("i'm father advancement") // set advancement description
        .setHide(false) // set advancement visibility
        .setIcon(Material.SIGN) // set advancement icon
        .setBackground(BackgroundEnum.STONE) // set advancement background
        .setFrame(FrameEnum.TASK) // set the framework for the advancement icon
        .setCriteria(  // set criterial
                new CriteriaBuilder("example", TriggerEnum.CONSUME_ITEM)
                        .addCondition(new ConditionBuilder("item", itemJSON))
        );
builder.add(); // add it to BukkitAPI

ItemStack item2 = new ItemStack(Material.COBBLESTONE);
JsonObject itemJSON2 = new JsonObject();
itemJSON2.addProperty("item", "minecraft:" + item2.getType().name().toLowerCase());

JsonArray array = new JsonArray();
array.add(itemJSON2);

TextComponent title = new TextComponent("emmm");
title.setBold(true);
title.setColor(net.md_5.bungee.api.ChatColor.AQUA);

TextComponent description = new TextComponent("you got the power!");
description.setBold(true);
AdvancementBuilder builder2 = new AdvancementBuilder()
        .setAdvancementId(new NamespacedKey(this, "may/test"))
        .setTitle(title)
        .setDescription(description)
        .setIcon("minecraft:wooden_pickaxe")
        .setFrame(FrameEnum.GOAL)
        .setCriteria(
                new CriteriaBuilder("get_stone", TriggerEnum.INVENTORY_CHANGED)
                        .addCondition(new ConditionBuilder("items", array))
        )
        .setParent(builder.getAdvancementId().toString());

builder2.add();
builder2.saveToWorldData(Bukkit.getWorld("world")); // Save this advancement to the world directory

This wiki hopes to help you!

没有中文教程...自己看代码吧..

Clone this wiki locally