package nl.sugcube.crystalquest.command;
import nl.sugcube.crystalquest.Broadcast;
import nl.sugcube.crystalquest.CrystalQuest;
import nl.sugcube.crystalquest.game.Arena;
import org.bukkit.command.CommandSender;
/**
* @author SugarCaney
*/
public class CommandProtect extends CrystalQuestCommand {
public CommandProtect() {
super("protect", "commands.protect-usage", 1);
addPermissions(
"crystalquest.admin"
);
addAutoCompleteMeta(0, AutoCompleteArgument.ARENA);
addAutoCompleteMeta(1, AutoCompleteArgument.RESET);
}
@Override
protected void executeImpl(CrystalQuest plugin, CommandSender sender, String... arguments) {
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;
}
// Remove
if (arguments.length >= 2) {
if (arguments[1].equalsIgnoreCase("remove")) {
arena.setProtection(null);
sender.sendMessage(Broadcast.TAG + Broadcast.get("commands.protect-remove")
.replace("%arena%", arguments[1]));
return;
}
}
// Protect
try {
plugin.prot.protectArena(arena);
sender.sendMessage(Broadcast.TAG + Broadcast.get("commands.protect-succeed")
.replace("%arena%", arguments[1]));
}
catch (Exception e) {
sender.sendMessage(Broadcast.get("commands.protect-error"));
}
}
@Override
protected boolean assertSender(CommandSender sender) {
return true;
}
}