From 89cec52402915e4660d582733ee9fd7b02b4ad96 Mon Sep 17 00:00:00 2001 From: Morphan1 Date: Sat, 28 May 2016 17:39:01 -0400 Subject: [PATCH] Add level to MythicSpawn command --- .../mythicmobs/MythicSpawnCommand.java | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/main/java/net/gnomeffinway/depenizen/commands/mythicmobs/MythicSpawnCommand.java b/src/main/java/net/gnomeffinway/depenizen/commands/mythicmobs/MythicSpawnCommand.java index a8d9601b4..125813095 100644 --- a/src/main/java/net/gnomeffinway/depenizen/commands/mythicmobs/MythicSpawnCommand.java +++ b/src/main/java/net/gnomeffinway/depenizen/commands/mythicmobs/MythicSpawnCommand.java @@ -10,12 +10,14 @@ import net.elseland.xikage.MythicMobs.API.IMobsAPI; import net.elseland.xikage.MythicMobs.Mobs.MythicMob; import net.elseland.xikage.MythicMobs.MythicMobs; +import net.gnomeffinway.depenizen.objects.mythicmobs.MythicMobsMob; +import org.bukkit.entity.Entity; public class MythicSpawnCommand extends AbstractCommand { // <--[command] // @Name MythicSpawn - // @Syntax mythicspawn [] [] + // @Syntax mythicspawn [] [] (level:<#>) // @Group Depenizen // @Plugin Depenizen, MythicMobs // @Required 2 @@ -27,7 +29,7 @@ public class MythicSpawnCommand extends AbstractCommand { // This allows you to spawn a MythicMob at a location using the mob's internal name. // @Tags - // + // returns the spawned MythicMobsMob. // @Usage // Use to spawn a BarbarianMinion at a player's location. @@ -45,6 +47,12 @@ public void parseArgs(ScriptEntry scriptEntry) throws InvalidArgumentsException scriptEntry.addObject("location", arg.asType(dLocation.class)); } + else if (!scriptEntry.hasObject("level") + && arg.matchesPrefix("level", "l") + && arg.matchesPrimitive(aH.PrimitiveType.Integer)) { + scriptEntry.addObject("level", arg.asElement()); + } + else if (!scriptEntry.hasObject("name")) { scriptEntry.addObject("name", arg.asElement()); } @@ -58,6 +66,8 @@ else if (!scriptEntry.hasObject("name")) { if (!scriptEntry.hasObject("location") || !scriptEntry.hasObject("name")) { throw new InvalidArgumentsException("Must specify a name and location."); } + + scriptEntry.defaultObject("level", new Element(1)); } @Override @@ -65,12 +75,14 @@ public void execute(ScriptEntry scriptEntry) throws CommandExecutionException { Element name = scriptEntry.getElement("name"); dLocation location = scriptEntry.getdObject("location"); + Element level = scriptEntry.getElement("level"); IMobsAPI api = MythicMobs.inst().getAPI().getMobAPI(); try { MythicMob mob = api.getMythicMob(name.asString()); - api.spawnMythicMob(mob, location); + Entity entity = api.spawnMythicMob(mob, location, level.asInt()); + scriptEntry.addObject("spawned_mythicmob", new MythicMobsMob(api.getMythicMobInstance(entity))); } catch (Exception e) { e.printStackTrace();