Newer
Older
ultramine_bukkit / src / main / java / org / bukkit / Achievement.java
@vlad20012 vlad20012 on 24 Feb 2017 1 KB initial
package org.bukkit;

/**
 * Represents an achievement, which may be given to players.
 */
public enum Achievement
{
	OPEN_INVENTORY,
	MINE_WOOD(OPEN_INVENTORY),
	BUILD_WORKBENCH(MINE_WOOD),
	BUILD_PICKAXE(BUILD_WORKBENCH),
	BUILD_FURNACE(BUILD_PICKAXE),
	ACQUIRE_IRON(BUILD_FURNACE),
	BUILD_HOE(BUILD_WORKBENCH),
	MAKE_BREAD(BUILD_HOE),
	BAKE_CAKE(BUILD_HOE),
	BUILD_BETTER_PICKAXE(BUILD_PICKAXE),
	COOK_FISH(BUILD_FURNACE),
	ON_A_RAIL(ACQUIRE_IRON),
	BUILD_SWORD(BUILD_WORKBENCH),
	KILL_ENEMY(BUILD_SWORD),
	KILL_COW(BUILD_SWORD),
	FLY_PIG(KILL_COW),
	SNIPE_SKELETON(KILL_ENEMY),
	GET_DIAMONDS(ACQUIRE_IRON),
	NETHER_PORTAL(GET_DIAMONDS),
	GHAST_RETURN(NETHER_PORTAL),
	GET_BLAZE_ROD(NETHER_PORTAL),
	BREW_POTION(GET_BLAZE_ROD),
	END_PORTAL(GET_BLAZE_ROD),
	THE_END(END_PORTAL),
	ENCHANTMENTS(GET_DIAMONDS),
	OVERKILL(ENCHANTMENTS),
	BOOKCASE(ENCHANTMENTS),
	EXPLORE_ALL_BIOMES(END_PORTAL),
	SPAWN_WITHER(THE_END),
	KILL_WITHER(SPAWN_WITHER),
	FULL_BEACON(KILL_WITHER),
	BREED_COW(KILL_COW),
	DIAMONDS_TO_YOU(GET_DIAMONDS),;

	private final Achievement parent;

	private Achievement()
	{
		parent = null;
	}

	private Achievement(Achievement parent)
	{
		this.parent = parent;
	}

	/**
	 * Returns whether or not this achievement has a parent achievement.
	 *
	 * @return whether the achievement has a parent achievement
	 */
	public boolean hasParent()
	{
		return parent != null;
	}

	/**
	 * Returns the parent achievement of this achievement, or null if none.
	 *
	 * @return the parent achievement or null
	 */
	public Achievement getParent()
	{
		return parent;
	}
}