package nl.sugcube.crystalquest.command;
import nl.sugcube.crystalquest.Broadcast;
import nl.sugcube.crystalquest.CrystalQuest;
import nl.sugcube.crystalquest.game.Arena;
import nl.sugcube.crystalquest.game.CrystalQuestTeam;
import org.bukkit.command.CommandSender;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
/**
* @author SugarCaney
*/
public class CommandSetTeams extends CrystalQuestCommand {
public CommandSetTeams() {
super("setteams", "commands.setteams-usage", 3);
addPermissions(
"crystalquest.admin"
);
addAutoCompleteMeta(0, AutoCompleteArgument.ARENA);
for (int i = 1; i <= 8; i++) {
addAutoCompleteMeta(i, AutoCompleteArgument.TEAMS);
}
}
@Override
protected void executeImpl(CrystalQuest plugin, CommandSender sender, String... arguments) {
try {
Arena arena;
try {
arena = plugin.am.getArena(Integer.parseInt(arguments[0]) - 1);
}
catch (Exception e) {
arena = plugin.am.getArena(arguments[0]);
}
// Check if the arenas exists.
if (arena == null) {
sender.sendMessage(Broadcast.get("arena.no-exist"));
return;
}
try {
Collection<CrystalQuestTeam> teams = new ArrayList<>();
teams.add(CrystalQuestTeam.valueOfName(arguments[1]));
teams.add(CrystalQuestTeam.valueOfName(arguments[2]));
for (int i = 3; i < arguments.length; i++) {
teams.add(CrystalQuestTeam.valueOfName(arguments[i]));
}
if (new HashSet<>(teams).size() != teams.size()) {
sender.sendMessage(Broadcast.get("commands.setteams-double"));
return;
}
arena.setTeams(teams);
System.out.println(arena.getTeams());
}
catch (IllegalArgumentException iae) {
sender.sendMessage(Broadcast.get("commands.invalid-teams"));
return;
}
sender.sendMessage(Broadcast.TAG + Broadcast.get("commands.setteams-set")
.replace("%arena%", arguments[0])
.replace("%amount%", arguments[1]));
arena.resetArena(false);
}
catch (Exception e) {
sender.sendMessage(Broadcast.get("commands.setteams-error"));
}
}
@Override
protected boolean assertSender(CommandSender sender) {
return true;
}
}