Search in sources :

Example 51 with TownyException

use of com.palmergames.bukkit.towny.exceptions.TownyException in project Towny by ElgarL.

the class TownyAdminCommand method parseAdminTownCommand.

public void parseAdminTownCommand(String[] split) throws TownyException {
    if (split.length == 0 || split[0].equalsIgnoreCase("?")) {
        sender.sendMessage(ChatTools.formatTitle("/townyadmin town"));
        sender.sendMessage(ChatTools.formatCommand(TownySettings.getLangString("admin_sing"), "/townyadmin town", "[town]", ""));
        sender.sendMessage(ChatTools.formatCommand(TownySettings.getLangString("admin_sing"), "/townyadmin town", "[town] add/kick [] .. []", ""));
        sender.sendMessage(ChatTools.formatCommand(TownySettings.getLangString("admin_sing"), "/townyadmin town", "[town] rename [newname]", ""));
        sender.sendMessage(ChatTools.formatCommand(TownySettings.getLangString("admin_sing"), "/townyadmin town", "[town] delete", ""));
        sender.sendMessage(ChatTools.formatCommand(TownySettings.getLangString("admin_sing"), "/townyadmin town", "[town] spawn", ""));
        sender.sendMessage(ChatTools.formatCommand(TownySettings.getLangString("admin_sing"), "/townyadmin town", "[town] outpost #", ""));
        return;
    }
    try {
        Town town = TownyUniverse.getDataSource().getTown(split[0]);
        if (split.length == 1) {
            TownyMessaging.sendMessage(getSender(), TownyFormatter.getStatus(town));
            return;
        }
        if (!TownyUniverse.getPermissionSource().testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWNYADMIN_TOWN.getNode(split[1].toLowerCase())))
            throw new TownyException(TownySettings.getLangString("msg_err_command_disable"));
        if (split[1].equalsIgnoreCase("add")) {
            /*
				 * if (isConsole) { sender.sendMessage(
				 * "[Towny] InputError: This command was designed for use in game only."
				 * ); return; }
				 */
            TownCommand.townAdd(getSender(), town, StringMgmt.remArgs(split, 2));
        } else if (split[1].equalsIgnoreCase("kick")) {
            TownCommand.townKickResidents(getSender(), town.getMayor(), town, TownyUniverse.getValidatedResidents(getSender(), StringMgmt.remArgs(split, 2)));
        } else if (split[1].equalsIgnoreCase("delete")) {
            TownyUniverse.getDataSource().removeTown(town);
        } else if (split[1].equalsIgnoreCase("rename")) {
            if (!NameValidation.isBlacklistName(split[2])) {
                TownyUniverse.getDataSource().renameTown(town, split[2]);
                TownyMessaging.sendTownMessage(town, String.format(TownySettings.getLangString("msg_town_set_name"), ((getSender() instanceof Player) ? player.getName() : "CONSOLE"), town.getName()));
            } else
                TownyMessaging.sendErrorMsg(getSender(), TownySettings.getLangString("msg_invalid_name"));
        } else if (split[1].equalsIgnoreCase("spawn")) {
            TownCommand.townSpawn(player, StringMgmt.remArgs(split, 2), town, "", false);
        } else if (split[1].equalsIgnoreCase("outpost")) {
            TownCommand.townSpawn(player, StringMgmt.remArgs(split, 2), town, "", true);
        }
    } catch (NotRegisteredException e) {
        TownyMessaging.sendErrorMsg(getSender(), e.getMessage());
    } catch (TownyException e) {
        TownyMessaging.sendErrorMsg(getSender(), e.getMessage());
    }
}
Also used : Player(org.bukkit.entity.Player) NotRegisteredException(com.palmergames.bukkit.towny.exceptions.NotRegisteredException) TownyException(com.palmergames.bukkit.towny.exceptions.TownyException)

Example 52 with TownyException

use of com.palmergames.bukkit.towny.exceptions.TownyException in project Towny by ElgarL.

the class TownyAdminCommand method parseAdminNationCommand.

public void parseAdminNationCommand(String[] split) throws TownyException {
    if (split.length == 0 || split[0].equalsIgnoreCase("?")) {
        sender.sendMessage(ChatTools.formatTitle("/townyadmin nation"));
        sender.sendMessage(ChatTools.formatCommand(TownySettings.getLangString("admin_sing"), "/townyadmin nation", "[nation]", ""));
        sender.sendMessage(ChatTools.formatCommand(TownySettings.getLangString("admin_sing"), "/townyadmin nation", "[nation] add [] .. []", ""));
        sender.sendMessage(ChatTools.formatCommand(TownySettings.getLangString("admin_sing"), "/townyadmin nation", "[nation] rename [newname]", ""));
        sender.sendMessage(ChatTools.formatCommand(TownySettings.getLangString("admin_sing"), "/townyadmin nation", "[nation] delete", ""));
        return;
    }
    try {
        Nation nation = TownyUniverse.getDataSource().getNation(split[0]);
        if (split.length == 1) {
            TownyMessaging.sendMessage(getSender(), TownyFormatter.getStatus(nation));
            return;
        }
        if (!TownyUniverse.getPermissionSource().testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWNYADMIN_NATION.getNode(split[1].toLowerCase())))
            throw new TownyException(TownySettings.getLangString("msg_err_command_disable"));
        if (split[1].equalsIgnoreCase("add")) {
            /*
				 * if (isConsole) { sender.sendMessage(
				 * "[Towny] InputError: This command was designed for use in game only."
				 * ); return; }
				 */
            NationCommand.nationAdd(nation, TownyUniverse.getDataSource().getTowns(StringMgmt.remArgs(split, 2)));
        } else if (split[1].equalsIgnoreCase("delete")) {
            TownyUniverse.getDataSource().removeNation(nation);
        } else if (split[1].equalsIgnoreCase("rename")) {
            if (!NameValidation.isBlacklistName(split[2])) {
                TownyUniverse.getDataSource().renameNation(nation, split[2]);
                TownyMessaging.sendNationMessage(nation, String.format(TownySettings.getLangString("msg_nation_set_name"), ((getSender() instanceof Player) ? player.getName() : "CONSOLE"), nation.getName()));
            } else
                TownyMessaging.sendErrorMsg(getSender(), TownySettings.getLangString("msg_invalid_name"));
        }
    } catch (NotRegisteredException e) {
        TownyMessaging.sendErrorMsg(getSender(), e.getMessage());
    } catch (AlreadyRegisteredException e) {
        TownyMessaging.sendErrorMsg(getSender(), e.getMessage());
    }
}
Also used : Player(org.bukkit.entity.Player) NotRegisteredException(com.palmergames.bukkit.towny.exceptions.NotRegisteredException) AlreadyRegisteredException(com.palmergames.bukkit.towny.exceptions.AlreadyRegisteredException) TownyException(com.palmergames.bukkit.towny.exceptions.TownyException)

Example 53 with TownyException

use of com.palmergames.bukkit.towny.exceptions.TownyException in project Towny by ElgarL.

the class TownyAdminCommand method parseToggleCommand.

public void parseToggleCommand(String[] split) throws TownyException {
    boolean choice;
    if (split.length == 0) {
        // command was '/townyadmin toggle'
        player.sendMessage(ChatTools.formatTitle("/townyadmin toggle"));
        player.sendMessage(ChatTools.formatCommand("", "/townyadmin toggle", "war", ""));
        player.sendMessage(ChatTools.formatCommand("", "/townyadmin toggle", "neutral", ""));
        player.sendMessage(ChatTools.formatCommand("", "/townyadmin toggle", "devmode", ""));
        player.sendMessage(ChatTools.formatCommand("", "/townyadmin toggle", "debug", ""));
        player.sendMessage(ChatTools.formatCommand("", "/townyadmin toggle", "townwithdraw/nationwithdraw", ""));
        player.sendMessage(ChatTools.formatCommand("", "/townyadmin toggle npc", "[resident]", ""));
        return;
    }
    if (!TownyUniverse.getPermissionSource().testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWNYADMIN_TOGGLE.getNode(split[0].toLowerCase())))
        throw new TownyException(TownySettings.getLangString("msg_err_command_disable"));
    if (split[0].equalsIgnoreCase("war")) {
        choice = TownyUniverse.isWarTime();
        if (!choice) {
            plugin.getTownyUniverse().startWarEvent();
            TownyMessaging.sendMsg(getSender(), TownySettings.getLangString("msg_war_started"));
        } else {
            plugin.getTownyUniverse().endWarEvent();
            TownyMessaging.sendMsg(getSender(), TownySettings.getLangString("msg_war_ended"));
        }
    } else if (split[0].equalsIgnoreCase("neutral")) {
        try {
            choice = !TownySettings.isDeclaringNeutral();
            TownySettings.setDeclaringNeutral(choice);
            TownyMessaging.sendMsg(getSender(), String.format(TownySettings.getLangString("msg_nation_allow_neutral"), choice ? "Enabled" : "Disabled"));
        } catch (Exception e) {
            TownyMessaging.sendErrorMsg(getSender(), TownySettings.getLangString("msg_err_invalid_choice"));
            return;
        }
    } else if (split[0].equalsIgnoreCase("devmode")) {
        try {
            choice = !TownySettings.isDevMode();
            TownySettings.setDevMode(choice);
            TownyMessaging.sendMsg(getSender(), "Dev Mode " + (choice ? Colors.Green + "Enabled" : Colors.Red + "Disabled"));
        } catch (Exception e) {
            TownyMessaging.sendErrorMsg(getSender(), TownySettings.getLangString("msg_err_invalid_choice"));
        }
    } else if (split[0].equalsIgnoreCase("debug")) {
        try {
            choice = !TownySettings.getDebug();
            TownySettings.setDebug(choice);
            TownyMessaging.sendMsg(getSender(), "Debug Mode " + (choice ? Colors.Green + "Enabled" : Colors.Red + "Disabled"));
        } catch (Exception e) {
            TownyMessaging.sendErrorMsg(getSender(), TownySettings.getLangString("msg_err_invalid_choice"));
        }
    } else if (split[0].equalsIgnoreCase("townwithdraw")) {
        try {
            choice = !TownySettings.getTownBankAllowWithdrawls();
            TownySettings.SetTownBankAllowWithdrawls(choice);
            TownyMessaging.sendMsg(getSender(), "Town Withdrawls " + (choice ? Colors.Green + "Enabled" : Colors.Red + "Disabled"));
        } catch (Exception e) {
            TownyMessaging.sendErrorMsg(getSender(), TownySettings.getLangString("msg_err_invalid_choice"));
        }
    } else if (split[0].equalsIgnoreCase("nationwithdraw")) {
        try {
            choice = !TownySettings.geNationBankAllowWithdrawls();
            TownySettings.SetNationBankAllowWithdrawls(choice);
            TownyMessaging.sendMsg(getSender(), "Nation Withdrawls " + (choice ? Colors.Green + "Enabled" : Colors.Red + "Disabled"));
        } catch (Exception e) {
            TownyMessaging.sendErrorMsg(getSender(), TownySettings.getLangString("msg_err_invalid_choice"));
        }
    } else if (split[0].equalsIgnoreCase("npc")) {
        if (split.length != 2)
            throw new TownyException(String.format(TownySettings.getLangString("msg_err_invalid_input"), "Eg: toggle npc [resident]"));
        try {
            Resident resident = TownyUniverse.getDataSource().getResident(split[1]);
            resident.setNPC(!resident.isNPC());
            TownyUniverse.getDataSource().saveResident(resident);
            TownyMessaging.sendMessage(sender, String.format(TownySettings.getLangString("msg_npc_flag"), resident.isNPC(), resident.getName()));
        } catch (NotRegisteredException x) {
            throw new TownyException(String.format(TownySettings.getLangString("msg_err_not_registered_1"), split[1]));
        }
    } else {
        // parameter error message
        // neutral/war/townmobs/worldmobs
        TownyMessaging.sendErrorMsg(getSender(), TownySettings.getLangString("msg_err_invalid_choice"));
    }
}
Also used : NotRegisteredException(com.palmergames.bukkit.towny.exceptions.NotRegisteredException) NotRegisteredException(com.palmergames.bukkit.towny.exceptions.NotRegisteredException) EmptyTownException(com.palmergames.bukkit.towny.exceptions.EmptyTownException) IOException(java.io.IOException) AlreadyRegisteredException(com.palmergames.bukkit.towny.exceptions.AlreadyRegisteredException) TownyException(com.palmergames.bukkit.towny.exceptions.TownyException) TownyException(com.palmergames.bukkit.towny.exceptions.TownyException)

Example 54 with TownyException

use of com.palmergames.bukkit.towny.exceptions.TownyException in project Towny by ElgarL.

the class TownyAdminCommand method adminSet.

public void adminSet(String[] split) throws TownyException {
    if (split.length == 0) {
        sender.sendMessage(ChatTools.formatTitle("/townyadmin set"));
        // TODO: player.sendMessage(ChatTools.formatCommand("",
        // "/townyadmin set", "king [nation] [king]", ""));
        sender.sendMessage(ChatTools.formatCommand("", "/townyadmin set", "mayor [town] " + TownySettings.getLangString("town_help_2"), ""));
        sender.sendMessage(ChatTools.formatCommand("", "/townyadmin set", "mayor [town] npc", ""));
        return;
    }
    if (!TownyUniverse.getPermissionSource().testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWNYADMIN_SET.getNode(split[0].toLowerCase())))
        throw new TownyException(TownySettings.getLangString("msg_err_command_disable"));
    if (split[0].equalsIgnoreCase("mayor")) {
        if (split.length < 3) {
            sender.sendMessage(ChatTools.formatTitle("/townyadmin set mayor"));
            sender.sendMessage(ChatTools.formatCommand("Eg", "/townyadmin set mayor", "[town] " + TownySettings.getLangString("town_help_2"), ""));
            sender.sendMessage(ChatTools.formatCommand("Eg", "/townyadmin set mayor", "[town] npc", ""));
        } else
            try {
                Resident newMayor = null;
                Town town = TownyUniverse.getDataSource().getTown(split[1]);
                if (split[2].equalsIgnoreCase("npc")) {
                    String name = nextNpcName();
                    TownyUniverse.getDataSource().newResident(name);
                    newMayor = TownyUniverse.getDataSource().getResident(name);
                    newMayor.setRegistered(System.currentTimeMillis());
                    newMayor.setLastOnline(0);
                    newMayor.setNPC(true);
                    TownyUniverse.getDataSource().saveResident(newMayor);
                    TownyUniverse.getDataSource().saveResidentList();
                    // set for no upkeep as an NPC mayor is assigned
                    town.setHasUpkeep(false);
                } else {
                    newMayor = TownyUniverse.getDataSource().getResident(split[2]);
                    // set upkeep again
                    town.setHasUpkeep(true);
                }
                if (!town.hasResident(newMayor))
                    TownCommand.townAddResident(town, newMayor);
                // Delete the resident if the old mayor was an NPC.
                Resident oldMayor = town.getMayor();
                town.setMayor(newMayor);
                if (oldMayor.isNPC()) {
                    try {
                        town.removeResident(oldMayor);
                        TownyUniverse.getDataSource().removeResident(oldMayor);
                        TownyUniverse.getDataSource().removeResidentList(oldMayor);
                    } catch (EmptyTownException e) {
                        // Should never reach here as we are setting a new
                        // mayor before removing the old one.
                        e.printStackTrace();
                    }
                }
                TownyUniverse.getDataSource().saveTown(town);
                String[] msg = TownySettings.getNewMayorMsg(newMayor.getName());
                TownyMessaging.sendTownMessage(town, msg);
            // TownyMessaging.sendMessage(player, msg);
            } catch (TownyException e) {
                TownyMessaging.sendErrorMsg(getSender(), e.getMessage());
            }
    } else if (split[0].equalsIgnoreCase("capital")) {
        if (split.length < 2) {
            sender.sendMessage(ChatTools.formatTitle("/townyadmin set capital"));
            sender.sendMessage(ChatTools.formatCommand("Eg", "/ta set capital", "[town name]", ""));
        } else {
            try {
                Town newCapital = TownyUniverse.getDataSource().getTown(split[1]);
                Nation nation = newCapital.getNation();
                nation.setCapital(newCapital);
                plugin.resetCache();
                TownyMessaging.sendNationMessage(nation, TownySettings.getNewKingMsg(newCapital.getMayor().getName(), nation.getName()));
                TownyUniverse.getDataSource().saveNation(nation);
                TownyUniverse.getDataSource().saveNationList();
            } catch (TownyException e) {
                TownyMessaging.sendErrorMsg(player, e.getMessage());
            }
        }
    } else {
        TownyMessaging.sendErrorMsg(getSender(), String.format(TownySettings.getLangString("msg_err_invalid_property"), "administrative"));
        return;
    }
}
Also used : EmptyTownException(com.palmergames.bukkit.towny.exceptions.EmptyTownException) TownyException(com.palmergames.bukkit.towny.exceptions.TownyException)

Example 55 with TownyException

use of com.palmergames.bukkit.towny.exceptions.TownyException in project Towny by ElgarL.

the class TownyAdminCommand method giveBonus.

private void giveBonus(String[] split) throws TownyException {
    Town town;
    try {
        if (split.length != 2)
            throw new TownyException(String.format(TownySettings.getLangString("msg_err_invalid_input"), "Eg: givebonus [town/player] [n]"));
        try {
            town = TownyUniverse.getDataSource().getTown(split[0]);
        } catch (NotRegisteredException e) {
            town = TownyUniverse.getDataSource().getResident(split[0]).getTown();
        }
        try {
            town.setBonusBlocks(town.getBonusBlocks() + Integer.parseInt(split[1].trim()));
            TownyMessaging.sendMsg(getSender(), String.format(TownySettings.getLangString("msg_give_total"), town.getName(), split[1], town.getBonusBlocks()));
        } catch (NumberFormatException nfe) {
            throw new TownyException(TownySettings.getLangString("msg_error_must_be_int"));
        }
        TownyUniverse.getDataSource().saveTown(town);
    } catch (TownyException e) {
        throw new TownyException(e.getMessage());
    }
}
Also used : NotRegisteredException(com.palmergames.bukkit.towny.exceptions.NotRegisteredException) TownyException(com.palmergames.bukkit.towny.exceptions.TownyException)

Aggregations

TownyException (com.palmergames.bukkit.towny.exceptions.TownyException)70 NotRegisteredException (com.palmergames.bukkit.towny.exceptions.NotRegisteredException)37 Resident (com.palmergames.bukkit.towny.object.Resident)29 Town (com.palmergames.bukkit.towny.object.Town)17 EconomyException (com.palmergames.bukkit.towny.exceptions.EconomyException)16 Nation (com.palmergames.bukkit.towny.object.Nation)16 TownBlock (com.palmergames.bukkit.towny.object.TownBlock)15 ArrayList (java.util.ArrayList)12 Player (org.bukkit.entity.Player)12 AlreadyRegisteredException (com.palmergames.bukkit.towny.exceptions.AlreadyRegisteredException)11 TownyWorld (com.palmergames.bukkit.towny.object.TownyWorld)11 WorldCoord (com.palmergames.bukkit.towny.object.WorldCoord)7 Location (org.bukkit.Location)7 IOException (java.io.IOException)6 EventHandler (org.bukkit.event.EventHandler)6 Coord (com.palmergames.bukkit.towny.object.Coord)5 InvalidNameException (javax.naming.InvalidNameException)5 BlockLocation (com.palmergames.bukkit.towny.regen.block.BlockLocation)4 EmptyNationException (com.palmergames.bukkit.towny.exceptions.EmptyNationException)3 EmptyTownException (com.palmergames.bukkit.towny.exceptions.EmptyTownException)3