Search in sources :

Example 11 with AlreadyRegisteredException

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

the class NationCommand method nationEnemy.

public void nationEnemy(Player player, Nation nation, List<Nation> enemies, boolean add) {
    ArrayList<Nation> remove = new ArrayList<Nation>();
    for (Nation targetNation : enemies) try {
        if (add && !nation.getEnemies().contains(targetNation)) {
            nation.addEnemy(targetNation);
            TownyMessaging.sendNationMessage(targetNation, String.format(TownySettings.getLangString("msg_added_enemy"), nation.getName()));
            // Remove any ally settings from the target nation
            if (targetNation.hasAlly(nation))
                nationAlly(player, targetNation, Arrays.asList(nation), false);
        } else if (nation.getEnemies().contains(targetNation)) {
            nation.removeEnemy(targetNation);
            TownyMessaging.sendNationMessage(targetNation, String.format(TownySettings.getLangString("msg_removed_enemy"), nation.getName()));
        }
    } catch (AlreadyRegisteredException e) {
        remove.add(targetNation);
    } catch (NotRegisteredException e) {
        remove.add(targetNation);
    }
    for (Nation newEnemy : remove) enemies.remove(newEnemy);
    if (enemies.size() > 0) {
        String msg = "";
        for (Nation newEnemy : enemies) msg += newEnemy.getName() + ", ";
        msg = msg.substring(0, msg.length() - 2);
        if (add)
            msg = String.format(TownySettings.getLangString("msg_enemy_nations"), player.getName(), msg);
        else
            msg = String.format(TownySettings.getLangString("msg_enemy_to_neutral"), player.getName(), msg);
        TownyMessaging.sendNationMessage(nation, ChatTools.color(msg));
        TownyUniverse.getDataSource().saveNations();
        plugin.resetCache();
    } else
        TownyMessaging.sendErrorMsg(player, TownySettings.getLangString("msg_invalid_name"));
}
Also used : Nation(com.palmergames.bukkit.towny.object.Nation) NotRegisteredException(com.palmergames.bukkit.towny.exceptions.NotRegisteredException) AlreadyRegisteredException(com.palmergames.bukkit.towny.exceptions.AlreadyRegisteredException) ArrayList(java.util.ArrayList)

Example 12 with AlreadyRegisteredException

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

the class ResidentCommand method residentFriendAdd.

public void residentFriendAdd(Player player, Resident resident, List<Resident> invited) {
    ArrayList<Resident> remove = new ArrayList<Resident>();
    for (Resident newFriend : invited) try {
        resident.addFriend(newFriend);
        plugin.deleteCache(newFriend.getName());
    } catch (AlreadyRegisteredException e) {
        remove.add(newFriend);
    }
    /*
		 *  Remove any names from the list who were already listed as friends
		 */
    for (Resident newFriend : remove) {
        invited.remove(newFriend);
    }
    /*
		 * If we added any friends format the confirmation message.
		 */
    if (invited.size() > 0) {
        String msg = "Added ";
        for (Resident newFriend : invited) {
            msg += newFriend.getName() + ", ";
            Player p = BukkitTools.getPlayer(newFriend.getName());
            if (p != null) {
                TownyMessaging.sendMsg(p, String.format(TownySettings.getLangString("msg_friend_add"), player.getName()));
            }
        }
        msg = msg.substring(0, msg.length() - 2);
        msg += TownySettings.getLangString("msg_to_list");
        TownyMessaging.sendMsg(player, msg);
        TownyUniverse.getDataSource().saveResident(resident);
    } else {
        TownyMessaging.sendErrorMsg(player, TownySettings.getLangString("msg_invalid_name"));
    }
}
Also used : Player(org.bukkit.entity.Player) AlreadyRegisteredException(com.palmergames.bukkit.towny.exceptions.AlreadyRegisteredException) ArrayList(java.util.ArrayList) Resident(com.palmergames.bukkit.towny.object.Resident)

Example 13 with AlreadyRegisteredException

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

the class NationCommand method nationInviteTown.

private static void nationInviteTown(Player player, Nation nation, Town town) throws AlreadyRegisteredException {
    Plugin test = plugin.getServer().getPluginManager().getPlugin("Questioner");
    Resident townMayor = town.getMayor();
    if (TownySettings.isUsingQuestioner() && test != null && test instanceof Questioner && test.isEnabled()) {
        Questioner questioner = (Questioner) test;
        questioner.loadClasses();
        List<Option> options = new ArrayList<Option>();
        options.add(new Option(TownySettings.questionerAccept(), new JoinNationTask(townMayor, nation)));
        options.add(new Option(TownySettings.questionerDeny(), new ResidentNationQuestionTask(townMayor, nation) {

            @Override
            public void run() {
                TownyMessaging.sendNationMessage(nation, String.format(TownySettings.getLangString("msg_deny_invite"), getResident().getName()));
            }
        }));
        Question question = new Question(townMayor.getName(), String.format(TownySettings.getLangString("msg_invited"), nation.getName()), options);
        try {
            plugin.appendQuestion(questioner, question);
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    } else {
        nation.addTown(town);
        plugin.resetCache();
        TownyUniverse.getDataSource().saveTown(town);
    }
}
Also used : ResidentNationQuestionTask(com.palmergames.bukkit.towny.questioner.ResidentNationQuestionTask) JoinNationTask(com.palmergames.bukkit.towny.questioner.JoinNationTask) Questioner(ca.xshade.bukkit.questioner.Questioner) ArrayList(java.util.ArrayList) Resident(com.palmergames.bukkit.towny.object.Resident) Option(ca.xshade.questionmanager.Option) Question(ca.xshade.questionmanager.Question) 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) Plugin(org.bukkit.plugin.Plugin)

Example 14 with AlreadyRegisteredException

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

the class NationCommand method nationAlly.

public void nationAlly(Player player, Nation nation, List<Nation> allies, boolean add) {
    ArrayList<Nation> remove = new ArrayList<Nation>();
    for (Nation targetNation : allies) try {
        if (add && !nation.getAllies().contains(targetNation)) {
            if (!targetNation.hasEnemy(nation)) {
                // We are not set as an enemy so we can set as ally.
                nation.addAlly(targetNation);
                TownyMessaging.sendNationMessage(targetNation, String.format(TownySettings.getLangString("msg_added_ally"), nation.getName()));
            } else {
                // We are set as an enemy so can't ally.
                remove.add(targetNation);
                TownyMessaging.sendNationMessage(nation, String.format(TownySettings.getLangString("msg_unable_ally_enemy"), targetNation.getName()));
            }
        } else if (nation.getAllies().contains(targetNation)) {
            nation.removeAlly(targetNation);
            TownyMessaging.sendNationMessage(targetNation, String.format(TownySettings.getLangString("msg_removed_ally"), nation.getName()));
            // Remove any mirrored ally settings from the target nation
            if (targetNation.hasAlly(nation))
                nationAlly(player, targetNation, Arrays.asList(nation), false);
        }
    } catch (AlreadyRegisteredException e) {
        remove.add(targetNation);
    } catch (NotRegisteredException e) {
        remove.add(targetNation);
    }
    for (Nation newAlly : remove) allies.remove(newAlly);
    if (allies.size() > 0) {
        String msg = "";
        for (Nation newAlly : allies) msg += newAlly.getName() + ", ";
        msg = msg.substring(0, msg.length() - 2);
        if (add)
            msg = String.format(TownySettings.getLangString("msg_allied_nations"), player.getName(), msg);
        else
            msg = String.format(TownySettings.getLangString("msg_broke_alliance"), player.getName(), msg);
        TownyMessaging.sendNationMessage(nation, ChatTools.color(msg));
        TownyUniverse.getDataSource().saveNations();
        plugin.resetCache();
    } else
        TownyMessaging.sendErrorMsg(player, TownySettings.getLangString("msg_invalid_name"));
}
Also used : Nation(com.palmergames.bukkit.towny.object.Nation) NotRegisteredException(com.palmergames.bukkit.towny.exceptions.NotRegisteredException) AlreadyRegisteredException(com.palmergames.bukkit.towny.exceptions.AlreadyRegisteredException) ArrayList(java.util.ArrayList)

Example 15 with AlreadyRegisteredException

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

the class NationCommand method nationRank.

public void nationRank(Player player, String[] split) {
    if (split.length == 0) {
        // Help output.
        player.sendMessage(ChatTools.formatTitle("/nation rank"));
        player.sendMessage(ChatTools.formatCommand("", "/nation rank", "add/remove [resident] rank", ""));
    } else {
        Resident resident, target;
        Town town = null;
        Town targetTown = null;
        String rank;
        /*
			 * Does the command have enough arguments?
			 */
        if (split.length < 3) {
            TownyMessaging.sendErrorMsg(player, "Eg: /town rank add/remove [resident] [rank]");
            return;
        }
        try {
            resident = TownyUniverse.getDataSource().getResident(player.getName());
            target = TownyUniverse.getDataSource().getResident(split[1]);
            town = resident.getTown();
            targetTown = target.getTown();
            if (town.getNation() != targetTown.getNation())
                throw new TownyException("This resident is not a member of your Town!");
        } catch (TownyException x) {
            TownyMessaging.sendErrorMsg(player, x.getMessage());
            return;
        }
        rank = split[2].toLowerCase();
        /*
			 * Is this a known rank?
			 */
        if (!TownyPerms.getNationRanks().contains(rank)) {
            TownyMessaging.sendErrorMsg(player, "Unknown rank '" + rank + "'. Permissible ranks are :- " + StringMgmt.join(TownyPerms.getNationRanks(), ",") + ".");
            return;
        }
        /*
			 * Only allow the player to assign ranks if they have the grant perm
			 * for it.
			 */
        if (!TownyUniverse.getPermissionSource().testPermission(player, PermissionNodes.TOWNY_COMMAND_NATION_RANK.getNode(rank))) {
            TownyMessaging.sendErrorMsg(player, "You do not have permission to modify this rank.");
            return;
        }
        if (split[0].equalsIgnoreCase("add")) {
            try {
                if (target.addNationRank(rank)) {
                    TownyMessaging.sendMsg(target, "You have been granted the Nation rank of '" + rank + "'.");
                    TownyMessaging.sendMsg(player, "You have granted the Nation rank of '" + rank + "' to " + target.getName() + ".");
                } else {
                    // Not in a nation or Rank doesn't exist
                    TownyMessaging.sendErrorMsg(player, "That resident isn't a member of a town!");
                    return;
                }
            } catch (AlreadyRegisteredException e) {
                // Must already have this rank
                TownyMessaging.sendMsg(player, target.getName() + " already holds this Nation rank.");
                return;
            }
        } else if (split[0].equalsIgnoreCase("remove")) {
            try {
                if (target.removeNationRank(rank)) {
                    TownyMessaging.sendMsg(target, "You have been demoted from the Nation rank of '" + rank + "'.");
                    TownyMessaging.sendMsg(player, "You have removed the Nation rank of '" + rank + "' from " + target.getName() + ".");
                }
            } catch (NotRegisteredException e) {
                // Must already have this rank
                TownyMessaging.sendMsg(player, target.getName() + " doesn't hold this Nation rank.");
                return;
            }
        } else {
            TownyMessaging.sendErrorMsg(player, String.format(TownySettings.getLangString("msg_err_invalid_property"), split[0]));
            return;
        }
        /*
			 * If we got here we have made a change Save the altered resident
			 * data.
			 */
        TownyUniverse.getDataSource().saveResident(target);
    }
}
Also used : NotRegisteredException(com.palmergames.bukkit.towny.exceptions.NotRegisteredException) Town(com.palmergames.bukkit.towny.object.Town) AlreadyRegisteredException(com.palmergames.bukkit.towny.exceptions.AlreadyRegisteredException) Resident(com.palmergames.bukkit.towny.object.Resident) TownyException(com.palmergames.bukkit.towny.exceptions.TownyException)

Aggregations

AlreadyRegisteredException (com.palmergames.bukkit.towny.exceptions.AlreadyRegisteredException)27 NotRegisteredException (com.palmergames.bukkit.towny.exceptions.NotRegisteredException)21 TownyException (com.palmergames.bukkit.towny.exceptions.TownyException)15 IOException (java.io.IOException)12 TownyWorld (com.palmergames.bukkit.towny.object.TownyWorld)8 InvalidNameException (javax.naming.InvalidNameException)7 Resident (com.palmergames.bukkit.towny.object.Resident)6 BufferedReader (java.io.BufferedReader)6 EOFException (java.io.EOFException)6 FileNotFoundException (java.io.FileNotFoundException)6 FileReader (java.io.FileReader)6 Town (com.palmergames.bukkit.towny.object.Town)5 PreparedStatement (java.sql.PreparedStatement)5 ResultSet (java.sql.ResultSet)5 SQLException (java.sql.SQLException)5 Statement (java.sql.Statement)5 ArrayList (java.util.ArrayList)5 TownBlock (com.palmergames.bukkit.towny.object.TownBlock)4 World (org.bukkit.World)3 Nation (com.palmergames.bukkit.towny.object.Nation)2