package in.twizmwaz.cardinal.command;
import com.sk89q.minecraft.util.commands.Command;
import com.sk89q.minecraft.util.commands.CommandContext;
import com.sk89q.minecraft.util.commands.CommandException;
import com.sk89q.minecraft.util.commands.CommandPermissions;
import in.twizmwaz.cardinal.GameHandler;
import in.twizmwaz.cardinal.chat.ChatConstant;
import in.twizmwaz.cardinal.chat.LocalizedChatMessage;
import in.twizmwaz.cardinal.match.MatchState;
import in.twizmwaz.cardinal.module.modules.startTimer.StartTimer;
import in.twizmwaz.cardinal.module.modules.team.TeamModule;
import in.twizmwaz.cardinal.util.ChatUtils;
import in.twizmwaz.cardinal.util.TeamUtils;
import org.bukkit.command.CommandSender;
public class StartAndEndCommand {
private static int timer;
private static boolean waiting = false;
@Command(aliases = {"start", "begin"}, desc = "Starts the match.", usage = "[time]")
@CommandPermissions("cardinal.match.start")
public static void start(CommandContext cmd, CommandSender sender) throws CommandException {
if (GameHandler.getGameHandler().getMatch().getState().equals(MatchState.WAITING)) {
int time = 600;
if (cmd.argsLength() > 0) time = cmd.getInteger(0) * 20;
GameHandler.getGameHandler().getMatch().start(time);
} else if (GameHandler.getGameHandler().getMatch().getState().equals(MatchState.STARTING)) {
GameHandler.getGameHandler().getMatch().getModules().getModule(StartTimer.class).setTime(cmd.argsLength() > 0 ? cmd.getInteger(0) * 20 : 30 * 20);
} else if (GameHandler.getGameHandler().getMatch().getState().equals(MatchState.ENDED)) {
throw new CommandException(new LocalizedChatMessage(ChatConstant.ERROR_NO_RESUME).getMessage(ChatUtils.getLocale(sender)));
} else {
throw new CommandException(new LocalizedChatMessage(ChatConstant.ERROR_NO_START).getMessage(ChatUtils.getLocale(sender)));
}
}
@Command(aliases = {"end", "finish"}, desc = "Ends the match.", usage = "[team]")
@CommandPermissions("cardinal.match.end")
public static void end(CommandContext cmd, CommandSender sender) throws CommandException {
if (GameHandler.getGameHandler().getMatch().getState() == MatchState.PLAYING) {
try {
TeamModule team = TeamUtils.getTeamByName(cmd.getString(0));
GameHandler.getGameHandler().getMatch().end(team);
} catch (IndexOutOfBoundsException ex) {
GameHandler.getGameHandler().getMatch().end(null);
}
} else throw new CommandException(new LocalizedChatMessage(ChatConstant.ERROR_NO_END).getMessage(ChatUtils.getLocale(sender)));
}
}