From 233d3144823bb2e4bb4864ceb54178e4ee2a54a0 Mon Sep 17 00:00:00 2001 From: EvilSeph Date: Mon, 3 Oct 2011 01:25:39 -0400 Subject: Added Difficulty API. --- src/main/java/org/bukkit/Difficulty.java | 61 ++++++++++++++++++++++++++++++++ src/main/java/org/bukkit/Server.java | 8 ++--- src/main/java/org/bukkit/World.java | 14 ++++++++ 3 files changed, 79 insertions(+), 4 deletions(-) create mode 100644 src/main/java/org/bukkit/Difficulty.java (limited to 'src/main') diff --git a/src/main/java/org/bukkit/Difficulty.java b/src/main/java/org/bukkit/Difficulty.java new file mode 100644 index 00000000..da2876b0 --- /dev/null +++ b/src/main/java/org/bukkit/Difficulty.java @@ -0,0 +1,61 @@ +package org.bukkit; + +import java.util.HashMap; +import java.util.Map; + +/** + * 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 difficulties = new HashMap(); + + private Difficulty(final int value) { + this.value = value; + } + + /** + * Gets the difficulty value associated with this Difficulty. + * + * @return An integer value of this difficulty + */ + 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 + */ + public static Difficulty getByValue(final int value) { + return difficulties.get(value); + } + + static { + for (Difficulty diff : Difficulty.values()) { + difficulties.put(diff.getValue(), diff); + } + } +} diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java index 6224c15c..ca71d8d4 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java @@ -323,18 +323,18 @@ public interface Server { * @return World with the given Unique ID, or null if none exists. */ public World getWorld(UUID uid); - + /** * Gets the map from the given item ID. - * + * * @param id ID of the map to get. * @return The MapView if it exists, or null otherwise. */ public MapView getMap(short id); - + /** * Create a new map with an automatically assigned ID. - * + * * @param world The world the map will belong to. * @return The MapView just created. */ diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java index 6897d1b9..51ca7f58 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java @@ -725,6 +725,20 @@ public interface World { */ public void setAutoSave(boolean value); + /** + * Sets the Difficulty of the world. + * + * @param difficulty the new difficulty you want to set the world to + */ + public void setDifficulty(Difficulty difficulty); + + /** + * Gets the Difficulty of the world. + * + * @return The difficulty of the world. + */ + public Difficulty getDifficulty(); + /** * Represents various map environment types that a world may be */ -- cgit v1.2.3