package de.oppermann.bastian.spleef.commands;
import java.util.ArrayList;
import java.util.List;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import de.oppermann.bastian.spleef.arena.SpleefArena;
import de.oppermann.bastian.spleef.util.Language;
import de.oppermann.bastian.spleef.util.PlayerManager;
import de.oppermann.bastian.spleef.util.command.AbstractArgument;
import de.oppermann.bastian.spleef.util.command.SpleefCommand.CommandHelp;
import de.oppermann.bastian.spleef.util.command.SpleefCommand.CommandResult;
public class StartArgument extends AbstractArgument {
/**
* Class constructor.
*/
public StartArgument() {
super(new String[]{Language.COMMAND_START.toString()}, 1, "spleef.start", null, Language.COMMAND_START_DESCRIPTION.toString());
}
/*
* (non-Javadoc)
* @see de.oppermann.bastian.spleef.util.command.AbstractArgument#executeForPlayer(org.bukkit.entity.Player, org.bukkit.command.Command, java.lang.String[])
*/
@Override
public CommandResult executeForPlayer(Player player, Command cmd, String[] args) {
if (!player.hasPermission(getPermission())) {
return CommandResult.NO_PERMISSION;
}
SpleefArena arena = PlayerManager.getArena(player.getUniqueId());
if (arena == null) {
player.sendMessage(Language.MUST_BE_IN_ARENA.toString());
return CommandResult.SUCCESS;
}
if (arena.getPlayers().size() < 2) {
player.sendMessage(Language.MUST_BE_AT_LEAST_2_PLAYERS.toString());
return CommandResult.SUCCESS;
}
arena.setCountdown(5, true);
player.sendMessage(Language.COUNTDOWN_SET_TO.toString().replace("%seconds%", "5"));
return CommandResult.SUCCESS;
}
/*
* (non-Javadoc)
* @see de.oppermann.bastian.spleef.util.command.AbstractArgument#executeForServer(org.bukkit.command.CommandSender, org.bukkit.command.Command, java.lang.String[])
*/
@Override
public CommandResult executeForServer(CommandSender sender, Command cmd, String[] args) {
return CommandResult.ONLY_PLAYER; // the console can't join an arena
}
/*
* (non-Javadoc)
* @see de.oppermann.bastian.spleef.util.command.AbstractArgument#onTabComplete(org.bukkit.entity.Player, java.lang.String[])
*/
@Override
public List<String> onTabComplete(Player sender, String[] args) {
ArrayList<String> list = new ArrayList<>();
if (args.length == 1) {
list.add(Language.COMMAND_START.toString());
}
return list;
}
/*
* (non-Javadoc)
* @see de.oppermann.bastian.spleef.util.command.AbstractArgument#getCommandHelp()
*/
@Override
public CommandHelp getCommandHelp() {
return new CommandHelp("/%cmd% " + Language.COMMAND_START, getDescription());
}
}