player.sendMessage(ChatTools.formatCommand("", "/nation set", "name [name]", ""));
player.sendMessage(ChatTools.formatCommand("", "/nation set", "title/surname [resident] [text]", ""));
player.sendMessage(ChatTools.formatCommand("", "/nation set", "tag [upto 4 letters] or clear", ""));
} else {
Resident resident;
Nation nation;
try {
resident = TownyUniverse.getDataSource().getResident(player.getName());
nation = resident.getTown().getNation();
if (!resident.isKing())
if (!nation.hasAssistant(resident))
throw new TownyException(TownySettings.getLangString("msg_not_king_ass"));
} catch (TownyException x) {
TownyMessaging.sendErrorMsg(player, x.getMessage());
return;
}
// TODO: Let admin's call a subfunction of this.
if (split[0].equalsIgnoreCase("king")) {
if (split.length < 2)
TownyMessaging.sendErrorMsg(player, "Eg: /nation set king Dumbo");
else
try {
Resident newKing = TownyUniverse.getDataSource().getResident(split[1]);
String oldKingsName = nation.getCapital().getMayor().getName();
nation.setKing(newKing);
plugin.deleteCache(oldKingsName);
plugin.deleteCache(newKing.getName());
TownyMessaging.sendNationMessage(nation, TownySettings.getNewKingMsg(newKing.getName(), nation.getName()));
} catch (TownyException e) {
TownyMessaging.sendErrorMsg(player, e.getMessage());
}
} else if (split[0].equalsIgnoreCase("capital")) {
if (split.length < 2)
TownyMessaging.sendErrorMsg(player, "Eg: /nation set capital {town name}");
else
try {
Town newCapital = TownyUniverse.getDataSource().getTown(split[1]);
nation.setCapital(newCapital);
plugin.updateCache();
TownyMessaging.sendNationMessage(nation, TownySettings.getNewKingMsg(newCapital.getMayor().getName(), nation.getName()));
} catch (TownyException e) {
TownyMessaging.sendErrorMsg(player, e.getMessage());
}
} else if (split[0].equalsIgnoreCase("taxes")) {
if (split.length < 2)
TownyMessaging.sendErrorMsg(player, "Eg: /nation set taxes 70");
else {
Integer amount = Integer.parseInt(split[1].trim());
if (amount < 0) {
TownyMessaging.sendErrorMsg(player, TownySettings.getLangString("msg_err_negative_money"));
return;
}
try {
nation.setTaxes(amount);
TownyMessaging.sendNationMessage(nation, String.format(TownySettings.getLangString("msg_town_set_nation_tax"), player.getName(), split[1]));
} catch (NumberFormatException e) {
TownyMessaging.sendErrorMsg(player, TownySettings.getLangString("msg_error_must_be_int"));
}
}
} else if (split[0].equalsIgnoreCase("name")) {
if (split.length < 2)
TownyMessaging.sendErrorMsg(player, "Eg: /nation set name Plutoria");
else {
if (plugin.isPermissions() && (!TownyUniverse.getPermissionSource().hasPermission(player, PermissionNodes.TOWNY_NATION_RENAME.getNode()))) {
TownyMessaging.sendErrorMsg(player, TownySettings.getLangString("msg_err_command_disable"));
return;
}
if (TownySettings.isValidRegionName(split[1]))
nationRename(player, nation, split[1]);
else
TownyMessaging.sendErrorMsg(player, TownySettings.getLangString("msg_invalid_name"));
}
} else if (split[0].equalsIgnoreCase("tag")) {
if (split.length < 2)
TownyMessaging.sendErrorMsg(player, "Eg: /nation set tag PLT");
else if (split[1].equalsIgnoreCase("clear")) {
try {
nation.setTag(" ");
TownyMessaging.sendNationMessage(nation, String.format(TownySettings.getLangString("msg_reset_nation_tag"), player.getName()));
} catch (TownyException e) {
TownyMessaging.sendErrorMsg(player, e.getMessage());
}
} else
try {
nation.setTag(plugin.getTownyUniverse().checkAndFilterName(split[1]));
TownyMessaging.sendNationMessage(nation, String.format(TownySettings.getLangString("msg_set_nation_tag"), player.getName(), nation.getTag()));
} catch (TownyException e) {
TownyMessaging.sendErrorMsg(player, e.getMessage());
} catch (InvalidNameException e) {
TownyMessaging.sendErrorMsg(player, e.getMessage());
}