package com.tommytony.war.command;
import com.sk89q.worldedit.bukkit.WorldEditPlugin;
import com.sk89q.worldedit.bukkit.selections.CuboidSelection;
import com.sk89q.worldedit.bukkit.selections.Selection;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.Location;
import com.tommytony.war.War;
public class SetZoneCommand extends AbstractZoneMakerCommand {
public SetZoneCommand(WarCommandHandler handler, CommandSender sender, String[] args) throws NotZoneMakerException {
super(handler, sender, args);
}
@Override
public boolean handle() {
if (!(this.getSender() instanceof Player)) {
this.badMsg("command.console");
return true;
}
Player player = (Player) this.getSender();
if (this.args.length == 0) {
return false;
} else if (this.args.length > 2) {
return false;
} else if (this.args.length == 1) {
if (War.war.getServer().getPluginManager().isPluginEnabled("WorldEdit")) {
WorldEditPlugin worldEdit = (WorldEditPlugin) War.war.getServer().getPluginManager().getPlugin("WorldEdit");
Selection selection = worldEdit.getSelection(player);
if (selection != null && selection instanceof CuboidSelection) {
Location min = selection.getMinimumPoint();
Location max = selection.getMaximumPoint();
ZoneSetter setter = new ZoneSetter(player, this.args[0]);
setter.placeCorner1(min.getBlock());
setter.placeCorner2(max.getBlock());
return true;
}
}
War.war.addWandBearer(player, this.args[0]);
} else if (this.args.length == 2) {
if (!this.args[1].equals("southeast") && !this.args[1].equals("northwest") && !this.args[1].equals("se") && !this.args[1].equals("nw") && !this.args[1].equals("corner1") && !this.args[1].equals("corner2") && !this.args[1].equals("c1") && !this.args[1].equals("c2") && !this.args[1].equals("pos1") && !this.args[1].equals("pos2") && !this.args[1].equals("wand")) {
return false;
}
ZoneSetter setter = new ZoneSetter(player, this.args[0]);
if (this.args[1].equals("northwest") || this.args[1].equals("nw")) {
setter.placeNorthwest();
} else if (this.args[1].equals("southeast") || this.args[1].equals("se")) {
setter.placeSoutheast();
} else if (this.args[1].equals("corner1") || this.args[1].equals("c1") || this.args[1].equals("pos1")) {
setter.placeCorner1();
} else if (this.args[1].equals("corner2") || this.args[1].equals("c2") || this.args[1].equals("pos2")) {
setter.placeCorner2();
} else if (this.args[1].equals("wand")) {
War.war.addWandBearer(player, this.args[0]);
}
}
return true;
}
}