Add villager professions to /spawnmob

This commit is contained in:
KHobbits 2012-03-22 18:00:13 +00:00
parent 3d7d4a47d9
commit 165a76d492
2 changed files with 24 additions and 21 deletions

View File

@ -66,7 +66,7 @@ import org.yaml.snakeyaml.error.YAMLException;
public class Essentials extends JavaPlugin implements IEssentials public class Essentials extends JavaPlugin implements IEssentials
{ {
public static final int BUKKIT_VERSION = 2070; public static final int BUKKIT_VERSION = 2098;
private static final Logger LOGGER = Logger.getLogger("Minecraft"); private static final Logger LOGGER = Logger.getLogger("Minecraft");
private transient ISettings settings; private transient ISettings settings;
private final transient TNTExplodeListener tntListener = new TNTExplodeListener(this); private final transient TNTExplodeListener tntListener = new TNTExplodeListener(this);

View File

@ -11,6 +11,8 @@ import org.bukkit.Location;
import org.bukkit.Server; import org.bukkit.Server;
import org.bukkit.block.Block; import org.bukkit.block.Block;
import org.bukkit.entity.*; import org.bukkit.entity.*;
import org.bukkit.entity.Villager.Profession;
import org.bukkit.material.Colorable;
public class Commandspawnmob extends EssentialsCommand public class Commandspawnmob extends EssentialsCommand
@ -199,7 +201,8 @@ public class Commandspawnmob extends EssentialsCommand
private void changeMobData(final EntityType type, final Entity spawned, String data, final User user) throws Exception private void changeMobData(final EntityType type, final Entity spawned, String data, final User user) throws Exception
{ {
data = data.toLowerCase(Locale.ENGLISH); data = data.toLowerCase(Locale.ENGLISH);
if (type == EntityType.SLIME || type == EntityType.MAGMA_CUBE)
if (spawned instanceof Slime)
{ {
try try
{ {
@ -210,32 +213,24 @@ public class Commandspawnmob extends EssentialsCommand
throw new Exception(_("slimeMalformedSize"), e); throw new Exception(_("slimeMalformedSize"), e);
} }
} }
if ((type == EntityType.SHEEP if (spawned instanceof Ageable && data.contains("baby"))
|| type == EntityType.COW
|| type == EntityType.MUSHROOM_COW
|| type == EntityType.CHICKEN
|| type == EntityType.PIG
|| type == EntityType.VILLAGER
|| type == EntityType.OCELOT
|| type == EntityType.WOLF)
&& data.contains("baby"))
{ {
((Animals)spawned).setBaby(); ((Ageable)spawned).setBaby();
return; return;
} }
if (type == EntityType.SHEEP) if (spawned instanceof Colorable)
{ {
final String color = data.toUpperCase(Locale.ENGLISH).replace("BABY", ""); final String color = data.toUpperCase(Locale.ENGLISH).replace("BABY", "");
try try
{ {
if (color.equals("RANDOM")) if (color.equals("RANDOM"))
{ {
Random rand = new Random(); final Random rand = new Random();
((Sheep)spawned).setColor(DyeColor.values()[rand.nextInt(DyeColor.values().length)]); ((Colorable)spawned).setColor(DyeColor.values()[rand.nextInt(DyeColor.values().length)]);
} }
else else
{ {
((Sheep)spawned).setColor(DyeColor.valueOf(color)); ((Colorable)spawned).setColor(DyeColor.valueOf(color));
} }
} }
catch (Exception e) catch (Exception e)
@ -243,9 +238,7 @@ public class Commandspawnmob extends EssentialsCommand
throw new Exception(_("sheepMalformedColor"), e); throw new Exception(_("sheepMalformedColor"), e);
} }
} }
if ((type == EntityType.WOLF if (spawned instanceof Tameable && data.contains("tamed"))
|| type == EntityType.OCELOT)
&& data.contains("tamed"))
{ {
final Tameable tameable = ((Tameable)spawned); final Tameable tameable = ((Tameable)spawned);
tameable.setTamed(true); tameable.setTamed(true);
@ -266,14 +259,24 @@ public class Commandspawnmob extends EssentialsCommand
{ {
((Ocelot)spawned).setCatType(Ocelot.Type.SIAMESE_CAT); ((Ocelot)spawned).setCatType(Ocelot.Type.SIAMESE_CAT);
} }
if (data.contains("red")) else if (data.contains("red"))
{ {
((Ocelot)spawned).setCatType(Ocelot.Type.RED_CAT); ((Ocelot)spawned).setCatType(Ocelot.Type.RED_CAT);
} }
if (data.contains("black")) else if (data.contains("black"))
{ {
((Ocelot)spawned).setCatType(Ocelot.Type.BLACK_CAT); ((Ocelot)spawned).setCatType(Ocelot.Type.BLACK_CAT);
} }
} }
if (type == EntityType.VILLAGER)
{
for (Profession prof : Villager.Profession.values())
{
if (data.contains(prof.toString().toLowerCase(Locale.ENGLISH)))
{
((Villager)spawned).setProfession(prof);
}
}
}
} }
} }