From ac68b8594e82a77f1d98f4c16e0d5a2126f0c47e Mon Sep 17 00:00:00 2001 From: Andrew Ardill Date: Thu, 17 Feb 2011 14:19:57 +1100 Subject: [PATCH] Renamed MobType->CreatureType and MobSpawner->CreatureSpawner. This is to bring the names in line with the rest of bukkit. Deprecated code has been left in to ensure nothing breaks as a result of refactoring MobType. This will be removed after 1 week, to give plugin devs time to migrate --- .../org/bukkit/block/CreatureSpawner.java | 54 +++++++++++++++++++ .../java/org/bukkit/block/MobSpawner.java | 2 + .../java/org/bukkit/entity/CreatureType.java | 42 +++++++++++++++ src/main/java/org/bukkit/entity/MobType.java | 5 +- .../event/player/PlayerEggThrowEvent.java | 27 ++++++++-- 5 files changed, 125 insertions(+), 5 deletions(-) create mode 100644 src/main/java/org/bukkit/block/CreatureSpawner.java create mode 100644 src/main/java/org/bukkit/entity/CreatureType.java diff --git a/src/main/java/org/bukkit/block/CreatureSpawner.java b/src/main/java/org/bukkit/block/CreatureSpawner.java new file mode 100644 index 00000000..607a3132 --- /dev/null +++ b/src/main/java/org/bukkit/block/CreatureSpawner.java @@ -0,0 +1,54 @@ +package org.bukkit.block; + +import org.bukkit.entity.CreatureType; + + +/** + * Represents a creature spawner. + * + * @author sk89q + * @author Cogito + */ +public interface CreatureSpawner extends BlockState { + /** + * Get the spawner's creature type. + * + * @return + */ + public CreatureType getCreatureType(); + + /** + * Set the spawner creature type. + * + * @param mobType + */ + public void setCreatureType(CreatureType creatureType); + + /** + * Get the spawner's creature type. + * + * @return + */ + public String getCreatureTypeId(); + + /** + * Set the spawner mob type. + * + * @param creatureType + */ + public void setCreatureTypeId(String creatureType); + + /** + * Get the spawner's delay. + * + * @return + */ + public int getDelay(); + + /** + * Set the spawner's delay. + * + * @param delay + */ + public void setDelay(int delay); +} diff --git a/src/main/java/org/bukkit/block/MobSpawner.java b/src/main/java/org/bukkit/block/MobSpawner.java index 53c2ee6b..1e1c6cd9 100644 --- a/src/main/java/org/bukkit/block/MobSpawner.java +++ b/src/main/java/org/bukkit/block/MobSpawner.java @@ -6,6 +6,8 @@ import org.bukkit.entity.MobType; * Represents a mob spawner. * * @author sk89q + * + * @deprecated */ public interface MobSpawner extends BlockState { /** diff --git a/src/main/java/org/bukkit/entity/CreatureType.java b/src/main/java/org/bukkit/entity/CreatureType.java new file mode 100644 index 00000000..086e6462 --- /dev/null +++ b/src/main/java/org/bukkit/entity/CreatureType.java @@ -0,0 +1,42 @@ +package org.bukkit.entity; + +import java.util.EnumSet; +import java.util.HashMap; +import java.util.Map; + +public enum CreatureType { + CHICKEN("Chicken"), + COW("Cow"), + CREEPER("Creeper"), + GHAST("Ghast"), + PIG("Pig"), + PIG_ZOMBIE("PigZombie"), + SHEEP("Sheep"), + SKELETON("Skeleton"), + SPIDER("Spider"), + ZOMBIE("Zombie"), + SQUID("Squid"); + + private String name; + + private static final Map mapping + = new HashMap(); + + static { + for (CreatureType type : EnumSet.allOf(CreatureType.class)) { + mapping.put(type.name, type); + } + } + + private CreatureType(String name) { + this.name = name; + } + + public String getName() { + return name; + } + + public static CreatureType fromName(String name) { + return mapping.get(name); + } +} diff --git a/src/main/java/org/bukkit/entity/MobType.java b/src/main/java/org/bukkit/entity/MobType.java index fdd9a48b..b3d14800 100644 --- a/src/main/java/org/bukkit/entity/MobType.java +++ b/src/main/java/org/bukkit/entity/MobType.java @@ -3,7 +3,10 @@ package org.bukkit.entity; import java.util.EnumSet; import java.util.HashMap; import java.util.Map; - +/** + * @deprecated Should be using CreatureType + * + */ public enum MobType { CHICKEN("Chicken"), COW("Cow"), diff --git a/src/main/java/org/bukkit/event/player/PlayerEggThrowEvent.java b/src/main/java/org/bukkit/event/player/PlayerEggThrowEvent.java index a5023167..d0eb5abe 100644 --- a/src/main/java/org/bukkit/event/player/PlayerEggThrowEvent.java +++ b/src/main/java/org/bukkit/event/player/PlayerEggThrowEvent.java @@ -1,5 +1,6 @@ package org.bukkit.event.player; +import org.bukkit.entity.CreatureType; import org.bukkit.entity.Egg; import org.bukkit.entity.MobType; import org.bukkit.entity.Player; @@ -13,10 +14,10 @@ import org.bukkit.entity.Player; public class PlayerEggThrowEvent extends PlayerEvent { private Egg egg; private boolean hatching; - private MobType hatchType; + private CreatureType hatchType; private byte numHatches; - public PlayerEggThrowEvent(Type type, Player player, Egg egg, boolean hatching, byte numHatches, MobType hatchType) { + public PlayerEggThrowEvent(Type type, Player player, Egg egg, boolean hatching, byte numHatches, CreatureType hatchType) { super(type, player); this.egg = egg; this.hatching = hatching; @@ -24,6 +25,13 @@ public class PlayerEggThrowEvent extends PlayerEvent { this.hatchType = hatchType; } + public PlayerEggThrowEvent(Type type, Player player, Egg egg, boolean hatching, byte numHatches, MobType hatchType) { + super(type, player); + this.egg = egg; + this.hatching = hatching; + this.numHatches = numHatches; + this.hatchType = CreatureType.fromName(hatchType.getName()); + } /** * Get the egg. * @@ -59,7 +67,7 @@ public class PlayerEggThrowEvent extends PlayerEvent { * @return The type of the mob being hatched by the egg */ public MobType getHatchType() { - return hatchType; + return MobType.fromName(hatchType.getName()); } /** @@ -67,10 +75,21 @@ public class PlayerEggThrowEvent extends PlayerEvent { * * @param hatchType The type of the mob being hatched by the egg */ - public void setHatchType(MobType hatchType) { + public void setHatchType(CreatureType hatchType) { this.hatchType = hatchType; } + /** + * Change the type of mob being hatched by the egg + * + * @param hatchType The type of the mob being hatched by the egg + * + * @deprecated + */ + public void setHatchType(MobType hatchType) { + this.hatchType = CreatureType.fromName(hatchType.getName()); + } + /** * Get the number of mob hatches from the egg. By default the number * will be he number the server would've done