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