/FileExtraction/Java_unseen/Wind-Development_WindSpigot/WindSpigot-API/src/main/java/org/bukkit/Difficulty.java
package org.bukkit;

import java.util.Map;

import com.google.common.collect.Maps;

/**
 * Represents the various difficulty levels that are available.
 */
public enum Difficulty {
	/**
	 * Players regain health over time, hostile mobs don't spawn, the hunger bar
	 * does not deplete.
	 */
	PEACEFUL(0),

	/**
	 * Hostile mobs spawn, enemies deal less damage than on normal difficulty, the
	 * hunger bar does deplete and starving deals up to 5 hearts of damage. (Default
	 * value)
	 */
	EASY(1),

	/**
	 * Hostile mobs spawn, enemies deal normal amounts of damage, the hunger bar
	 * does deplete and starving deals up to 9.5 hearts of damage.
	 */
	NORMAL(2),

	/**
	 * Hostile mobs spawn, enemies deal greater damage than on normal difficulty,
	 * the hunger bar does deplete and starving can kill players.
	 */
	HARD(3);

	private final int value;
	private final static Map<Integer, Difficulty> BY_ID = Maps.newHashMap();

	private Difficulty(final int value) {
		this.value = value;
	}

	/**
	 * Gets the difficulty value associated with this Difficulty.
	 *
	 * @return An integer value of this difficulty
	 * @deprecated Magic value
	 */
	@Deprecated
	public int getValue() {
		return value;
	}

	/**
	 * Gets the Difficulty represented by the specified value
	 *
	 * @param value Value to check
	 * @return Associative {@link Difficulty} with the given value, or null if it
	 *         doesn't exist
	 * @deprecated Magic value
	 */
	@Deprecated
	public static Difficulty getByValue(final int value) {
		return BY_ID.get(value);
	}

	static {
		for (Difficulty diff : values()) {
			BY_ID.put(diff.value, diff);
		}
	}
}
