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"));
}
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"));
}
}
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);
}
}
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"));
}
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);
}
}
Aggregations