Search in sources :

Example 16 with Town

use of com.palmergames.bukkit.towny.object.Town in project Towny by ElgarL.

the class NationCommand method nationAdd.

public static void nationAdd(Player player, Nation nation, List<Town> invited) {
    ArrayList<Town> remove = new ArrayList<Town>();
    for (Town town : invited) try {
        // nation.addTown(town);
        nationInviteTown(player, nation, town);
    } catch (AlreadyRegisteredException e) {
        remove.add(town);
    }
    for (Town town : remove) invited.remove(town);
    if (invited.size() > 0) {
        String msg = "";
        for (Town town : invited) msg += town.getName() + ", ";
        msg = msg.substring(0, msg.length() - 2);
        msg = String.format(TownySettings.getLangString("msg_invited_join_nation"), player.getName(), msg);
        TownyMessaging.sendNationMessage(nation, ChatTools.color(msg));
    // plugin.getTownyUniverse().getDataSource().saveNation(nation);
    } else
        TownyMessaging.sendErrorMsg(player, TownySettings.getLangString("msg_invalid_name"));
}
Also used : Town(com.palmergames.bukkit.towny.object.Town) AlreadyRegisteredException(com.palmergames.bukkit.towny.exceptions.AlreadyRegisteredException) ArrayList(java.util.ArrayList)

Example 17 with Town

use of com.palmergames.bukkit.towny.object.Town in project Towny by ElgarL.

the class PlotCommand method toggleTest.

/**
	 * Check the world and town settings to see if we are allowed to alter these
	 * settings
	 * 
	 * @param player
	 * @param townBlock
	 * @param split
	 * @throws TownyException if toggle is not permitted
	 */
private void toggleTest(Player player, TownBlock townBlock, String split) throws TownyException {
    // Make sure we are allowed to set these permissions.
    Town town = townBlock.getTown();
    split = split.toLowerCase();
    if (split.contains("mobs")) {
        if (town.getWorld().isForceTownMobs())
            throw new TownyException(TownySettings.getLangString("msg_world_mobs"));
    }
    if (split.contains("fire")) {
        if (town.getWorld().isForceFire())
            throw new TownyException(TownySettings.getLangString("msg_world_fire"));
    }
    if (split.contains("explosion")) {
        if (town.getWorld().isForceExpl())
            throw new TownyException(TownySettings.getLangString("msg_world_expl"));
    }
    if (split.contains("pvp")) {
        if (town.getWorld().isForcePVP())
            throw new TownyException(TownySettings.getLangString("msg_world_pvp"));
    }
    if ((split.contains("pvp")) || (split.trim().equalsIgnoreCase("off"))) {
        if (townBlock.getType().equals(TownBlockType.ARENA))
            throw new TownyException(TownySettings.getLangString("msg_plot_pvp"));
    }
}
Also used : Town(com.palmergames.bukkit.towny.object.Town) TownyException(com.palmergames.bukkit.towny.exceptions.TownyException)

Example 18 with Town

use of com.palmergames.bukkit.towny.object.Town in project Towny by ElgarL.

the class PlotCommand method setTownBlockPermissions.

public static void setTownBlockPermissions(Player player, TownBlockOwner townBlockOwner, TownBlock townBlock, String[] split) {
    if (split.length == 0 || split[0].equalsIgnoreCase("?")) {
        player.sendMessage(ChatTools.formatTitle("/... set perm"));
        player.sendMessage(ChatTools.formatCommand("Level", "[friend/ally/outsider]", "", ""));
        player.sendMessage(ChatTools.formatCommand("Type", "[build/destroy/switch/itemuse]", "", ""));
        player.sendMessage(ChatTools.formatCommand("", "set perm", "[on/off]", "Toggle all permissions"));
        player.sendMessage(ChatTools.formatCommand("", "set perm", "[level/type] [on/off]", ""));
        player.sendMessage(ChatTools.formatCommand("", "set perm", "[level] [type] [on/off]", ""));
        player.sendMessage(ChatTools.formatCommand("", "set perm", "reset", ""));
        player.sendMessage(ChatTools.formatCommand("Eg", "/plot set perm", "friend build on", ""));
        player.sendMessage(String.format(TownySettings.getLangString("plot_perms"), "'friend'", ""));
        player.sendMessage(TownySettings.getLangString("plot_perms_1"));
    } else {
        TownyPermission perm = townBlock.getPermissions();
        if (split.length == 1) {
            if (split[0].equalsIgnoreCase("reset")) {
                // reset this townBlock permissions (by town/resident)
                townBlock.setType(townBlock.getType());
                TownyUniverse.getDataSource().saveTownBlock(townBlock);
                if (townBlockOwner instanceof Town)
                    TownyMessaging.sendMsg(player, String.format(TownySettings.getLangString("msg_set_perms_reset"), "Town owned"));
                else
                    TownyMessaging.sendMsg(player, String.format(TownySettings.getLangString("msg_set_perms_reset"), "your"));
                // Reset all caches as this can affect everyone.
                plugin.resetCache();
                return;
            } else {
                try {
                    boolean b = plugin.parseOnOff(split[0]);
                    for (String element : new String[] { "residentBuild", "residentDestroy", "residentSwitch", "residentItemUse", "outsiderBuild", "outsiderDestroy", "outsiderSwitch", "outsiderItemUse", "allyBuild", "allyDestroy", "allySwitch", "allyItemUse" }) perm.set(element, b);
                } catch (Exception e) {
                // invalid entry
                }
            }
        } else if (split.length == 2) {
            try {
                boolean b = plugin.parseOnOff(split[1]);
                if (split[0].equalsIgnoreCase("friend")) {
                    perm.residentBuild = b;
                    perm.residentDestroy = b;
                    perm.residentSwitch = b;
                    perm.residentItemUse = b;
                } else if (split[0].equalsIgnoreCase("outsider")) {
                    perm.outsiderBuild = b;
                    perm.outsiderDestroy = b;
                    perm.outsiderSwitch = b;
                    perm.outsiderItemUse = b;
                } else if (split[0].equalsIgnoreCase("ally")) {
                    perm.allyBuild = b;
                    perm.allyDestroy = b;
                    perm.allySwitch = b;
                    perm.allyItemUse = b;
                } else if (split[0].equalsIgnoreCase("build")) {
                    perm.residentBuild = b;
                    perm.outsiderBuild = b;
                    perm.allyBuild = b;
                } else if (split[0].equalsIgnoreCase("destroy")) {
                    perm.residentDestroy = b;
                    perm.outsiderDestroy = b;
                    perm.allyDestroy = b;
                } else if (split[0].equalsIgnoreCase("switch")) {
                    perm.residentSwitch = b;
                    perm.outsiderSwitch = b;
                    perm.allySwitch = b;
                } else if (split[0].equalsIgnoreCase("itemuse")) {
                    perm.residentItemUse = b;
                    perm.outsiderItemUse = b;
                    perm.allyItemUse = b;
                }
            } catch (Exception e) {
            }
        } else if (split.length == 3) {
            // reset the friend to resident so the perm settings don't fail
            if (split[0].equalsIgnoreCase("friend"))
                split[0] = "resident";
            try {
                boolean b = plugin.parseOnOff(split[2]);
                String s = "";
                s = split[0] + split[1];
                perm.set(s, b);
            } catch (Exception e) {
            }
        }
        townBlock.setChanged(true);
        TownyUniverse.getDataSource().saveTownBlock(townBlock);
        TownyMessaging.sendMsg(player, TownySettings.getLangString("msg_set_perms"));
        TownyMessaging.sendMessage(player, (Colors.Green + " Perm: " + ((townBlockOwner instanceof Resident) ? perm.getColourString().replace("f", "r") : perm.getColourString())));
        TownyMessaging.sendMessage(player, Colors.Green + "PvP: " + ((perm.pvp) ? Colors.Red + "ON" : Colors.LightGreen + "OFF") + Colors.Green + "  Explosions: " + ((perm.explosion) ? Colors.Red + "ON" : Colors.LightGreen + "OFF") + Colors.Green + "  Firespread: " + ((perm.fire) ? Colors.Red + "ON" : Colors.LightGreen + "OFF") + Colors.Green + "  Mob Spawns: " + ((perm.mobs) ? Colors.Red + "ON" : Colors.LightGreen + "OFF"));
        // Reset all caches as this can affect everyone.
        plugin.resetCache();
    }
}
Also used : TownyPermission(com.palmergames.bukkit.towny.object.TownyPermission) Town(com.palmergames.bukkit.towny.object.Town) Resident(com.palmergames.bukkit.towny.object.Resident) NotRegisteredException(com.palmergames.bukkit.towny.exceptions.NotRegisteredException) EconomyException(com.palmergames.bukkit.towny.exceptions.EconomyException) TownyException(com.palmergames.bukkit.towny.exceptions.TownyException)

Example 19 with Town

use of com.palmergames.bukkit.towny.object.Town in project Towny by ElgarL.

the class BaseCommand method onTabComplete.

@Override
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
    LinkedList<String> output = new LinkedList<String>();
    String lastArg = "";
    // Get the last argument
    if (args.length > 0) {
        lastArg = args[args.length - 1].toLowerCase();
    }
    if (!lastArg.equalsIgnoreCase("")) {
        // Match nations
        for (Nation nation : TownyUniverse.getDataSource().getNations()) {
            if (nation.getName().toLowerCase().startsWith(lastArg)) {
                output.add(nation.getName());
            }
        }
        // Match towns
        for (Town town : TownyUniverse.getDataSource().getTowns()) {
            if (town.getName().toLowerCase().startsWith(lastArg)) {
                output.add(town.getName());
            }
        }
        // Match residents
        for (Resident resident : TownyUniverse.getDataSource().getResidents()) {
            if (resident.getName().toLowerCase().startsWith(lastArg)) {
                output.add(resident.getName());
            }
        }
    }
    return output;
}
Also used : Nation(com.palmergames.bukkit.towny.object.Nation) Town(com.palmergames.bukkit.towny.object.Town) Resident(com.palmergames.bukkit.towny.object.Resident) LinkedList(java.util.LinkedList)

Example 20 with Town

use of com.palmergames.bukkit.towny.object.Town in project Towny by ElgarL.

the class NationCommand method parseNationCommand.

public void parseNationCommand(Player player, String[] split) {
    String nationCom = "/nation";
    try {
        if (split.length == 0)
            try {
                Resident resident = TownyUniverse.getDataSource().getResident(player.getName());
                Town town = resident.getTown();
                Nation nation = town.getNation();
                TownyMessaging.sendMessage(player, TownyFormatter.getStatus(nation));
            } catch (NotRegisteredException x) {
                TownyMessaging.sendErrorMsg(player, TownySettings.getLangString("msg_err_dont_belong_nation"));
            }
        else if (split[0].equalsIgnoreCase("?"))
            for (String line : nation_help) player.sendMessage(line);
        else if (split[0].equalsIgnoreCase("list")) {
            if (!TownyUniverse.getPermissionSource().testPermission(player, PermissionNodes.TOWNY_COMMAND_NATION_LIST.getNode()))
                throw new TownyException(TownySettings.getLangString("msg_err_command_disable"));
            listNations(player);
        } else if (split[0].equalsIgnoreCase("new")) {
            if (!TownyUniverse.getPermissionSource().testPermission(player, PermissionNodes.TOWNY_COMMAND_NATION_NEW.getNode()))
                throw new TownyException(TownySettings.getNotPermToNewNationLine());
            // newNation(Player,String,Town)
            if (split.length == 1)
                TownyMessaging.sendErrorMsg(player, TownySettings.getLangString("msg_specify_nation_name"));
            else if (split.length == 2) {
                Resident resident = TownyUniverse.getDataSource().getResident(player.getName());
                if (!resident.isMayor() && !resident.getTown().hasAssistant(resident))
                    throw new TownyException(TownySettings.getLangString("msg_peasant_right"));
                newNation(player, split[1], resident.getTown().getName());
            } else {
                // TODO: Check if player is an admin
                newNation(player, split[1], split[2]);
            }
        } else if (split[0].equalsIgnoreCase("leave")) {
            if (!TownyUniverse.getPermissionSource().testPermission(player, PermissionNodes.TOWNY_COMMAND_NATION_LEAVE.getNode()))
                throw new TownyException(TownySettings.getLangString("msg_err_command_disable"));
            nationLeave(player);
        } else if (split[0].equalsIgnoreCase("withdraw")) {
            if (!TownyUniverse.getPermissionSource().testPermission(player, PermissionNodes.TOWNY_COMMAND_NATION_WITHDRAW.getNode()))
                throw new TownyException(TownySettings.getLangString("msg_err_command_disable"));
            if (split.length == 2)
                try {
                    nationWithdraw(player, Integer.parseInt(split[1].trim()));
                } catch (NumberFormatException e) {
                    TownyMessaging.sendErrorMsg(player, TownySettings.getLangString("msg_error_must_be_int"));
                }
            else
                TownyMessaging.sendErrorMsg(player, String.format(TownySettings.getLangString("msg_must_specify_amnt"), nationCom));
        } else if (split[0].equalsIgnoreCase("deposit")) {
            if (!TownyUniverse.getPermissionSource().testPermission(player, PermissionNodes.TOWNY_COMMAND_NATION_DEPOSIT.getNode()))
                throw new TownyException(TownySettings.getLangString("msg_err_command_disable"));
            if (split.length == 2)
                try {
                    nationDeposit(player, Integer.parseInt(split[1].trim()));
                } catch (NumberFormatException e) {
                    TownyMessaging.sendErrorMsg(player, TownySettings.getLangString("msg_error_must_be_int"));
                }
            else
                TownyMessaging.sendErrorMsg(player, String.format(TownySettings.getLangString("msg_must_specify_amnt"), nationCom + " deposit"));
        } else {
            String[] newSplit = StringMgmt.remFirstArg(split);
            if (split[0].equalsIgnoreCase("rank")) {
                /*
					 * Rank perm tests are performed in the nationrank method.
					 */
                nationRank(player, newSplit);
            } else if (split[0].equalsIgnoreCase("king")) {
                if (!TownyUniverse.getPermissionSource().testPermission(player, PermissionNodes.TOWNY_COMMAND_NATION_KING.getNode()))
                    throw new TownyException(TownySettings.getLangString("msg_err_command_disable"));
                nationKing(player, newSplit);
            } else if (split[0].equalsIgnoreCase("add")) {
                if (!TownyUniverse.getPermissionSource().testPermission(player, PermissionNodes.TOWNY_COMMAND_NATION_ADD.getNode()))
                    throw new TownyException(TownySettings.getLangString("msg_err_command_disable"));
                nationAdd(player, newSplit);
            } else if (split[0].equalsIgnoreCase("kick")) {
                if (!TownyUniverse.getPermissionSource().testPermission(player, PermissionNodes.TOWNY_COMMAND_NATION_KICK.getNode()))
                    throw new TownyException(TownySettings.getLangString("msg_err_command_disable"));
                nationKick(player, newSplit);
            } else if (split[0].equalsIgnoreCase("set")) {
                /*
					 * perm test performed in method.
					 */
                nationSet(player, newSplit);
            } else if (split[0].equalsIgnoreCase("toggle")) {
                /*
					 * perm test performed in method.
					 */
                nationToggle(player, newSplit);
            } else if (split[0].equalsIgnoreCase("ally")) {
                if (!TownyUniverse.getPermissionSource().testPermission(player, PermissionNodes.TOWNY_COMMAND_NATION_ALLY.getNode()))
                    throw new TownyException(TownySettings.getLangString("msg_err_command_disable"));
                nationAlly(player, newSplit);
            } else if (split[0].equalsIgnoreCase("enemy")) {
                if (!TownyUniverse.getPermissionSource().testPermission(player, PermissionNodes.TOWNY_COMMAND_NATION_ENEMY.getNode()))
                    throw new TownyException(TownySettings.getLangString("msg_err_command_disable"));
                nationEnemy(player, newSplit);
            } else if (split[0].equalsIgnoreCase("delete")) {
                if (!TownyUniverse.getPermissionSource().testPermission(player, PermissionNodes.TOWNY_COMMAND_NATION_DELETE.getNode()))
                    throw new TownyException(TownySettings.getLangString("msg_err_command_disable"));
                nationDelete(player, newSplit);
            } else if (split[0].equalsIgnoreCase("online")) {
                if (!TownyUniverse.getPermissionSource().testPermission(player, PermissionNodes.TOWNY_COMMAND_NATION_ONLINE.getNode()))
                    throw new TownyException(TownySettings.getLangString("msg_err_command_disable"));
                try {
                    Resident resident = TownyUniverse.getDataSource().getResident(player.getName());
                    Town town = resident.getTown();
                    Nation nation = town.getNation();
                    TownyMessaging.sendMessage(player, TownyFormatter.getFormattedOnlineResidents(TownySettings.getLangString("msg_nation_online"), nation, player));
                } catch (NotRegisteredException x) {
                    TownyMessaging.sendErrorMsg(player, TownySettings.getLangString("msg_err_dont_belong_nation"));
                }
            } else
                try {
                    Nation nation = TownyUniverse.getDataSource().getNation(split[0]);
                    TownyMessaging.sendMessage(player, TownyFormatter.getStatus(nation));
                } catch (NotRegisteredException x) {
                    TownyMessaging.sendErrorMsg(player, String.format(TownySettings.getLangString("msg_err_not_registered_1"), split[0]));
                }
        }
    } catch (Exception x) {
        TownyMessaging.sendErrorMsg(player, x.getMessage());
    }
}
Also used : Nation(com.palmergames.bukkit.towny.object.Nation) NotRegisteredException(com.palmergames.bukkit.towny.exceptions.NotRegisteredException) Town(com.palmergames.bukkit.towny.object.Town) Resident(com.palmergames.bukkit.towny.object.Resident) NotRegisteredException(com.palmergames.bukkit.towny.exceptions.NotRegisteredException) EmptyNationException(com.palmergames.bukkit.towny.exceptions.EmptyNationException) EconomyException(com.palmergames.bukkit.towny.exceptions.EconomyException) AlreadyRegisteredException(com.palmergames.bukkit.towny.exceptions.AlreadyRegisteredException) InvalidNameException(javax.naming.InvalidNameException) TownyException(com.palmergames.bukkit.towny.exceptions.TownyException) TownyException(com.palmergames.bukkit.towny.exceptions.TownyException)

Aggregations

Town (com.palmergames.bukkit.towny.object.Town)41 NotRegisteredException (com.palmergames.bukkit.towny.exceptions.NotRegisteredException)24 TownyException (com.palmergames.bukkit.towny.exceptions.TownyException)23 Resident (com.palmergames.bukkit.towny.object.Resident)17 ArrayList (java.util.ArrayList)15 AlreadyRegisteredException (com.palmergames.bukkit.towny.exceptions.AlreadyRegisteredException)14 Nation (com.palmergames.bukkit.towny.object.Nation)10 TownBlock (com.palmergames.bukkit.towny.object.TownBlock)8 IOException (java.io.IOException)8 EconomyException (com.palmergames.bukkit.towny.exceptions.EconomyException)7 InvalidNameException (javax.naming.InvalidNameException)5 EmptyNationException (com.palmergames.bukkit.towny.exceptions.EmptyNationException)4 KeyValueFile (com.palmergames.util.KeyValueFile)4 File (java.io.File)4 TownyWorld (com.palmergames.bukkit.towny.object.TownyWorld)3 WorldCoord (com.palmergames.bukkit.towny.object.WorldCoord)3 EOFException (java.io.EOFException)3 FileNotFoundException (java.io.FileNotFoundException)3 PreparedStatement (java.sql.PreparedStatement)3 ResultSet (java.sql.ResultSet)3