package org.mctourney.autoreferee.util;
import java.util.Map;
import org.bukkit.Material;
import org.bukkit.entity.EntityType;
import com.google.common.collect.Maps;
public enum AchievementPoints
{
KILL_PLAYER(100),
DEATH(0),
REVENGE(100),
ARROW_HIT(3),
OBJECTIVE_FOUND(300),
OBJECTIVE_PLACE(100),
PICKUP_BLOCK(1),
MINE_COAL(2),
SMELT_IRON(8),
SMELT_GOLD(12),
MINE_DIAMOND(25),
CRAFT_ARMOR(25),
CRAFT_TOOL(12),
CRAFT_WEAPON(15),
BREW_POTION(30),
KILL_ZOMBIE(8),
KILL_SKELETON(12),
KILL_CREEPER(25),
KILL_SPIDER(12),
KILL_CAVE_SPIDER(12),
KILL_ENDERMAN(20),
KILL_SLIME(4),
KILL_SILVERFISH(5),
KILL_BLAZE(20),
KILL_GHAST(20),
KILL_PIGMAN(12),
KILL_MAGMA_CUBE(5);
public static final int POINTS = 100;
private int value;
private AchievementPoints(int v)
{ this.value = v; }
public int getValue()
{ return this.value; }
public static int ticksToPoints(int v)
{ return v / POINTS; }
private static Map<EntityType, AchievementPoints> monsterKill = Maps.newEnumMap(EntityType.class);
static
{
// the most dangerous game...
monsterKill.put(EntityType.PLAYER, KILL_PLAYER);
// all mobs for which we award points
monsterKill.put(EntityType.ZOMBIE, KILL_ZOMBIE);
monsterKill.put(EntityType.SKELETON, KILL_SKELETON);
monsterKill.put(EntityType.CREEPER, KILL_CREEPER);
monsterKill.put(EntityType.SPIDER, KILL_SPIDER);
monsterKill.put(EntityType.CAVE_SPIDER, KILL_CAVE_SPIDER);
monsterKill.put(EntityType.ENDERMAN, KILL_ENDERMAN);
monsterKill.put(EntityType.SLIME, KILL_SLIME);
monsterKill.put(EntityType.SILVERFISH, KILL_SILVERFISH);
monsterKill.put(EntityType.BLAZE, KILL_BLAZE);
monsterKill.put(EntityType.GHAST, KILL_GHAST);
monsterKill.put(EntityType.PIG_ZOMBIE, KILL_PIGMAN);
monsterKill.put(EntityType.MAGMA_CUBE, KILL_MAGMA_CUBE);
}
public static AchievementPoints getMonsterKill(EntityType entityType)
{ return monsterKill.get(entityType); }
private static Map<Material, AchievementPoints> equipmentCraft = Maps.newEnumMap(Material.class);
static
{
equipmentCraft.put(Material.STONE_SWORD, CRAFT_WEAPON);
equipmentCraft.put(Material.IRON_SWORD, CRAFT_WEAPON);
equipmentCraft.put(Material.GOLD_SWORD, CRAFT_WEAPON);
equipmentCraft.put(Material.DIAMOND_SWORD, CRAFT_WEAPON);
equipmentCraft.put(Material.BOW, CRAFT_WEAPON);
equipmentCraft.put(Material.STONE_PICKAXE, CRAFT_TOOL);
equipmentCraft.put(Material.STONE_AXE, CRAFT_TOOL);
equipmentCraft.put(Material.STONE_SPADE, CRAFT_TOOL);
equipmentCraft.put(Material.IRON_PICKAXE, CRAFT_TOOL);
equipmentCraft.put(Material.IRON_AXE, CRAFT_TOOL);
equipmentCraft.put(Material.IRON_SPADE, CRAFT_TOOL);
equipmentCraft.put(Material.GOLD_PICKAXE, CRAFT_TOOL);
equipmentCraft.put(Material.GOLD_AXE, CRAFT_TOOL);
equipmentCraft.put(Material.GOLD_SPADE, CRAFT_TOOL);
equipmentCraft.put(Material.DIAMOND_PICKAXE, CRAFT_TOOL);
equipmentCraft.put(Material.DIAMOND_AXE, CRAFT_TOOL);
equipmentCraft.put(Material.DIAMOND_SPADE, CRAFT_TOOL);
equipmentCraft.put(Material.IRON_HELMET, CRAFT_ARMOR);
equipmentCraft.put(Material.IRON_CHESTPLATE, CRAFT_ARMOR);
equipmentCraft.put(Material.IRON_LEGGINGS, CRAFT_ARMOR);
equipmentCraft.put(Material.IRON_BOOTS, CRAFT_ARMOR);
equipmentCraft.put(Material.GOLD_HELMET, CRAFT_ARMOR);
equipmentCraft.put(Material.GOLD_CHESTPLATE, CRAFT_ARMOR);
equipmentCraft.put(Material.GOLD_LEGGINGS, CRAFT_ARMOR);
equipmentCraft.put(Material.GOLD_BOOTS, CRAFT_ARMOR);
equipmentCraft.put(Material.DIAMOND_HELMET, CRAFT_ARMOR);
equipmentCraft.put(Material.DIAMOND_CHESTPLATE, CRAFT_ARMOR);
equipmentCraft.put(Material.DIAMOND_LEGGINGS, CRAFT_ARMOR);
equipmentCraft.put(Material.DIAMOND_BOOTS, CRAFT_ARMOR);
}
public static AchievementPoints getEquipmentCraft(Material material)
{ return equipmentCraft.get(material); }
}