package com.github.jamesnorris.ablockalypse.enumerated;
import java.util.Map;
import com.github.jamesnorris.ablockalypse.Ablockalypse;
import com.google.common.collect.Maps;
public enum Setting {
ATOM_BOMB_POINTS("pointsGivenOnAtomBomb", Integer.class),
BARRIER_FULL_FIX_PAY("barrierCompleteFixIncrease", Integer.class),
BARRIER_PART_FIX_PAY("barrierPerFixIncrease", Integer.class),
BEACONS("chestBeacons", Boolean.class),
BLINKERS("blinkers", Boolean.class),
MYSTERY_BOX_COST("mysteryChestCost", Integer.class),
CLEAR_MOBS("clearNearbyMobs", Boolean.class),
CLEAR_MOBS_RADIUS("nearbyMobClearingRadius", Integer.class),
DEADSHOT_DAIQUIRI_COST("deadshotDaiquiriPoints", Integer.class),
DEADSHOT_DAIQUIRI_LEVEL("deadshotDaiquiriLevel", Integer.class),
DEBUG("DEBUG", Boolean.class),
DEFAULT_FRIENDLY_FIRE_MODE("defaultFriendlyFireMode", Boolean.class),
DISPLAY_PLAYER_HEALTH("displayPlayerHealth", Boolean.class),
END_ON_LAST_PLAYER_LAST_STAND("endOnLastPlayerLastStand", Boolean.class),
EXPLOSIVE_KILL_PAY("explosivePointIncrease", Integer.class),
EXTRA_EFFECTS("addedEffects", Boolean.class),
EXTRA_SOUNDS("addedSounds", Boolean.class),
JUGGERNOG_COST("juggernogPoints", Integer.class),
JUGGERNOG_LEVEL("juggernogLevel", Integer.class),
KILL_PAY("pointIncrease", Integer.class),
LAST_STAND_HEALTH_THRESHOLD("lastStandThreshold", Double.class),
LAST_STAND_HELPER_PAY("pointsGivenOnHelp", Integer.class),
LEVEL_TRANSITION_TIME("levelTransitionTime", Integer.class),
LOSE_PERKS_ON_LAST_STAND("losePerksOnLastStand", Boolean.class),
MAX_FATALITY("MAX_FATALITY", Integer.class),
MAX_PATHFINDER_NODES("maxPathfinderNodes", Integer.class),
MAX_PLAYERS("maxPlayers", Integer.class),
MAX_WAVE("maxWave", Integer.class),
MOVING_MYSTERY_BOXES("movingChests", Boolean.class),
PACK_A_PUNCH_COST("packapunchCost", Integer.class),
PACK_A_PUNCH_LEVEL("packapunchLevel", Integer.class),
PERK_DURATION("perkDuration", Integer.class),
PHD_FLOPPER_COST("phdFlopperPoints", Integer.class),
PHD_FLOPPER_LEVEL("phdFlopperLevel", Integer.class),
POWERUP_CHANCE("powerupChance", Double.class),
PREVENT_NEARBY_SPAWNING("preventNearbySpawning", Boolean.class),
PREVENT_NEARBY_SPAWNING_RADIUS("preventNearbySpawningRadius", Integer.class),
PRINT_STORAGE_DATA_TO_FILE("PRINT_STORAGE_DATA_TO_FILE", Boolean.class),
STAMINUP_COST("staminupPoints", Integer.class),
STAMINUP_LEVEL("staminupLevel", Integer.class),
STARTING_POINTS("startPoints", Integer.class),
TELEPORT_TIME("teleportTime", Integer.class),
TELEPORTERS_REQUIRE_POWER("teleportersRequirePower", Boolean.class),
WOLF_LEVELS("wolfLevels", String[].class);
private final static Map<Integer, Setting> BY_ID = Maps.newHashMap();
static {
int id = 0;
for (Setting setting : values()) {
BY_ID.put(++id, setting);
}
}
public static Setting getById(final int id) {
return BY_ID.get(id);
}
public static int getHighestId() {
return BY_ID.size();
}
private Object object;
private String setting;
private Class<?> type;
Setting(String name, Class<?> type) {
setting = name;
this.type = type;
object = Ablockalypse.getInstance().getConfig().get(name);
if (object == null) {
Ablockalypse.getTracker().error("The value for <" + toString() + ">, which uses the value of <" + name + "> in the configuration is null and/or missing!", 100 / values().length);
}
}
public String getName() {
return setting;
}
public Object getSetting() {
return object;
}
public Class<?> getType() {
return type;
}
public void set(Object object) {
this.object = object;
}
}