package org.bukkit; /** * Represents a countable statistic, which is tracked by the server. */ public enum Statistic { DAMAGE_DEALT, DAMAGE_TAKEN, DEATHS, MOB_KILLS, PLAYER_KILLS, FISH_CAUGHT, ANIMALS_BRED, TREASURE_FISHED, JUNK_FISHED, LEAVE_GAME, JUMP, DROP, PLAY_ONE_TICK, WALK_ONE_CM, SWIM_ONE_CM, FALL_ONE_CM, CLIMB_ONE_CM, FLY_ONE_CM, DIVE_ONE_CM, MINECART_ONE_CM, BOAT_ONE_CM, PIG_ONE_CM, HORSE_ONE_CM, SPRINT_ONE_CM, CROUCH_ONE_CM, MINE_BLOCK(Type.BLOCK), USE_ITEM(Type.ITEM), BREAK_ITEM(Type.ITEM), CRAFT_ITEM(Type.ITEM), KILL_ENTITY(Type.ENTITY), ENTITY_KILLED_BY(Type.ENTITY), TIME_SINCE_DEATH, TALKED_TO_VILLAGER, TRADED_WITH_VILLAGER; private final Type type; private Statistic() { this(Type.UNTYPED); } private Statistic(Type type) { this.type = type; } /** * Gets the type of this statistic. * * @return the type of this statistic */ public Type getType() { return type; } /** * Checks if this is a substatistic. *
* A substatistic exists en masse for each block, item, or entitytype, depending on * {@link #getType()}. *
* This is a redundant method and equivalent to checking
* getType() != Type.UNTYPED
*
* @return true if this is a substatistic
*/
public boolean isSubstatistic() {
return type != Type.UNTYPED;
}
/**
* Checks if this is a substatistic dealing with blocks.
*
* This is a redundant method and equivalent to checking
* getType() == Type.BLOCK
*
* @return true if this deals with blocks
*/
public boolean isBlock() {
return type == Type.BLOCK;
}
/**
* The type of statistic.
*
*/
public enum Type {
/**
* Statistics of this type do not require a qualifier.
*/
UNTYPED,
/**
* Statistics of this type require an Item Material qualifier.
*/
ITEM,
/**
* Statistics of this type require a Block Material qualifier.
*/
BLOCK,
/**
* Statistics of this type require an EntityType qualifier.
*/
ENTITY;
}
}