summaryrefslogtreecommitdiffstats
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/bukkit/Difficulty.java61
-rw-r--r--src/main/java/org/bukkit/Server.java8
-rw-r--r--src/main/java/org/bukkit/World.java14
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 {