diff options
author | EvilSeph <evilseph@gmail.com> | 2011-10-03 01:25:39 -0400 |
---|---|---|
committer | EvilSeph <evilseph@gmail.com> | 2011-10-03 10:11:46 -0400 |
commit | 233d3144823bb2e4bb4864ceb54178e4ee2a54a0 (patch) | |
tree | dd286c38b50d59b6ffe196e9b4766973d188d7c5 | |
parent | e7dc19c375c436f380e9513e07e2ff618790e06a (diff) | |
download | bukkit-233d3144823bb2e4bb4864ceb54178e4ee2a54a0.tar bukkit-233d3144823bb2e4bb4864ceb54178e4ee2a54a0.tar.gz bukkit-233d3144823bb2e4bb4864ceb54178e4ee2a54a0.tar.lz bukkit-233d3144823bb2e4bb4864ceb54178e4ee2a54a0.tar.xz bukkit-233d3144823bb2e4bb4864ceb54178e4ee2a54a0.zip |
Added Difficulty API.
-rw-r--r-- | src/main/java/org/bukkit/Difficulty.java | 61 | ||||
-rw-r--r-- | src/main/java/org/bukkit/Server.java | 8 | ||||
-rw-r--r-- | src/main/java/org/bukkit/World.java | 14 |
3 files changed, 79 insertions, 4 deletions
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<Integer, Difficulty> difficulties = new HashMap<Integer, Difficulty>(); + + 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 @@ -726,6 +726,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 */ public enum Environment { |