/Essentials/src/com/earth2me/essentials/Mob.java

https://github.com/BodyshotzVG/Essentials · Java · 105 lines · 89 code · 16 blank · 0 comment · 3 complexity · 5f1036ddf476c680f9a1b9348df21313 MD5 · raw file

  1. package com.earth2me.essentials;
  2. import java.util.HashMap;
  3. import java.util.Map;
  4. import java.util.logging.Level;
  5. import java.util.logging.Logger;
  6. import org.bukkit.Location;
  7. import org.bukkit.Server;
  8. import org.bukkit.entity.CreatureType;
  9. import org.bukkit.entity.LivingEntity;
  10. import org.bukkit.entity.Player;
  11. public enum Mob
  12. {
  13. CHICKEN("Chicken", Enemies.FRIENDLY, CreatureType.CHICKEN),
  14. COW("Cow", Enemies.FRIENDLY, CreatureType.COW),
  15. CREEPER("Creeper", Enemies.ENEMY, CreatureType.CREEPER),
  16. GHAST("Ghast", Enemies.ENEMY, CreatureType.GHAST),
  17. GIANT("Giant", Enemies.ENEMY, CreatureType.GIANT),
  18. PIG("Pig", Enemies.FRIENDLY, CreatureType.PIG),
  19. PIGZOMB("PigZombie", Enemies.NEUTRAL, CreatureType.PIG_ZOMBIE),
  20. SHEEP("Sheep", Enemies.FRIENDLY, "", CreatureType.SHEEP),
  21. SKELETON("Skeleton", Enemies.ENEMY, CreatureType.SKELETON),
  22. SLIME("Slime", Enemies.ENEMY, CreatureType.SLIME),
  23. SPIDER("Spider", Enemies.ENEMY, CreatureType.SPIDER),
  24. SQUID("Squid", Enemies.FRIENDLY, CreatureType.SQUID),
  25. ZOMBIE("Zombie", Enemies.ENEMY, CreatureType.ZOMBIE),
  26. MONSTER("Monster", Enemies.ENEMY, CreatureType.MONSTER),
  27. WOLF("Wolf", Enemies.NEUTRAL, CreatureType.WOLF),
  28. CAVESPIDER("CaveSpider", Enemies.ENEMY, CreatureType.CAVE_SPIDER),
  29. ENDERMAN("Enderman", Enemies.ENEMY, CreatureType.ENDERMAN),
  30. SILVERFISH("Silverfish", Enemies.ENEMY, CreatureType.SILVERFISH);
  31. public static final Logger logger = Logger.getLogger("Minecraft");
  32. private Mob(String n, Enemies en, String s, CreatureType type)
  33. {
  34. this.suffix = s;
  35. this.name = n;
  36. this.type = en;
  37. this.bukkitType = type;
  38. }
  39. private Mob(String n, Enemies en, CreatureType type)
  40. {
  41. this.name = n;
  42. this.type = en;
  43. this.bukkitType = type;
  44. }
  45. public String suffix = "s";
  46. final public String name;
  47. final public Enemies type;
  48. final private CreatureType bukkitType;
  49. private static final Map<String, Mob> hashMap = new HashMap<String, Mob>();
  50. static
  51. {
  52. for (Mob mob : Mob.values())
  53. {
  54. hashMap.put(mob.name, mob);
  55. }
  56. }
  57. public LivingEntity spawn(final Player player, final Server server, final Location loc) throws MobException
  58. {
  59. final LivingEntity entity = player.getWorld().spawnCreature(loc, this.bukkitType);
  60. if (entity == null)
  61. {
  62. logger.log(Level.WARNING, Util.i18n("unableToSpawnMob"));
  63. throw new MobException();
  64. }
  65. return entity;
  66. }
  67. public enum Enemies
  68. {
  69. FRIENDLY("friendly"),
  70. NEUTRAL("neutral"),
  71. ENEMY("enemy");
  72. private Enemies(final String t)
  73. {
  74. this.type = t;
  75. }
  76. final protected String type;
  77. }
  78. public CreatureType getType () {
  79. return bukkitType;
  80. }
  81. public static class MobException extends Exception
  82. {
  83. private static final long serialVersionUID = 1L;
  84. }
  85. public static Mob fromName(String n)
  86. {
  87. return hashMap.get(n);
  88. }
  89. }