Skip to content

Commit

Permalink
Add duration to look command
Browse files Browse the repository at this point in the history
  • Loading branch information
mcmonkey4eva committed Aug 19, 2013
1 parent 98c0505 commit 685d7ac
Showing 1 changed file with 29 additions and 6 deletions.
Expand Up @@ -3,17 +3,15 @@
import java.util.Arrays;
import java.util.List;

import net.aufdemrand.denizen.objects.dEntity;
import net.aufdemrand.denizen.objects.dList;
import net.aufdemrand.denizen.objects.dLocation;
import net.aufdemrand.denizen.objects.*;

import net.aufdemrand.denizen.exceptions.CommandExecutionException;
import net.aufdemrand.denizen.exceptions.InvalidArgumentsException;
import net.aufdemrand.denizen.scripts.ScriptEntry;
import net.aufdemrand.denizen.scripts.commands.AbstractCommand;
import net.aufdemrand.denizen.utilities.entity.Rotation;
import net.aufdemrand.denizen.objects.aH;
import net.aufdemrand.denizen.utilities.debugging.dB;
import org.bukkit.scheduler.BukkitRunnable;

/**
* Controls entity heads.
Expand All @@ -35,6 +33,11 @@ public void parseArgs(ScriptEntry scriptEntry) throws InvalidArgumentsException
scriptEntry.addObject("location", arg.asType(dLocation.class));
}

else if (!scriptEntry.hasObject("duration")
&& arg.matchesArgumentType(Duration.class)
&& arg.matchesPrefix("duration, d"))
scriptEntry.addObject("duration", arg.asType(Duration.class));

else if (!scriptEntry.hasObject("entities")
&& arg.matchesArgumentList(dEntity.class)) {
// Entity arg
Expand All @@ -52,11 +55,13 @@ else if (!scriptEntry.hasObject("entities")
throw new InvalidArgumentsException("Must specify a location and entity!");
}

@SuppressWarnings("unchecked")
@Override
public void execute(ScriptEntry scriptEntry) throws CommandExecutionException {

dLocation loc = (dLocation) scriptEntry.getObject("location");
List<dEntity> entities = (List<dEntity>) scriptEntry.getObject("entities");
final dLocation loc = (dLocation) scriptEntry.getObject("location");
final List<dEntity> entities = (List<dEntity>) scriptEntry.getObject("entities");
final Duration duration = (Duration) scriptEntry.getObject("duration");

dB.report(getName(), loc.debug() +
aH.debugObj("entities", entities.toString()));
Expand All @@ -66,6 +71,24 @@ public void execute(ScriptEntry scriptEntry) throws CommandExecutionException {
Rotation.faceLocation(entity.getBukkitEntity(), loc);
}
}
if (duration != null && duration.getTicks() > 2) {
BukkitRunnable task = new BukkitRunnable() {
long bounces = 0;
public void run() {
bounces += 2;
if (bounces > duration.getTicks()) {
this.cancel();
return;
}
for (dEntity entity : entities) {
if (entity.isSpawned()) {
Rotation.faceLocation(entity.getBukkitEntity(), loc);
}
}
}
};
task.runTaskTimer(denizen, 0, 2);
}
}


Expand Down

0 comments on commit 685d7ac

Please sign in to comment.