From 1cba399b722405bc774c0dde0392481cf8307331 Mon Sep 17 00:00:00 2001 From: Nathan Adams Date: Thu, 12 Jan 2012 22:16:31 +0000 Subject: Added new 1.1 items, enchantments. Added WorldType, and a method to set/get the type of a world at creation. --- src/main/java/org/bukkit/Material.java | 1 + src/main/java/org/bukkit/WorldCreator.java | 22 +++++++++++ src/main/java/org/bukkit/WorldType.java | 44 ++++++++++++++++++++++ .../java/org/bukkit/enchantments/Enchantment.java | 20 ++++++++++ .../org/bukkit/enchantments/EnchantmentTarget.java | 7 +++- 5 files changed, 93 insertions(+), 1 deletion(-) create mode 100644 src/main/java/org/bukkit/WorldType.java diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java index c61e7dcb..c0bafe88 100644 --- a/src/main/java/org/bukkit/Material.java +++ b/src/main/java/org/bukkit/Material.java @@ -263,6 +263,7 @@ public enum Material { CAULDRON_ITEM(380), EYE_OF_ENDER(381), SPECKLED_MELON(382), + MONSTER_EGG(383, 1), GOLD_RECORD(2256, 1), GREEN_RECORD(2257, 1), RECORD_3(2258, 1), diff --git a/src/main/java/org/bukkit/WorldCreator.java b/src/main/java/org/bukkit/WorldCreator.java index fec84f0c..17f30356 100644 --- a/src/main/java/org/bukkit/WorldCreator.java +++ b/src/main/java/org/bukkit/WorldCreator.java @@ -13,6 +13,7 @@ public class WorldCreator { private long seed; private World.Environment environment = World.Environment.NORMAL; private ChunkGenerator generator = null; + private WorldType type = WorldType.NORMAL; /** * Creates an empty WorldCreationOptions for the given world name @@ -115,6 +116,27 @@ public class WorldCreator { return this; } + /** + * Gets the type of the world that will be created or loaded + * + * @return World type + */ + public WorldType type() { + return type; + } + + /** + * Sets the type of the world that will be created or loaded + * + * @param type World type + * @return This object, for chaining + */ + public WorldCreator type(WorldType type) { + this.type = type; + + return this; + } + /** * Gets the generator that will be used to create or load the world. *

diff --git a/src/main/java/org/bukkit/WorldType.java b/src/main/java/org/bukkit/WorldType.java new file mode 100644 index 00000000..acbf4c05 --- /dev/null +++ b/src/main/java/org/bukkit/WorldType.java @@ -0,0 +1,44 @@ +package org.bukkit; + +import java.util.HashMap; +import java.util.Map; + +/** + * Represents various types of worlds that may exist + */ +public enum WorldType { + NORMAL("normal"), + FLAT("flat"); + + private final static Map lookup = new HashMap(); + private final String name; + + static { + for (WorldType type : values()) { + lookup.put(type.getName(), type); + } + } + + private WorldType(String name) { + this.name = name; + } + + /** + * Gets the name of this WorldType + * + * @return Name of this type + */ + public String getName() { + return name; + } + + /** + * Gets a Worldtype by its name + * + * @param name Name of the WorldType to get + * @return Requested WorldType, or null if not found + */ + public static WorldType getByName(String name) { + return lookup.get(name.toUpperCase()); + } +} diff --git a/src/main/java/org/bukkit/enchantments/Enchantment.java b/src/main/java/org/bukkit/enchantments/Enchantment.java index 646334fc..2ec48540 100644 --- a/src/main/java/org/bukkit/enchantments/Enchantment.java +++ b/src/main/java/org/bukkit/enchantments/Enchantment.java @@ -93,6 +93,26 @@ public abstract class Enchantment { */ public static final Enchantment LOOT_BONUS_BLOCKS = new EnchantmentWrapper(35); + /** + * Provides extra damage when shooting arrows from bows + */ + public static final Enchantment ARROW_DAMAGE = new EnchantmentWrapper(48); + + /** + * Provides a knockback when an entity is hit by an arrow from a bow + */ + public static final Enchantment ARROW_KNOCKBACK = new EnchantmentWrapper(49); + + /** + * Sets entities on fire when hit by arrows shot from a bow + */ + public static final Enchantment ARROW_FIRE = new EnchantmentWrapper(50); + + /** + * Provides infinite arrows when shooting a bow + */ + public static final Enchantment ARROW_INFINITE = new EnchantmentWrapper(51); + private static final Map byId = new HashMap(); private static final Map byName = new HashMap(); private static boolean acceptingNew = true; diff --git a/src/main/java/org/bukkit/enchantments/EnchantmentTarget.java b/src/main/java/org/bukkit/enchantments/EnchantmentTarget.java index 74d72234..fa006879 100644 --- a/src/main/java/org/bukkit/enchantments/EnchantmentTarget.java +++ b/src/main/java/org/bukkit/enchantments/EnchantmentTarget.java @@ -42,5 +42,10 @@ public enum EnchantmentTarget { /** * Allows the Enchantment to be placed on tools (spades, pickaxe, hoes, axes) */ - TOOL; + TOOL, + + /** + * Allows the Enchantment to be placed on bows. + */ + BOW; } -- cgit v1.2.3