diff --git a/src/com/palmergames/bukkit/towny/TownyAPI.java b/src/com/palmergames/bukkit/towny/TownyAPI.java index 739a3839ae..3f69503650 100644 --- a/src/com/palmergames/bukkit/towny/TownyAPI.java +++ b/src/com/palmergames/bukkit/towny/TownyAPI.java @@ -31,6 +31,7 @@ import java.util.ArrayList; import java.util.List; import java.util.UUID; +import java.util.stream.Collectors; /** * Towny's class for external API Methods @@ -255,16 +256,7 @@ public UUID getPlayerUUID(Resident resident) { * @return {@link List} of all online {@link Player}s in the specified {@link ResidentList}. */ public List getOnlinePlayers(ResidentList owner) { - ArrayList players = new ArrayList<>(); - - for (Player player : BukkitTools.getOnlinePlayers()) { - if (player != null) { - if (owner.hasResident(player.getName())) { - players.add(player); - } - } - } - return players; + return Bukkit.getOnlinePlayers().stream().filter(player -> owner.hasResident(player.getName())).collect(Collectors.toList()); } /** diff --git a/src/com/palmergames/bukkit/towny/TownyFormatter.java b/src/com/palmergames/bukkit/towny/TownyFormatter.java index 12d563d301..a9613d1610 100644 --- a/src/com/palmergames/bukkit/towny/TownyFormatter.java +++ b/src/com/palmergames/bukkit/towny/TownyFormatter.java @@ -14,6 +14,7 @@ import com.palmergames.bukkit.towny.object.TownyObject; import com.palmergames.bukkit.towny.object.TownyWorld; import com.palmergames.bukkit.towny.object.Translation; +import com.palmergames.bukkit.towny.object.Translator; import com.palmergames.bukkit.towny.object.metadata.CustomDataField; import com.palmergames.bukkit.towny.permissions.TownyPerms; import com.palmergames.bukkit.towny.utils.CombatUtil; @@ -36,6 +37,7 @@ import java.util.ArrayList; import java.util.Calendar; import java.util.List; +import java.util.Locale; public class TownyFormatter { @@ -100,15 +102,27 @@ public static String getTime() { return sdf.format(System.currentTimeMillis()); } + /** + * Gets the status screen of a TownBlock, translated using the default locale + * + * @param townBlock the TownBlock to check + * @return a string list containing the results. + */ + public static List getStatus(TownBlock townBlock) { + return getStatus(townBlock, Translation.getDefaultLocale()); + } + /** * Gets the status screen of a TownBlock * * @param townBlock the TownBlock to check + * @param locale Locale to use while translating * @return a string list containing the results. */ - public static List getStatus(TownBlock townBlock) { + public static List getStatus(TownBlock townBlock, Locale locale) { List out = new ArrayList<>(); + final Translator translator = Translator.locale(locale); TownyObject owner; Town town = townBlock.getTownOrNull(); @@ -120,23 +134,23 @@ public static List getStatus(TownBlock townBlock) { else owner = town; - out.add(ChatTools.formatTitle("(" + townBlock.getCoord().toString() + ") " + owner.getFormattedName() + ((BukkitTools.isOnline(owner.getName())) ? Translation.of("online") : ""))); + out.add(ChatTools.formatTitle("(" + townBlock.getCoord().toString() + ") " + owner.getFormattedName() + ((BukkitTools.isOnline(owner.getName())) ? translator.of("online") : ""))); if (!townBlock.getType().equals(TownBlockType.RESIDENTIAL)) - out.add(Translation.of("status_plot_type") + townBlock.getType().toString()); - out.add(Translation.of("status_perm") + ((owner instanceof Resident) ? townBlock.getPermissions().getColourString().replace("n", "t") : townBlock.getPermissions().getColourString().replace("f", "r"))); - out.add(Translation.of("status_perm") + ((owner instanceof Resident) ? townBlock.getPermissions().getColourString2().replace("n", "t") : townBlock.getPermissions().getColourString2().replace("f", "r"))); - out.add(Translation.of("status_pvp") + ((!preventPVP) ? Translation.of("status_on"): Translation.of("status_off")) + - Translation.of("explosions") + ((world.isForceExpl() || townBlock.getPermissions().explosion) ? Translation.of("status_on"): Translation.of("status_off")) + - Translation.of("firespread") + ((town.isFire() || world.isForceFire() || townBlock.getPermissions().fire) ? Translation.of("status_on"):Translation.of("status_off")) + - Translation.of("mobspawns") + ((world.isForceTownMobs() || townBlock.getPermissions().mobs) ? Translation.of("status_on"): Translation.of("status_off"))); + out.add(translator.of("status_plot_type") + townBlock.getType().toString()); + out.add(translator.of("status_perm") + ((owner instanceof Resident) ? townBlock.getPermissions().getColourString().replace("n", "t") : townBlock.getPermissions().getColourString().replace("f", "r"))); + out.add(translator.of("status_perm") + ((owner instanceof Resident) ? townBlock.getPermissions().getColourString2().replace("n", "t") : townBlock.getPermissions().getColourString2().replace("f", "r"))); + out.add(translator.of("status_pvp") + ((!preventPVP) ? translator.of("status_on"): translator.of("status_off")) + + translator.of("explosions") + ((world.isForceExpl() || townBlock.getPermissions().explosion) ? translator.of("status_on"): translator.of("status_off")) + + translator.of("firespread") + ((town.isFire() || world.isForceFire() || townBlock.getPermissions().fire) ? translator.of("status_on"):translator.of("status_off")) + + translator.of("mobspawns") + ((world.isForceTownMobs() || townBlock.getPermissions().mobs) ? translator.of("status_on"): translator.of("status_off"))); if (townBlock.hasPlotObjectGroup()) - out.add(Translation.of("status_plot_group_name_and_size", townBlock.getPlotObjectGroup().getName(), townBlock.getPlotObjectGroup().getTownBlocks().size())); + out.add(translator.of("status_plot_group_name_and_size", townBlock.getPlotObjectGroup().getName(), townBlock.getPlotObjectGroup().getTownBlocks().size())); if (townBlock.getClaimedAt() > 0) - out.add(Translation.of("msg_plot_perm_claimed_at", registeredFormat.format(townBlock.getClaimedAt()))); + out.add(translator.of("msg_plot_perm_claimed_at", registeredFormat.format(townBlock.getClaimedAt()))); if (townBlock.getTrustedResidents().size() > 0) { - out.addAll(getFormattedResidents(Translation.of("status_trustedlist"), new ArrayList<>(townBlock.getTrustedResidents()))); + out.addAll(getFormattedResidents(translator.of("status_trustedlist"), new ArrayList<>(townBlock.getTrustedResidents()))); } out.addAll(getExtraFields(townBlock)); @@ -144,19 +158,32 @@ public static List getStatus(TownBlock townBlock) { return out; } + /** + * Gets the status screen of a Resident, using the default locale + * + * @param resident the resident to check the status of + * @param player make sure the resident is an online player + * @return a string list containing the results. + */ + public static List getStatus(Resident resident, Player player) { + return getStatus(resident, player, Translation.getDefaultLocale()); + } + /** * Gets the status screen of a Resident * * @param resident the resident to check the status of * @param player make sure the resident is an online player + * @param locale Locale to use while translating * @return a string list containing the results. */ - public static List getStatus(Resident resident, Player player) { + public static List getStatus(Resident resident, Player player, Locale locale) { List out = new ArrayList<>(); + final Translator translator = Translator.locale(locale); // ___[ King Harlus ]___ - out.add(ChatTools.formatTitle(resident.getFormattedName() + ((BukkitTools.isOnline(resident.getName()) && (player != null) && (player.canSee(BukkitTools.getPlayer(resident.getName())))) ? Translation.of("online2") : ""))); + out.add(ChatTools.formatTitle(resident.getFormattedName() + ((BukkitTools.isOnline(resident.getName()) && (player != null) && (player.canSee(BukkitTools.getPlayer(resident.getName())))) ? translator.of("online2") : ""))); // First used if last online is this year, 2nd used if last online is early than this year. // Registered: Sept 3 2009 | Last Online: March 7 @ 14:30 @@ -168,32 +195,32 @@ public static List getStatus(Resident resident, Player player) { int lastOnlineYear = cal.get(Calendar.YEAR); if (!resident.isNPC()) // Not an NPC: show more detailed info. if (currentYear == lastOnlineYear) - out.add(Translation.of("registered_last_online", registeredFormat.format(resident.getRegistered()), lastOnlineFormat.format(resident.getLastOnline()))); + out.add(translator.of("registered_last_online", registeredFormat.format(resident.getRegistered()), lastOnlineFormat.format(resident.getLastOnline()))); else - out.add(Translation.of("registered_last_online", registeredFormat.format(resident.getRegistered()), lastOnlineFormatIncludeYear.format(resident.getLastOnline()))); + out.add(translator.of("registered_last_online", registeredFormat.format(resident.getRegistered()), lastOnlineFormatIncludeYear.format(resident.getLastOnline()))); else // An NPC: show their created date. - out.add(Translation.of("npc_created", registeredFormat.format(resident.getRegistered()))); + out.add(translator.of("npc_created", registeredFormat.format(resident.getRegistered()))); // Owner of: 4 plots // Perm: Build = f-- Destroy = fa- Switch = fao Item = --- // if (resident.getTownBlocks().size() > 0) { - out.add(Translation.of("owner_of_x_plots", resident.getTownBlocks().size())); - out.add(Translation.of("status_perm") + resident.getPermissions().getColourString().replace("n", "t")); - out.add(Translation.of("status_perm") + resident.getPermissions().getColourString2().replace("n", "t")); - out.add(Translation.of("status_pvp") + ((resident.getPermissions().pvp) ? Translation.of("status_on"): Translation.of("status_off")) + - Translation.of("explosions") + ((resident.getPermissions().explosion) ? Translation.of("status_on"): Translation.of("status_off")) + - Translation.of("firespread") + ((resident.getPermissions().fire) ? Translation.of("status_on"): Translation.of("status_off")) + - Translation.of("mobspawns") + ((resident.getPermissions().mobs) ? Translation.of("status_on"): Translation.of("status_off"))); + out.add(translator.of("owner_of_x_plots", resident.getTownBlocks().size())); + out.add(translator.of("status_perm") + resident.getPermissions().getColourString().replace("n", "t")); + out.add(translator.of("status_perm") + resident.getPermissions().getColourString2().replace("n", "t")); + out.add(translator.of("status_pvp") + ((resident.getPermissions().pvp) ? translator.of("status_on"): translator.of("status_off")) + + translator.of("explosions") + ((resident.getPermissions().explosion) ? translator.of("status_on"): translator.of("status_off")) + + translator.of("firespread") + ((resident.getPermissions().fire) ? translator.of("status_on"): translator.of("status_off")) + + translator.of("mobspawns") + ((resident.getPermissions().mobs) ? translator.of("status_on"): translator.of("status_off"))); // } // Bank: 534 coins if (TownyEconomyHandler.isActive()) - out.add(Translation.of("status_bank", resident.getAccount().getHoldingFormattedBalance())); + out.add(translator.of("status_bank", resident.getAccount().getHoldingFormattedBalance())); // Town: Camelot - String line = Translation.of("status_town"); + String line = translator.of("status_town"); if (!resident.hasTown()) - line += Translation.of("status_no_town"); + line += translator.of("status_no_town"); else try { line += resident.getTown().getFormattedName(); @@ -203,7 +230,7 @@ public static List getStatus(Resident resident, Player player) { out.add(line); if (resident.isNPC()) { - out.add(Translation.of("msg_status_npc", resident.getName())); + out.add(translator.of("msg_status_npc", resident.getName())); out.addAll(getExtraFields(resident)); out = formatStatusScreens(out); return out; @@ -221,29 +248,29 @@ public static List getStatus(Resident resident, Player player) { } if (townEmbassies.size() > 0) { - out.addAll(getFormattedTowns(Translation.of("status_embassy_town"), townEmbassies)); + out.addAll(getFormattedTowns(translator.of("status_embassy_town"), townEmbassies)); } // Town ranks if (resident.hasTown()) { if (!resident.getTownRanks().isEmpty()) - out.add(Translation.of("status_town_ranks") + StringMgmt.capitalize(StringMgmt.join(resident.getTownRanks(), ", "))); + out.add(translator.of("status_town_ranks") + StringMgmt.capitalize(StringMgmt.join(resident.getTownRanks(), ", "))); } //Nation ranks if (resident.hasNation()) { if (!resident.getNationRanks().isEmpty()) - out.add(Translation.of("status_nation_ranks") + StringMgmt.capitalize(StringMgmt.join(resident.getNationRanks(), ", "))); + out.add(translator.of("status_nation_ranks") + StringMgmt.capitalize(StringMgmt.join(resident.getNationRanks(), ", "))); } // Jailed: yes if they are jailed. if (resident.isJailed()){ - out.add(Translation.of("jailed_in_town", resident.getJailTown().getName()) + ( resident.hasJailTime() ? Translation.of("msg_jailed_for_x_hours", resident.getJailHours()) : "")); + out.add(translator.of("jailed_in_town", resident.getJailTown().getName()) + ( resident.hasJailTime() ? translator.of("msg_jailed_for_x_hours", resident.getJailHours()) : "")); } // Friends [12]: James, Carry, Mason List friends = resident.getFriends(); - out.addAll(getFormattedResidents(Translation.of("status_friends"), friends)); + out.addAll(getFormattedResidents(translator.of("status_friends"), friends)); out.addAll(getExtraFields(resident)); @@ -255,6 +282,10 @@ public static List getStatus(Resident resident, Player player) { out = formatStatusScreens(out); return out; } + + public static List getRanks(Town town) { + return getRanks(town, Translation.getDefaultLocale()); + } /** * Returns a Chat Formatted List of all town residents who hold a rank. @@ -262,20 +293,20 @@ public static List getStatus(Resident resident, Player player) { * @param town the town for which to check against. * @return a list containing formatted rank data. */ - public static List getRanks(Town town) { + public static List getRanks(Town town, Locale locale) { List ranklist = new ArrayList<>(); String towntitle = town.getFormattedName(); - towntitle += Translation.of("rank_list_title"); + towntitle += Translation.of("rank_list_title", locale); ranklist.add(ChatTools.formatTitle(towntitle)); - ranklist.add(Translation.of("rank_list_mayor", town.getMayor().getFormattedName())); + ranklist.add(Translation.of("rank_list_mayor", locale, town.getMayor().getFormattedName())); - getRanks(town, ranklist); + getRanks(town, ranklist, locale); return ranklist; } - private static void getRanks(Town town, List ranklist) { + private static void getRanks(Town town, List ranklist, Locale locale) { List residents = town.getResidents(); List townRanks = TownyPerms.getTownRanks(); List residentWithRank = new ArrayList<>(); @@ -292,7 +323,7 @@ private static void getRanks(Town town, List ranklist) { } if (town.getTrustedResidents().size() > 0) - ranklist.addAll(getFormattedResidents(Translation.of("status_trustedlist"), new ArrayList<>(town.getTrustedResidents()))); + ranklist.addAll(getFormattedResidents(Translation.of("status_trustedlist", locale), new ArrayList<>(town.getTrustedResidents()))); } /** @@ -308,17 +339,29 @@ public static List formatStatusScreens(List out) { formattedOut.add(string); } return formattedOut; - } + } + + /** + * Gets the status screen of a Town, translated using the default locale + * + * @param town the town in which to check + * @return a string list containing the results. + */ + public static List getStatus(Town town) { + return getStatus(town, Translation.getDefaultLocale()); + } /** * Gets the status screen of a Town * * @param town the town in which to check + * @param locale Locale to use while translating * @return a string list containing the results. */ - public static List getStatus(Town town) { + public static List getStatus(Town town, Locale locale) { List out = new ArrayList<>(); + final Translator translator = Translator.locale(locale); TownyWorld world; try { @@ -336,15 +379,15 @@ public static List getStatus(Town town) { out.add(ChatTools.formatTitle(town)); List sub = new ArrayList<>(); if (!town.isAdminDisabledPVP() && (town.isPVP() || world.isForcePVP())) - sub.add(Translation.of("status_title_pvp")); + sub.add(translator.of("status_title_pvp")); if (town.isOpen()) - sub.add(Translation.of("status_title_open")); + sub.add(translator.of("status_title_open")); if (town.isPublic()) - sub.add(Translation.of("status_public")); + sub.add(translator.of("status_public")); if (town.isNeutral()) - sub.add(Translation.of("status_town_title_peaceful")); + sub.add(translator.of("status_town_title_peaceful")); if (town.isConquered()) - sub.add(Translation.of("msg_conquered")); + sub.add(translator.of("msg_conquered")); if (!sub.isEmpty()) out.add(ChatTools.formatSubTitle(StringMgmt.join(sub, " "))); @@ -352,26 +395,26 @@ public static List getStatus(Town town) { // Board: Get your fried chicken if (!town.getBoard().isEmpty()) { try { - out.add(Translation.of("status_town_board", town.getBoard())); + out.add(translator.of("status_town_board", town.getBoard())); } catch (NullPointerException ignored) { } } // Created Date long registered= town.getRegistered(); if (registered != 0) { - out.add(Translation.of("status_founded", registeredFormat.format(town.getRegistered()))); + out.add(translator.of("status_founded", registeredFormat.format(town.getRegistered()))); } // Town Size: 0 / 16 [Bought: 0/48] [Bonus: 0] [Home: 33,44] try { - out.add(Translation.of("status_town_size_part_1", town.getTownBlocks().size(), TownySettings.getMaxTownBlocks(town)) + - (TownySettings.isSellingBonusBlocks(town) ? Translation.of("status_town_size_part_2", town.getPurchasedBlocks(), TownySettings.getMaxPurchasedBlocks(town)) : "") + - (town.getBonusBlocks() > 0 ? Translation.of("status_town_size_part_3", town.getBonusBlocks()) : "") + - (TownySettings.getNationBonusBlocks(town) > 0 ? Translation.of("status_town_size_part_4", TownySettings.getNationBonusBlocks(town)) : "") + - (town.isPublic() ? Translation.of("status_town_size_part_5") + - (TownySettings.getTownDisplaysXYZ() ? (town.hasSpawn() ? BukkitTools.convertCoordtoXYZ(town.getSpawnOrNull()) : Translation.of("status_no_town")) + "]" - : (town.hasHomeBlock() ? town.getHomeBlock().getCoord().toString() : Translation.of("status_no_town")) + "]") : "") + out.add(translator.of("status_town_size_part_1", town.getTownBlocks().size(), TownySettings.getMaxTownBlocks(town)) + + (TownySettings.isSellingBonusBlocks(town) ? translator.of("status_town_size_part_2", town.getPurchasedBlocks(), TownySettings.getMaxPurchasedBlocks(town)) : "") + + (town.getBonusBlocks() > 0 ? translator.of("status_town_size_part_3", town.getBonusBlocks()) : "") + + (TownySettings.getNationBonusBlocks(town) > 0 ? translator.of("status_town_size_part_4", TownySettings.getNationBonusBlocks(town)) : "") + + (town.isPublic() ? translator.of("status_town_size_part_5") + + (TownySettings.getTownDisplaysXYZ() ? (town.hasSpawn() ? BukkitTools.convertCoordtoXYZ(town.getSpawnOrNull()) : translator.of("status_no_town")) + "]" + : (town.hasHomeBlock() ? town.getHomeBlock().getCoord().toString() : translator.of("status_no_town")) + "]") : "") ); } catch (TownyException ignored) {} @@ -379,35 +422,35 @@ public static List getStatus(Town town) { if (TownySettings.isOutpostsLimitedByLevels()) { if (town.hasOutpostSpawn()) if (!town.hasNation()) - out.add(Translation.of("status_town_outposts", town.getMaxOutpostSpawn(), town.getOutpostLimit())); + out.add(translator.of("status_town_outposts", town.getMaxOutpostSpawn(), town.getOutpostLimit())); else { int nationBonus = (Integer) TownySettings.getNationLevel(town.getNationOrNull()).get(TownySettings.NationLevel.NATION_BONUS_OUTPOST_LIMIT); - out.add(Translation.of("status_town_outposts", town.getMaxOutpostSpawn(), town.getOutpostLimit()) + - (nationBonus > 0 ? Translation.of("status_town_outposts2", nationBonus) : "") + out.add(translator.of("status_town_outposts", town.getMaxOutpostSpawn(), town.getOutpostLimit()) + + (nationBonus > 0 ? translator.of("status_town_outposts2", nationBonus) : "") ); } else - out.add(Translation.of("status_town_outposts3", town.getOutpostLimit())); + out.add(translator.of("status_town_outposts3", town.getOutpostLimit())); } else if (town.hasOutpostSpawn()) { - out.add(Translation.of("status_town_outposts4", town.getMaxOutpostSpawn())); + out.add(translator.of("status_town_outposts4", town.getMaxOutpostSpawn())); } } // Permissions: B=rao D=--- S=ra- - out.add(Translation.of("status_perm") + town.getPermissions().getColourString().replace("f", "r")); - out.add(Translation.of("status_perm") + town.getPermissions().getColourString2().replace("f", "r")); - out.add(Translation.of("explosions2") + ((town.isBANG() || world.isForceExpl()) ? Translation.of("status_on"): Translation.of("status_off")) + - Translation.of("firespread") + ((town.isFire() || world.isForceFire()) ? Translation.of("status_on"): Translation.of("status_off")) + - Translation.of("mobspawns") + ((town.hasMobs() || world.isForceTownMobs()) ? Translation.of("status_on"): Translation.of("status_off"))); + out.add(translator.of("status_perm") + town.getPermissions().getColourString().replace("f", "r")); + out.add(translator.of("status_perm") + town.getPermissions().getColourString2().replace("f", "r")); + out.add(translator.of("explosions2") + ((town.isBANG() || world.isForceExpl()) ? translator.of("status_on"): translator.of("status_off")) + + translator.of("firespread") + ((town.isFire() || world.isForceFire()) ? translator.of("status_on"): translator.of("status_off")) + + translator.of("mobspawns") + ((town.hasMobs() || world.isForceTownMobs()) ? translator.of("status_on"): translator.of("status_off"))); if (town.isRuined()) { - out.add(Translation.of("msg_time_remaining_before_full_removal", TownRuinSettings.getTownRuinsMaxDurationHours() - TownRuinUtil.getTimeSinceRuining(town))); + out.add(translator.of("msg_time_remaining_before_full_removal", TownRuinSettings.getTownRuinsMaxDurationHours() - TownRuinUtil.getTimeSinceRuining(town))); if (TownRuinSettings.getTownRuinsReclaimEnabled()) { if (TownRuinUtil.getTimeSinceRuining(town) < TownRuinSettings.getTownRuinsMinDurationHours()) - out.add(Translation.of("msg_time_until_reclaim_available", TownRuinSettings.getTownRuinsMinDurationHours() - TownRuinUtil.getTimeSinceRuining(town))); + out.add(translator.of("msg_time_until_reclaim_available", TownRuinSettings.getTownRuinsMinDurationHours() - TownRuinUtil.getTimeSinceRuining(town))); else - out.add(Translation.of("msg_reclaim_available")); + out.add(translator.of("msg_reclaim_available")); } // Only display the remaining fields if town is not ruined } else { @@ -415,18 +458,18 @@ public static List getStatus(Town town) { if (TownyEconomyHandler.isActive()) { String bankString = ""; - bankString = Translation.of(town.isBankrupt() ? "status_bank_bankrupt" : "status_bank", + bankString = translator.of(town.isBankrupt() ? "status_bank_bankrupt" : "status_bank", town.getAccount().getHoldingFormattedBalance()); if (town.isBankrupt()) { if (town.getAccount().getDebtCap() == 0) town.getAccount().setDebtCap(MoneyUtil.getEstimatedValueOfTown(town)); - bankString += " " + Translation.of("status_debtcap", "-" + TownyEconomyHandler.getFormattedBalance(town.getAccount().getDebtCap())); + bankString += " " + translator.of("status_debtcap", "-" + TownyEconomyHandler.getFormattedBalance(town.getAccount().getDebtCap())); } if (town.hasUpkeep()) - bankString += Translation.of("status_bank_town2", BigDecimal.valueOf(TownySettings.getTownUpkeepCost(town)).setScale(2, RoundingMode.HALF_UP).doubleValue()); + bankString += translator.of("status_bank_town2", BigDecimal.valueOf(TownySettings.getTownUpkeepCost(town)).setScale(2, RoundingMode.HALF_UP).doubleValue()); if (TownySettings.getUpkeepPenalty() > 0 && town.isOverClaimed()) - bankString += Translation.of("status_bank_town_penalty_upkeep", TownySettings.getTownPenaltyUpkeepCost(town)); - bankString += Translation.of("status_bank_town3", town.getTaxes()) + (town.isTaxPercentage() ? "%" : ""); + bankString += translator.of("status_bank_town_penalty_upkeep", TownySettings.getTownPenaltyUpkeepCost(town)); + bankString += translator.of("status_bank_town3", town.getTaxes()) + (town.isTaxPercentage() ? "%" : ""); out.add(bankString); } @@ -434,16 +477,16 @@ public static List getStatus(Town town) { // Nation: Azur Empire if (town.hasNation()) try { - out.add(Translation.of("status_town_nation", town.getNation().getFormattedName())); + out.add(translator.of("status_town_nation", town.getNation().getFormattedName())); } catch (TownyException ignored) { } // Mayor: MrSand | Bank: 534 coins - out.add(Translation.of("rank_list_mayor", town.getMayor().getFormattedName())); + out.add(translator.of("rank_list_mayor", town.getMayor().getFormattedName())); // Assistants [2]: Sammy, Ginger List ranklist = new ArrayList<>(); - getRanks(town, ranklist); + getRanks(town, ranklist, locale); out.addAll(ranklist); // Residents [12]: James, Carry, Mason @@ -452,9 +495,9 @@ public static List getStatus(Town town) { String[] entire = residents; residents = new String[36]; System.arraycopy(entire, 0, residents, 0, 35); - residents[35] = Translation.of("status_town_reslist_overlength"); + residents[35] = translator.of("status_town_reslist_overlength"); } - out.addAll(ChatTools.listArr(residents, Translation.of("status_town_reslist", town.getNumResidents()))); + out.addAll(ChatTools.listArr(residents, translator.of("status_town_reslist", town.getNumResidents()))); } @@ -469,25 +512,37 @@ public static List getStatus(Town town) { return out; } + /** + * Gets the status screen of a Nation, using the default locale. + * + * @param nation the nation to check against + * @return a string list containing the results. + */ + public static List getStatus(Nation nation) { + return getStatus(nation, Translation.getDefaultLocale()); + } + /** * Gets the status screen of a Nation * * @param nation the nation to check against + * @param locale The locale to use while translating * @return a string list containing the results. */ - public static List getStatus(Nation nation) { + public static List getStatus(Nation nation, Locale locale) { List out = new ArrayList<>(); + final Translator translator = Translator.locale(locale); // ___[ Azur Empire (Open)]___ out.add(ChatTools.formatTitle(nation)); - String sub = (nation.isOpen() ? " " + Translation.of("status_title_open") : ""); + String sub = (nation.isOpen() ? " " + translator.of("status_title_open") : ""); out.add(ChatTools.formatSubTitle(sub)); // Board: Get your fried chicken if (!nation.getBoard().isEmpty()) { try { - out.add(Translation.of("status_town_board", nation.getBoard())); + out.add(translator.of("status_town_board", nation.getBoard())); } catch (NullPointerException ignored) { } } @@ -495,29 +550,29 @@ public static List getStatus(Nation nation) { // Created Date long registered = nation.getRegistered(); if (registered != 0) { - out.add(Translation.of("status_founded", registeredFormat.format(nation.getRegistered()))); + out.add(translator.of("status_founded", registeredFormat.format(nation.getRegistered()))); } // Bank: 534 coins String line = ""; if (TownyEconomyHandler.isActive()) { - line = Translation.of("status_bank", nation.getAccount().getHoldingFormattedBalance()); + line = translator.of("status_bank", nation.getAccount().getHoldingFormattedBalance()); if (TownySettings.getNationUpkeepCost(nation) > 0) - line += Translation.of("status_bank_town2", TownySettings.getNationUpkeepCost(nation)); + line += translator.of("status_bank_town2", TownySettings.getNationUpkeepCost(nation)); } if (nation.isNeutral()) { if (line.length() > 0) line += Colors.Gray + " | "; - line += Translation.of("status_nation_peaceful"); + line += translator.of("status_nation_peaceful"); } if (nation.isPublic()) { if (line.length() > 0) line += Colors.Gray + " | "; try { - line += (nation.isPublic() ? Translation.of("status_town_size_part_5") + (nation.hasSpawn() ? Coord.parseCoord(nation.getSpawn()).toString() : Translation.of("status_no_town")) + "]" : ""); + line += (nation.isPublic() ? translator.of("status_town_size_part_5") + (nation.hasSpawn() ? Coord.parseCoord(nation.getSpawn()).toString() : translator.of("status_no_town")) + "]" : ""); } catch (TownyException ignored) { } } @@ -528,8 +583,8 @@ public static List getStatus(Nation nation) { // King: King Harlus if (nation.getNumTowns() > 0 && nation.hasCapital() && nation.getCapital().hasMayor()) - out.add(Translation.of("status_nation_king", nation.getCapital().getMayor().getFormattedName()) + - Translation.of("status_nation_tax", nation.getTaxes()) + out.add(translator.of("status_nation_king", nation.getCapital().getMayor().getFormattedName()) + + translator.of("status_nation_tax", nation.getTaxes()) ); // Assistants [2]: Sammy, Ginger List ranklist = new ArrayList<>(); @@ -560,9 +615,9 @@ public static List getStatus(Nation nation) { String[] entire = towns2; towns2 = new String[12]; System.arraycopy(entire, 0, towns2, 0, 11); - towns2[11] = Translation.of("status_town_reslist_overlength"); + towns2[11] = translator.of("status_town_reslist_overlength"); } - out.addAll(ChatTools.listArr(towns2, Translation.of("status_nation_towns", nation.getNumTowns()))); + out.addAll(ChatTools.listArr(towns2, translator.of("status_nation_towns", nation.getNumTowns()))); // Allies [4]: James Nation, Carry Territory, Mason Country String[] allies = getFormattedNames(nation.getAllies().toArray(new Nation[0])); @@ -570,18 +625,18 @@ public static List getStatus(Nation nation) { String[] entire = allies; allies = new String[12]; System.arraycopy(entire, 0, allies, 0, 11); - allies[11] = Translation.of("status_town_reslist_overlength"); + allies[11] = translator.of("status_town_reslist_overlength"); } - out.addAll(ChatTools.listArr(allies, Translation.of("status_nation_allies", nation.getAllies().size()))); + out.addAll(ChatTools.listArr(allies, translator.of("status_nation_allies", nation.getAllies().size()))); // Enemies [4]: James Nation, Carry Territory, Mason Country String[] enemies = getFormattedNames(nation.getEnemies().toArray(new Nation[0])); if (enemies.length > 10) { String[] entire = enemies; enemies = new String[12]; System.arraycopy(entire, 0, enemies, 0, 11); - enemies[11] = Translation.of("status_town_reslist_overlength"); + enemies[11] = translator.of("status_town_reslist_overlength"); } - out.addAll(ChatTools.listArr(enemies, Translation.of("status_nation_enemies", nation.getEnemies().size()))); + out.addAll(ChatTools.listArr(enemies, translator.of("status_nation_enemies", nation.getEnemies().size()))); out.addAll(getExtraFields(nation)); @@ -594,54 +649,67 @@ public static List getStatus(Nation nation) { return out; } + /** + * Gets the status screen for a World, using the default locale + * + * @param world the world to check + * @return a string list containing the results. + */ + public static List getStatus(TownyWorld world) { + return getStatus(world, Translation.getDefaultLocale()); + } + /** * Gets the status screen for a World * * @param world the world to check + * @param locale Locale to use while translating * @return a string list containing the results. */ - public static List getStatus(TownyWorld world) { + public static List getStatus(TownyWorld world, Locale locale) { List out = new ArrayList<>(); + final Translator translator = Translator.locale(locale); // ___[ World (PvP) ]___ String title = world.getFormattedName(); - title += ((world.isPVP() || world.isForcePVP()) ? Translation.of("status_title_pvp") : ""); - title += (world.isClaimable() ? Translation.of("status_world_claimable") : Translation.of("status_world_noclaims")); + title += ((world.isPVP() || world.isForcePVP()) ? translator.of("status_title_pvp") : ""); + title += (world.isClaimable() ? translator.of("status_world_claimable") : translator.of("status_world_noclaims")); out.add(ChatTools.formatTitle(title)); if (!world.isUsingTowny()) { - out.add(Translation.of("msg_set_use_towny_off")); + out.add(translator.of("msg_set_use_towny_off")); } else { // ForcePvP: ON | FriendlyFire: ON - out.add(Translation.of("status_world_forcepvp") + (world.isForcePVP() ? Translation.of("status_on") : Translation.of("status_off")) + Colors.Gray + " | " + - Translation.of("status_world_friendlyfire") + (world.isFriendlyFireEnabled() ? Translation.of("status_on") : Translation.of("status_off"))); + // ForcePvP: ON | FriendlyFire: ON + out.add(translator.of("status_world_forcepvp") + (world.isForcePVP() ? translator.of("status_on") : translator.of("status_off")) + Colors.Gray + " | " + + translator.of("status_world_friendlyfire") + (world.isFriendlyFireEnabled() ? translator.of("status_on") : translator.of("status_off"))); // Fire: ON | ForceFire: ON - out.add(Translation.of("status_world_fire") + (world.isFire() ? Translation.of("status_on") : Translation.of("status_off")) + Colors.Gray + " | " + - Translation.of("status_world_forcefire") + (world.isForceFire() ? Translation.of("status_forced") : Translation.of("status_adjustable"))); + out.add(translator.of("status_world_fire") + (world.isFire() ? translator.of("status_on") : translator.of("status_off")) + Colors.Gray + " | " + + translator.of("status_world_forcefire") + (world.isForceFire() ? translator.of("status_forced") : translator.of("status_adjustable"))); // Explosion: ON | ForceExplosion: ON - out.add(Translation.of("explosions2") + ": " + (world.isExpl() ? Translation.of("status_on") : Translation.of("status_off")) + Colors.Gray + " | " + - Translation.of("status_world_forceexplosion") + (world.isForceExpl() ? Translation.of("status_forced") : Translation.of("status_adjustable"))); + out.add(translator.of("explosions2") + ": " + (world.isExpl() ? translator.of("status_on") : translator.of("status_off")) + Colors.Gray + " | " + + translator.of("status_world_forceexplosion") + (world.isForceExpl() ? translator.of("status_forced") : translator.of("status_adjustable"))); // WorldMobs: ON | Wilderness Mobs: ON - out.add(Translation.of("status_world_worldmobs") + (world.hasWorldMobs() ? Translation.of("status_on") : Translation.of("status_off")) + Colors.Gray + " | " + - Translation.of("status_world_wildernessmobs") + (world.hasWildernessMobs() ? Translation.of("status_on") : Translation.of("status_off"))); + out.add(translator.of("status_world_worldmobs") + (world.hasWorldMobs() ? translator.of("status_on") : translator.of("status_off")) + Colors.Gray + " | " + + translator.of("status_world_wildernessmobs") + (world.hasWildernessMobs() ? translator.of("status_on") : translator.of("status_off"))); // ForceTownMobs: ON - out.add(Translation.of("status_world_forcetownmobs") + (world.isForceTownMobs() ? Translation.of("status_forced") : Translation.of("status_adjustable"))); + out.add(translator.of("status_world_forcetownmobs") + (world.isForceTownMobs() ? translator.of("status_forced") : translator.of("status_adjustable"))); // War will be allowed in this world. - out.add(Colors.Green + (world.isWarAllowed() ? Translation.of("msg_set_war_allowed_on") : Translation.of("msg_set_war_allowed_off"))); + out.add(Colors.Green + (world.isWarAllowed() ? translator.of("msg_set_war_allowed_on") : translator.of("msg_set_war_allowed_off"))); // Unclaim Revert: ON - out.add(Translation.of("status_world_unclaimrevert") + (world.isUsingPlotManagementRevert() ? Translation.of("status_on_good") : Translation.of("status_off_bad"))); + out.add(translator.of("status_world_unclaimrevert") + (world.isUsingPlotManagementRevert() ? translator.of("status_on_good") : translator.of("status_off_bad"))); // Entity Explosion Revert: ON | Block Explosion Revert: ON - out.add(Translation.of("status_world_explrevert_entity") + (world.isUsingPlotManagementWildEntityRevert() ? Translation.of("status_on_good") : Translation.of("status_off_bad")) + Colors.Gray + " | " + - Translation.of("status_world_explrevert_block") + (world.isUsingPlotManagementWildBlockRevert() ? Translation.of("status_on_good") : Translation.of("status_off_bad"))); + out.add(translator.of("status_world_explrevert_entity") + (world.isUsingPlotManagementWildEntityRevert() ? translator.of("status_on_good") : translator.of("status_off_bad")) + Colors.Gray + " | " + + translator.of("status_world_explrevert_block") + (world.isUsingPlotManagementWildBlockRevert() ? translator.of("status_on_good") : translator.of("status_off_bad"))); // Plot Clear Block Delete: ON (see /towny plotclearblocks) | OFF - out.add(Translation.of("status_plot_clear_deletion") + (world.isUsingPlotManagementMayorDelete() ? Translation.of("status_on") + Colors.LightGreen +" (see /towny plotclearblocks)" : Translation.of("status_off"))); + out.add(translator.of("status_plot_clear_deletion") + (world.isUsingPlotManagementMayorDelete() ? translator.of("status_on") + Colors.LightGreen +" (see /towny plotclearblocks)" : translator.of("status_off"))); // Wilderness: // Build, Destroy, Switch, ItemUse // Ignored Blocks: see /towny wildsblocks out.add(Colors.Green + world.getUnclaimedZoneName() + ":"); out.add(" " + (world.getUnclaimedZoneBuild() ? Colors.LightGreen : Colors.Rose) + "Build" + Colors.Gray + ", " + (world.getUnclaimedZoneDestroy() ? Colors.LightGreen : Colors.Rose) + "Destroy" + Colors.Gray + ", " + (world.getUnclaimedZoneSwitch() ? Colors.LightGreen : Colors.Rose) + "Switch" + Colors.Gray + ", " + (world.getUnclaimedZoneItemUse() ? Colors.LightGreen : Colors.Rose) + "ItemUse"); - out.add(" " + Translation.of("status_world_ignoredblocks") + Colors.LightGreen + " see /towny wildsblocks"); + out.add(" " + translator.of("status_world_ignoredblocks") + Colors.LightGreen + " see /towny wildsblocks"); out.addAll(getExtraFields(world)); } @@ -650,16 +718,23 @@ public static List getStatus(TownyWorld world) { return out; } + public static List getTaxStatus(Resident resident) { + return getTaxStatus(resident, Translation.getDefaultLocale()); + } + /** * Returns the tax info this resident will have to pay at the next new day. * * @param resident the resident to check + * @param locale Locale to use while translating * @return tax status message */ - public static List getTaxStatus(Resident resident) { + public static List getTaxStatus(Resident resident, Locale locale) { List out = new ArrayList<>(); - Town town = null; + final Translator translator = Translator.locale(locale); + + Town town; boolean taxExempt = TownyPerms.getResidentPerms(resident).containsKey("towny.tax_exempt"); double plotTax = 0.0; double townTax = 0.0; @@ -675,13 +750,13 @@ public static List getTaxStatus(Resident resident) { town = TownyAPI.getInstance().getResidentTownOrNull(resident); if (taxExempt) { - out.add(Translation.of("status_res_taxexempt")); + out.add(translator.of("status_res_taxexempt")); } else { if (town.isTaxPercentage()) townTax = Math.min(resident.getAccount().getHoldingBalance() * town.getTaxes() / 100, town.getMaxPercentTaxAmount()); else townTax = town.getTaxes(); - out.add(Translation.of("status_res_tax", TownyEconomyHandler.getFormattedBalance(townTax))); + out.add(translator.of("status_res_tax", TownyEconomyHandler.getFormattedBalance(townTax))); } } @@ -699,9 +774,9 @@ public static List getTaxStatus(Resident resident) { } } - out.add(Translation.of("status_res_plottax") + TownyEconomyHandler.getFormattedBalance(plotTax)); + out.add(translator.of("status_res_plottax") + TownyEconomyHandler.getFormattedBalance(plotTax)); } - out.add(Translation.of("status_res_totaltax") + TownyEconomyHandler.getFormattedBalance(townTax + plotTax)); + out.add(translator.of("status_res_totaltax") + TownyEconomyHandler.getFormattedBalance(townTax + plotTax)); return out; } diff --git a/src/com/palmergames/bukkit/towny/TownyMessaging.java b/src/com/palmergames/bukkit/towny/TownyMessaging.java index b56cfa9e1d..7fb16ffba0 100644 --- a/src/com/palmergames/bukkit/towny/TownyMessaging.java +++ b/src/com/palmergames/bukkit/towny/TownyMessaging.java @@ -19,6 +19,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Location; import org.bukkit.command.CommandSender; @@ -867,6 +868,68 @@ public static void sendErrorMsg(CommandSender sender, Translatable... translatab sendErrorMsg(sender, Translation.translateTranslatables(sender, translatables)); } + public static void sendGlobalMessage(Translatable translatable) { + LOGGER.info(ChatTools.stripColour("[Global Message] " + translatable.translate())); + for (Player player : Bukkit.getOnlinePlayers()) + if (player != null && TownyAPI.getInstance().isTownyWorld(player.getWorld())) + sendMsg(player, translatable); + } + + public static void sendMessage(Object sender, Translatable message) { + if (sender instanceof Player) { + ((Player) sender).sendMessage(message.translate(Translation.getLocale((Player) sender))); + } else if (sender instanceof CommandSender) { + ((CommandSender) sender).sendMessage(message.stripColors(true).translate(Translation.getLocale((CommandSender) sender))); + } else if (sender instanceof Resident) { + Player p = TownyAPI.getInstance().getPlayer((Resident) sender); + if (p != null) + p.sendMessage(message.stripColors(true).translate(Translation.getLocale(p))); + } + } + + public static void sendPrefixedNationMessage(Nation nation, Translatable message) { + LOGGER.info(ChatTools.stripColour("[Nation Msg] " + StringMgmt.remUnderscore(nation.getName()) + ": " + message.translate())); + + for (Player player : TownyAPI.getInstance().getOnlinePlayers(nation)) + player.sendMessage(Translation.translateTranslatables(player, "", Translatable.of("default_nation_prefix", StringMgmt.remUnderscore(nation.getName())), message)); + } + + public static void sendPrefixedTownMessage(Town town, Translatable message) { + LOGGER.info(ChatTools.stripColour("[Town Msg] " + StringMgmt.remUnderscore(town.getName()) + ": " + message.translate())); + + for (Player player : TownyAPI.getInstance().getOnlinePlayers(town)) + player.sendMessage(Translation.translateTranslatables(player, "", Translatable.of("default_town_prefix", StringMgmt.remUnderscore(town.getName())), message)); + } + + public static void sendNationMessagePrefixed(Nation nation, Translatable message) { + LOGGER.info(ChatTools.stripColour("[Nation Msg] " + StringMgmt.remUnderscore(nation.getName()) + ": " + message.translate())); + + for (Player player : TownyAPI.getInstance().getOnlinePlayers(nation)) + sendMsg(player, message); + } + + public static void sendResidentMessage(Resident resident, Translatable message) throws TownyException { + LOGGER.info(ChatTools.stripColour("[Resident Msg] " + resident.getName() + ": " + message.translate())); + Player player = TownyAPI.getInstance().getPlayer(resident); + if (player == null) + throw new TownyException("Player could not be found!"); + + sendMsg(player, message); + } + + public static void sendMsg(Resident resident, Translatable message) { + if (BukkitTools.isOnline(resident.getName())) + sendMsg(resident.getPlayer(), message); + } + + public static void sendMsg(Translatable message) { + LOGGER.info("[Towny] " + message.stripColors(true).translate()); + } + + public static void sendErrorMsg(Translatable message) { + LOGGER.warn("[Towny] Error: " + message.stripColors(true).translate()); + } + /** * @param object - One receiving the message. * @param message - Message being sent. diff --git a/src/com/palmergames/bukkit/towny/command/InviteCommand.java b/src/com/palmergames/bukkit/towny/command/InviteCommand.java index 0eee378012..7aa4cba5f9 100644 --- a/src/com/palmergames/bukkit/towny/command/InviteCommand.java +++ b/src/com/palmergames/bukkit/towny/command/InviteCommand.java @@ -11,6 +11,7 @@ import com.palmergames.bukkit.towny.object.Nation; import com.palmergames.bukkit.towny.object.Resident; import com.palmergames.bukkit.towny.object.Town; +import com.palmergames.bukkit.towny.object.Translatable; import com.palmergames.bukkit.towny.object.Translation; import com.palmergames.bukkit.towny.utils.NameUtil; import com.palmergames.bukkit.util.ChatTools; @@ -110,13 +111,13 @@ private static void parseInviteList(Player player, String[] split) { Optional resOpt = TownyUniverse.getInstance().getResidentOpt(player.getUniqueId()); if (!resOpt.isPresent()) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_not_registered")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_not_registered")); return; } Resident resident = resOpt.get(); - String received = Translation.of("player_received_invites") + String received = Translation.of("player_received_invites", player) .replace("%a", Integer.toString(resident.getReceivedInvites().size()) ) .replace("%m", Integer.toString(InviteHandler.getReceivedInvitesMaxAmount(resident))); @@ -135,10 +136,10 @@ private static void parseInviteList(Player player, String[] split) { TownyMessaging.sendMessage(player, received); } else { - throw new TownyException(Translation.of("msg_err_player_no_invites")); + throw new TownyException(Translatable.of("msg_err_player_no_invites")); } } catch (TownyException x) { - TownyMessaging.sendErrorMsg(player, x.getMessage()); + TownyMessaging.sendErrorMsg(player, x.getMessage(player)); } } @@ -148,7 +149,7 @@ public static void parseDeny(Player player, String[] args) { Optional resOpt = townyUniverse.getResidentOpt(player.getUniqueId()); if (!resOpt.isPresent()) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_not_registered")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_not_registered")); return; } @@ -156,7 +157,7 @@ public static void parseDeny(Player player, String[] args) { List invites = resident.getReceivedInvites(); if (invites.size() == 0) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_player_no_invites")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_player_no_invites")); return; } @@ -168,14 +169,14 @@ public static void parseDeny(Player player, String[] args) { town = townyUniverse.getTown(args[0]); if (town == null) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_invalid_name")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_invalid_name")); return; } } else { if (invites.size() == 1) { // Only 1 Invite. town = (Town) invites.get(0).getSender(); } else { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_player_has_multiple_invites")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_player_has_multiple_invites")); parseInviteList(player, null); return; } @@ -196,7 +197,7 @@ public static void parseDeny(Player player, String[] args) { e.printStackTrace(); } } else - TownyMessaging.sendErrorMsg(player, Translation.of("msg_specify_name")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_specify_name")); } @@ -206,14 +207,14 @@ public static void parseAccept(Player player, String[] args) { Optional resOpt = townyUniverse.getResidentOpt(player.getUniqueId()); if (!resOpt.isPresent()) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_not_registered")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_not_registered")); return; } Resident resident = resOpt.get(); List invites = resident.getReceivedInvites(); if (invites.size() == 0) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_player_no_invites")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_player_no_invites")); return; } @@ -222,14 +223,14 @@ public static void parseAccept(Player player, String[] args) { town = townyUniverse.getTown(args[0]); if (town == null) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_invalid_name")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_invalid_name")); return; } } else { if (invites.size() == 1) { town = (Town) invites.get(0).getSender(); } else { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_player_has_multiple_invites")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_player_has_multiple_invites")); parseInviteList(player, null); return; } @@ -248,7 +249,7 @@ public static void parseAccept(Player player, String[] args) { if (toAccept != null) { try { if (TownySettings.getMaxResidentsPerTown() > 0 && town.getResidents().size() >= TownySettings.getMaxResidentsForTown(town)) { - TownyMessaging.sendMessage(player, Translation.of("msg_err_max_residents_per_town_reached", TownySettings.getMaxResidentsForTown(town))); + TownyMessaging.sendMsg(player, Translatable.of("msg_err_max_residents_per_town_reached", TownySettings.getMaxResidentsForTown(town))); return; } else InviteHandler.acceptInvite(toAccept); @@ -256,7 +257,7 @@ public static void parseAccept(Player player, String[] args) { e.printStackTrace(); } } else - TownyMessaging.sendErrorMsg(player, Translation.of("msg_specify_name")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_specify_name")); } @@ -264,10 +265,10 @@ public static void parseAccept(Player player, String[] args) { public static void sendInviteList(Player player, List list, int page, boolean fromSender) { if (page < 0) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_negative")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_negative")); return; } else if (page == 0) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_error_must_be_int")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_error_must_be_int")); return; } int total = (int) Math.ceil(((double) list.size()) / ((double) 10)); @@ -289,31 +290,31 @@ public static void sendInviteList(Player player, List list, int page, bo if (fromSender) { output = Colors.Blue + invite.getReceiver().getName() + Colors.Gray + " - " + Colors.Green + name; if (invite.getSender() instanceof Town) { // If it's sent by a town to a resident - object = Translation.of("player_sing"); + object = Translation.of("player_sing", player); } if (invite.getSender() instanceof Nation) { if (invite.getReceiver() instanceof Town) { - object = Translation.of("town_sing"); + object = Translation.of("town_sing", player); } if (invite.getReceiver() instanceof Nation) { - object = Translation.of("nation_sing"); + object = Translation.of("nation_sing", player); } } } else { // So it's not from the sender, then it's from the receiver so output = Colors.Blue + invite.getSender().getName() + Colors.Gray + " - " + Colors.Green + name; if (invite.getReceiver() instanceof Resident) { - object = Translation.of("town_sing"); + object = Translation.of("town_sing", player); } if (invite.getReceiver() instanceof Town || invite.getReceiver() instanceof Nation) { - object = Translation.of("nation_sing"); + object = Translation.of("nation_sing", player); } } invitesFormatted.add(output); } - TownyMessaging.sendMessage(player, ChatTools.formatList(Translation.of("invite_plu"), - Colors.Blue + object + Colors.Gray + " - " + Colors.LightBlue + Translation.of("invite_sent_by"), - invitesFormatted, Translation.of("LIST_PAGE", page, total) + TownyMessaging.sendMessage(player, ChatTools.formatList(Translation.of("invite_plu", player), + Colors.Blue + object + Colors.Gray + " - " + Colors.LightBlue + Translation.of("invite_sent_by", player), + invitesFormatted, Translation.of("LIST_PAGE", player, page, total) )); } } diff --git a/src/com/palmergames/bukkit/towny/command/NationCommand.java b/src/com/palmergames/bukkit/towny/command/NationCommand.java index c988d49989..dc3d71c041 100644 --- a/src/com/palmergames/bukkit/towny/command/NationCommand.java +++ b/src/com/palmergames/bukkit/towny/command/NationCommand.java @@ -51,6 +51,7 @@ import com.palmergames.bukkit.towny.object.SpawnType; import com.palmergames.bukkit.towny.object.Town; import com.palmergames.bukkit.towny.object.TownBlock; +import com.palmergames.bukkit.towny.object.Translatable; import com.palmergames.bukkit.towny.object.Translation; import com.palmergames.bukkit.towny.object.comparators.ComparatorCaches; import com.palmergames.bukkit.towny.object.comparators.ComparatorType; @@ -393,7 +394,7 @@ private void parseNationCommandForConsole(final CommandSender sender, String[] s try { listNations(sender, split); } catch (TownyException e) { - TownyMessaging.sendErrorMsg(sender, e.getMessage()); + TownyMessaging.sendErrorMsg(sender, e.getMessage(sender)); } } else { @@ -403,7 +404,7 @@ private void parseNationCommandForConsole(final CommandSender sender, String[] s Bukkit.getScheduler().runTaskAsynchronously(plugin, () -> TownyMessaging.sendMessage(sender, TownyFormatter.getStatus(nation))); } else { - TownyMessaging.sendErrorMsg(sender, Translation.of("msg_err_not_registered_1", split[0])); + TownyMessaging.sendErrorMsg(sender, Translatable.of("msg_err_not_registered_1", split[0])); } } @@ -420,14 +421,14 @@ public void parseNationCommand(final Player player, String[] split) { Resident resident =TownyUniverse.getInstance().getResident(player.getUniqueId()); if (resident == null || !resident.hasNation()) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_dont_belong_nation")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_dont_belong_nation")); return; } try { Town town = resident.getTown(); Nation nation = town.getNation(); - TownyMessaging.sendMessage(player, TownyFormatter.getStatus(nation)); + TownyMessaging.sendMessage(player, TownyFormatter.getStatus(nation, Translation.getLocale(player))); } catch (NotRegisteredException ignore) { } }); @@ -437,14 +438,14 @@ else if (split[0].equalsIgnoreCase("?")) else if (split[0].equalsIgnoreCase("list")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_NATION_LIST.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); listNations(player, split); } else if (split[0].equalsIgnoreCase("townlist")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_NATION_TOWNLIST.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); Nation nation = null; try { @@ -454,16 +455,16 @@ else if (split[0].equalsIgnoreCase("list")) { nation = getNationOrThrow(split[1]); } } catch (NotRegisteredException e) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_specify_name")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_specify_name")); return; } TownyMessaging.sendMessage(player, ChatTools.formatTitle(nation)); - TownyMessaging.sendMessage(player, ChatTools.listArr(TownyFormatter.getFormattedNames(nation.getTowns().toArray(new Town[0])), Translation.of("status_nation_towns", nation.getTowns().size()))); + TownyMessaging.sendMessage(player, ChatTools.listArr(TownyFormatter.getFormattedNames(nation.getTowns().toArray(new Town[0])), Translation.of("status_nation_towns", player, nation.getTowns().size()))); } else if (split[0].equalsIgnoreCase("allylist")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_NATION_ALLYLIST.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); Nation nation = null; try { @@ -473,21 +474,21 @@ else if (split[0].equalsIgnoreCase("list")) { nation = getNationOrThrow(split[1]); } } catch (NotRegisteredException e) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_specify_name")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_specify_name")); return; } if (nation.getAllies().isEmpty()) - TownyMessaging.sendErrorMsg(player, Translation.of("msg_error_nation_has_no_allies")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_error_nation_has_no_allies")); else { TownyMessaging.sendMessage(player, ChatTools.formatTitle(nation)); - TownyMessaging.sendMessage(player, ChatTools.listArr(TownyFormatter.getFormattedNames(nation.getAllies().toArray(new Nation[0])), Translation.of("status_nation_allies", nation.getAllies().size()))); + TownyMessaging.sendMessage(player, ChatTools.listArr(TownyFormatter.getFormattedNames(nation.getAllies().toArray(new Nation[0])), Translation.of("status_nation_allies", player, nation.getAllies().size()))); } } else if (split[0].equalsIgnoreCase("enemylist")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_NATION_ENEMYLIST.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); Nation nation = null; try { @@ -497,14 +498,14 @@ else if (split[0].equalsIgnoreCase("list")) { nation = getNationOrThrow(split[1]); } } catch (NotRegisteredException e) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_specify_name")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_specify_name")); return; } if (nation.getEnemies().isEmpty()) - TownyMessaging.sendErrorMsg(player, Translation.of("msg_error_nation_has_no_enemies")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_error_nation_has_no_enemies")); else { TownyMessaging.sendMessage(player, ChatTools.formatTitle(nation)); - TownyMessaging.sendMessage(player, ChatTools.listArr(TownyFormatter.getFormattedNames(nation.getEnemies().toArray(new Nation[0])), Translation.of("status_nation_enemies", nation.getEnemies().size()))); + TownyMessaging.sendMessage(player, ChatTools.listArr(TownyFormatter.getFormattedNames(nation.getEnemies().toArray(new Nation[0])), Translation.of("status_nation_enemies", player, nation.getEnemies().size()))); } } else if (split[0].equalsIgnoreCase("new")) { @@ -512,19 +513,19 @@ else if (split[0].equalsIgnoreCase("list")) { Resident resident = getResidentOrThrow(player.getUniqueId()); if ((TownySettings.getNumResidentsCreateNation() > 0) && (resident.getTown().getNumResidents() < TownySettings.getNumResidentsCreateNation())) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_not_enough_residents_new_nation")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_not_enough_residents_new_nation")); return; } if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_NATION_NEW.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); if (split.length == 1) - TownyMessaging.sendErrorMsg(player, Translation.of("msg_specify_nation_name")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_specify_nation_name")); else if (split.length >= 2) { if (!resident.isMayor() && !resident.getTown().hasResidentWithRank(resident, "assistant")) - throw new TownyException(Translation.of("msg_peasant_right")); + throw new TownyException(Translatable.of("msg_peasant_right")); boolean noCharge = TownySettings.getNewNationPrice() == 0.0 || !TownyEconomyHandler.isActive(); @@ -536,28 +537,28 @@ else if (split.length >= 2) { } else if (split[0].equalsIgnoreCase("join")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_NATION_JOIN.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); parseNationJoin(player, StringMgmt.remFirstArg(split)); } else if (split[0].equalsIgnoreCase("merge")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_NATION_MERGE.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); if (split.length == 1) - TownyMessaging.sendErrorMsg(player, Translation.of("msg_specify_nation_name")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_specify_nation_name", player)); else if (split.length == 2) { Resident resident = getResidentOrThrow(player.getUniqueId()); if (!resident.isKing()) - throw new TownyException(Translation.of("msg_err_merging_for_kings_only")); + throw new TownyException(Translatable.of("msg_err_merging_for_kings_only", player)); mergeNation(player, split[1]); } } else if (split[0].equalsIgnoreCase("withdraw")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_NATION_WITHDRAW.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); nationTransaction(player, split, true); @@ -565,7 +566,7 @@ else if (split.length == 2) { } else if (split[0].equalsIgnoreCase("leave")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_NATION_LEAVE.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); nationLeave(player); @@ -585,7 +586,7 @@ else if (split.length == 2) { else if (split[0].equalsIgnoreCase("deposit")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_NATION_DEPOSIT.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); nationTransaction(player, split, false); @@ -602,14 +603,14 @@ else if (split[0].equalsIgnoreCase("deposit")) { } else if (split[0].equalsIgnoreCase("king")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_NATION_KING.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); nationKing(player, newSplit); } else if (split[0].equalsIgnoreCase("add")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_NATION_INVITE_ADD.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); nationAdd(player, newSplit); @@ -619,7 +620,7 @@ else if (split[0].equalsIgnoreCase("deposit")) { } else if (split[0].equalsIgnoreCase("kick")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_NATION_KICK.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); nationKick(player, newSplit); @@ -644,28 +645,28 @@ else if (split[0].equalsIgnoreCase("deposit")) { } else if (split[0].equalsIgnoreCase("enemy")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_NATION_ENEMY.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); nationEnemy(player, newSplit); } else if (split[0].equalsIgnoreCase("delete")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_NATION_DELETE.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); nationDelete(player, newSplit); } else if (split[0].equalsIgnoreCase("online")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_NATION_ONLINE.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); parseNationOnlineCommand(player, newSplit); } else if (split[0].equalsIgnoreCase("say")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_NATION_SAY.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); Nation nation = getResidentOrThrow(player.getUniqueId()).getTown().getNation(); String message = StringMgmt.join(newSplit); @@ -674,14 +675,14 @@ else if (split[0].equalsIgnoreCase("deposit")) { } else if (split[0].equalsIgnoreCase("bankhistory")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_NATION_BANKHISTORY.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); int pages = 10; if (newSplit.length > 0) try { pages = Integer.parseInt(newSplit[0]); } catch (NumberFormatException e) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_error_must_be_int")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_error_must_be_int")); return; } @@ -693,29 +694,31 @@ else if (split[0].equalsIgnoreCase("deposit")) { final Nation nation = TownyUniverse.getInstance().getNation(split[0]); if (nation == null) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_not_registered_1", split[0])); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_not_registered_1", split[0])); return; } try { Resident resident = getResidentOrThrow(player.getUniqueId()); if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_NATION_OTHERNATION.getNode()) && ( (resident.hasTown() && resident.getTown().hasNation() && (resident.getTown().getNation() != nation) ) || !resident.hasTown() )) { - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); } Bukkit.getScheduler().runTaskAsynchronously(Towny.getPlugin(), () -> TownyMessaging.sendMessage(player, TownyFormatter.getStatus(nation))); } catch (NotRegisteredException ex) { - TownyMessaging.sendErrorMsg(player, ex.getMessage()); + TownyMessaging.sendErrorMsg(player, ex.getMessage(player)); } } } - } catch (Exception x) { - TownyMessaging.sendErrorMsg(player, x.getMessage()); + } catch (TownyException x) { + TownyMessaging.sendErrorMsg(player, x.getMessage(player)); + } catch (Exception e) { + TownyMessaging.sendErrorMsg(player, e.getMessage()); } } - private void parseNationJoin(Player player, String[] args) throws TownyException { + private void parseNationJoin(Player player, String[] args) { try { Resident resident; @@ -734,29 +737,29 @@ private void parseNationJoin(Player player, String[] args) throws TownyException // Check if town is currently in a nation. if (town.hasNation()) - throw new TownyException(Translation.of("msg_err_already_in_a_nation")); + throw new TownyException(Translatable.of("msg_err_already_in_a_nation")); // Check if town is town is free to join. if (!nation.isOpen()) - throw new TownyException(Translation.of("msg_err_nation_not_open", nation.getFormattedName())); + throw new TownyException(Translatable.of("msg_err_nation_not_open", nation.getFormattedName())); if ((TownySettings.getNumResidentsJoinNation() > 0) && (town.getNumResidents() < TownySettings.getNumResidentsJoinNation())) - throw new TownyException(Translation.of("msg_err_not_enough_residents_join_nation", town.getName())); + throw new TownyException(Translatable.of("msg_err_not_enough_residents_join_nation", town.getName())); if (TownySettings.getMaxTownsPerNation() > 0) if (nation.getTowns().size() >= TownySettings.getMaxTownsPerNation()) - throw new TownyException(Translation.of("msg_err_nation_over_town_limit", TownySettings.getMaxTownsPerNation())); + throw new TownyException(Translatable.of("msg_err_nation_over_town_limit", TownySettings.getMaxTownsPerNation())); if (TownySettings.getNationRequiresProximity() > 0) { Coord capitalCoord = nation.getCapital().getHomeBlock().getCoord(); Coord townCoord = town.getHomeBlock().getCoord(); if (!nation.getCapital().getHomeBlock().getWorld().getName().equals(town.getHomeBlock().getWorld().getName())) { - throw new TownyException(Translation.of("msg_err_nation_homeblock_in_another_world")); + throw new TownyException(Translatable.of("msg_err_nation_homeblock_in_another_world")); } double distance; distance = Math.sqrt(Math.pow(capitalCoord.getX() - (double)townCoord.getX(), 2) + Math.pow(capitalCoord.getZ() - (double)townCoord.getZ(), 2)); if (distance > TownySettings.getNationRequiresProximity()) { - throw new TownyException(Translation.of("msg_err_town_not_close_enough_to_nation", town.getName())); + throw new TownyException(Translatable.of("msg_err_town_not_close_enough_to_nation", town.getName())); } } @@ -773,24 +776,22 @@ private void parseNationJoin(Player player, String[] args) throws TownyException towns.add(town); nationAdd(nation, towns); - } catch (Exception e) { - TownyMessaging.sendErrorMsg(player, e.getMessage()); + } catch (TownyException e) { + TownyMessaging.sendErrorMsg(player, e.getMessage(player)); } - - } private void parseInviteCommand(Player player, String[] newSplit) throws TownyException { TownyPermissionSource permSource = TownyUniverse.getInstance().getPermissionSource(); Resident resident = getResidentOrThrow(player.getUniqueId()); - String sent = Translation.of("nation_sent_invites") + String sent = Translation.of("nation_sent_invites", player) .replace("%a", Integer.toString(resident.getTown().getNation().getSentInvites().size()) ) .replace("%m", Integer.toString(InviteHandler.getSentInvitesMaxAmount(resident.getTown().getNation()))); if (newSplit.length == 0) { // (/nation invite) if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_NATION_INVITE_SEE_HOME.getNode())) { - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); } HelpMenu.NATION_INVITE.send(player); TownyMessaging.sendMessage(player, sent); @@ -803,7 +804,7 @@ private void parseInviteCommand(Player player, String[] newSplit) throws TownyEx } if (newSplit[0].equalsIgnoreCase("sent")) { // /invite(remfirstarg) sent args[1] if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_NATION_INVITE_LIST_SENT.getNode())) { - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); } List sentinvites = resident.getTown().getNation().getSentInvites(); int page = 1; @@ -818,7 +819,7 @@ private void parseInviteCommand(Player player, String[] newSplit) throws TownyEx return; } else { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_NATION_INVITE_ADD.getNode())) { - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); } else { nationAdd(player, newSplit); } @@ -834,20 +835,20 @@ private void parseNationOnlineCommand(Player player, String[] split) throws Town Nation nation = getNationOrThrow(split[0]); List onlineResidents = ResidentUtil.getOnlineResidentsViewable(player, nation); if (onlineResidents.size() > 0 ) { - TownyMessaging.sendMessage(player, TownyFormatter.getFormattedOnlineResidents(Translation.of("msg_nation_online"), nation, player)); + TownyMessaging.sendMessage(player, TownyFormatter.getFormattedOnlineResidents(Translation.of("msg_nation_online", player), nation, player)); } else { - TownyMessaging.sendMessage(player, Colors.White + "0 " + Translation.of("res_list") + " " + (Translation.of("msg_nation_online") + ": " + nation)); + TownyMessaging.sendMessage(player, Colors.White + "0 " + Translation.of("res_list", player) + " " + (Translation.of("msg_nation_online", player) + ": " + nation)); } } else { Resident resident = TownyUniverse.getInstance().getResident(player.getUniqueId()); if (resident == null || !resident.hasNation()) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_dont_belong_nation")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_dont_belong_nation")); return; } Nation nation = resident.getTownOrNull().getNationOrNull(); - TownyMessaging.sendMessage(player, TownyFormatter.getFormattedOnlineResidents(Translation.of("msg_nation_online"), nation, player)); + TownyMessaging.sendMessage(player, TownyFormatter.getFormattedOnlineResidents(Translation.of("msg_nation_online", player), nation, player)); } } @@ -883,7 +884,7 @@ public void nationRank(Player player, String[] split) throws TownyException { throw new TownyException("This resident is not a member of your Nation!"); } catch (TownyException x) { - TownyMessaging.sendErrorMsg(player, x.getMessage()); + TownyMessaging.sendErrorMsg(player, x.getMessage(player)); return; } @@ -892,7 +893,7 @@ public void nationRank(Player player, String[] split) throws TownyException { */ rank = TownyPerms.matchNationRank(split[2]); if (rank == null) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_unknown_rank_available_ranks", split[2], StringMgmt.join(TownyPerms.getNationRanks(), ", "))); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_unknown_rank_available_ranks", split[2], StringMgmt.join(TownyPerms.getNationRanks(), ", "))); return; } /* @@ -900,7 +901,7 @@ public void nationRank(Player player, String[] split) throws TownyException { * for it. */ if (!TownyUniverse.getInstance().getPermissionSource().testPermission(player, PermissionNodes.TOWNY_COMMAND_NATION_RANK.getNode(rank.toLowerCase()))) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_no_permission_to_give_rank")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_no_permission_to_give_rank")); return; } @@ -916,13 +917,13 @@ public void nationRank(Player player, String[] split) throws TownyException { if (target.addNationRank(rank)) { if (BukkitTools.isOnline(target.getName())) { - TownyMessaging.sendMsg(target, Translation.of("msg_you_have_been_given_rank", "Nation", rank)); + TownyMessaging.sendMsg(target.getPlayer(), Translatable.of("msg_you_have_been_given_rank", "Nation", rank)); plugin.deleteCache(TownyAPI.getInstance().getPlayer(target)); } - TownyMessaging.sendMsg(player, Translation.of("msg_you_have_given_rank", "Nation", rank, target.getName())); + TownyMessaging.sendMsg(player, Translatable.of("msg_you_have_given_rank", "Nation", rank, target.getName())); } else { // Must already have this rank - TownyMessaging.sendMsg(player, Translation.of("msg_resident_already_has_rank", target.getName(), "Nation")); + TownyMessaging.sendMsg(player, Translatable.of("msg_resident_already_has_rank", target.getName(), "Nation")); return; } @@ -938,18 +939,18 @@ public void nationRank(Player player, String[] split) throws TownyException { if (target.removeNationRank(rank)) { if (BukkitTools.isOnline(target.getName())) { - TownyMessaging.sendMsg(target, Translation.of("msg_you_have_had_rank_taken", "Nation", rank)); + TownyMessaging.sendMsg(target.getPlayer(), Translatable.of("msg_you_have_had_rank_taken", "Nation", rank)); plugin.deleteCache(TownyAPI.getInstance().getPlayer(target)); } - TownyMessaging.sendMsg(player, Translation.of("msg_you_have_taken_rank_from", "Nation", rank, target.getName())); + TownyMessaging.sendMsg(player, Translatable.of("msg_you_have_taken_rank_from", "Nation", rank, target.getName())); } else { // Doesn't have this rank - TownyMessaging.sendMsg(player, String.format("msg_resident_doesnt_have_rank", target.getName(), "Nation")); + TownyMessaging.sendMsg(player, Translatable.of("msg_resident_doesnt_have_rank", target.getName(), "Nation")); return; } } else { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_invalid_property", split[0])); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_invalid_property", split[0])); return; } @@ -991,7 +992,7 @@ public void listNations(CommandSender sender, String[] split) throws TownyExcept * The default comparator on /n list is by residents, test it before we start anything else. */ if (split.length < 2 && !console && !permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_NATION_LIST_RESIDENTS.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); List nationsToSort = new ArrayList<>(TownyUniverse.getInstance().getNations()); int page = 1; @@ -1002,7 +1003,7 @@ public void listNations(CommandSender sender, String[] split) throws TownyExcept for (int i = 1; i < split.length; i++) { if (split[i].equalsIgnoreCase("by")) { // Is a case of someone using /n list by {comparator} if (comparatorSet) { - TownyMessaging.sendErrorMsg(sender, Translation.of("msg_error_multiple_comparators_nation")); + TownyMessaging.sendErrorMsg(sender, Translatable.of("msg_error_multiple_comparators_nation")); return; } i++; @@ -1012,41 +1013,41 @@ public void listNations(CommandSender sender, String[] split) throws TownyExcept split[i] = "residents"; if (!console && !permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_NATION_LIST.getNode(split[i]))) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); if (!nationListTabCompletes.contains(split[i].toLowerCase())) - throw new TownyException(Translation.of("msg_error_invalid_comparator_nation")); + throw new TownyException(Translatable.of("msg_error_invalid_comparator_nation")); type = ComparatorType.valueOf(split[i].toUpperCase()); } else { - TownyMessaging.sendErrorMsg(sender, Translation.of("msg_error_missing_comparator")); + TownyMessaging.sendErrorMsg(sender, Translatable.of("msg_error_missing_comparator")); return; } comparatorSet = true; } else { // Is a case of someone using /n list, /n list # or /n list by {comparator} # if (pageSet) { - TownyMessaging.sendErrorMsg(sender, Translation.of("msg_error_too_many_pages")); + TownyMessaging.sendErrorMsg(sender, Translatable.of("msg_error_too_many_pages")); return; } try { page = Integer.parseInt(split[i]); if (page < 0) { - TownyMessaging.sendErrorMsg(sender, Translation.of("msg_err_negative")); + TownyMessaging.sendErrorMsg(sender, Translatable.of("msg_err_negative")); return; } else if (page == 0) { - TownyMessaging.sendErrorMsg(sender, Translation.of("msg_error_must_be_int")); + TownyMessaging.sendErrorMsg(sender, Translatable.of("msg_error_must_be_int")); return; } pageSet = true; } catch (NumberFormatException e) { - TownyMessaging.sendErrorMsg(sender, Translation.of("msg_error_must_be_int")); + TownyMessaging.sendErrorMsg(sender, Translatable.of("msg_error_must_be_int")); return; } } } if (page > total) { - TownyMessaging.sendErrorMsg(sender, Translation.of("LIST_ERR_NOT_ENOUGH_PAGES", total)); + TownyMessaging.sendErrorMsg(sender, Translatable.of("LIST_ERR_NOT_ENOUGH_PAGES", total)); return; } @@ -1057,7 +1058,7 @@ public void listNations(CommandSender sender, String[] split) throws TownyExcept TownyMessaging.sendNationList(sender, ComparatorCaches.getNationListCache(finalType), finalType, pageNumber, total); }); } catch (RuntimeException e) { - TownyMessaging.sendErrorMsg(sender, Translation.of("msg_error_comparator_failed")); + TownyMessaging.sendErrorMsg(sender, Translatable.of("msg_error_comparator_failed")); } } @@ -1074,7 +1075,7 @@ public static void newNation(Player player, String name, Town capitalTown, boole try { if (capitalTown.hasNation()) - throw new TownyException(Translation.of("msg_err_already_nation")); + throw new TownyException(Translatable.of("msg_err_already_nation")); // Check the name is valid and doesn't already exist. String filteredName; @@ -1085,7 +1086,7 @@ public static void newNation(Player player, String name, Town capitalTown, boole } if ((filteredName == null) || TownyUniverse.getInstance().hasNation(filteredName)) - throw new TownyException(Translation.of("msg_err_invalid_name", name)); + throw new TownyException(Translatable.of("msg_err_invalid_name", name)); PreNewNationEvent preEvent = new PreNewNationEvent(capitalTown, name); Bukkit.getPluginManager().callEvent(preEvent); @@ -1099,33 +1100,33 @@ public static void newNation(Player player, String name, Town capitalTown, boole if (!noCharge && TownyEconomyHandler.isActive()) { // Test if they can pay. if (!capitalTown.getAccount().canPayFromHoldings(TownySettings.getNewNationPrice())) - throw new TownyException(Translation.of("msg_no_funds_new_nation2", TownySettings.getNewNationPrice())); + throw new TownyException(Translatable.of("msg_no_funds_new_nation2", TownySettings.getNewNationPrice())); Confirmation.runOnAccept(() -> { // Town pays for nation here. if (!capitalTown.getAccount().withdraw(TownySettings.getNewNationPrice(), "New Nation Cost")) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_no_funds_new_nation2", TownySettings.getNewNationPrice())); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_no_funds_new_nation2", TownySettings.getNewNationPrice())); return; } try { // Actually make nation. newNation(name, capitalTown); } catch (AlreadyRegisteredException | NotRegisteredException e) { - TownyMessaging.sendErrorMsg(player, e.getMessage()); + TownyMessaging.sendErrorMsg(player, e.getMessage(player)); } - TownyMessaging.sendGlobalMessage(Translation.of("msg_new_nation", player.getName(), StringMgmt.remUnderscore(name))); + TownyMessaging.sendGlobalMessage(Translatable.of("msg_new_nation", player.getName(), StringMgmt.remUnderscore(name))); }) - .setTitle(Translation.of("msg_confirm_purchase", TownyEconomyHandler.getFormattedBalance(TownySettings.getNewNationPrice()))) + .setTitle(Translation.of("msg_confirm_purchase", player, TownyEconomyHandler.getFormattedBalance(TownySettings.getNewNationPrice()))) .sendTo(player); // Or, it is free, so just make the nation. } else { newNation(name, capitalTown); - TownyMessaging.sendGlobalMessage(Translation.of("msg_new_nation", player.getName(), StringMgmt.remUnderscore(name))); + TownyMessaging.sendGlobalMessage(Translatable.of("msg_new_nation", player.getName(), StringMgmt.remUnderscore(name))); } } catch (TownyException x) { - TownyMessaging.sendErrorMsg(player, x.getMessage()); + TownyMessaging.sendErrorMsg(player, x.getMessage(player)); } } @@ -1168,24 +1169,24 @@ public void mergeNation(Player player, String name) throws TownyException { try { remainingNation = getResidentOrThrow(player.getUniqueId()).getTownOrNull().getNationOrNull(); } catch (NotRegisteredException e) { - throw new TownyException(Translation.of("msg_err_invalid_name", name)); + throw new TownyException(Translatable.of("msg_err_invalid_name", name)); } if (nation == null || remainingNation.getName().equalsIgnoreCase(name)) - throw new TownyException(Translation.of("msg_err_invalid_name", name)); + throw new TownyException(Translatable.of("msg_err_invalid_name", name)); Resident king = nation.getKing(); if (!BukkitTools.isOnline(king.getName())) { - throw new TownyException(Translation.of("msg_err_king_of_that_nation_is_not_online", name, king.getName())); + throw new TownyException(Translatable.of("msg_err_king_of_that_nation_is_not_online", name, king.getName())); } - TownyMessaging.sendMessage(BukkitTools.getPlayer(king.getName()), Translation.of("msg_would_you_merge_your_nation_into_other_nation", nation, remainingNation, remainingNation)); + TownyMessaging.sendMessage(BukkitTools.getPlayer(king.getName()), Translatable.of("msg_would_you_merge_your_nation_into_other_nation", nation, remainingNation, remainingNation)); if (TownySettings.getNationRequiresProximity() > 0) { List towns = nation.getTowns(); towns.addAll(remainingNation.getTowns()); List removedTowns = remainingNation.recheckTownDistanceDryRun(towns, remainingNation.getCapital()); if (!removedTowns.isEmpty()) { - TownyMessaging.sendMessage(nation.getKing(), Translation.of("msg_warn_the_following_towns_will_be_removed_from_your_nation", StringMgmt.join(removedTowns, ", "))); - TownyMessaging.sendMessage(remainingNation.getKing(), Translation.of("msg_warn_the_following_towns_will_be_removed_from_your_nation", StringMgmt.join(removedTowns, ", "))); + TownyMessaging.sendMessage(nation.getKing(), Translatable.of("msg_warn_the_following_towns_will_be_removed_from_your_nation", StringMgmt.join(removedTowns, ", "))); + TownyMessaging.sendMessage(remainingNation.getKing(), Translatable.of("msg_warn_the_following_towns_will_be_removed_from_your_nation", StringMgmt.join(removedTowns, ", "))); } } Confirmation.runOnAccept(() -> { @@ -1200,9 +1201,9 @@ public void mergeNation(Player player, String name) throws TownyException { try { BukkitTools.getPluginManager().callEvent(new NationMergeEvent(nation, remainingNation)); TownyUniverse.getInstance().getDataSource().mergeNation(nation, remainingNation); - TownyMessaging.sendGlobalMessage(Translation.of("nation1_has_merged_with_nation2", nation, remainingNation)); + TownyMessaging.sendGlobalMessage(Translatable.of("nation1_has_merged_with_nation2", nation, remainingNation)); } catch (TownyException e) { - TownyMessaging.sendErrorMsg(player, e.getMessage()); + TownyMessaging.sendErrorMsg(player, e.getMessage(player)); } }) .sendTo(BukkitTools.getPlayerExact(king.getName())); @@ -1227,7 +1228,7 @@ public void nationLeave(Player player) { tooManyResidents = TownySettings.getMaxResidentsPerTown() > 0 && TownySettings.getMaxResidentsPerTownCapitalOverride() > 0 && town.getNumResidents() > TownySettings.getMaxResidentsPerTown(); // Show a message preceding the confirmation message if they will lose residents. if (tooManyResidents) - TownyMessaging.sendMsg(player, Translation.of("msg_deleting_nation_will_result_in_losing_residents", TownySettings.getMaxResidentsPerTown(), town.getNumResidents() - TownySettings.getMaxResidentsPerTown())); + TownyMessaging.sendMsg(player, Translatable.of("msg_deleting_nation_will_result_in_losing_residents", TownySettings.getMaxResidentsPerTown(), town.getNumResidents() - TownySettings.getMaxResidentsPerTown())); } final Town finalTown = town; final Nation nation = town.getNation(); @@ -1241,15 +1242,15 @@ public void nationLeave(Player player) { plugin.resetCache(); - TownyMessaging.sendPrefixedNationMessage(nation, Translation.of("msg_nation_town_left", StringMgmt.remUnderscore(finalTown.getName()))); - TownyMessaging.sendPrefixedTownMessage(finalTown, Translation.of("msg_town_left_nation", StringMgmt.remUnderscore(nation.getName()))); + TownyMessaging.sendPrefixedNationMessage(nation, Translatable.of("msg_nation_town_left", StringMgmt.remUnderscore(finalTown.getName()))); + TownyMessaging.sendPrefixedTownMessage(finalTown, Translatable.of("msg_town_left_nation", StringMgmt.remUnderscore(nation.getName()))); try { nation.recheckTownDistance(); } catch (TownyException e) {} }).sendTo(player); } catch (TownyException x) { - TownyMessaging.sendErrorMsg(player, x.getMessage()); + TownyMessaging.sendErrorMsg(player, x.getMessage(player)); return; } } @@ -1266,32 +1267,32 @@ public void nationDelete(Player player, String[] split) { boolean tooManyResidents = TownySettings.getMaxResidentsPerTown() > 0 && TownySettings.getMaxResidentsPerTownCapitalOverride() > 0 && town.getNumResidents() > TownySettings.getMaxResidentsPerTown(); // Show a message preceding the confirmation message if they will lose residents. if (tooManyResidents) - TownyMessaging.sendMsg(player, Translation.of("msg_deleting_nation_will_result_in_losing_residents", TownySettings.getMaxResidentsPerTown(), town.getNumResidents() - TownySettings.getMaxResidentsPerTown())); + TownyMessaging.sendMsg(player, Translatable.of("msg_deleting_nation_will_result_in_losing_residents", TownySettings.getMaxResidentsPerTown(), town.getNumResidents() - TownySettings.getMaxResidentsPerTown())); Confirmation.runOnAccept(() -> { - TownyMessaging.sendGlobalMessage(Translation.of("MSG_DEL_NATION", nation.getName())); + TownyMessaging.sendGlobalMessage(Translatable.of("msg_del_nation", nation.getName())); TownyUniverse.getInstance().getDataSource().removeNation(nation); if (tooManyResidents) ResidentUtil.reduceResidentCountToFitTownMaxPop(town); }) .sendTo(player); } catch (TownyException x) { - TownyMessaging.sendErrorMsg(player, x.getMessage()); + TownyMessaging.sendErrorMsg(player, x.getMessage(player)); } // Admin is using "/n delete NATIONNAME" } else try { if (!TownyUniverse.getInstance().getPermissionSource().testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWNYADMIN_NATION_DELETE.getNode())) - throw new TownyException(Translation.of("msg_err_admin_only_delete_nation")); + throw new TownyException(Translatable.of("msg_err_admin_only_delete_nation")); Nation nation = getNationOrThrow(split[0]); Confirmation.runOnAccept(() -> { - TownyMessaging.sendGlobalMessage(Translation.of("MSG_DEL_NATION", nation.getName())); + TownyMessaging.sendGlobalMessage(Translatable.of("msg_del_nation", nation.getName())); TownyUniverse.getInstance().getDataSource().removeNation(nation); }) .sendTo(player); } catch (TownyException x) { - TownyMessaging.sendErrorMsg(player, x.getMessage()); + TownyMessaging.sendErrorMsg(player, x.getMessage(player)); } } @@ -1327,13 +1328,13 @@ public void nationAdd(Player player, String[] names) throws TownyException { if (TownySettings.getMaxTownsPerNation() > 0) { if (nation.getTowns().size() >= TownySettings.getMaxTownsPerNation()){ - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_nation_over_town_limit", TownySettings.getMaxTownsPerNation())); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_nation_over_town_limit", TownySettings.getMaxTownsPerNation())); return; } } } catch (TownyException x) { - TownyMessaging.sendErrorMsg(player, x.getMessage()); + TownyMessaging.sendErrorMsg(player, x.getMessage(player)); return; } List townlist = new ArrayList<>(Arrays.asList(names)); @@ -1372,7 +1373,7 @@ private static void nationRevokeInviteTown(Object sender,Nation nation, List invited) t try { if (town.hasNation()) { remove.add(town); - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_already_nation")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_already_nation")); continue; } if ((TownySettings.getNumResidentsJoinNation() > 0) && (town.getNumResidents() < TownySettings.getNumResidentsJoinNation())) { remove.add(town); - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_not_enough_residents_join_nation", town.getName())); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_not_enough_residents_join_nation", town.getName())); continue; } @@ -1420,14 +1421,14 @@ public static void nationAdd(Player player, Nation nation, List invited) t Coord townCoord = town.getHomeBlock().getCoord(); if (!nation.getCapital().getHomeBlock().getWorld().getName().equals(town.getHomeBlock().getWorld().getName())) { remove.add(town); - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_nation_homeblock_in_another_world")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_nation_homeblock_in_another_world")); continue; } double distance; distance = Math.sqrt(Math.pow(capitalCoord.getX() - (double)townCoord.getX(), 2) + Math.pow(capitalCoord.getZ() - (double)townCoord.getZ(), 2)); if (distance > TownySettings.getNationRequiresProximity()) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_town_not_close_enough_to_nation", town.getName())); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_town_not_close_enough_to_nation", town.getName())); remove.add(town); continue; } @@ -1453,18 +1454,16 @@ public static void nationAdd(Player player, Nation nation, List invited) t } if (invited.size() > 0) { - StringBuilder msg = new StringBuilder(); + StringBuilder sb = new StringBuilder(); for (Town town : invited) { - msg.append(town.getName()).append(", "); + sb.append(town.getName()).append(", "); } - - msg = new StringBuilder(msg.substring(0, msg.length() - 2)); - msg = new StringBuilder(Translation.of("msg_invited_join_nation", player.getName(), msg.toString())); - TownyMessaging.sendPrefixedNationMessage(nation, msg.toString()); + + TownyMessaging.sendPrefixedNationMessage(nation, Translatable.of("msg_invited_join_nation", player.getName(), sb.substring(0, sb.length() - 2))); } else { // This is executed when the arraylist returns empty (no valid town was entered). - throw new TownyException(Translation.of("msg_invalid_name")); + throw new TownyException(Translatable.of("msg_invalid_name")); } } @@ -1481,7 +1480,7 @@ private static void nationInviteTown(Player player, Nation nation, Town town) th TownyMessaging.sendRequestMessage(mayor,invite); Bukkit.getPluginManager().callEvent(new NationInviteTownEvent(invite)); } else { - throw new TownyException(Translation.of("msg_err_town_already_invited", town.getName())); + throw new TownyException(Translatable.of("msg_err_town_already_invited", town.getName())); } } catch (TooManyInvitesException e) { town.deleteReceivedInvite(invite); @@ -1501,7 +1500,7 @@ public static void nationAdd(Nation nation, List towns) throws AlreadyRegi if (!town.hasNation()) { town.setNation(nation); town.save(); - TownyMessaging.sendNationMessagePrefixed(nation, Translation.of("msg_join_nation", town.getName())); + TownyMessaging.sendPrefixedNationMessage(nation, Translatable.of("msg_join_nation", town.getName())); } } @@ -1522,13 +1521,13 @@ public void nationKick(Player player, String[] names) { try { if (TownyAPI.getInstance().isWarTime()) - throw new TownyException(Translation.of("msg_war_cannot_do")); + throw new TownyException(Translatable.of("msg_war_cannot_do")); resident = getResidentOrThrow(player.getUniqueId()); nation = resident.getTown().getNation(); } catch (TownyException x) { - TownyMessaging.sendErrorMsg(player, x.getMessage()); + TownyMessaging.sendErrorMsg(player, x.getMessage(player)); return; } @@ -1553,17 +1552,17 @@ public static void nationKick(CommandSender sender, Nation nation, List ki // Actually remove the nation off the Town. town.removeNation(); - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_nation_kicked_by", sender.getName())); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_nation_kicked_by", sender.getName())); } for (Town town : remove) kicking.remove(town); if (kicking.size() > 0) { - TownyMessaging.sendPrefixedNationMessage(nation, Translation.of("msg_nation_kicked", sender.getName(), StringMgmt.join(kicking, ", "))); + TownyMessaging.sendPrefixedNationMessage(nation, Translatable.of("msg_nation_kicked", sender.getName(), StringMgmt.join(kicking, ", "))); plugin.resetCache(); } else - TownyMessaging.sendErrorMsg(sender, Translation.of("msg_invalid_name")); + TownyMessaging.sendErrorMsg(sender, Translatable.of("msg_invalid_name")); } private void nationAlly(Player player, String[] split) throws TownyException { @@ -1581,7 +1580,7 @@ private void nationAlly(Player player, String[] split) throws TownyException { nation = resident.getTown().getNation(); } catch (TownyException x) { - TownyMessaging.sendErrorMsg(player, x.getMessage()); + TownyMessaging.sendErrorMsg(player, x.getMessage(player)); return; } @@ -1593,15 +1592,15 @@ private void nationAlly(Player player, String[] split) throws TownyException { if (split[0].equalsIgnoreCase("add")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_NATION_ALLY_ADD.getNode())) { - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); } for (String name : names) { ally = townyUniverse.getNation(name); if (ally != null) { if (nation.equals(ally)) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_own_nation_disallow")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_own_nation_disallow")); } else if (nation.isAlliedWith(ally)) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_already_ally", ally)); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_already_ally", ally)); } else { list.add(ally); } @@ -1613,17 +1612,17 @@ private void nationAlly(Player player, String[] split) throws TownyException { if (ally != null) { if (nation.equals(ally)) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_own_nation_disallow")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_own_nation_disallow")); } else { remlist.add(ally); } } else { // Do nothing here as it doesn't match a Nation // Well we don't want to send the commands again so just say invalid name - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_invalid_name", name)); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_invalid_name", name)); } } else { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_invalid_name", name)); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_invalid_name", name)); } } } @@ -1641,15 +1640,15 @@ private void nationAlly(Player player, String[] split) throws TownyException { } if (split[0].equalsIgnoreCase("remove")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_NATION_ALLY_REMOVE.getNode())) { - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); } for (String name : names) { ally = townyUniverse.getNation(name); if (ally != null) { if (nation.equals(ally)) - TownyMessaging.sendErrorMsg(player, Translation.of("msg_own_nation_disallow")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_own_nation_disallow")); else if (!nation.isAlliedWith(ally)) - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_nation_not_allied_with", ally.getName())); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_nation_not_allied_with", ally.getName())); else list.add(ally); } @@ -1669,17 +1668,17 @@ else if (!nation.isAlliedWith(ally)) } } if (TownySettings.isDisallowOneWayAlliance()) { - String received = Translation.of("nation_received_requests") + String received = Translation.of("nation_received_requests", player) .replace("%a", Integer.toString(resident.getTown().getNation().getReceivedInvites().size()) ) .replace("%m", Integer.toString(InviteHandler.getReceivedInvitesMaxAmount(resident.getTown().getNation()))); - String sent = Translation.of("nation_sent_ally_requests") + String sent = Translation.of("nation_sent_ally_requests", player) .replace("%a", Integer.toString(resident.getTown().getNation().getSentAllyInvites().size()) ) .replace("%m", Integer.toString(InviteHandler.getSentAllyRequestsMaxAmount(resident.getTown().getNation()))); if (split[0].equalsIgnoreCase("sent")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_NATION_ALLY_LIST_SENT.getNode())) { - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); } List sentinvites = resident.getTown().getNation().getSentAllyInvites(); int page = 1; @@ -1695,7 +1694,7 @@ else if (!nation.isAlliedWith(ally)) } if (split[0].equalsIgnoreCase("received")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_NATION_ALLY_LIST_RECEIVED.getNode())) { - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); } List receivedinvites = resident.getTown().getNation().getReceivedInvites(); int page = 1; @@ -1712,24 +1711,24 @@ else if (!nation.isAlliedWith(ally)) } if (split[0].equalsIgnoreCase("accept")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_NATION_ALLY_ACCEPT.getNode())) { - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); } Nation sendernation; List invites = nation.getReceivedInvites(); if (invites.size() == 0) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_nation_no_requests")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_nation_no_requests")); return; } if (split.length >= 2) { // /invite deny args[1] sendernation = townyUniverse.getNation(split[1]); if (sendernation == null) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_invalid_name")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_invalid_name")); return; } } else { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_nation_specify_invite")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_nation_specify_invite")); InviteCommand.sendInviteList(player, invites,1,false); return; } @@ -1748,7 +1747,7 @@ else if (!nation.isAlliedWith(ally)) if (TownySettings.getMaxNationAllies() >= 0 && nation.getAllies().size() >= TownySettings.getMaxNationAllies()) { toAccept.getReceiver().deleteReceivedInvite(toAccept); toAccept.getSender().deleteSentInvite(toAccept); - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_ally_limit_reached")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_ally_limit_reached")); return; } @@ -1771,24 +1770,24 @@ else if (!nation.isAlliedWith(ally)) } if (split[0].equalsIgnoreCase("deny")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_NATION_ALLY_DENY.getNode())) { - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); } Nation sendernation; List invites = nation.getReceivedInvites(); if (invites.size() == 0) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_nation_no_requests")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_nation_no_requests")); return; } if (split.length >= 2) { // /invite deny args[1] sendernation = townyUniverse.getNation(split[1]); if (sendernation == null) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_invalid_name")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_invalid_name")); return; } } else { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_nation_specify_invite")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_nation_specify_invite")); InviteCommand.sendInviteList(player, invites, 1, false); return; } @@ -1812,7 +1811,7 @@ else if (!nation.isAlliedWith(ally)) return; } InviteHandler.declineInvite(toDecline, false); - TownyMessaging.sendMessage(player, Translation.of("successful_deny_request")); + TownyMessaging.sendMessage(player, Translatable.of("successful_deny_request")); } catch (InvalidObjectException e) { e.printStackTrace(); // Shouldn't happen, however like i said a fallback } @@ -1832,7 +1831,7 @@ private void nationRemoveAllyRequest(Object sender,Nation nation, ArrayList alli if (!targetNation.getCapital().getMayor().isNPC()) { for (Nation newAlly : allies) { nationCreateAllyRequest(player, nation, targetNation); - TownyMessaging.sendPrefixedNationMessage(nation, Translation.of("msg_ally_req_sent", newAlly.getName())); + TownyMessaging.sendPrefixedNationMessage(nation, Translatable.of("msg_ally_req_sent", newAlly.getName())); } } else { if (TownyUniverse.getInstance().getPermissionSource().testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWNYADMIN.getNode())) { @@ -1936,10 +1935,10 @@ public void nationAlly(Resident resident, final Nation nation, List alli } catch (AlreadyRegisteredException e) { e.printStackTrace(); } - TownyMessaging.sendPrefixedNationMessage(nation, Translation.of("msg_allied_nations", resident.getName(), targetNation.getName())); - TownyMessaging.sendPrefixedNationMessage(targetNation, Translation.of("msg_added_ally", nation.getName())); + TownyMessaging.sendPrefixedNationMessage(nation, Translatable.of("msg_allied_nations", resident.getName(), targetNation.getName())); + TownyMessaging.sendPrefixedNationMessage(targetNation, Translatable.of("msg_added_ally", nation.getName())); } else - TownyMessaging.sendErrorMsg(player, Translation.of("msg_unable_ally_npc", nation.getName())); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_unable_ally_npc", nation.getName())); } } } else { // So we are removing an ally @@ -1952,8 +1951,8 @@ public void nationAlly(Resident resident, final Nation nation, List alli return; } nation.removeAlly(targetNation); - TownyMessaging.sendPrefixedNationMessage(targetNation, Translation.of("msg_removed_ally", nation.getName())); - TownyMessaging.sendMessage(player, Translation.of("msg_ally_removed_successfully")); + TownyMessaging.sendPrefixedNationMessage(targetNation, Translatable.of("msg_removed_ally", nation.getName())); + TownyMessaging.sendMessage(player, Translatable.of("msg_ally_removed_successfully")); } catch (NotRegisteredException e) { remove.add(targetNation); } @@ -1980,7 +1979,7 @@ public void nationAlly(Resident resident, final Nation nation, List alli plugin.resetCache(); } else { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_invalid_name")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_invalid_name")); } } @@ -2000,7 +1999,7 @@ public void nationEnemy(Player player, String[] split) throws TownyException { nation = resident.getTown().getNation(); } catch (TownyException x) { - TownyMessaging.sendErrorMsg(player, x.getMessage()); + TownyMessaging.sendErrorMsg(player, x.getMessage(player)); return; } @@ -2016,15 +2015,15 @@ public void nationEnemy(Player player, String[] split) throws TownyException { enemy = townyUniverse.getNation(name); if (enemy == null) { - throw new TownyException(Translation.of("msg_err_no_nation_with_that_name", name)); + throw new TownyException(Translatable.of("msg_err_no_nation_with_that_name", name)); } if (nation.equals(enemy)) - TownyMessaging.sendErrorMsg(player, Translation.of("msg_own_nation_disallow")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_own_nation_disallow")); else if (add && nation.hasEnemy(enemy)) - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_nation_already_enemies_with", enemy.getName())); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_nation_already_enemies_with", enemy.getName())); else if (!add && !nation.hasEnemy(enemy)) - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_nation_not_enemies_with", enemy.getName())); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_nation_not_enemies_with", enemy.getName())); else list.add(enemy); } @@ -2032,7 +2031,7 @@ else if (!add && !nation.hasEnemy(enemy)) nationEnemy(resident, nation, list, add); } else { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_invalid_property", "[add/remove]")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_invalid_property", "[add/remove]")); } } @@ -2051,10 +2050,10 @@ public void nationEnemy(Resident resident, Nation nation, List enemies, NationAddEnemyEvent naee = new NationAddEnemyEvent(nation, targetNation); Bukkit.getPluginManager().callEvent(naee); - TownyMessaging.sendPrefixedNationMessage(targetNation, Translation.of("msg_added_enemy", nation.getName())); + TownyMessaging.sendPrefixedNationMessage(targetNation, Translatable.of("msg_added_enemy", nation.getName())); // Remove any ally settings from the target nation if (targetNation.hasAlly(nation)) - nationlegacyAlly(resident, targetNation, Arrays.asList(nation), false); + nationlegacyAlly(resident, targetNation, Collections.singletonList(nation), false); } else { TownyMessaging.sendMsg(TownyAPI.getInstance().getPlayer(resident), npaee.getCancelMessage()); @@ -2070,7 +2069,7 @@ public void nationEnemy(Resident resident, Nation nation, List enemies, NationRemoveEnemyEvent nree = new NationRemoveEnemyEvent(nation, targetNation); Bukkit.getPluginManager().callEvent(nree); - TownyMessaging.sendPrefixedNationMessage(targetNation, Translation.of("msg_removed_enemy", nation.getName())); + TownyMessaging.sendPrefixedNationMessage(targetNation, Translatable.of("msg_removed_enemy", nation.getName())); } else { TownyMessaging.sendMsg(TownyAPI.getInstance().getPlayer(resident), npree.getCancelMessage()); remove.add(targetNation); @@ -2092,16 +2091,15 @@ public void nationEnemy(Resident resident, Nation nation, List enemies, msg = msg.substring(0, msg.length() - 2); if (add) - msg = Translation.of("msg_enemy_nations", resident.getName(), msg); + TownyMessaging.sendPrefixedNationMessage(nation, Translatable.of("msg_enemy_nations", resident.getName(), msg)); else - msg = Translation.of("msg_enemy_to_neutral", resident.getName(), msg); + TownyMessaging.sendPrefixedNationMessage(nation, Translatable.of("msg_enemy_to_neutral", resident.getName(), msg)); - TownyMessaging.sendPrefixedNationMessage(nation, msg); TownyUniverse.getInstance().getDataSource().saveNations(); plugin.resetCache(); } else - TownyMessaging.sendErrorMsg(resident, Translation.of("msg_invalid_name")); + TownyMessaging.sendErrorMsg(resident.getPlayer(), Translatable.of("msg_invalid_name")); } public static void nationSet(Player player, String[] split, boolean admin, Nation nation) throws TownyException, InvalidNameException { @@ -2118,7 +2116,7 @@ public static void nationSet(Player player, String[] split, boolean admin, Natio resident = nation.getKing(); } catch (TownyException x) { - TownyMessaging.sendErrorMsg(player, x.getMessage()); + TownyMessaging.sendErrorMsg(player, x.getMessage(player)); return; } @@ -2127,7 +2125,7 @@ public static void nationSet(Player player, String[] split, boolean admin, Natio throw new TownyException("Use /ta set mayor [townname] [playername]"); if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_NATION_SET_KING.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); if (split.length < 2) TownyMessaging.sendErrorMsg(player, "Eg: /nation set king Dumbo"); @@ -2138,12 +2136,12 @@ public static void nationSet(Player player, String[] split, boolean admin, Natio Town newCapital = newKing.getTown(); if (TownySettings.getNumResidentsCreateNation() > 0 && newCapital.getNumResidents() < TownySettings.getNumResidentsCreateNation()) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_not_enough_residents_capital", newCapital.getName())); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_not_enough_residents_capital", newCapital.getName())); return; } if (TownySettings.getMaxResidentsPerTown() > 0 && nation.getCapital().getNumResidents() > TownySettings.getMaxResidentsPerTown()) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_nation_capital_too_many_residents", newCapital.getName())); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_nation_capital_too_many_residents", newCapital.getName())); return; } @@ -2158,9 +2156,9 @@ public static void nationSet(Player player, String[] split, boolean admin, Natio plugin.deleteCache(oldKing.getName()); plugin.deleteCache(newKing.getName()); TownyPerms.assignPermissions(oldKing, player); // remove permissions from old King. - TownyMessaging.sendPrefixedNationMessage(nation, Translation.of("msg_new_king", newKing.getName(), nation.getName())); + TownyMessaging.sendPrefixedNationMessage(nation, Translatable.of("msg_new_king", newKing.getName(), nation.getName())); } catch (TownyException e) { - TownyMessaging.sendErrorMsg(player, e.getMessage()); + TownyMessaging.sendErrorMsg(player, e.getMessage(player)); } } else if (split[0].equalsIgnoreCase("capital")) { if (admin) @@ -2170,22 +2168,22 @@ public static void nationSet(Player player, String[] split, boolean admin, Natio Town newCapital = TownyUniverse.getInstance().getTown(split[1]); if (newCapital == null) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_not_registered_1", split[1])); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_not_registered_1", split[1])); return; } if (TownySettings.getNumResidentsCreateNation() > 0 && newCapital.getNumResidents() < TownySettings.getNumResidentsCreateNation()) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_not_enough_residents_capital", newCapital.getName())); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_not_enough_residents_capital", newCapital.getName())); return; } if (TownySettings.getMaxResidentsPerTown() > 0 && nation.getNumResidents() > TownySettings.getMaxResidentsPerTown()) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_nation_capital_too_many_residents", newCapital.getName())); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_nation_capital_too_many_residents", newCapital.getName())); return; } if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_NATION_SET_CAPITOL.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); if (split.length < 2) TownyMessaging.sendErrorMsg(player, "Eg: /nation set capital {town name}"); @@ -2206,7 +2204,7 @@ public static void nationSet(Player player, String[] split, boolean admin, Natio // There are going to be some towns removed from the nation, so we'll do a Confirmation. if (!removedTowns.isEmpty()) { - String title = Translation.of("msg_warn_the_following_towns_will_be_removed_from_your_nation", StringMgmt.join(removedTowns, ", ")); + String title = Translation.of("msg_warn_the_following_towns_will_be_removed_from_your_nation", player, StringMgmt.join(removedTowns, ", ")); final Nation finalNation = nation; Confirmation.runOnAccept(() -> { @@ -2214,10 +2212,10 @@ public static void nationSet(Player player, String[] split, boolean admin, Natio finalNation.setCapital(newCapital); finalNation.recheckTownDistance(); plugin.resetCache(); - TownyMessaging.sendPrefixedNationMessage(finalNation, Translation.of("msg_new_king", newCapital.getMayor().getName(), finalNation.getName())); + TownyMessaging.sendPrefixedNationMessage(finalNation, Translatable.of("msg_new_king", newCapital.getMayor().getName(), finalNation.getName())); } catch (TownyException e) { - TownyMessaging.sendErrorMsg(player, e.getMessage()); + TownyMessaging.sendErrorMsg(player, e.getMessage(player)); } }) .setTitle(title) @@ -2227,56 +2225,56 @@ public static void nationSet(Player player, String[] split, boolean admin, Natio } else { nation.setCapital(newCapital); plugin.resetCache(); - TownyMessaging.sendPrefixedNationMessage(nation, Translation.of("msg_new_king", newCapital.getMayor().getName(), nation.getName())); + TownyMessaging.sendPrefixedNationMessage(nation, Translatable.of("msg_new_king", newCapital.getMayor().getName(), nation.getName())); nation.save(); } // Proximity doesn't factor in. } else { nation.setCapital(newCapital); plugin.resetCache(); - TownyMessaging.sendPrefixedNationMessage(nation, Translation.of("msg_new_king", newCapital.getMayor().getName(), nation.getName())); + TownyMessaging.sendPrefixedNationMessage(nation, Translatable.of("msg_new_king", newCapital.getMayor().getName(), nation.getName())); nation.save(); } } } catch (TownyException e) { - TownyMessaging.sendErrorMsg(player, e.getMessage()); + TownyMessaging.sendErrorMsg(player, e.getMessage(player)); } } else if (split[0].equalsIgnoreCase("spawn")){ if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_NATION_SET_SPAWN.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); parseNationSetCommand(player, nation); } else if (split[0].equalsIgnoreCase("taxes")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_NATION_SET_TAXES.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); if (split.length < 2) TownyMessaging.sendErrorMsg(player, "Eg: /nation set taxes 70"); else { int amount = Integer.parseInt(split[1].trim()); if (amount < 0) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_negative_money")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_negative_money")); return; } try { nation.setTaxes(amount); - TownyMessaging.sendPrefixedNationMessage(nation, Translation.of("msg_town_set_nation_tax", player.getName(), split[1])); + TownyMessaging.sendPrefixedNationMessage(nation, Translatable.of("msg_town_set_nation_tax", player.getName(), split[1])); if (admin) - TownyMessaging.sendMessage(player, Translation.of("msg_town_set_nation_tax", player.getName(), split[1])); + TownyMessaging.sendMessage(player, Translatable.of("msg_town_set_nation_tax", player.getName(), split[1])); } catch (NumberFormatException e) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_error_must_be_int")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_error_must_be_int")); } } } else if (split[0].equalsIgnoreCase("spawncost")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_NATION_SET_SPAWNCOST.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); if (split.length < 2) TownyMessaging.sendErrorMsg(player, "Eg: /nation set spawncost 70"); @@ -2284,19 +2282,19 @@ else if (split[0].equalsIgnoreCase("taxes")) { try { double amount = Double.parseDouble(split[1]); if (amount < 0) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_negative_money")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_negative_money")); return; } if (TownySettings.getSpawnTravelCost() < amount) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_cannot_set_spawn_cost_more_than", TownySettings.getSpawnTravelCost())); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_cannot_set_spawn_cost_more_than", TownySettings.getSpawnTravelCost())); return; } nation.setSpawnCost(amount); - TownyMessaging.sendPrefixedNationMessage(nation, Translation.of("msg_spawn_cost_set_to", player.getName(), Translation.of("nation_sing"), split[1])); + TownyMessaging.sendPrefixedNationMessage(nation, Translatable.of("msg_spawn_cost_set_to", player.getName(), Translatable.of("nation_sing"), split[1])); if (admin) - TownyMessaging.sendMessage(player, Translation.of("msg_spawn_cost_set_to", player.getName(), Translation.of("nation_sing"), split[1])); + TownyMessaging.sendMessage(player, Translatable.of("msg_spawn_cost_set_to", player.getName(), Translatable.of("nation_sing"), split[1])); } catch (NumberFormatException e) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_error_must_be_num")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_error_must_be_num")); return; } } @@ -2307,25 +2305,25 @@ else if (split[0].equalsIgnoreCase("taxes")) { throw new TownyException("Use /ta nation [nation] rename"); if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_NATION_SET_NAME.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); if (split.length < 2) TownyMessaging.sendErrorMsg(player, "Eg: /nation set name Plutoria"); else { if(NameValidation.isBlacklistName(split[1])) - throw new TownyException(Translation.of("msg_invalid_name")); + throw new TownyException(Translatable.of("msg_invalid_name")); if(TownyEconomyHandler.isActive() && TownySettings.getNationRenameCost() > 0) { if (!nation.getAccount().canPayFromHoldings(TownySettings.getNationRenameCost())) - throw new TownyException(Translation.of("msg_err_no_money", TownyEconomyHandler.getFormattedBalance(TownySettings.getNationRenameCost()))); + throw new TownyException(Translatable.of("msg_err_no_money", TownyEconomyHandler.getFormattedBalance(TownySettings.getNationRenameCost()))); final Nation finalNation = nation; final String name = split[1]; Confirmation.runOnAccept(() -> { //Check if nation can still pay rename costs. if (!finalNation.getAccount().canPayFromHoldings(TownySettings.getNationRenameCost())) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_no_money", TownyEconomyHandler.getFormattedBalance(TownySettings.getNationRenameCost()))); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_no_money", TownyEconomyHandler.getFormattedBalance(TownySettings.getNationRenameCost()))); return; } @@ -2333,7 +2331,7 @@ else if (split[0].equalsIgnoreCase("taxes")) { nationRename(player, finalNation, name); }) - .setTitle(Translation.of("msg_confirm_purchase", TownyEconomyHandler.getFormattedBalance(TownySettings.getNationRenameCost()))) + .setTitle(Translation.of("msg_confirm_purchase", player, TownyEconomyHandler.getFormattedBalance(TownySettings.getNationRenameCost()))) .sendTo(player); } else { @@ -2344,26 +2342,26 @@ else if (split[0].equalsIgnoreCase("taxes")) { } else if (split[0].equalsIgnoreCase("tag")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_NATION_SET_TAG.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); if (split.length < 2) throw new TownyException("Eg: /nation set tag PLT"); else if (split[1].equalsIgnoreCase("clear")) { nation.setTag(" "); - TownyMessaging.sendPrefixedNationMessage(nation, Translation.of("msg_reset_nation_tag", player.getName())); + TownyMessaging.sendPrefixedNationMessage(nation, Translatable.of("msg_reset_nation_tag", player.getName())); } else { if (split[1].length() > TownySettings.getMaxTagLength()) - throw new TownyException(Translation.of("msg_err_tag_too_long")); + throw new TownyException(Translatable.of("msg_err_tag_too_long")); nation.setTag(NameValidation.checkAndFilterName(split[1])); - TownyMessaging.sendPrefixedNationMessage(nation, Translation.of("msg_set_nation_tag", player.getName(), nation.getTag())); + TownyMessaging.sendPrefixedNationMessage(nation, Translatable.of("msg_set_nation_tag", player.getName(), nation.getTag())); if (admin) - TownyMessaging.sendMessage(player, Translation.of("msg_set_nation_tag", player.getName(), nation.getTag())); + TownyMessaging.sendMessage(player, Translatable.of("msg_set_nation_tag", player.getName(), nation.getTag())); } } else if (split[0].equalsIgnoreCase("title")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_NATION_SET_TITLE.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translation.of("msg_err_command_disable", player)); // Give the resident a title if (split.length < 2) @@ -2372,13 +2370,13 @@ else if (split[1].equalsIgnoreCase("clear")) { resident = getResidentOrThrow(split[1]); if (!CombatUtil.isSameNation(getResidentOrThrow(player.getUniqueId()), resident)) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_not_same_nation", resident.getName())); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_not_same_nation", resident.getName())); return; } String title = StringMgmt.join(NameValidation.checkAndFilterArray(StringMgmt.remArgs(split, 2))); if (title.length() > TownySettings.getMaxTitleLength()) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_input_too_long")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_input_too_long")); return; } @@ -2386,19 +2384,19 @@ else if (split[1].equalsIgnoreCase("clear")) { resident.save(); if (resident.hasTitle()) { - TownyMessaging.sendPrefixedNationMessage(nation, Translation.of("msg_set_title", resident.getName(), Colors.translateColorCodes(resident.getTitle()))); + TownyMessaging.sendPrefixedNationMessage(nation, Translatable.of("msg_set_title", resident.getName(), Colors.translateColorCodes(resident.getTitle()))); if (admin) - TownyMessaging.sendMessage(player, Translation.of("msg_set_title", resident.getName(), Colors.translateColorCodes(resident.getTitle()))); + TownyMessaging.sendMessage(player, Translatable.of("msg_set_title", resident.getName(), Colors.translateColorCodes(resident.getTitle()))); } else { - TownyMessaging.sendPrefixedNationMessage(nation, Translation.of("msg_clear_title_surname", "Title", resident.getName())); + TownyMessaging.sendPrefixedNationMessage(nation, Translatable.of("msg_clear_title_surname", "Title", resident.getName())); if (admin) - TownyMessaging.sendMessage(player, Translation.of("msg_clear_title_surname", "Title", resident.getName())); + TownyMessaging.sendMessage(player, Translatable.of("msg_clear_title_surname", "Title", resident.getName())); } } else if (split[0].equalsIgnoreCase("surname")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_NATION_SET_SURNAME.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); // Give the resident a title if (split.length < 2) @@ -2407,13 +2405,13 @@ else if (split[1].equalsIgnoreCase("clear")) { resident = getResidentOrThrow(split[1]); if (!CombatUtil.isSameNation(getResidentOrThrow(player.getUniqueId()), resident)) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_not_same_nation", resident.getName())); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_not_same_nation", resident.getName())); return; } String surname = StringMgmt.join(NameValidation.checkAndFilterArray(StringMgmt.remArgs(split, 2))); if (surname.length() > TownySettings.getMaxTitleLength()) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_input_too_long")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_input_too_long")); return; } @@ -2421,29 +2419,29 @@ else if (split[1].equalsIgnoreCase("clear")) { resident.save(); if (resident.hasSurname()) { - TownyMessaging.sendPrefixedNationMessage(nation, Translation.of("msg_set_surname", resident.getName(), Colors.translateColorCodes(resident.getSurname()))); + TownyMessaging.sendPrefixedNationMessage(nation, Translatable.of("msg_set_surname", resident.getName(), Colors.translateColorCodes(resident.getSurname()))); if (admin) - TownyMessaging.sendMessage(player, Translation.of("msg_set_surname", resident.getName(), Colors.translateColorCodes(resident.getSurname()))); + TownyMessaging.sendMessage(player, Translatable.of("msg_set_surname", resident.getName(), Colors.translateColorCodes(resident.getSurname()))); } else { - TownyMessaging.sendPrefixedNationMessage(nation, Translation.of("msg_clear_title_surname", "Surname", resident.getName())); + TownyMessaging.sendPrefixedNationMessage(nation, Translatable.of("msg_clear_title_surname", "Surname", resident.getName())); if (admin) - TownyMessaging.sendMessage(player, Translation.of("msg_clear_title_surname", "Surname", resident.getName())); + TownyMessaging.sendMessage(player, Translatable.of("msg_clear_title_surname", "Surname", resident.getName())); } } else if (split[0].equalsIgnoreCase("board")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_NATION_SET_BOARD.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable", player)); if (split.length < 2) { - TownyMessaging.sendErrorMsg(player, "Eg: /nation set board " + Translation.of("town_help_9")); + TownyMessaging.sendErrorMsg(player, "Eg: /nation set board " + Translation.of("town_help_9", player)); return; } else { String line = StringMgmt.join(StringMgmt.remFirstArg(split), " "); if (!line.equals("none")) { if (!NameValidation.isValidString(line)) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_invalid_string_nationboard_not_set")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_invalid_string_nationboard_not_set")); return; } // TownyFormatter shouldn't be given any string longer than 159, or it has trouble splitting lines. @@ -2458,7 +2456,7 @@ else if (split[1].equalsIgnoreCase("clear")) { } else if (split[0].equalsIgnoreCase("mapcolor")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_NATION_SET_MAPCOLOR.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); if (split.length < 2) { TownyMessaging.sendErrorMsg(player, "Eg: /nation set mapcolor brown."); @@ -2468,19 +2466,19 @@ else if (split[1].equalsIgnoreCase("clear")) { if (!TownySettings.getNationColorsMap().containsKey(line.toLowerCase())) { String allowedColorsListAsString = TownySettings.getNationColorsMap().keySet().toString(); - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_invalid_nation_map_color", allowedColorsListAsString)); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_invalid_nation_map_color", allowedColorsListAsString)); return; } nation.setMapColorHexCode(TownySettings.getNationColorsMap().get(line.toLowerCase())); - TownyMessaging.sendPrefixedNationMessage(nation, Translation.of("msg_nation_map_color_changed", line.toLowerCase())); + TownyMessaging.sendPrefixedNationMessage(nation, Translatable.of("msg_nation_map_color_changed", line.toLowerCase())); if (admin) - TownyMessaging.sendMessage(player, Translation.of("msg_nation_map_color_changed", line.toLowerCase())); + TownyMessaging.sendMessage(player, Translatable.of("msg_nation_map_color_changed", line.toLowerCase())); } } else if (TownyCommandAddonAPI.hasCommand(CommandType.NATION_SET, split[0])) { TownyCommandAddonAPI.getAddonCommand(CommandType.NATION_SET, split[0]).execute(player, "nation", split); } else { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_invalid_property", split[0])); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_invalid_property", split[0])); return; } @@ -2493,7 +2491,7 @@ private static void parseNationSetCommand(Player player, Nation nation) { Location newSpawn = player.getLocation(); if (TownyAPI.getInstance().isWilderness(newSpawn)) - throw new TownyException(Translation.of("msg_cache_block_error_wild", "set spawn")); + throw new TownyException(Translatable.of("msg_cache_block_error_wild", "set spawn")); TownBlock townBlock = TownyAPI.getInstance().getTownBlock(newSpawn); Town town = townBlock.getTownOrNull(); @@ -2502,11 +2500,11 @@ private static void parseNationSetCommand(Player player, Nation nation) { if (nation.getCapital() != null && TownySettings.isNationSpawnOnlyAllowedInCapital() && !town.getUUID().equals(nation.getCapital().getUUID())) - throw new TownyException(Translation.of("msg_err_spawn_not_within_capital")); + throw new TownyException(Translatable.of("msg_err_spawn_not_within_capital")); // Or they can be in any town in the nation. else if(!nation.getTowns().contains(town)) - throw new TownyException(Translation.of("msg_err_spawn_not_within_nationtowns")); + throw new TownyException(Translatable.of("msg_err_spawn_not_within_nationtowns")); // Remove the SpawnPoint particles. if (nation.hasSpawn()) @@ -2514,9 +2512,9 @@ private static void parseNationSetCommand(Player player, Nation nation) { // Set the spawn point and send feedback message. nation.setSpawn(newSpawn); - TownyMessaging.sendMsg(player, Translation.of("msg_set_nation_spawn")); + TownyMessaging.sendMsg(player, Translatable.of("msg_set_nation_spawn")); } catch (TownyException e){ - TownyMessaging.sendErrorMsg(player, e.getMessage()); + TownyMessaging.sendErrorMsg(player, e.getMessage(player)); } } @@ -2536,12 +2534,12 @@ public static void nationToggle(CommandSender sender, String[] split, boolean ad resident = nation.getKing(); } catch (TownyException x) { - TownyMessaging.sendErrorMsg(sender, x.getMessage()); + TownyMessaging.sendErrorMsg(sender, x.getMessage(sender)); return; } if (!admin && !TownyUniverse.getInstance().getPermissionSource().testPermission((Player) sender, PermissionNodes.TOWNY_COMMAND_NATION_TOGGLE.getNode(split[0].toLowerCase()))) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); Optional choice = Optional.empty(); if (split.length == 2) { @@ -2553,11 +2551,11 @@ public static void nationToggle(CommandSender sender, String[] split, boolean ad boolean peacefulState = choice.orElse(!nation.isNeutral()); double cost = TownySettings.getNationNeutralityCost(); - if (nation.isNeutral() && peacefulState) throw new TownyException(Translation.of("msg_nation_already_peaceful")); - else if (!nation.isNeutral() && !peacefulState) throw new TownyException(Translation.of("msg_nation_already_not_peaceful")); + if (nation.isNeutral() && peacefulState) throw new TownyException(Translatable.of("msg_nation_already_peaceful")); + else if (!nation.isNeutral() && !peacefulState) throw new TownyException(Translatable.of("msg_nation_already_not_peaceful")); if (peacefulState && TownyEconomyHandler.isActive() && !nation.getAccount().canPayFromHoldings(cost)) - throw new TownyException(Translation.of("msg_nation_cant_peaceful")); + throw new TownyException(Translatable.of("msg_nation_cant_peaceful")); // Fire cancellable event directly before setting the toggle. NationToggleNeutralEvent preEvent = new NationToggleNeutralEvent(sender, nation, admin, peacefulState); @@ -2568,13 +2566,13 @@ public static void nationToggle(CommandSender sender, String[] split, boolean ad // If they setting neutral status on send a message confirming they paid something, if they did. if (peacefulState && TownyEconomyHandler.isActive() && cost > 0) { nation.getAccount().withdraw(cost, "Peaceful Nation Cost"); - TownyMessaging.sendMsg(sender, Translation.of("msg_you_paid", TownyEconomyHandler.getFormattedBalance(cost))); + TownyMessaging.sendMsg(sender, Translatable.of("msg_you_paid", TownyEconomyHandler.getFormattedBalance(cost))); } nation.setNeutral(peacefulState); // Send message feedback to the whole nation. - TownyMessaging.sendPrefixedNationMessage(nation, Translation.of("msg_nation_peaceful") + (nation.isNeutral + TownyMessaging.sendPrefixedNationMessage(nation, Translatable.of("msg_nation_peaceful") + (nation.isNeutral () ? Colors.Green : Colors.Red + " not") + " peaceful."); } else if(split[0].equalsIgnoreCase("public")){ @@ -2589,7 +2587,7 @@ public static void nationToggle(CommandSender sender, String[] split, boolean ad nation.setPublic(preEvent.getFutureState()); // Send message feedback. - TownyMessaging.sendPrefixedNationMessage(nation, Translation.of("msg_nation_changed_public", nation.isPublic() ? Translation.of("enabled") : Translation.of("disabled"))); + TownyMessaging.sendPrefixedNationMessage(nation, Translatable.of("msg_nation_changed_public", nation.isPublic() ? Translatable.of("enabled") : Translatable.of("disabled"))); } else if(split[0].equalsIgnoreCase("open")){ @@ -2603,7 +2601,7 @@ public static void nationToggle(CommandSender sender, String[] split, boolean ad nation.setOpen(preEvent.getFutureState()); // Send message feedback. - TownyMessaging.sendPrefixedNationMessage(nation, Translation.of("msg_nation_changed_open", nation.isOpen() ? Translation.of("enabled") : Translation.of("disabled"))); + TownyMessaging.sendPrefixedNationMessage(nation, Translatable.of("msg_nation_changed_open", nation.isOpen() ? Translatable.of("enabled") : Translatable.of("disabled"))); } else if (TownyCommandAddonAPI.hasCommand(CommandType.NATION_TOGGLE, split[0])) { TownyCommandAddonAPI.getAddonCommand(CommandType.NATION_TOGGLE, split[0]).execute(sender, "nation", split); } else { @@ -2631,15 +2629,15 @@ public static void nationRename(Player player, Nation nation, String newName) { NationPreRenameEvent event = new NationPreRenameEvent(nation, newName); Bukkit.getServer().getPluginManager().callEvent(event); if (event.isCancelled()) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_rename_cancelled")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_rename_cancelled")); return; } try { TownyUniverse.getInstance().getDataSource().renameNation(nation, newName); - TownyMessaging.sendPrefixedNationMessage(nation, Translation.of("msg_nation_set_name", player.getName(), nation.getName())); + TownyMessaging.sendPrefixedNationMessage(nation, Translatable.of("msg_nation_set_name", player.getName(), nation.getName())); } catch (TownyException e) { - TownyMessaging.sendErrorMsg(player, e.getMessage()); + TownyMessaging.sendErrorMsg(player, e.getMessage(player)); } } @@ -2664,24 +2662,24 @@ public static void nationSpawn(Player player, String[] split, boolean ignoreWarn if (split.length == 0) { if (!resident.hasTown() || !resident.getTownOrNull().hasNation()) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_dont_belong_nation")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_dont_belong_nation")); return; } nation = resident.getTownOrNull().getNationOrNull(); - notAffordMSG = Translation.of("msg_err_cant_afford_tp"); + notAffordMSG = Translation.of("msg_err_cant_afford_tp", player); } else { // split.length > 1 nation = getNationOrThrow(split[0]); - notAffordMSG = Translation.of("msg_err_cant_afford_tp_nation", nation.getName()); + notAffordMSG = Translation.of("msg_err_cant_afford_tp_nation", player, nation.getName()); } SpawnUtil.sendToTownySpawn(player, split, nation, notAffordMSG, false, ignoreWarning, SpawnType.NATION); } catch (NotRegisteredException e) { - throw new TownyException(Translation.of("msg_err_not_registered_1", split[0])); + throw new TownyException(Translatable.of("msg_err_not_registered_1", split[0])); } @@ -2691,16 +2689,16 @@ private static void nationTransaction(Player player, String[] args, boolean with try { Resident resident = TownyUniverse.getInstance().getResident(player.getUniqueId()); if (resident == null || !resident.hasNation()) - throw new TownyException(Translation.of("msg_err_dont_belong_nation")); + throw new TownyException(Translatable.of("msg_err_dont_belong_nation")); if (args.length < 2 || args.length > 3) - throw new TownyException(Translation.of("msg_must_specify_amnt", "/nation" + (withdraw ? " withdraw" : " deposit"))); + throw new TownyException(Translatable.of("msg_must_specify_amnt", "/nation" + (withdraw ? " withdraw" : " deposit"))); int amount; try { amount = Integer.parseInt(args[1].trim()); } catch (NumberFormatException ex) { - throw new TownyException(Translation.of("msg_error_must_be_int")); + throw new TownyException(Translatable.of("msg_error_must_be_int")); } if (args.length == 2) { @@ -2712,16 +2710,16 @@ private static void nationTransaction(Player player, String[] args, boolean with } if (withdraw) - throw new TownyException(Translation.of("msg_must_specify_amnt", "/nation withdraw")); + throw new TownyException(Translatable.of("msg_must_specify_amnt", "/nation withdraw")); if (args.length == 3) { if (!TownyUniverse.getInstance().getPermissionSource().testPermission(player, PermissionNodes.TOWNY_COMMAND_NATION_DEPOSIT_OTHER.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); Town town = TownyUniverse.getInstance().getTown(args[2]); if (town != null) { if (!resident.getTown().getNation().hasTown(town)) - throw new TownyException(Translation.of("msg_err_not_same_nation", town.getName())); + throw new TownyException(Translatable.of("msg_err_not_same_nation", town.getName())); MoneyUtil.townDeposit(player, resident, town, resident.getTown().getNation(), amount); @@ -2730,7 +2728,7 @@ private static void nationTransaction(Player player, String[] args, boolean with } } } catch (TownyException e) { - TownyMessaging.sendErrorMsg(player, e.getMessage()); + TownyMessaging.sendErrorMsg(player, e.getMessage(player)); } } } diff --git a/src/com/palmergames/bukkit/towny/command/PlotCommand.java b/src/com/palmergames/bukkit/towny/command/PlotCommand.java index af8f305cee..a52068bb4f 100644 --- a/src/com/palmergames/bukkit/towny/command/PlotCommand.java +++ b/src/com/palmergames/bukkit/towny/command/PlotCommand.java @@ -37,6 +37,7 @@ import com.palmergames.bukkit.towny.object.TownyPermission; import com.palmergames.bukkit.towny.object.TownyPermissionChange; import com.palmergames.bukkit.towny.object.TownyWorld; +import com.palmergames.bukkit.towny.object.Translatable; import com.palmergames.bukkit.towny.object.Translation; import com.palmergames.bukkit.towny.object.WorldCoord; import com.palmergames.bukkit.towny.object.jail.Jail; @@ -66,6 +67,7 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; +import java.util.Locale; import java.util.Optional; import java.util.UUID; @@ -157,7 +159,7 @@ public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, } Player player = (Player) sender; if (!TownyAPI.getInstance().isTownyWorld(player.getWorld())) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_set_use_towny_off")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_set_use_towny_off")); return false; } @@ -267,7 +269,7 @@ public boolean parsePlotCommand(Player player, String[] split) { Resident resident = TownyUniverse.getInstance().getResident(player.getUniqueId()); if (resident == null) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_not_registered")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_not_registered")); return true; } @@ -277,24 +279,24 @@ public boolean parsePlotCommand(Player player, String[] split) { TownBlock townBlock = TownyAPI.getInstance().getTownBlock(player.getLocation()); if (townBlock == null && !split[0].equalsIgnoreCase("perm") && !split[0].equalsIgnoreCase("claim")) - throw new TownyException(Translation.of("msg_not_claimed_1")); + throw new TownyException(Translatable.of("msg_not_claimed_1")); if (!TownyAPI.getInstance().isWilderness(player.getLocation()) && townBlock.getTownOrNull().isRuined()) - throw new TownyException(Translation.of("msg_err_cannot_use_command_because_town_ruined")); + throw new TownyException(Translatable.of("msg_err_cannot_use_command_because_town_ruined")); if (split[0].equalsIgnoreCase("claim")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_PLOT_CLAIM.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); if (TownyAPI.getInstance().isWarTime()) - throw new TownyException(Translation.of("msg_war_cannot_do")); + throw new TownyException(Translatable.of("msg_war_cannot_do")); List selection = AreaSelectionUtil.selectWorldCoordArea(resident, new WorldCoord(world, Coord.parseCoord(player)), StringMgmt.remFirstArg(split)); // Fast-fail if this is a single plot and it is already claimed. if (selection.size() == 1 && selection.get(0).hasTownBlock() && selection.get(0).getTownBlock().hasResident() && !selection.get(0).getTownBlock().isForSale()) - throw new TownyException(Translation.of("msg_already_claimed", selection.get(0).getTownBlock().getResidentOrNull())); + throw new TownyException(Translatable.of("msg_already_claimed", selection.get(0).getTownBlock().getResidentOrNull())); // Filter to just plots that are for sale. selection = AreaSelectionUtil.filterPlotsForSale(selection); @@ -305,7 +307,7 @@ public boolean parsePlotCommand(Player player, String[] split) { if (selection.size() > 0) { if (selection.size() + resident.getTownBlocks().size() > TownySettings.getMaxResidentPlots(resident)) - throw new TownyException(Translation.of("msg_max_plot_own", TownySettings.getMaxResidentPlots(resident))); + throw new TownyException(Translatable.of("msg_max_plot_own", TownySettings.getMaxResidentPlots(resident))); /* * If a resident has no town, the Town is open, and the plot is not an Embassy: @@ -329,10 +331,10 @@ public boolean parsePlotCommand(Player player, String[] split) { try { continuePlotClaimProcess(coords, resident, player); } catch (TownyException e) { - TownyMessaging.sendErrorMsg(player, e.getMessage()); + TownyMessaging.sendErrorMsg(player, e.getMessage(player)); } }) - .setTitle(Translation.of("msg_you_must_join_this_town_to_claim_this_plot", town.getName())) + .setTitle(Translation.of("msg_you_must_join_this_town_to_claim_this_plot", player, town.getName())) .sendTo(player); return true; } @@ -340,18 +342,18 @@ public boolean parsePlotCommand(Player player, String[] split) { continuePlotClaimProcess(selection, resident, player); } else { - TownyMessaging.sendMessage(player, Translation.of("msg_err_empty_area_selection")); + TownyMessaging.sendMessage(player, Translatable.of("msg_err_empty_area_selection")); } } else if (split[0].equalsIgnoreCase("evict")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_PLOT_EVICT.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); if (TownyAPI.getInstance().isWarTime()) - throw new TownyException(Translation.of("msg_war_cannot_do")); + throw new TownyException(Translatable.of("msg_war_cannot_do")); if (!townBlock.hasResident()) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_no_one_to_evict")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_no_one_to_evict")); } else { plotTestOwner(resident, townBlock); // This will throw an exception if the player doesn't count as the mayor of this townblock. @@ -363,7 +365,7 @@ public boolean parsePlotCommand(Player player, String[] split) { tb.setType(townBlock.getType()); // Re-set the plot permissions while maintaining plot type. tb.save(); // Save townblock. }); - TownyMessaging.sendMessage(player, Translation.of("msg_plot_evict_group", townBlock.getPlotObjectGroup().getName())); + TownyMessaging.sendMessage(player, Translatable.of("msg_plot_evict_group", townBlock.getPlotObjectGroup().getName())); return true; } @@ -372,16 +374,16 @@ public boolean parsePlotCommand(Player player, String[] split) { townBlock.setType(townBlock.getType()); // Re-set the plot permissions while maintaining plot type. townBlock.save(); // Save townblock. - TownyMessaging.sendMessage(player, Translation.of("msg_plot_evict")); + TownyMessaging.sendMessage(player, Translatable.of("msg_plot_evict")); } } else if (split[0].equalsIgnoreCase("unclaim")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_PLOT_UNCLAIM.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); if (TownyAPI.getInstance().isWarTime()) - throw new TownyException(Translation.of("msg_war_cannot_do")); + throw new TownyException(Translatable.of("msg_war_cannot_do")); if (split.length == 2 && split[1].equalsIgnoreCase("all")) { // Start the unclaim task @@ -413,21 +415,21 @@ public boolean parsePlotCommand(Player player, String[] split) { Confirmation.runOnAccept(() -> { new PlotClaim(Towny.getPlugin(), player, resident, groupSelection, false, false, false).start(); }) - .setTitle(Translation.of("msg_plot_group_unclaim_confirmation", block.getPlotObjectGroup().getTownBlocks().size()) + " " + Translation.of("are_you_sure_you_want_to_continue")) + .setTitle(Translation.of("msg_plot_group_unclaim_confirmation", player, block.getPlotObjectGroup().getTownBlocks().size()) + " " + Translation.of("are_you_sure_you_want_to_continue", player)) .sendTo(player); return true; } } else { - TownyMessaging.sendMessage(player, Translation.of("msg_err_empty_area_selection")); + TownyMessaging.sendMessage(player, Translatable.of("msg_err_empty_area_selection")); } } } else if (split[0].equalsIgnoreCase("notforsale") || split[0].equalsIgnoreCase("nfs")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_PLOT_NOTFORSALE.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); List selection = AreaSelectionUtil.selectWorldCoordArea(resident, new WorldCoord(world, Coord.parseCoord(player)), StringMgmt.remFirstArg(split)); selection = AreaSelectionUtil.filterPlotsForSale(selection); @@ -435,7 +437,7 @@ public boolean parsePlotCommand(Player player, String[] split) { if (permSource.testPermission(player, PermissionNodes.TOWNY_ADMIN.getNode())) { for (WorldCoord worldCoord : selection) { if (worldCoord.getTownBlock().hasPlotObjectGroup()) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_plot_belongs_to_group_plot_nfs", worldCoord)); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_plot_belongs_to_group_plot_nfs", worldCoord)); return false; } setPlotForSale(resident, worldCoord, -1); @@ -451,14 +453,14 @@ public boolean parsePlotCommand(Player player, String[] split) { } if (selection.isEmpty()) - throw new TownyException(Translation.of("msg_err_empty_area_selection")); + throw new TownyException(Translatable.of("msg_err_empty_area_selection")); // Set each WorldCoord in selection not for sale. for (WorldCoord worldCoord : selection) { // Skip over any plots that are part of a PlotGroup. if (worldCoord.getTownBlock().hasPlotObjectGroup()) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_plot_belongs_to_group_plot_nfs", worldCoord)); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_plot_belongs_to_group_plot_nfs", worldCoord)); continue; } @@ -469,12 +471,12 @@ public boolean parsePlotCommand(Player player, String[] split) { } else if (split[0].equalsIgnoreCase("forsale") || split[0].equalsIgnoreCase("fs")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_PLOT_FORSALE.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); WorldCoord pos = new WorldCoord(world, Coord.parseCoord(player)); Town town = townBlock.getTownOrNull(); if (town == null) - throw new TownyException(Translation.of("msg_err_empty_area_selection")); + throw new TownyException(Translatable.of("msg_err_empty_area_selection")); double plotPrice = town.getPlotTypePrice(pos.getTownBlock().getType()); if (split.length > 1) { @@ -499,7 +501,7 @@ public boolean parsePlotCommand(Player player, String[] split) { } if (selection.isEmpty()) - throw new TownyException(Translation.of("msg_err_empty_area_selection")); + throw new TownyException(Translatable.of("msg_err_empty_area_selection")); } else { // No 'within' found so this will be a case of /plot fs $, add a single coord to selection. selection = new ArrayList<>(); @@ -512,11 +514,11 @@ public boolean parsePlotCommand(Player player, String[] split) { // command was 'plot fs $' plotPrice = Double.parseDouble(split[1]); if (plotPrice < 0) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_negative_money")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_negative_money")); return true; } } catch (NumberFormatException e) { - TownyMessaging.sendMessage(resident, Translation.of("msg_error_must_be_num")); + TownyMessaging.sendMessage(resident, Translatable.of("msg_error_must_be_num")); return true; } } @@ -527,7 +529,7 @@ public boolean parsePlotCommand(Player player, String[] split) { // Skip over any plots that are part of a PlotGroup. if (tb.hasPlotObjectGroup()) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_plot_belongs_to_group_plot_fs2", worldCoord)); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_plot_belongs_to_group_plot_fs2", worldCoord)); continue; } @@ -541,7 +543,7 @@ public boolean parsePlotCommand(Player player, String[] split) { // Skip over any plots that are part of a PlotGroup. if (pos.getTownBlock().hasPlotObjectGroup()) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_plot_belongs_to_group_plot_fs2", pos)); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_plot_belongs_to_group_plot_fs2", pos)); return false; } @@ -555,7 +557,7 @@ public boolean parsePlotCommand(Player player, String[] split) { } else if (split[0].equalsIgnoreCase("info")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_PLOT_PERM_INFO.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); sendPlotInfo(player, StringMgmt.remFirstArg(split)); } else if (split[0].equalsIgnoreCase("toggle")) { @@ -570,7 +572,7 @@ public boolean parsePlotCommand(Player player, String[] split) { // Make sure that the player is only operating on a single plot and not a plotgroup. if (townBlock.hasPlotObjectGroup()) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_plot_belongs_to_group_toggle")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_plot_belongs_to_group_toggle")); return false; } @@ -587,11 +589,11 @@ public boolean parsePlotCommand(Player player, String[] split) { } else if (split.length > 0) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_PLOT_SET.getNode(split[0].toLowerCase()))) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); // Make sure that the player is only operating on a plot object group if one exists. if (townBlock.hasPlotObjectGroup()) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_plot_belongs_to_group_set")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_plot_belongs_to_group_set")); return false; } @@ -613,7 +615,7 @@ public boolean parsePlotCommand(Player player, String[] split) { plotTestOwner(resident, townBlock); if (split.length == 1) { townBlock.setName(""); - TownyMessaging.sendMsg(player, Translation.of("msg_plot_name_removed")); + TownyMessaging.sendMsg(player, Translatable.of("msg_plot_name_removed")); townBlock.save(); return true; } @@ -627,11 +629,11 @@ public boolean parsePlotCommand(Player player, String[] split) { //townBlock.setChanged(true); townBlock.save(); - TownyMessaging.sendMsg(player, Translation.of("msg_plot_name_set_to", townBlock.getName())); + TownyMessaging.sendMsg(player, Translatable.of("msg_plot_name_set_to", townBlock.getName())); } else { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_invalid_name")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_invalid_name")); } return true; @@ -639,7 +641,7 @@ public boolean parsePlotCommand(Player player, String[] split) { if (TownySettings.isAllowingOutposts()) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWN_CLAIM_OUTPOST.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); // Test we are allowed to work on this plot plotTestOwner(resident, townBlock); @@ -652,22 +654,22 @@ public boolean parsePlotCommand(Player player, String[] split) { if (OutpostUtil.OutpostTests(town, resident, townyWorld, key, isAdmin, true)) { // Test if they can pay. if (TownyEconomyHandler.isActive() && !town.getAccount().canPayFromHoldings(TownySettings.getOutpostCost())) - throw new TownyException(Translation.of("msg_err_cannot_afford_to_set_outpost")); + throw new TownyException(Translatable.of("msg_err_cannot_afford_to_set_outpost")); // Create a confirmation for setting outpost. Confirmation.runOnAccept(() -> { // Make them pay. if (TownyEconomyHandler.isActive() && TownySettings.getOutpostCost() > 0 && !town.getAccount().withdraw(TownySettings.getOutpostCost(), "Plot Set Outpost")) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_cannot_afford_to_set_outpost")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_cannot_afford_to_set_outpost")); return; } // Set the outpost spawn and display feedback. town.addOutpostSpawn(player.getLocation()); - TownyMessaging.sendMessage(player, Translation.of("msg_plot_set_cost", TownyEconomyHandler.getFormattedBalance(TownySettings.getOutpostCost()), Translation.of("outpost"))); + TownyMessaging.sendMessage(player, Translatable.of("msg_plot_set_cost", TownyEconomyHandler.getFormattedBalance(TownySettings.getOutpostCost()), Translation.of("outpost", player))); }) - .setTitle(Translation.of("msg_confirm_purchase", TownyEconomyHandler.getFormattedBalance(TownySettings.getOutpostCost()))) + .setTitle(Translation.of("msg_confirm_purchase", player, TownyEconomyHandler.getFormattedBalance(TownySettings.getOutpostCost()))) .sendTo(player); } } @@ -691,7 +693,7 @@ public boolean parsePlotCommand(Player player, String[] split) { TownBlockType townBlockType = TownBlockType.lookup(plotTypeName); if (townBlockType == null) - throw new TownyException(Translation.of("msg_err_not_block_type")); + throw new TownyException(Translatable.of("msg_err_not_block_type")); try { // Test we are allowed to work on this plot @@ -699,7 +701,7 @@ public boolean parsePlotCommand(Player player, String[] split) { // are only checking for an // exception } catch (TownyException e) { - TownyMessaging.sendErrorMsg(player, e.getMessage()); + TownyMessaging.sendErrorMsg(player, e.getMessage(player)); return false; } @@ -715,38 +717,38 @@ public boolean parsePlotCommand(Player player, String[] split) { // Test if we can pay first to throw an exception. if (cost > 0 && TownyEconomyHandler.isActive() && !resident.getAccount().canPayFromHoldings(cost)) - throw new TownyException(Translation.of("msg_err_cannot_afford_plot_set_type_cost", townBlockType, TownyEconomyHandler.getFormattedBalance(cost))); + throw new TownyException(Translatable.of("msg_err_cannot_afford_plot_set_type_cost", townBlockType, TownyEconomyHandler.getFormattedBalance(cost))); // Handle payment via a confirmation to avoid suprise costs. if (cost > 0 && TownyEconomyHandler.isActive()) { Confirmation.runOnAccept(() -> { if (!resident.getAccount().withdraw(cost, String.format("Plot set to %s", townBlockType))) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_cannot_afford_plot_set_type_cost", townBlockType, TownyEconomyHandler.getFormattedBalance(cost))); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_cannot_afford_plot_set_type_cost", townBlockType, TownyEconomyHandler.getFormattedBalance(cost))); return; } - TownyMessaging.sendMessage(resident, Translation.of("msg_plot_set_cost", TownyEconomyHandler.getFormattedBalance(cost), townBlockType)); + TownyMessaging.sendMessage(resident, Translatable.of("msg_plot_set_cost", TownyEconomyHandler.getFormattedBalance(cost), townBlockType)); try { townBlock.setType(townBlockType, resident); } catch (TownyException e) { - TownyMessaging.sendErrorMsg(resident, e.getMessage()); + TownyMessaging.sendErrorMsg(resident, e.getMessage(player)); return; } - TownyMessaging.sendMsg(player, Translation.of("msg_plot_set_type", townBlockType)); + TownyMessaging.sendMsg(player, Translatable.of("msg_plot_set_type", townBlockType)); }) - .setTitle(Translation.of("msg_confirm_purchase", TownyEconomyHandler.getFormattedBalance(cost))) + .setTitle(Translation.of("msg_confirm_purchase", player, TownyEconomyHandler.getFormattedBalance(cost))) .sendTo(BukkitTools.getPlayerExact(resident.getName())); // No cost or economy so no confirmation. } else { townBlock.setType(townBlockType, resident); - TownyMessaging.sendMsg(player, Translation.of("msg_plot_set_type", plotTypeName)); + TownyMessaging.sendMsg(player, Translatable.of("msg_plot_set_type", plotTypeName)); } } catch (TownyException te){ - TownyMessaging.sendErrorMsg(player, te.getMessage()); + TownyMessaging.sendErrorMsg(player, te.getMessage(player)); } } else { @@ -757,12 +759,12 @@ public boolean parsePlotCommand(Player player, String[] split) { } else if (split[0].equalsIgnoreCase("clear")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_PLOT_CLEAR.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); if (townBlock != null) { if (!townBlock.getWorld().isUsingPlotManagementMayorDelete()) - throw new TownyException(Translation.of("msg_err_plot_clear_disabled_in_this_world")); + throw new TownyException(Translatable.of("msg_err_plot_clear_disabled_in_this_world")); /* * Only allow mayors or plot owners to use this command. @@ -782,9 +784,9 @@ public boolean parsePlotCommand(Player player, String[] split) { for (String material : TownyAPI.getInstance().getTownyWorld(world).getPlotManagementMayorDelete()) if (Material.matchMaterial(material) != null) { TownyRegenAPI.deleteTownBlockMaterial(townBlock, Material.getMaterial(material)); - TownyMessaging.sendMessage(player, Translation.of("msg_clear_plot_material", material)); + TownyMessaging.sendMessage(player, Translatable.of("msg_clear_plot_material", material)); } else - throw new TownyException(Translation.of("msg_err_invalid_property", material)); + throw new TownyException(Translatable.of("msg_err_invalid_property", material)); // Raise an event for the claim BukkitTools.getPluginManager().callEvent(new PlotClearEvent(townBlock)); @@ -792,7 +794,7 @@ public boolean parsePlotCommand(Player player, String[] split) { } else { // Shouldn't ever reach here as a null townBlock should // be caught already in WorldCoord. - TownyMessaging.sendMessage(player, Translation.of("msg_err_empty_area_selection")); + TownyMessaging.sendMessage(player, Translatable.of("msg_err_empty_area_selection")); } } else if (split[0].equalsIgnoreCase("group")) { @@ -806,7 +808,7 @@ public boolean parsePlotCommand(Player player, String[] split) { } else if (split[0].equalsIgnoreCase("trust")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_PLOT_TRUST.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); parsePlotTrustCommand(player, StringMgmt.remFirstArg(split)); return true; @@ -814,10 +816,10 @@ public boolean parsePlotCommand(Player player, String[] split) { } else if (TownyCommandAddonAPI.hasCommand(CommandType.PLOT, split[0])) { TownyCommandAddonAPI.getAddonCommand(CommandType.PLOT, split[0]).execute(player, "plot", split); } else - throw new TownyException(Translation.of("msg_err_invalid_property", split[0])); + throw new TownyException(Translatable.of("msg_err_invalid_property", split[0])); } catch (TownyException x) { - TownyMessaging.sendErrorMsg(player, x.getMessage()); + TownyMessaging.sendErrorMsg(player, x.getMessage(player)); } } @@ -851,31 +853,31 @@ private void parsePlotJailCell(Player player, TownBlock townBlock, String[] args if (args[0].equalsIgnoreCase("add")) { jail.addJailCell(player.getLocation()); - TownyMessaging.sendMsg(player, Translation.of("msg_jail_cell_set")); + TownyMessaging.sendMsg(player, Translatable.of("msg_jail_cell_set")); jail.save(); } else if (args[0].equalsIgnoreCase("remove")) { if (!jail.hasCells()) - throw new TownyException("msg_err_this_jail_has_no_cells"); + throw new TownyException(Translatable.of("msg_err_this_jail_has_no_cells")); if (jail.getCellMap().size() == 1) - throw new TownyException("msg_err_you_cannot_remove_the_last_cell"); + throw new TownyException(Translatable.of("msg_err_you_cannot_remove_the_last_cell")); SpawnPointLocation cellLoc = SpawnPointLocation.parseSpawnPointLocation(player.getLocation()); if (!jail.hasJailCell(cellLoc)) - throw new TownyException("msg_err_no_cell_found_at_this_location"); + throw new TownyException(Translatable.of("msg_err_no_cell_found_at_this_location")); jail.removeJailCell(player.getLocation()); - TownyMessaging.sendMsg(player, Translation.of("msg_jail_cell_removed")); + TownyMessaging.sendMsg(player, Translatable.of("msg_jail_cell_removed")); jail.save(); } else { HelpMenu.PLOT_JAILCELL.send(player); } } } catch (TownyException e) { - TownyMessaging.sendErrorMsg(player, Translation.of(e.getMessage())); + TownyMessaging.sendErrorMsg(player, e.getMessage(player)); } } @@ -922,7 +924,7 @@ public static TownyPermissionChange setTownBlockPermissions(Player player, TownB perm.change(permChange); townBlock.save(); - TownyMessaging.sendMsg(player, Translation.of("msg_set_perms_reset_single")); + TownyMessaging.sendMsg(player, Translatable.of("msg_set_perms_reset_single")); // Reset all caches as this can affect everyone. plugin.resetCache(); @@ -938,7 +940,7 @@ public static TownyPermissionChange setTownBlockPermissions(Player player, TownB permChange = new TownyPermissionChange(TownyPermissionChange.Action.ALL_PERMS, b); } catch (Exception e) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_plot_set_perm_syntax_error")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_plot_set_perm_syntax_error")); return null; } @@ -950,7 +952,7 @@ public static TownyPermissionChange setTownBlockPermissions(Player player, TownB try { b = StringMgmt.parseOnOff(split[1]); } catch (Exception e) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_plot_set_perm_syntax_error")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_plot_set_perm_syntax_error")); return null; } @@ -974,7 +976,7 @@ else if (split[0].equalsIgnoreCase("itemuse")) permChange = new TownyPermissionChange(TownyPermissionChange.Action.ACTION_TYPE, b, actionType); } catch (IllegalArgumentException actionTypeException) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_plot_set_perm_syntax_error")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_plot_set_perm_syntax_error")); return null; } } @@ -997,7 +999,7 @@ else if (split[0].equalsIgnoreCase("town")) permLevel = TownyPermission.PermLevel.valueOf(split[0].toUpperCase()); actionType = TownyPermission.ActionType.valueOf(split[1].toUpperCase()); } catch (IllegalArgumentException ignore) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_plot_set_perm_syntax_error")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_plot_set_perm_syntax_error")); return null; } @@ -1006,7 +1008,7 @@ else if (split[0].equalsIgnoreCase("town")) permChange = new TownyPermissionChange(TownyPermissionChange.Action.SINGLE_PERM, b, permLevel, actionType); } catch (Exception e) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_plot_set_perm_syntax_error")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_plot_set_perm_syntax_error")); return null; } @@ -1018,7 +1020,7 @@ else if (split[0].equalsIgnoreCase("town")) townBlock.setChanged(true); townBlock.save(); if (!townBlock.hasPlotObjectGroup()) { - TownyMessaging.sendMsg(player, Translation.of("msg_set_perms")); + TownyMessaging.sendMsg(player, Translatable.of("msg_set_perms")); TownyMessaging.sendMessage(player, (Colors.Green + " Perm: " + ((townBlockOwner instanceof Resident) ? perm.getColourString().replace("n", "t") : perm.getColourString().replace("f", "r")))); TownyMessaging.sendMessage(player, (Colors.Green + " Perm: " + ((townBlockOwner instanceof Resident) ? perm.getColourString2().replace("n", "t") : perm.getColourString2().replace("f", "r")))); 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")); @@ -1047,18 +1049,18 @@ public void setPlotForSale(Resident resident, WorldCoord worldCoord, double forS TownBlock townBlock = worldCoord.getTownBlockOrNull(); if (townBlock == null || !townBlock.hasTown()) - throw new TownyException(Translation.of("msg_err_not_part_town")); + throw new TownyException(Translatable.of("msg_err_not_part_town")); plotTestOwner(resident, townBlock); // This will throw and exception if they aren't mayor or otherwise able to use this plot. townBlock.setPlotPrice(Math.min(TownySettings.getMaxPlotPrice(), forSale)); if (forSale != -1) { - TownyMessaging.sendPrefixedTownMessage(townBlock.getTownOrNull(), Translation.of("MSG_PLOT_FOR_SALE", resident.getName(), worldCoord.toString())); + TownyMessaging.sendPrefixedTownMessage(townBlock.getTownOrNull(), Translatable.of("MSG_PLOT_FOR_SALE", resident.getName(), worldCoord.toString())); if (!resident.hasTown() || (resident.hasTown() && townBlock.getTownOrNull() != resident.getTownOrNull())) - TownyMessaging.sendMsg(resident, Translation.of("MSG_PLOT_FOR_SALE", resident.getName(), worldCoord.toString())); + TownyMessaging.sendMsg(resident, Translatable.of("MSG_PLOT_FOR_SALE", resident.getName(), worldCoord.toString())); Bukkit.getPluginManager().callEvent(new PlotSetForSaleEvent(resident, forSale, townBlock)); } else { - TownyMessaging.sendMsg(resident, Translation.of("msg_plot_set_to_nfs")); + TownyMessaging.sendMsg(resident, Translatable.of("msg_plot_set_to_nfs")); Bukkit.getPluginManager().callEvent(new PlotNotForSaleEvent(resident, townBlock)); } @@ -1084,11 +1086,11 @@ public void plotToggle(Player player, TownBlock townBlock, String[] split) { try { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_PLOT_TOGGLE.getNode(split[0].toLowerCase()))) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); Town town = townBlock.getTownOrNull(); if (town == null) - throw new TownyException(Translation.of("msg_not_claimed_1")); + throw new TownyException(Translatable.of("msg_not_claimed_1")); Optional choice = Optional.empty(); if (split.length == 2) { @@ -1102,20 +1104,20 @@ public void plotToggle(Player player, TownBlock townBlock, String[] split) { if (TownySettings.getPVPCoolDownTime() > 0 && !permSource.testPermission(player, PermissionNodes.TOWNY_ADMIN.getNode())) { // Test to see if the pvp cooldown timer is active for the town this plot belongs to. if (CooldownTimerTask.hasCooldown(town.getName(), CooldownType.PVP)) - throw new TownyException(Translation.of("msg_err_cannot_toggle_pvp_x_seconds_remaining", CooldownTimerTask.getCooldownRemaining(town.getName(), CooldownType.PVP))); + throw new TownyException(Translatable.of("msg_err_cannot_toggle_pvp_x_seconds_remaining", CooldownTimerTask.getCooldownRemaining(town.getName(), CooldownType.PVP))); // Test to see if the pvp cooldown timer is active for this plot. if (CooldownTimerTask.hasCooldown(townBlock.getWorldCoord().toString(), CooldownType.PVP)) - throw new TownyException(Translation.of("msg_err_cannot_toggle_pvp_x_seconds_remaining", CooldownTimerTask.getCooldownRemaining(townBlock.getWorldCoord().toString(), CooldownType.PVP))); + throw new TownyException(Translatable.of("msg_err_cannot_toggle_pvp_x_seconds_remaining", CooldownTimerTask.getCooldownRemaining(townBlock.getWorldCoord().toString(), CooldownType.PVP))); } // Prevent plot pvp from being enabled if admin pvp is disabled if (town.isAdminDisabledPVP() && !townBlock.getPermissions().pvp) - throw new TownyException(Translation.of("msg_err_admin_controlled_pvp_prevents_you_from_changing_pvp", "adminDisabledPVP", "on")); + throw new TownyException(Translatable.of("msg_err_admin_controlled_pvp_prevents_you_from_changing_pvp", "adminDisabledPVP", "on")); // Prevent plot pvp from being disabled if admin pvp is enabled if (town.isAdminEnabledPVP() && townBlock.getPermissions().pvp) - throw new TownyException(Translation.of("msg_err_admin_controlled_pvp_prevents_you_from_changing_pvp", "adminEnabledPVP", "off")); + throw new TownyException(Translatable.of("msg_err_admin_controlled_pvp_prevents_you_from_changing_pvp", "adminEnabledPVP", "off")); // Fire cancellable event directly before setting the toggle. PlotTogglePvpEvent plotTogglePvpEvent = new PlotTogglePvpEvent(town, player, choice.orElse(!townBlock.getPermissions().pvp)); @@ -1127,7 +1129,7 @@ public void plotToggle(Player player, TownBlock townBlock, String[] split) { // Add a cooldown timer for this plot. if (TownySettings.getPVPCoolDownTime() > 0 && !permSource.testPermission(player, PermissionNodes.TOWNY_ADMIN.getNode())) CooldownTimerTask.addCooldownTimer(townBlock.getWorldCoord().toString(), CooldownType.PVP); - TownyMessaging.sendMessage(player, Translation.of("msg_changed_pvp", "Plot", townBlock.getPermissions().pvp ? Translation.of("enabled") : Translation.of("disabled"))); + TownyMessaging.sendMessage(player, Translatable.of("msg_changed_pvp", "Plot", townBlock.getPermissions().pvp ? Translatable.of("enabled") : Translatable.of("disabled"))); } else if (split[0].equalsIgnoreCase("explosion")) { // Make sure we are allowed to set these permissions. @@ -1139,7 +1141,7 @@ public void plotToggle(Player player, TownBlock townBlock, String[] split) { throw new TownyException(plotToggleExplosionEvent.getCancellationMsg()); townBlock.getPermissions().explosion = choice.orElse(!townBlock.getPermissions().explosion); - TownyMessaging.sendMessage(player, Translation.of("msg_changed_expl", "the Plot", townBlock.getPermissions().explosion ? Translation.of("enabled") : Translation.of("disabled"))); + TownyMessaging.sendMessage(player, Translatable.of("msg_changed_expl", "the Plot", townBlock.getPermissions().explosion ? Translatable.of("enabled") : Translatable.of("disabled"))); } else if (split[0].equalsIgnoreCase("fire")) { // Make sure we are allowed to set these permissions. @@ -1151,7 +1153,7 @@ public void plotToggle(Player player, TownBlock townBlock, String[] split) { throw new TownyException(plotToggleFireEvent.getCancellationMsg()); townBlock.getPermissions().fire = choice.orElse(!townBlock.getPermissions().fire); - TownyMessaging.sendMessage(player, Translation.of("msg_changed_fire", "the Plot", townBlock.getPermissions().fire ? Translation.of("enabled") : Translation.of("disabled"))); + TownyMessaging.sendMessage(player, Translatable.of("msg_changed_fire", "the Plot", townBlock.getPermissions().fire ? Translatable.of("enabled") : Translatable.of("disabled"))); } else if (split[0].equalsIgnoreCase("mobs")) { // Make sure we are allowed to set these permissions. @@ -1164,11 +1166,11 @@ public void plotToggle(Player player, TownBlock townBlock, String[] split) { townBlock.getPermissions().mobs = choice.orElse(!townBlock.getPermissions().mobs); - TownyMessaging.sendMessage(player, Translation.of("msg_changed_mobs", "the Plot", townBlock.getPermissions().mobs ? Translation.of("enabled") : Translation.of("disabled"))); + TownyMessaging.sendMessage(player, Translatable.of("msg_changed_mobs", "the Plot", townBlock.getPermissions().mobs ? Translatable.of("enabled") : Translatable.of("disabled"))); } else if (TownyCommandAddonAPI.hasCommand(CommandType.PLOT_TOGGLE, split[0])) { TownyCommandAddonAPI.getAddonCommand(CommandType.PLOT_TOGGLE, split[0]).execute(player, "plot", split); } else { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_invalid_property", "plot")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_invalid_property", "plot")); return; } @@ -1178,8 +1180,8 @@ public void plotToggle(Player player, TownBlock townBlock, String[] split) { TownBlockSettingsChangedEvent event = new TownBlockSettingsChangedEvent(townBlock); Bukkit.getServer().getPluginManager().callEvent(event); - } catch (Exception e) { - TownyMessaging.sendErrorMsg(player, e.getMessage()); + } catch (TownyException e) { + TownyMessaging.sendErrorMsg(player, e.getMessage(player)); } townBlock.save(); @@ -1217,7 +1219,7 @@ public void plotGroupToggle(Player player, PlotGroup plotGroup, String[] split) if (town == null) continue; if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_PLOT_TOGGLE.getNode(split[0].toLowerCase()))) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); if (split[0].equalsIgnoreCase("pvp")) { // Make sure we are allowed to set these permissions. @@ -1226,11 +1228,11 @@ public void plotGroupToggle(Player player, PlotGroup plotGroup, String[] split) if (TownySettings.getPVPCoolDownTime() > 0) { // Test to see if the pvp cooldown timer is active for the town this plot belongs to. if (CooldownTimerTask.hasCooldown(town.getName(), CooldownType.PVP)) - throw new TownyException(Translation.of("msg_err_cannot_toggle_pvp_x_seconds_remaining", CooldownTimerTask.getCooldownRemaining(town.getName(), CooldownType.PVP))); + throw new TownyException(Translatable.of("msg_err_cannot_toggle_pvp_x_seconds_remaining", CooldownTimerTask.getCooldownRemaining(town.getName(), CooldownType.PVP))); // Test to see if the pvp cooldown timer is active for this plot. if (CooldownTimerTask.hasCooldown(groupBlock.getWorldCoord().toString(), CooldownType.PVP)) - throw new TownyException(Translation.of("msg_err_cannot_toggle_pvp_x_seconds_remaining", CooldownTimerTask.getCooldownRemaining(groupBlock.getWorldCoord().toString(), CooldownType.PVP))); + throw new TownyException(Translatable.of("msg_err_cannot_toggle_pvp_x_seconds_remaining", CooldownTimerTask.getCooldownRemaining(groupBlock.getWorldCoord().toString(), CooldownType.PVP))); } PlotTogglePvpEvent plotTogglePvpEvent = new PlotTogglePvpEvent(town, player, choice.orElse(!groupBlock.getPermissions().pvp)); @@ -1244,7 +1246,7 @@ public void plotGroupToggle(Player player, PlotGroup plotGroup, String[] split) // Add a cooldown timer for this plot. if (TownySettings.getPVPCoolDownTime() > 0) CooldownTimerTask.addCooldownTimer(groupBlock.getWorldCoord().toString(), CooldownType.PVP); - endingMessage = Translation.of("msg_changed_pvp", "Plot Group", groupBlock.getPermissions().pvp ? Translation.of("enabled") : Translation.of("disabled")); + endingMessage = Translation.of("msg_changed_pvp", player, "Plot Group", groupBlock.getPermissions().pvp ? Translation.of("enabled", player) : Translation.of("disabled", player)); } else if (split[0].equalsIgnoreCase("explosion")) { // Make sure we are allowed to set these permissions. @@ -1258,7 +1260,7 @@ public void plotGroupToggle(Player player, PlotGroup plotGroup, String[] split) } groupBlock.getPermissions().explosion = choice.orElse(!groupBlock.getPermissions().explosion); - endingMessage = Translation.of("msg_changed_expl", "the Plot Group", groupBlock.getPermissions().explosion ? Translation.of("enabled") : Translation.of("disabled")); + endingMessage = Translation.of("msg_changed_expl", player, "the Plot Group", groupBlock.getPermissions().explosion ? Translation.of("enabled", player) : Translation.of("disabled", player)); } else if (split[0].equalsIgnoreCase("fire")) { // Make sure we are allowed to set these permissions. @@ -1272,7 +1274,7 @@ public void plotGroupToggle(Player player, PlotGroup plotGroup, String[] split) } groupBlock.getPermissions().fire = choice.orElse(!groupBlock.getPermissions().fire); - endingMessage = Translation.of("msg_changed_fire", "the Plot Group", groupBlock.getPermissions().fire ? Translation.of("enabled") : Translation.of("disabled")); + endingMessage = Translation.of("msg_changed_fire", player, "the Plot Group", groupBlock.getPermissions().fire ? Translation.of("enabled", player) : Translation.of("disabled", player)); } else if (split[0].equalsIgnoreCase("mobs")) { // Make sure we are allowed to set these permissions. @@ -1286,10 +1288,10 @@ public void plotGroupToggle(Player player, PlotGroup plotGroup, String[] split) } groupBlock.getPermissions().mobs = choice.orElse(!groupBlock.getPermissions().mobs); - endingMessage = Translation.of("msg_changed_mobs", "the Plot Group", groupBlock.getPermissions().mobs ? Translation.of("enabled") : Translation.of("disabled")); + endingMessage = Translation.of("msg_changed_mobs", player, "the Plot Group", groupBlock.getPermissions().mobs ? Translation.of("enabled", player) : Translation.of("disabled", player)); } else { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_invalid_property", "plot")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_invalid_property", "plot")); return; } @@ -1307,6 +1309,8 @@ public void plotGroupToggle(Player player, PlotGroup plotGroup, String[] split) TownyMessaging.sendMessage(player, endingMessage); + } catch (TownyException e) { + TownyMessaging.sendErrorMsg(player, e.getMessage(player)); } catch (Exception e) { TownyMessaging.sendErrorMsg(player, e.getMessage()); } @@ -1332,26 +1336,26 @@ private void toggleTest(Player player, TownBlock townBlock, String split) throws if (split.contains("mobs")) { if (townBlock.getWorld().isForceTownMobs()) - throw new TownyException(Translation.of("msg_world_mobs")); + throw new TownyException(Translatable.of("msg_world_mobs")); } if (split.contains("fire")) { if (townBlock.getWorld().isForceFire()) - throw new TownyException(Translation.of("msg_world_fire")); + throw new TownyException(Translatable.of("msg_world_fire")); } if (split.contains("explosion")) { if (townBlock.getWorld().isForceExpl()) - throw new TownyException(Translation.of("msg_world_expl")); + throw new TownyException(Translatable.of("msg_world_expl")); } if (split.contains("pvp")) { if (townBlock.getWorld().isForcePVP()) - throw new TownyException(Translation.of("msg_world_pvp")); + throw new TownyException(Translatable.of("msg_world_pvp")); } if ((split.contains("pvp")) || (split.trim().equalsIgnoreCase("off"))) { if (townBlock.getType().equals(TownBlockType.ARENA)) - throw new TownyException(Translation.of("msg_plot_pvp")); + throw new TownyException(Translatable.of("msg_plot_pvp")); } } @@ -1383,7 +1387,7 @@ public static TownBlockOwner plotTestOwner(Resident resident, TownBlock townBloc } // Not the plot owner or the towns mayor or an admin. - throw new TownyException(Translation.of("msg_area_not_own")); + throw new TownyException(Translatable.of("msg_area_not_own")); } else { @@ -1391,10 +1395,10 @@ public static TownBlockOwner plotTestOwner(Resident resident, TownBlock townBloc boolean isSameTown = (resident.hasTown()) && resident.getTown() == owner; if (isSameTown && !BukkitTools.getPlayer(resident.getName()).hasPermission(PermissionNodes.TOWNY_COMMAND_PLOT_ASMAYOR.getNode())) - throw new TownyException(Translation.of("msg_not_mayor_ass")); + throw new TownyException(Translatable.of("msg_not_mayor_ass")); if (!isSameTown && !isAdmin) - throw new TownyException(Translation.of("msg_err_not_part_town")); + throw new TownyException(Translatable.of("msg_err_not_part_town")); return owner; } @@ -1408,10 +1412,10 @@ private boolean handlePlotGroupCommand(String[] split, Player player) throws Tow Resident resident = getResidentOrThrow(player.getUniqueId()); TownBlock townBlock = TownyAPI.getInstance().getTownBlock(player.getLocation()); if (townBlock == null) - throw new TownyException(Translation.of("msg_not_claimed_1")); + throw new TownyException(Translatable.of("msg_not_claimed_1")); Town town = townBlock.getTownOrNull(); if (town == null) - throw new TownyException(Translation.of("msg_not_claimed_1")); + throw new TownyException(Translatable.of("msg_not_claimed_1")); // Test we are allowed to work on this plot plotTestOwner(resident, townBlock); @@ -1421,7 +1425,7 @@ private boolean handlePlotGroupCommand(String[] split, Player player) throws Tow HelpMenu.PLOT_GROUP_HELP.send(player); if (townBlock.hasPlotObjectGroup()) - TownyMessaging.sendMsg(player, Translation.of("status_plot_group_name_and_size", townBlock.getPlotObjectGroup().getName(), townBlock.getPlotObjectGroup().getTownBlocks().size())); + TownyMessaging.sendMsg(player, Translatable.of("status_plot_group_name_and_size", townBlock.getPlotObjectGroup().getName(), townBlock.getPlotObjectGroup().getTownBlocks().size())); return true; } @@ -1429,10 +1433,10 @@ private boolean handlePlotGroupCommand(String[] split, Player player) throws Tow if (split[0].equalsIgnoreCase("add") || split[0].equalsIgnoreCase("new") || split[0].equalsIgnoreCase("create")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_PLOT_GROUP_ADD.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); if (split.length == 1) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_you_must_specify_a_group_name")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_you_must_specify_a_group_name")); return false; } @@ -1443,14 +1447,14 @@ private boolean handlePlotGroupCommand(String[] split, Player player) throws Tow if (town.hasPlotGroupName(plotGroupName)) { TownBlockType groupType = town.getPlotObjectGroupFromName(plotGroupName).getTownBlockType(); if (townBlock.getType() != groupType) - throw new TownyException(Translation.of("msg_err_this_townblock_doesnt_match_the_groups_type", groupType.getName())); + throw new TownyException(Translatable.of("msg_err_this_townblock_doesnt_match_the_groups_type", groupType.getName())); } if (townBlock.hasPlotObjectGroup()) { // Already has a PlotGroup and it is the same name being used to re-add. if (townBlock.getPlotObjectGroup().getName().equalsIgnoreCase(plotGroupName)) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_this_plot_is_already_part_of_the_plot_group_x", plotGroupName)); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_this_plot_is_already_part_of_the_plot_group_x", plotGroupName)); return false; } @@ -1461,26 +1465,26 @@ private boolean handlePlotGroupCommand(String[] split, Player player) throws Tow oldGroup.removeTownBlock(townBlock); oldGroup.save(); createOrAddOnToPlotGroup(townBlock, town, name); - TownyMessaging.sendMsg(player, Translation.of("msg_townblock_transferred_from_x_to_x_group", oldGroup.getName(), townBlock.getPlotObjectGroup().getName())); + TownyMessaging.sendMsg(player, Translatable.of("msg_townblock_transferred_from_x_to_x_group", oldGroup.getName(), townBlock.getPlotObjectGroup().getName())); }) - .setTitle(Translation.of("msg_plot_group_already_exists_did_you_want_to_transfer", townBlock.getPlotObjectGroup().getName(), split[1])) + .setTitle(Translation.of("msg_plot_group_already_exists_did_you_want_to_transfer", player, townBlock.getPlotObjectGroup().getName(), split[1])) .sendTo(player); } else { // Create a brand new plot group. createOrAddOnToPlotGroup(townBlock, town, plotGroupName); - TownyMessaging.sendMsg(player, Translation.of("msg_plot_was_put_into_group_x", townBlock.getX(), townBlock.getZ(), townBlock.getPlotObjectGroup().getName())); + TownyMessaging.sendMsg(player, Translatable.of("msg_plot_was_put_into_group_x", townBlock.getX(), townBlock.getZ(), townBlock.getPlotObjectGroup().getName())); } } else { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_plot_group_name_required")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_plot_group_name_required")); return false; } } else if (split[0].equalsIgnoreCase("delete")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_PLOT_GROUP_DELETE.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); if (!townBlock.hasPlotObjectGroup()) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_plot_not_associated_with_a_group")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_plot_not_associated_with_a_group")); return false; } Confirmation.runOnAccept(()-> { @@ -1488,15 +1492,15 @@ private boolean handlePlotGroupCommand(String[] split, Player player) throws Tow String name = group.getName(); town.removePlotGroup(group); TownyUniverse.getInstance().getDataSource().removePlotGroup(group); - TownyMessaging.sendMsg(player, Translation.of("msg_plotgroup_deleted", name)); + TownyMessaging.sendMsg(player, Translatable.of("msg_plotgroup_deleted", name)); }).sendTo(player); } else if (split[0].equalsIgnoreCase("remove")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_PLOT_GROUP_REMOVE.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); if (!townBlock.hasPlotObjectGroup()) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_plot_not_associated_with_a_group")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_plot_not_associated_with_a_group")); return false; } PlotGroup group = townBlock.getPlotObjectGroup(); @@ -1509,25 +1513,25 @@ private boolean handlePlotGroupCommand(String[] split, Player player) throws Tow // Save townBlock.save(); - TownyMessaging.sendMsg(player, Translation.of("msg_plot_was_removed_from_group_x", townBlock.getX(), townBlock.getZ(), name)); + TownyMessaging.sendMsg(player, Translatable.of("msg_plot_was_removed_from_group_x", townBlock.getX(), townBlock.getZ(), name)); if (group.getTownBlocks().isEmpty()) { town.removePlotGroup(group); TownyUniverse.getInstance().getDataSource().removePlotGroup(group); - TownyMessaging.sendMsg(player, Translation.of("msg_plotgroup_empty_deleted", name)); + TownyMessaging.sendMsg(player, Translatable.of("msg_plotgroup_empty_deleted", name)); } } else if (split[0].equalsIgnoreCase("rename")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_PLOT_GROUP_RENAME.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); if (!townBlock.hasPlotObjectGroup()) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_plot_not_associated_with_a_group")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_plot_not_associated_with_a_group")); return false; } if (split.length == 1) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_plot_group_name_required")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_plot_group_name_required")); return false; } @@ -1535,22 +1539,22 @@ private boolean handlePlotGroupCommand(String[] split, Player player) throws Tow String oldName = townBlock.getPlotObjectGroup().getName(); // Change name; TownyUniverse.getInstance().getDataSource().renameGroup(townBlock.getPlotObjectGroup(), newName); - TownyMessaging.sendMsg(player, Translation.of("msg_plot_renamed_from_x_to_y", oldName, newName)); + TownyMessaging.sendMsg(player, Translatable.of("msg_plot_renamed_from_x_to_y", oldName, newName)); } else if (split[0].equalsIgnoreCase("forsale") || split[0].equalsIgnoreCase("fs")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_PLOT_GROUP_FORSALE.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); // This means the player wants to fs the plot group they are in. PlotGroup group = townBlock.getPlotObjectGroup(); if (group == null) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_plot_not_associated_with_a_group")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_plot_not_associated_with_a_group")); return false; } if (split.length < 2) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_plot_group_specify_price")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_plot_group_specify_price")); return false; } @@ -1558,12 +1562,12 @@ private boolean handlePlotGroupCommand(String[] split, Player player) throws Tow try { price = Integer.parseInt(split[1]); } catch (NumberFormatException e) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_error_must_be_num")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_error_must_be_num")); return false; } if (price < 0) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_negative_money")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_negative_money")); return false; } @@ -1572,17 +1576,17 @@ private boolean handlePlotGroupCommand(String[] split, Player player) throws Tow // Save group.save(); - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_player_put_group_up_for_sale", player.getName(), group.getName(), TownyEconomyHandler.getFormattedBalance(group.getPrice()))); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_player_put_group_up_for_sale", player.getName(), group.getName(), TownyEconomyHandler.getFormattedBalance(group.getPrice()))); } else if (split[0].equalsIgnoreCase("notforsale") || split[0].equalsIgnoreCase("nfs")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_PLOT_GROUP_NOTFORSALE.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); // This means the player wants to nfs the plot group they are in. PlotGroup group = townBlock.getPlotObjectGroup(); if (group == null) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_plot_not_associated_with_a_group")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_plot_not_associated_with_a_group")); return false; } @@ -1591,19 +1595,19 @@ private boolean handlePlotGroupCommand(String[] split, Player player) throws Tow // Save group.save(); - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_player_made_group_not_for_sale", player.getName(), group.getName())); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_player_made_group_not_for_sale", player.getName(), group.getName())); } else if (split[0].equalsIgnoreCase("toggle")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_PLOT_GROUP_TOGGLE.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); if (townBlock.getPlotObjectGroup() == null) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_plot_not_associated_with_a_group")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_plot_not_associated_with_a_group")); return false; } // Create confirmation. PlotGroup plotGroup = townBlock.getPlotObjectGroup(); - String title = Translation.of("msg_plot_group_toggle_confirmation", townBlock.getPlotObjectGroup().getTownBlocks().size()) + " " + Translation.of("are_you_sure_you_want_to_continue"); + String title = Translation.of("msg_plot_group_toggle_confirmation", player, townBlock.getPlotObjectGroup().getTownBlocks().size()) + " " + Translation.of("are_you_sure_you_want_to_continue", player); Confirmation.runOnAccept(() -> { // Perform the toggle. new PlotCommand(Towny.getPlugin()).plotGroupToggle(player, plotGroup, StringMgmt.remArgs(split, 1)); @@ -1614,11 +1618,11 @@ private boolean handlePlotGroupCommand(String[] split, Player player) throws Tow return true; } else if (split[0].equalsIgnoreCase("set")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_PLOT_GROUP_SET.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); // Check if group is present. if (townBlock.getPlotObjectGroup() == null) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_plot_not_associated_with_a_group")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_plot_not_associated_with_a_group")); return false; } TownBlockOwner townBlockOwner = plotTestOwner(resident, townBlock); @@ -1667,14 +1671,14 @@ private boolean handlePlotGroupCommand(String[] split, Player player) throws Tow plugin.resetCache(); TownyPermission perm = plotGroup.getPermissions(); - TownyMessaging.sendMessage(player, Translation.of("msg_set_perms")); + TownyMessaging.sendMessage(player, Translatable.of("msg_set_perms")); TownyMessaging.sendMessage(player, (Colors.Green + " Perm: " + ((townBlockOwner instanceof Resident) ? perm.getColourString().replace("n", "t") : perm.getColourString().replace("f", "r")))); TownyMessaging.sendMessage(player, (Colors.Green + " Perm: " + ((townBlockOwner instanceof Resident) ? perm.getColourString2().replace("n", "t") : perm.getColourString2().replace("f", "r")))); TownyMessaging.sendMessage(player, Colors.Green + "PvP: " + (!(CombatUtil.preventPvP(townBlock.getWorld(), townBlock)) ? 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")); } }; - String title = Translation.of("msg_plot_group_set_perm_confirmation", townBlock.getPlotObjectGroup().getTownBlocks().size()) + " " + Translation.of("are_you_sure_you_want_to_continue"); + String title = Translation.of("msg_plot_group_set_perm_confirmation", player, townBlock.getPlotObjectGroup().getTownBlocks().size()) + " " + Translation.of("are_you_sure_you_want_to_continue", player); // Create confirmation. Confirmation.runOnAccept(permHandler) .setTitle(title) @@ -1691,7 +1695,7 @@ private boolean handlePlotGroupCommand(String[] split, Player player) throws Tow // Stop setting plot groups to Jail plot, because that would set a spawn point for each plot in the location of the player. if (plotTypeName.equalsIgnoreCase("jail")) { - throw new TownyException(Translation.of(Translation.of("msg_err_cannot_set_group_to_jail"))); + throw new TownyException(Translatable.of("msg_err_cannot_set_group_to_jail")); } // Handle type being reset @@ -1701,7 +1705,7 @@ private boolean handlePlotGroupCommand(String[] split, Player player) throws Tow TownBlockType type = TownBlockType.lookup(plotTypeName); if (type == null) - throw new TownyException(Translation.of("msg_err_not_block_type")); + throw new TownyException(Translatable.of("msg_err_not_block_type")); for (TownBlock tb : townBlock.getPlotObjectGroup().getTownBlocks()) { @@ -1711,7 +1715,7 @@ private boolean handlePlotGroupCommand(String[] split, Player player) throws Tow // are only checking for an // exception } catch (TownyException e) { - TownyMessaging.sendErrorMsg(resident, e.getMessage()); + TownyMessaging.sendErrorMsg(resident, e.getMessage(player)); return false; } @@ -1732,18 +1736,18 @@ private boolean handlePlotGroupCommand(String[] split, Player player) throws Tow try { // Test if we can pay first to throw an exception. if (cost > 0 && TownyEconomyHandler.isActive() && !resident.getAccount().canPayFromHoldings(cost)) - throw new TownyException(Translation.of("msg_err_cannot_afford_plot_set_type_cost", type, TownyEconomyHandler.getFormattedBalance(cost))); + throw new TownyException(Translatable.of("msg_err_cannot_afford_plot_set_type_cost", type, TownyEconomyHandler.getFormattedBalance(cost))); // Handle payment via a confirmation to avoid suprise costs. if (cost > 0 && TownyEconomyHandler.isActive()) { Confirmation.runOnAccept(() -> { if (!resident.getAccount().withdraw(cost, String.format("Plot (" + amount + ") set to %s", type))) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_cannot_afford_plot_set_type_cost", type, TownyEconomyHandler.getFormattedBalance(cost))); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_cannot_afford_plot_set_type_cost", type, TownyEconomyHandler.getFormattedBalance(cost))); return; } - TownyMessaging.sendMessage(resident, Translation.of("msg_plot_set_cost", TownyEconomyHandler.getFormattedBalance(cost), type)); + TownyMessaging.sendMessage(resident, Translatable.of("msg_plot_set_cost", TownyEconomyHandler.getFormattedBalance(cost), type)); for (TownBlock tb : townBlock.getPlotObjectGroup().getTownBlocks()) { try { @@ -1752,10 +1756,10 @@ private boolean handlePlotGroupCommand(String[] split, Player player) throws Tow // Cannot be set to jail type as a group. } } - TownyMessaging.sendMsg(player, Translation.of("msg_set_group_type_to_x", type)); + TownyMessaging.sendMsg(player, Translatable.of("msg_set_group_type_to_x", type)); }) - .setTitle(Translation.of("msg_confirm_purchase", TownyEconomyHandler.getFormattedBalance(cost))) + .setTitle(Translation.of("msg_confirm_purchase", player, TownyEconomyHandler.getFormattedBalance(cost))) .sendTo(BukkitTools.getPlayerExact(resident.getName())); // No cost or economy so no confirmation. @@ -1763,17 +1767,17 @@ private boolean handlePlotGroupCommand(String[] split, Player player) throws Tow for (TownBlock tb : townBlock.getPlotObjectGroup().getTownBlocks()) tb.setType(type, resident); - TownyMessaging.sendMsg(player, Translation.of("msg_set_group_type_to_x", plotTypeName)); + TownyMessaging.sendMsg(player, Translatable.of("msg_set_group_type_to_x", plotTypeName)); } } catch (TownyException e) { - TownyMessaging.sendErrorMsg(resident, e.getMessage()); + TownyMessaging.sendErrorMsg(resident, e.getMessage(player)); } } else if (split[0].equalsIgnoreCase("trust")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_PLOT_GROUP_TRUST.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); if (split.length < 3) { HelpMenu.PLOT_GROUP_TRUST_HELP.send(player); @@ -1783,19 +1787,19 @@ private boolean handlePlotGroupCommand(String[] split, Player player) throws Tow PlotGroup group = townBlock.getPlotObjectGroup(); if (group == null) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_plot_not_associated_with_a_group")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_plot_not_associated_with_a_group")); return false; } Resident trustedResident = TownyAPI.getInstance().getResident(split[2]); if (trustedResident == null || trustedResident.isNPC()) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_not_registered_1", split[2])); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_not_registered_1", split[2])); return false; } if (split[1].equalsIgnoreCase("add")) { if (group.hasTrustedResident(trustedResident)) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_already_trusted", trustedResident.getName(), Translation.of("plotgroup_sing").toLowerCase())); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_already_trusted", trustedResident.getName(), Translatable.of("plotgroup_sing"))); return false; } @@ -1810,14 +1814,14 @@ private boolean handlePlotGroupCommand(String[] split, Player player) throws Tow group.addTrustedResident(trustedResident); plugin.deleteCache(trustedResident.getName()); - TownyMessaging.sendMsg(player, Translation.of("msg_trusted_added", trustedResident.getName(), Translation.of("plotgroup_sing").toLowerCase())); + TownyMessaging.sendMsg(player, Translatable.of("msg_trusted_added", trustedResident.getName(), Translatable.of("plotgroup_sing"))); if (BukkitTools.isOnline(trustedResident.getName()) && !trustedResident.getName().equals(player.getName())) - TownyMessaging.sendMsg(trustedResident, Translation.of("msg_trusted_added_2", player.getName(), Translation.of("plotgroup_sing").toLowerCase(), group.getName())); + TownyMessaging.sendMsg(trustedResident, Translatable.of("msg_trusted_added_2", player.getName(), Translatable.of("plotgroup_sing"), group.getName())); return true; } else if (split[1].equalsIgnoreCase("remove")) { if (!group.hasTrustedResident(trustedResident)) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_not_trusted", trustedResident.getName(), Translation.of("plotgroup_sing").toLowerCase())); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_not_trusted", trustedResident.getName(), Translatable.of("plotgroup_sing"))); return false; } @@ -1832,19 +1836,19 @@ private boolean handlePlotGroupCommand(String[] split, Player player) throws Tow group.removeTrustedResident(trustedResident); plugin.deleteCache(trustedResident.getName()); - TownyMessaging.sendMsg(player, Translation.of("msg_trusted_removed", trustedResident.getName(), Translation.of("plotgroup_sing").toLowerCase())); + TownyMessaging.sendMsg(player, Translatable.of("msg_trusted_removed", trustedResident.getName(), Translatable.of("plotgroup_sing"))); if (BukkitTools.isOnline(trustedResident.getName()) && !trustedResident.getName().equals(player.getName())) - TownyMessaging.sendMsg(trustedResident, Translation.of("msg_trusted_removed_2", player.getName(), Translation.of("plotgroup_sing").toLowerCase(), group.getName())); + TownyMessaging.sendMsg(trustedResident, Translatable.of("msg_trusted_removed_2", player.getName(), Translatable.of("plotgroup_sing"), group.getName())); return true; } else { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_invalid_property", split[1])); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_invalid_property", split[1])); return false; } } else if (split[0].equalsIgnoreCase("perm")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_PLOT_GROUP_PERM.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); if (split.length < 2) { HelpMenu.PLOT_GROUP_PERM_HELP.send(player); @@ -1854,7 +1858,7 @@ private boolean handlePlotGroupCommand(String[] split, Player player) throws Tow PlotGroup group = townBlock.getPlotObjectGroup(); if (group == null) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_plot_not_associated_with_a_group")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_plot_not_associated_with_a_group")); return false; } @@ -1868,30 +1872,30 @@ private boolean handlePlotGroupCommand(String[] split, Player player) throws Tow Resident overrideResident = TownyAPI.getInstance().getResident(split[2]); if (overrideResident == null || overrideResident.isNPC()) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_not_registered_1", split[2])); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_not_registered_1", split[2])); return true; } if (split[1].equalsIgnoreCase("add")) { if (group.getPermissionOverrides() != null && group.getPermissionOverrides().containsKey(overrideResident)) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_overrides_already_set", overrideResident.getName(), Translation.of("plotgroup_sing").toLowerCase())); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_overrides_already_set", overrideResident.getName(), Translatable.of("plotgroup_sing"))); return true; } group.putPermissionOverride(overrideResident, new PermissionData(PermissionGUIUtil.getDefaultTypes(), player.getName())); - TownyMessaging.sendMsg(player, Translation.of("msg_overrides_added", overrideResident.getName())); + TownyMessaging.sendMsg(player, Translatable.of("msg_overrides_added", overrideResident.getName())); } else if (split[1].equalsIgnoreCase("remove")) { if (group.getPermissionOverrides() != null && !group.getPermissionOverrides().containsKey(overrideResident)) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_no_overrides_set", overrideResident.getName(), Translation.of("plotgroup_sing").toLowerCase())); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_no_overrides_set", overrideResident.getName(), Translatable.of("plotgroup_sing"))); return true; } group.removePermissionOverride(overrideResident); - TownyMessaging.sendMsg(player, Translation.of("msg_overrides_removed", overrideResident.getName())); + TownyMessaging.sendMsg(player, Translatable.of("msg_overrides_removed", overrideResident.getName())); } else { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_invalid_property", split[1])); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_invalid_property", split[1])); return false; } } @@ -1900,7 +1904,7 @@ private boolean handlePlotGroupCommand(String[] split, Player player) throws Tow HelpMenu.PLOT_GROUP_HELP.send(player); if (townBlock.hasPlotObjectGroup()) - TownyMessaging.sendMessage(player, Translation.of("status_plot_group_name_and_size", townBlock.getPlotObjectGroup().getName(), townBlock.getPlotObjectGroup().getTownBlocks().size())); + TownyMessaging.sendMessage(player, Translatable.of("status_plot_group_name_and_size", townBlock.getPlotObjectGroup().getName(), townBlock.getPlotObjectGroup().getTownBlocks().size())); return true; } @@ -1948,31 +1952,31 @@ public static void parsePlotTrustCommand(Player player, String[] args) { TownBlock townBlock = WorldCoord.parseWorldCoord(player).getTownBlockOrNull(); if (townBlock == null) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_not_claimed_1")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_not_claimed_1")); return; } try { plotTestOwner(TownyAPI.getInstance().getResident(player.getName()), townBlock); } catch (TownyException e) { - TownyMessaging.sendErrorMsg(player, e.getMessage()); + TownyMessaging.sendErrorMsg(player, e.getMessage(player)); return; } if (townBlock.hasPlotObjectGroup()) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_plot_belongs_to_group", "/plot group trust")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_plot_belongs_to_group", "/plot group trust")); return; } Resident resident = TownyAPI.getInstance().getResident(args[1]); if (resident == null || resident.isNPC()) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_not_registered_1", args[1])); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_not_registered_1", args[1])); return; } if (args[0].equalsIgnoreCase("add")) { if (townBlock.hasTrustedResident(resident)) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_already_trusted", resident.getName(), Translation.of("townblock"))); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_already_trusted", resident.getName(), Translatable.of("townblock"))); return; } @@ -1987,12 +1991,12 @@ public static void parsePlotTrustCommand(Player player, String[] args) { townBlock.addTrustedResident(resident); plugin.deleteCache(resident.getName()); - TownyMessaging.sendMsg(player, Translation.of("msg_trusted_added", resident.getName(), Translation.of("townblock"))); + TownyMessaging.sendMsg(player, Translatable.of("msg_trusted_added", resident.getName(), Translatable.of("townblock"))); if (BukkitTools.isOnline(resident.getName()) && !resident.getName().equals(player.getName())) - TownyMessaging.sendMsg(resident, Translation.of("msg_trusted_added_2", player.getName(), Translation.of("townblock"), townBlock.getWorldCoord().getCoord().toString())); + TownyMessaging.sendMsg(resident, Translatable.of("msg_trusted_added_2", player.getName(), Translatable.of("townblock"), townBlock.getWorldCoord().getCoord().toString())); } else if (args[0].equalsIgnoreCase("remove")) { if (!townBlock.hasTrustedResident(resident)) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_not_trusted", resident.getName(), Translation.of("townblock"))); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_not_trusted", resident.getName(), Translatable.of("townblock"))); return; } @@ -2007,11 +2011,11 @@ public static void parsePlotTrustCommand(Player player, String[] args) { townBlock.removeTrustedResident(resident); plugin.deleteCache(resident.getName()); - TownyMessaging.sendMsg(player, Translation.of("msg_trusted_removed", resident.getName(), Translation.of("townblock"))); + TownyMessaging.sendMsg(player, Translatable.of("msg_trusted_removed", resident.getName(), Translatable.of("townblock"))); if (BukkitTools.isOnline(resident.getName()) && !resident.getName().equals(player.getName())) - TownyMessaging.sendMsg(resident, Translation.of("msg_trusted_removed_2", player.getName(), Translation.of("townblock"), townBlock.getWorldCoord().getCoord().toString())); + TownyMessaging.sendMsg(resident, Translatable.of("msg_trusted_removed_2", player.getName(), Translatable.of("townblock"), townBlock.getWorldCoord().getCoord().toString())); } else { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_invalid_property", args[0])); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_invalid_property", args[0])); return; } @@ -2039,7 +2043,7 @@ private void continuePlotClaimProcess(List selection, Resident resid PlotGroup group = tb.getPlotObjectGroup(); if (TownyEconomyHandler.isActive() && (!resident.getAccount().canPayFromHoldings(group.getPrice()))) - throw new TownyException(Translation.of("msg_no_funds_claim_plot_group", group.getTownBlocks().size(), TownyEconomyHandler.getFormattedBalance(group.getPrice()))); + throw new TownyException(Translatable.of("msg_no_funds_claim_plot_group", group.getTownBlocks().size(), TownyEconomyHandler.getFormattedBalance(group.getPrice()))); // Add the confirmation for claiming a plot group. Confirmation.runOnAccept(() -> { @@ -2051,7 +2055,7 @@ private void continuePlotClaimProcess(List selection, Resident resid // Execute the plot claim. new PlotClaim(Towny.getPlugin(), player, resident, coords, true, false, true).start(); }) - .setTitle(Translation.of("msg_plot_group_claim_confirmation", group.getTownBlocks().size()) + " " + TownyEconomyHandler.getFormattedBalance(group.getPrice()) + ". " + Translation.of("are_you_sure_you_want_to_continue")) + .setTitle(Translation.of("msg_plot_group_claim_confirmation", player, group.getTownBlocks().size()) + " " + TownyEconomyHandler.getFormattedBalance(group.getPrice()) + ". " + Translation.of("are_you_sure_you_want_to_continue", player)) .sendTo(player); return; @@ -2076,13 +2080,13 @@ private void continuePlotClaimProcess(List selection, Resident resid } if (maxPlots >= 0 && resident.getTownBlocks().size() + selection.size() > maxPlots) - throw new TownyException(Translation.of("msg_max_plot_own", maxPlots)); + throw new TownyException(Translatable.of("msg_max_plot_own", maxPlots)); if (TownyEconomyHandler.isActive() && (!resident.getAccount().canPayFromHoldings(cost))) - throw new TownyException(Translation.of("msg_no_funds_claim_plot", TownyEconomyHandler.getFormattedBalance(cost))); + throw new TownyException(Translatable.of("msg_no_funds_claim_plot", TownyEconomyHandler.getFormattedBalance(cost))); if (cost != 0) { - String title = Translation.of("msg_confirm_purchase", TownyEconomyHandler.getFormattedBalance(cost)); + String title = Translation.of("msg_confirm_purchase", player, TownyEconomyHandler.getFormattedBalance(cost)); final List finalSelection = selection; Confirmation.runOnAccept(() -> { // Start the claim task @@ -2099,14 +2103,14 @@ private void continuePlotClaimProcess(List selection, Resident resid public void parsePlotPermCommand(Player player, String[] args) throws TownyException { if (args.length == 0) { if (!TownyUniverse.getInstance().getPermissionSource().testPermission(player, PermissionNodes.TOWNY_COMMAND_PLOT_PERM_INFO.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); sendPlotInfo(player, args); return; } if (!TownyUniverse.getInstance().getPermissionSource().testPermission(player, PermissionNodes.TOWNY_COMMAND_PLOT_PERM.getNode(args[0].toLowerCase()))) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); if (args[0].equalsIgnoreCase("hud")) { HUDManager.togglePermHUD(player); @@ -2114,14 +2118,14 @@ public void parsePlotPermCommand(Player player, String[] args) throws TownyExcep // All other subcommands require the player to be in a claimed area TownBlock townBlock = TownyAPI.getInstance().getTownBlock(player.getLocation()); if (townBlock == null) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_not_claimed_1")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_not_claimed_1")); return; } if (args[0].equalsIgnoreCase("gui")) { Resident resident = TownyAPI.getInstance().getResident(player.getName()); if (resident == null) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_not_registered")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_not_registered")); return; } @@ -2133,25 +2137,25 @@ public void parsePlotPermCommand(Player player, String[] args) throws TownyExcep } if (townBlock.hasPlotObjectGroup()) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_plot_belongs_to_group", "/plot group perm remove")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_plot_belongs_to_group", "/plot group perm remove")); return; } Resident resident = TownyAPI.getInstance().getResident(args[1]); if (resident == null) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_not_registered_1", args[1])); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_not_registered_1", args[1])); return; } if (!townBlock.getPermissionOverrides().containsKey(resident)) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_no_overrides_set", resident.getName(), Translation.of("townblock"))); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_no_overrides_set", resident.getName(), Translatable.of("townblock"))); return; } townBlock.getPermissionOverrides().remove(resident); townBlock.save(); - TownyMessaging.sendMsg(player, Translation.of("msg_overrides_removed", resident.getName())); + TownyMessaging.sendMsg(player, Translatable.of("msg_overrides_removed", resident.getName())); } else if (args[0].equalsIgnoreCase("add")) { if (args.length < 2) { HelpMenu.PLOT_PERM_HELP.send(player); @@ -2159,25 +2163,25 @@ public void parsePlotPermCommand(Player player, String[] args) throws TownyExcep } if (townBlock.hasPlotObjectGroup()) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_plot_belongs_to_group", "/plot group perm add")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_plot_belongs_to_group", "/plot group perm add")); return; } Resident resident = TownyAPI.getInstance().getResident(args[1]); if (resident == null || resident.isNPC()) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_not_registered_1", args[1])); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_not_registered_1", args[1])); return; } if (townBlock.getPermissionOverrides().containsKey(resident)) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_overrides_already_set", resident.getName(), Translation.of("townblock"))); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_overrides_already_set", resident.getName(), Translatable.of("townblock"))); return; } townBlock.getPermissionOverrides().put(resident, new PermissionData(PermissionGUIUtil.getDefaultTypes(), player.getName())); townBlock.save(); - TownyMessaging.sendMsg(player, Translation.of("msg_overrides_added", resident.getName())); + TownyMessaging.sendMsg(player, Translatable.of("msg_overrides_added", resident.getName())); } } } @@ -2192,8 +2196,8 @@ public void sendPlotInfo(Player player, String[] args) { } if (TownyAPI.getInstance().isWilderness(coord)) - TownyMessaging.sendMessage(player, TownyFormatter.getStatus(TownyAPI.getInstance().getTownyWorld(world))); + TownyMessaging.sendMessage(player, TownyFormatter.getStatus(TownyAPI.getInstance().getTownyWorld(world), Translation.getLocale(player))); else - TownyMessaging.sendMessage(player, TownyFormatter.getStatus(coord.getTownBlockOrNull())); + TownyMessaging.sendMessage(player, TownyFormatter.getStatus(coord.getTownBlockOrNull(), Translation.getLocale(player))); } } diff --git a/src/com/palmergames/bukkit/towny/command/ResidentCommand.java b/src/com/palmergames/bukkit/towny/command/ResidentCommand.java index 55c78dcd64..da18571e39 100644 --- a/src/com/palmergames/bukkit/towny/command/ResidentCommand.java +++ b/src/com/palmergames/bukkit/towny/command/ResidentCommand.java @@ -16,6 +16,7 @@ import com.palmergames.bukkit.towny.object.SpawnType; import com.palmergames.bukkit.towny.object.Town; import com.palmergames.bukkit.towny.object.TownyPermission; +import com.palmergames.bukkit.towny.object.Translatable; import com.palmergames.bukkit.towny.object.Translation; import com.palmergames.bukkit.towny.object.jail.UnJailReason; import com.palmergames.bukkit.towny.permissions.PermissionNodes; @@ -213,7 +214,6 @@ else if (args.length > 1 && TownyCommandAddonAPI.hasCommand(CommandType.RESIDENT return Collections.emptyList(); } - @SuppressWarnings("static-access") private void parseResidentCommandForConsole(final CommandSender sender, String[] split) throws TownyException { if (split.length == 0 || split[0].equalsIgnoreCase("?") || split[0].equalsIgnoreCase("help")) { @@ -224,7 +224,7 @@ private void parseResidentCommandForConsole(final CommandSender sender, String[] } else { final Optional resOpt = Optional.ofNullable(TownyUniverse.getInstance().getResident(split[0])); if (resOpt.isPresent()) { - Bukkit.getScheduler().runTaskAsynchronously(this.plugin, () -> { + Bukkit.getScheduler().runTaskAsynchronously(plugin, () -> { Player player = null; TownyMessaging.sendMessage(sender, TownyFormatter.getStatus(resOpt.get(), player)); }); @@ -244,7 +244,7 @@ public void parseResidentCommand(final Player player, String[] split) { if (split.length == 0) { Resident res = getResidentOrThrow(player.getUniqueId()); - TownyMessaging.sendMessage(player, TownyFormatter.getStatus(res, player)); + TownyMessaging.sendMessage(player, TownyFormatter.getStatus(res, player, Translation.getLocale(player))); } else if (split[0].equalsIgnoreCase("?") || split[0].equalsIgnoreCase("help")) { HelpMenu.RESIDENT_HELP.send(player); @@ -252,29 +252,29 @@ public void parseResidentCommand(final Player player, String[] split) { } else if (split[0].equalsIgnoreCase("list")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_RESIDENT_LIST.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); listResidents(player); } else if (split[0].equalsIgnoreCase("tax")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_RESIDENT_TAX.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); if (!TownyEconomyHandler.isActive()) - throw new TownyException(Translation.of("msg_err_no_economy")); + throw new TownyException(Translatable.of("msg_err_no_economy")); Resident res = getResidentOrThrow(player.getUniqueId()); - TownyMessaging.sendMessage(player, TownyFormatter.getTaxStatus(res)); + TownyMessaging.sendMessage(player, TownyFormatter.getTaxStatus(res, Translation.getLocale(player))); } else if (split[0].equalsIgnoreCase("jail")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_RESIDENT_JAIL.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); if (!TownySettings.isAllowingBail()) { - TownyMessaging.sendErrorMsg(player, Colors.Red + Translation.of("msg_err_bail_not_enabled")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_bail_not_enabled")); return; } @@ -286,7 +286,7 @@ public void parseResidentCommand(final Player player, String[] split) { Resident resident = getResidentOrThrow(player.getUniqueId()); if (!resident.isJailed()) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_you_aren't currently jailed")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_you_aren't currently jailed")); return; } @@ -294,7 +294,7 @@ public void parseResidentCommand(final Player player, String[] split) { // Fail if the economy isn't active. if (!TownyEconomyHandler.isActive()) - throw new TownyException(Translation.of("msg_err_no_economy")); + throw new TownyException(Translatable.of("msg_err_no_economy")); // Get Town the player is jailed in. final Town jailTown = resident.getJailTown(); @@ -314,11 +314,11 @@ public void parseResidentCommand(final Player player, String[] split) { resident.getAccount().payTo(finalCost, jailTown, "Bail"); JailUtil.unJailResident(resident, UnJailReason.BAIL); } else { - TownyMessaging.sendErrorMsg(resident, Translation.of("msg_err_unable_to_pay_bail")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_unable_to_pay_bail")); } }); } else { - throw new TownyException(Translation.of("msg_err_unable_to_pay_bail")); + throw new TownyException(Translatable.of("msg_err_unable_to_pay_bail")); } } else { @@ -350,7 +350,7 @@ public void parseResidentCommand(final Player player, String[] split) { } else if (split[0].equalsIgnoreCase("friend")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_RESIDENT_FRIEND.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); String[] newSplit = StringMgmt.remFirstArg(split); residentFriend(player, newSplit, false, null); @@ -358,7 +358,7 @@ public void parseResidentCommand(final Player player, String[] split) { } else if (split[0].equalsIgnoreCase("spawn")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_RESIDENT_SPAWN.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); Resident res = getResidentOrThrow(player.getUniqueId()); @@ -367,18 +367,20 @@ public void parseResidentCommand(final Player player, String[] split) { TownyCommandAddonAPI.getAddonCommand(CommandType.RESIDENT, split[0]).execute(player, "resident", split); } else { final Resident resident = TownyUniverse.getInstance().getResidentOpt(split[0]) - .orElseThrow(() -> new TownyException(Translation.of("msg_err_not_registered_1", split[0]))); + .orElseThrow(() -> new TownyException(Translatable.of("msg_err_not_registered_1", split[0]))); if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_RESIDENT_OTHERRESIDENT.getNode()) && (!resident.getName().equals(player.getName()))) { - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); } Bukkit.getScheduler().runTaskAsynchronously(Towny.getPlugin(), - () -> TownyMessaging.sendMessage(player, TownyFormatter.getStatus(resident, player)) + () -> TownyMessaging.sendMessage(player, TownyFormatter.getStatus(resident, player, Translation.getLocale(player))) ); } - } catch (Exception x) { - TownyMessaging.sendErrorMsg(player, x.getMessage()); + } catch (TownyException x) { + TownyMessaging.sendErrorMsg(player, x.getMessage(player)); + } catch (Exception e) { + TownyMessaging.sendErrorMsg(player, e.getMessage()); } } @@ -393,12 +395,12 @@ private void residentToggle(Player player, String[] newSplit) throws TownyExcept TownyPermissionSource permSource = TownyUniverse.getInstance().getPermissionSource(); Resident resident = TownyUniverse.getInstance().getResidentOpt(player.getUniqueId()) - .orElseThrow(() -> new TownyException(Translation.of("msg_err_not_registered_1", player.getName())));; + .orElseThrow(() -> new TownyException(Translatable.of("msg_err_not_registered_1", player.getName())));; if (newSplit.length == 0) { HelpMenu.RESIDENT_TOGGLE.send(player); - TownyMessaging.sendMsg(resident, (Translation.of("msg_modes_set") + StringMgmt.join(resident.getModes(), ","))); + TownyMessaging.sendMsg(resident, Translatable.of("msg_modes_set").append(StringMgmt.join(resident.getModes(), ","))); return; } @@ -410,7 +412,7 @@ private void residentToggle(Player player, String[] newSplit) throws TownyExcept } if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_RESIDENT_TOGGLE.getNode(newSplit[0].toLowerCase()))) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); TownyPermission perm = resident.getPermissions(); @@ -423,7 +425,7 @@ private void residentToggle(Player player, String[] newSplit) throws TownyExcept if (newSplit[0].equalsIgnoreCase("spy")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_CHAT_SPY.getNode(newSplit[0].toLowerCase()))) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); resident.toggleMode(newSplit, true); return; @@ -433,9 +435,9 @@ private void residentToggle(Player player, String[] newSplit) throws TownyExcept // Test to see if the pvp cooldown timer is active for the town this resident belongs to. if (TownySettings.getPVPCoolDownTime() > 0 && resident.hasTown() && !permSource.testPermission(player, PermissionNodes.TOWNY_ADMIN.getNode())) { if (CooldownTimerTask.hasCooldown(resident.getTown().getName(), CooldownType.PVP)) - throw new TownyException(Translation.of("msg_err_cannot_toggle_pvp_x_seconds_remaining", CooldownTimerTask.getCooldownRemaining(resident.getTown().getName(), CooldownType.PVP))); + throw new TownyException(Translatable.of("msg_err_cannot_toggle_pvp_x_seconds_remaining", CooldownTimerTask.getCooldownRemaining(resident.getTown().getName(), CooldownType.PVP))); if (CooldownTimerTask.hasCooldown(resident.getName(), CooldownType.PVP)) - throw new TownyException(Translation.of("msg_err_cannot_toggle_pvp_x_seconds_remaining", CooldownTimerTask.getCooldownRemaining(resident.getName(), CooldownType.PVP))); + throw new TownyException(Translatable.of("msg_err_cannot_toggle_pvp_x_seconds_remaining", CooldownTimerTask.getCooldownRemaining(resident.getName(), CooldownType.PVP))); } perm.pvp = choice.orElse(!perm.pvp); @@ -470,14 +472,14 @@ private void residentToggle(Player player, String[] newSplit) throws TownyExcept */ private void notifyPerms(Player player, TownyPermission perm) { - TownyMessaging.sendMsg(player, Translation.of("msg_set_perms")); + TownyMessaging.sendMsg(player, Translatable.of("msg_set_perms")); 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")); } public void listResidents(Player player) { - TownyMessaging.sendMessage(player, ChatTools.formatTitle(Translation.of("res_list"))); + TownyMessaging.sendMessage(player, ChatTools.formatTitle(Translation.of("res_list", player))); String colour; ArrayList formatedList = new ArrayList<>(); for (Resident resident : TownyAPI.getInstance().getActiveResidents()) { @@ -497,7 +499,7 @@ else if (resident.isMayor()) public void listResidents(CommandSender sender) { - TownyMessaging.sendMessage(sender, ChatTools.formatTitle(Translation.of("res_list"))); + TownyMessaging.sendMessage(sender, ChatTools.formatTitle(Translation.of("res_list", sender))); String colour; ArrayList formatedList = new ArrayList<>(); for (Resident resident : TownyAPI.getInstance().getActiveResidents()) { @@ -530,20 +532,20 @@ public void residentSet(Player player, String[] split) throws TownyException { TownyUniverse townyUniverse = TownyUniverse.getInstance(); if (split.length == 0) { - TownyMessaging.sendMessage(player, ChatTools.formatCommand("", "/resident set", "perm ...", "'/resident set perm' " + Translation.of("res_5"))); - TownyMessaging.sendMessage(player, ChatTools.formatCommand("", "/resident set", "mode ...", "'/resident set mode' " + Translation.of("res_5"))); + TownyMessaging.sendMessage(player, ChatTools.formatCommand("", "/resident set", "perm ...", "'/resident set perm' " + Translation.of("res_5", player))); + TownyMessaging.sendMessage(player, ChatTools.formatCommand("", "/resident set", "mode ...", "'/resident set mode' " + Translation.of("res_5", player))); } else { Optional resOpt = townyUniverse.getResidentOpt(player.getUniqueId()); if (!resOpt.isPresent()) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_not_registered_1", player.getName())); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_not_registered_1", player.getName())); return; } Resident resident = resOpt.get(); if (!townyUniverse.getPermissionSource().testPermission(player, PermissionNodes.TOWNY_COMMAND_RESIDENT_SET.getNode(split[0].toLowerCase()))) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); if (split[0].equalsIgnoreCase("perm")) { @@ -558,7 +560,7 @@ public void residentSet(Player player, String[] split) throws TownyException { TownyCommandAddonAPI.getAddonCommand(CommandType.RESIDENT_SET, split[0]).execute(player, "resident", split); } else { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_invalid_property", "resident")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_invalid_property", "resident")); return; } @@ -572,11 +574,11 @@ private void setMode(Player player, String[] split) { if (split.length == 0) { TownyMessaging.sendMessage(player, ChatTools.formatCommand("", "/resident set mode", "clear", "")); TownyMessaging.sendMessage(player, ChatTools.formatCommand("", "/resident set mode", "[mode] ...[mode]", "")); - TownyMessaging.sendMessage(player, ChatTools.formatCommand("Mode", "map", "", Translation.of("mode_1"))); - TownyMessaging.sendMessage(player, ChatTools.formatCommand("Mode", "townclaim", "", Translation.of("mode_2"))); - TownyMessaging.sendMessage(player, ChatTools.formatCommand("Mode", "townunclaim", "", Translation.of("mode_3"))); - TownyMessaging.sendMessage(player, ChatTools.formatCommand("Mode", "tc", "", Translation.of("mode_4"))); - TownyMessaging.sendMessage(player, ChatTools.formatCommand("Mode", "nc", "", Translation.of("mode_5"))); + TownyMessaging.sendMessage(player, ChatTools.formatCommand("Mode", "map", "", Translation.of("mode_1", player))); + TownyMessaging.sendMessage(player, ChatTools.formatCommand("Mode", "townclaim", "", Translation.of("mode_2", player))); + TownyMessaging.sendMessage(player, ChatTools.formatCommand("Mode", "townunclaim", "", Translation.of("mode_3", player))); + TownyMessaging.sendMessage(player, ChatTools.formatCommand("Mode", "tc", "", Translation.of("mode_4", player))); + TownyMessaging.sendMessage(player, ChatTools.formatCommand("Mode", "nc", "", Translation.of("mode_5", player))); TownyMessaging.sendMessage(player, ChatTools.formatCommand("Mode", "ignoreplots", "", "")); TownyMessaging.sendMessage(player, ChatTools.formatCommand("Mode", "constantplotborder", "", "")); TownyMessaging.sendMessage(player, ChatTools.formatCommand("Mode", "plotborder", "", "")); @@ -592,7 +594,7 @@ private void setMode(Player player, String[] split) { List list = Arrays.asList(split); if ((list.contains("spy")) && !TownyUniverse.getInstance().getPermissionSource().testPermission(player, PermissionNodes.TOWNY_CHAT_SPY.getNode())) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_command_disable")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_command_disable")); return; } @@ -604,8 +606,8 @@ public static void residentFriend(Player player, String[] split, boolean admin, TownyUniverse townyUniverse = TownyUniverse.getInstance(); if (split.length == 0) { - TownyMessaging.sendMessage(player, ChatTools.formatCommand("", "/resident friend", "add " + Translation.of("res_2"), "")); - TownyMessaging.sendMessage(player, ChatTools.formatCommand("", "/resident friend", "remove " + Translation.of("res_2"), "")); + TownyMessaging.sendMessage(player, ChatTools.formatCommand("", "/resident friend", "add " + Translation.of("res_2", player), "")); + TownyMessaging.sendMessage(player, ChatTools.formatCommand("", "/resident friend", "remove " + Translation.of("res_2", player), "")); TownyMessaging.sendMessage(player, ChatTools.formatCommand("", "/resident friend", "list", "")); TownyMessaging.sendMessage(player, ChatTools.formatCommand("", "/resident friend", "clear", "")); } else { @@ -613,7 +615,7 @@ public static void residentFriend(Player player, String[] split, boolean admin, Optional resOpt = townyUniverse.getResidentOpt(player.getUniqueId()); if (!resOpt.isPresent()) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_not_registered_1", player.getName())); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_not_registered_1", player.getName())); return; } @@ -645,7 +647,7 @@ public static void residentFriend(Player player, String[] split, boolean admin, private static void residentFriendList(Player player, Resident resident) { - TownyMessaging.sendMessage(player, ChatTools.formatTitle(Translation.of("friend_list"))); + TownyMessaging.sendMessage(player, ChatTools.formatTitle(Translation.of("friend_list", player))); String colour; ArrayList formatedList = new ArrayList<>(); for (Resident friends : resident.getFriends()) { @@ -692,7 +694,7 @@ public static void residentFriendAdd(Player player, Resident resident, List 0) { - StringBuilder msg = new StringBuilder(Translation.of("res_friend_added")); + StringBuilder msg = new StringBuilder(Translation.of("res_friend_added", player)); for (Resident newFriend : invited) { @@ -701,20 +703,20 @@ public static void residentFriendAdd(Player player, Resident resident, List 0) { - StringBuilder msg = new StringBuilder(Translation.of("msg_removed")); + StringBuilder msg = new StringBuilder(Translation.of("msg_removed", player)); Player p; for (Resident member : toKick) { msg.append(member.getName()).append(", "); p = BukkitTools.getPlayer(member.getName()); if (p != null) - TownyMessaging.sendMsg(p, Translation.of("msg_friend_remove", player.getName())); + TownyMessaging.sendMsg(p, Translatable.of("msg_friend_remove", player.getName())); } msg = new StringBuilder(msg.substring(0, msg.length() - 2)); - msg.append(Translation.of("msg_from_list")); + msg.append(Translation.of("msg_from_list", player)); TownyMessaging.sendMsg(player, msg.toString()); resident.save(); } else - TownyMessaging.sendErrorMsg(player, Translation.of("msg_invalid_name")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_invalid_name")); } } diff --git a/src/com/palmergames/bukkit/towny/command/TownCommand.java b/src/com/palmergames/bukkit/towny/command/TownCommand.java index 7e71b6dcaa..854b830a3a 100644 --- a/src/com/palmergames/bukkit/towny/command/TownCommand.java +++ b/src/com/palmergames/bukkit/towny/command/TownCommand.java @@ -516,7 +516,7 @@ private void parseTownCommandForConsole(final CommandSender sender, String[] spl try { listTowns(sender, split); } catch (TownyException e) { - TownyMessaging.sendErrorMsg(sender, e.getMessage()); + TownyMessaging.sendErrorMsg(sender, e.getMessage(sender)); } } else { @@ -525,7 +525,7 @@ private void parseTownCommandForConsole(final CommandSender sender, String[] spl if (town != null) townStatusScreen(sender, town); else - TownyMessaging.sendErrorMsg(sender, Translation.of("msg_err_not_registered_1", split[0])); + TownyMessaging.sendErrorMsg(sender, Translatable.of("msg_err_not_registered_1", split[0])); } } @@ -539,7 +539,7 @@ private void parseTownCommand(final Player player, String[] split) { Resident resident = getResidentOrThrow(player.getUniqueId()); if (!resident.hasTown()) - throw new TownyException(Translation.of("msg_err_dont_belong_town")); + throw new TownyException(Translatable.of("msg_err_dont_belong_town")); townStatusScreen(player, resident.getTown()); @@ -550,17 +550,17 @@ private void parseTownCommand(final Player player, String[] split) { } else if (split[0].equalsIgnoreCase("mayor")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWN_MAYOR.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); HelpMenu.TOWN_MAYOR_HELP.send(player); } else if (split[0].equalsIgnoreCase("here")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWN_HERE.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); if (TownyAPI.getInstance().isWilderness(player.getLocation())) - throw new TownyException(Translation.of("msg_not_claimed", Coord.parseCoord(player.getLocation()))); + throw new TownyException(Translatable.of("msg_not_claimed", Coord.parseCoord(player.getLocation()))); townStatusScreen(player, TownyAPI.getInstance().getTown(player.getLocation())); @@ -571,10 +571,10 @@ private void parseTownCommand(final Player player, String[] split) { } else if (split[0].equalsIgnoreCase("new") || split[0].equalsIgnoreCase("create")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWN_NEW.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); if (split.length == 1) { - throw new TownyException(Translation.of("msg_specify_name")); + throw new TownyException(Translatable.of("msg_specify_name")); } else { String townName = String.join("_", StringMgmt.remFirstArg(split)); Resident resident = getResidentOrThrow(player.getUniqueId()); @@ -585,58 +585,58 @@ private void parseTownCommand(final Player player, String[] split) { } else if (split[0].equalsIgnoreCase("reclaim")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWN_RECLAIM.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); if(!TownRuinSettings.getTownRuinsReclaimEnabled()) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); TownRuinUtil.processRuinedTownReclaimRequest(player, plugin); } else if (split[0].equalsIgnoreCase("join")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWN_JOIN.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); parseTownJoin(player, StringMgmt.remFirstArg(split)); } else if (split[0].equalsIgnoreCase("leave")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWN_LEAVE.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); townLeave(player); } else if (split[0].equalsIgnoreCase("withdraw")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWN_WITHDRAW.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); townTransaction(player, split, true); } else if (split[0].equalsIgnoreCase("deposit")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWN_DEPOSIT.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); townTransaction(player, split, false); } else if (split[0].equalsIgnoreCase("plots")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWN_PLOTS.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); townPlots(player, split); } else if (split[0].equalsIgnoreCase("reslist")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWN_RESLIST.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); townResList(player, split); } else if (split[0].equalsIgnoreCase("plotgrouplist")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWN_PLOTGROUPLIST.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); townPlotGroupList(player, split); @@ -668,10 +668,10 @@ private void parseTownCommand(final Player player, String[] split) { // do still want them to be able to look at other towns' status screens. Town town = TownyUniverse.getInstance().getTown(split[0]); if (town == null) - throw new TownyException(Translation.of("msg_err_cannot_use_command_because_town_ruined")); + throw new TownyException(Translatable.of("msg_err_cannot_use_command_because_town_ruined")); if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWN_OTHERTOWN.getNode()) && !town.hasResident(player.getName())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable", player)); townStatusScreen(player, town); return; @@ -696,7 +696,7 @@ private void parseTownCommand(final Player player, String[] split) { } else if (split[0].equalsIgnoreCase("buy")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWN_BUY.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); townBuy(player, newSplit); @@ -717,24 +717,24 @@ private void parseTownCommand(final Player player, String[] split) { } else if (split[0].equalsIgnoreCase("delete")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWN_DELETE.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); townDelete(player, newSplit); } else if (split[0].equalsIgnoreCase("ranklist")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWN_RANKLIST.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); Resident resident = getResidentOrThrow(player.getUniqueId()); if (!resident.hasTown()) - throw new TownyException(Translation.of("msg_err_dont_belong_town")); + throw new TownyException(Translatable.of("msg_err_dont_belong_town")); TownyMessaging.sendMessage(player, TownyFormatter.getRanks(resident.getTown())); } else if (split[0].equalsIgnoreCase("add")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWN_INVITE_ADD.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); townAdd(player, null, newSplit); @@ -745,7 +745,7 @@ private void parseTownCommand(final Player player, String[] split) { } else if (split[0].equalsIgnoreCase("kick")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWN_KICK.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); townKick(player, newSplit); @@ -756,54 +756,54 @@ private void parseTownCommand(final Player player, String[] split) { } else if (split[0].equalsIgnoreCase("unclaim")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWN_UNCLAIM.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); parseTownUnclaimCommand(player, newSplit); } else if (split[0].equalsIgnoreCase("online")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWN_ONLINE.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); parseTownOnlineCommand(player, newSplit); } else if (split[0].equalsIgnoreCase("say")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWN_SAY.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); Resident resident = getResidentOrThrow(player.getUniqueId()); if (!resident.hasTown()) - throw new TownyException(Translation.of("msg_err_dont_belong_town")); + throw new TownyException(Translatable.of("msg_err_dont_belong_town")); TownyMessaging.sendPrefixedTownMessage(resident.getTown(), StringMgmt.join(newSplit)); } else if (split[0].equalsIgnoreCase("outlaw")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWN_OUTLAW.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); parseTownOutlawCommand(player, newSplit, false, getResidentOrThrow(player.getUniqueId()).getTown()); } else if (split[0].equalsIgnoreCase("bankhistory")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWN_BANKHISTORY.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); int pages = 10; if (newSplit.length > 0) try { pages = Integer.parseInt(newSplit[0]); } catch (NumberFormatException e) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_error_must_be_int")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_error_must_be_int")); return; } TownyUniverse.getInstance().getResident(player.getUniqueId()).getTown().generateBankHistoryBook(player, pages); } else if (split[0].equalsIgnoreCase("merge")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWN_MERGE.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); if (split.length < 2) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_specify_name")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_specify_name")); return; } @@ -811,26 +811,26 @@ private void parseTownCommand(final Player player, String[] split) { } else if (split[0].equalsIgnoreCase("jail")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWN_JAIL.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); parseJailCommand(player, null, StringMgmt.remFirstArg(split), false); } else if (split[0].equalsIgnoreCase("unjail")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWN_UNJAIL.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); parseUnJailCommand(player, null, StringMgmt.remFirstArg(split), false); } else if (split[0].equalsIgnoreCase("purge")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWN_PURGE.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); parseTownPurgeCommand(player, StringMgmt.remFirstArg(split)); } else if (split[0].equalsIgnoreCase("trust")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWN_TRUST.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); parseTownTrustCommand(player, StringMgmt.remFirstArg(split), null); @@ -842,17 +842,19 @@ private void parseTownCommand(final Player player, String[] split) { */ Town town = TownyUniverse.getInstance().getTown(split[0]); if (town == null) - throw new TownyException(Translation.of("msg_err_not_registered_1", split[0])); + throw new TownyException(Translatable.of("msg_err_not_registered_1", split[0])); if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWN_OTHERTOWN.getNode()) && !town.hasResident(player.getName())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); townStatusScreen(player, town); } } - } catch (Exception x) { - TownyMessaging.sendErrorMsg(player, x.getMessage()); + } catch (TownyException x) { + TownyMessaging.sendErrorMsg(player, x.getMessage(player)); + } catch (Exception e) { + TownyMessaging.sendErrorMsg(player, e.getMessage()); } } @@ -865,28 +867,28 @@ private void parseTownPurgeCommand(Player player, String[] arg) throws TownyExce Resident res = TownyAPI.getInstance().getResident(player.getUniqueId()); if (res == null || !res.hasTown()) - throw new TownyException(Translation.of("msg_err_dont_belong_town")); + throw new TownyException(Translatable.of("msg_err_dont_belong_town")); int days; try { days = Integer.parseInt(arg[0]); } catch (NumberFormatException e) { - throw new TownyException(Translation.of("msg_error_must_be_int")); + throw new TownyException(Translatable.of("msg_error_must_be_int")); } if (days < 1) - throw new TownyException(Translation.of("msg_err_days_must_be_greater_than_0")); + throw new TownyException(Translatable.of("msg_err_days_must_be_greater_than_0")); Town town = TownyAPI.getInstance().getResidentTownOrNull(res); List kickList = TownUtil.gatherInactiveResidents(town.getResidents(), days); if (kickList.isEmpty()) - throw new TownyException(Translation.of("msg_err_no_one_to_purge")); + throw new TownyException(Translatable.of("msg_err_no_one_to_purge")); Confirmation.runOnAccept(()-> { - kickList.stream().forEach(resident -> resident.removeTown()); - TownyMessaging.sendMsg(player, Translation.of("msg_purge_complete_x_removed", kickList.size())); + kickList.forEach(Resident::removeTown); + TownyMessaging.sendMsg(player, Translatable.of("msg_purge_complete_x_removed", kickList.size())); }) - .setTitle(Translation.of("msg_purging_will_remove_the_following_residents", StringMgmt.join(kickList, ", "))) + .setTitle(Translation.of("msg_purging_will_remove_the_following_residents", player, StringMgmt.join(kickList, ", "))) .sendTo(player); } @@ -896,11 +898,11 @@ private void parseInviteCommand(Player player, String[] newSplit) throws TownyEx Resident resident = getResidentOrThrow(player.getUniqueId()); - String received = Translation.of("town_received_invites") + String received = Translation.of("town_received_invites", player) .replace("%a", Integer.toString(resident.getTown().getReceivedInvites().size()) ) .replace("%m", Integer.toString(InviteHandler.getReceivedInvitesMaxAmount(resident.getTown()))); - String sent = Translation.of("town_sent_invites") + String sent = Translation.of("town_sent_invites", player) .replace("%a", Integer.toString(resident.getTown().getSentInvites().size()) ) .replace("%m", Integer.toString(InviteHandler.getSentInvitesMaxAmount(resident.getTown()))); @@ -908,7 +910,7 @@ private void parseInviteCommand(Player player, String[] newSplit) throws TownyEx if (newSplit.length == 0) { // (/town invite) if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWN_INVITE_SEE_HOME.getNode())) { - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); } HelpMenu.TOWN_INVITE.send(player); @@ -923,7 +925,7 @@ private void parseInviteCommand(Player player, String[] newSplit) throws TownyEx } if (newSplit[0].equalsIgnoreCase("sent")) { // /invite(remfirstarg) sent args[1] if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWN_INVITE_LIST_SENT.getNode())) { - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); } List sentinvites = resident.getTown().getSentInvites(); int page = 1; @@ -939,7 +941,7 @@ private void parseInviteCommand(Player player, String[] newSplit) throws TownyEx } if (newSplit[0].equalsIgnoreCase("received")) { // /town invite received if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWN_INVITE_LIST_RECEIVED.getNode())) { - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); } List receivedinvites = resident.getTown().getReceivedInvites(); int page = 1; @@ -955,7 +957,7 @@ private void parseInviteCommand(Player player, String[] newSplit) throws TownyEx } if (newSplit[0].equalsIgnoreCase("accept")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWN_INVITE_ACCEPT.getNode())) { - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); } // /town (gone) // invite (gone) @@ -966,18 +968,18 @@ private void parseInviteCommand(Player player, String[] newSplit) throws TownyEx List invites = town.getReceivedInvites(); if (invites.size() == 0) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_town_no_invites")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_town_no_invites")); return; } if (newSplit.length >= 2) { // /invite deny args[1] nation = TownyUniverse.getInstance().getNation(newSplit[1]); if (nation == null) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_invalid_name")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_invalid_name")); return; } } else { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_town_specify_invite")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_town_specify_invite")); InviteCommand.sendInviteList(player, invites, 1, false); return; } @@ -1000,25 +1002,25 @@ private void parseInviteCommand(Player player, String[] newSplit) throws TownyEx } if (newSplit[0].equalsIgnoreCase("deny")) { // /town invite deny if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWN_INVITE_DENY.getNode())) { - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); } Town town = resident.getTown(); Nation nation; List invites = town.getReceivedInvites(); if (invites.size() == 0) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_town_no_invites")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_town_no_invites")); return; } if (newSplit.length >= 2) { // /invite deny args[1] nation = TownyUniverse.getInstance().getNation(newSplit[1]); if (nation == null) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_invalid_name")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_invalid_name")); return; } } else { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_town_specify_invite")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_town_specify_invite")); InviteCommand.sendInviteList(player, invites, 1, false); return; } @@ -1034,7 +1036,7 @@ private void parseInviteCommand(Player player, String[] newSplit) throws TownyEx if (toDecline != null) { try { InviteHandler.declineInvite(toDecline, false); - TownyMessaging.sendMessage(player, Translation.of("successful_deny")); + TownyMessaging.sendMessage(player, Translatable.of("successful_deny")); return; } catch (InvalidObjectException e) { e.printStackTrace(); // Shouldn't happen, however like i said a fallback @@ -1042,7 +1044,7 @@ private void parseInviteCommand(Player player, String[] newSplit) throws TownyEx } } else { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWN_INVITE_ADD.getNode())) { - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); } townAdd(player, null, newSplit); // It's none of those 4 subcommands, so it's a playername, I just expect it to be ok. @@ -1084,7 +1086,7 @@ public static void parseTownOutlawCommand(CommandSender sender, String[] split, target = townyUniverse.getResident(split[1]); if (target == null) { - TownyMessaging.sendErrorMsg(sender, Translation.of("msg_err_invalid_name", split[1])); + TownyMessaging.sendErrorMsg(sender, Translatable.of("msg_err_invalid_name", split[1])); return; } @@ -1101,9 +1103,9 @@ public static void parseTownOutlawCommand(CommandSender sender, String[] split, // Kick outlaws from town if they are residents. if (targetTown != null && targetTown.getUUID().equals(town.getUUID())) { resident.removeTown(); - String outlawer = (admin ? Translation.of("admin_sing") : sender.getName()); - TownyMessaging.sendMsg(target, Translation.of("msg_kicked_by", outlawer)); - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_kicked", outlawer, target.getName())); + Object outlawer = (admin ? Translatable.of("admin_sing") : sender.getName()); + TownyMessaging.sendMsg(target, Translatable.of("msg_kicked_by", outlawer)); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_kicked", outlawer, target.getName())); } // Add the outlaw and save the town. @@ -1112,7 +1114,7 @@ public static void parseTownOutlawCommand(CommandSender sender, String[] split, // Send feedback messages. if (target.getPlayer() != null && target.getPlayer().isOnline()) { - TownyMessaging.sendMsg(target, Translation.of("msg_you_have_been_declared_outlaw", town.getName())); + TownyMessaging.sendMsg(target, Translatable.of("msg_you_have_been_declared_outlaw", town.getName())); Location loc = target.getPlayer().getLocation(); // If the newly-outlawed player is within the town's borders and is meant to be teleported away, @@ -1128,7 +1130,7 @@ public static void parseTownOutlawCommand(CommandSender sender, String[] split, return; if (TownySettings.getOutlawTeleportWarmup() > 0) - TownyMessaging.sendMsg(target, Translation.of("msg_outlaw_kick_cooldown", town, TimeMgmt.formatCountdownTime(TownySettings.getOutlawTeleportWarmup()))); + TownyMessaging.sendMsg(target, Translatable.of("msg_outlaw_kick_cooldown", town, TimeMgmt.formatCountdownTime(TownySettings.getOutlawTeleportWarmup()))); final Resident outlawRes = target; new BukkitRunnable() { @@ -1140,12 +1142,12 @@ public void run() { }.runTaskLater(plugin, TownySettings.getOutlawTeleportWarmup() * 20); } } - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_you_have_declared_an_outlaw", target.getName(), town.getName())); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_you_have_declared_an_outlaw", target.getName(), town.getName())); if (admin) - TownyMessaging.sendMsg(sender, Translation.of("msg_you_have_declared_an_outlaw", target.getName(), town.getName())); + TownyMessaging.sendMsg(sender, Translatable.of("msg_you_have_declared_an_outlaw", target.getName(), town.getName())); } catch (AlreadyRegisteredException e) { // Must already be an outlaw - TownyMessaging.sendMsg(sender, Translation.of("msg_err_resident_already_an_outlaw")); + TownyMessaging.sendMsg(sender, Translatable.of("msg_err_resident_already_an_outlaw")); return; } @@ -1154,18 +1156,18 @@ public void run() { town.removeOutlaw(target); town.save(); if (target.getPlayer() != null && target.getPlayer().isOnline()) - TownyMessaging.sendMsg(target, Translation.of("msg_you_have_been_undeclared_outlaw", town.getName())); - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_you_have_undeclared_an_outlaw", target.getName(), town.getName())); + TownyMessaging.sendMsg(target, Translatable.of("msg_you_have_been_undeclared_outlaw", town.getName())); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_you_have_undeclared_an_outlaw", target.getName(), town.getName())); if (admin) - TownyMessaging.sendMsg(sender, Translation.of("msg_you_have_undeclared_an_outlaw", target.getName(), town.getName())); + TownyMessaging.sendMsg(sender, Translatable.of("msg_you_have_undeclared_an_outlaw", target.getName(), town.getName())); } else { // Must already not be an outlaw - TownyMessaging.sendMsg(sender, Translation.of("msg_err_player_not_an_outlaw")); + TownyMessaging.sendMsg(sender, Translatable.of("msg_err_player_not_an_outlaw")); return; } } else { - TownyMessaging.sendErrorMsg(sender, Translation.of("msg_err_invalid_property", split[0])); + TownyMessaging.sendErrorMsg(sender, Translatable.of("msg_err_invalid_property", split[0])); return; } @@ -1189,7 +1191,7 @@ private void townPlots(CommandSender sender, String[] args) { try { if (args.length == 1 && player != null) { if (TownRuinUtil.isPlayersTownRuined(player)) - throw new TownyException(Translation.of("msg_err_cannot_use_command_because_town_ruined")); + throw new TownyException(Translatable.of("msg_err_cannot_use_command_because_town_ruined")); town = getResidentOrThrow(player.getUniqueId()).getTown(); } else { @@ -1199,7 +1201,7 @@ private void townPlots(CommandSender sender, String[] args) { } if (town == null) { - TownyMessaging.sendErrorMsg(sender, Translation.of("msg_specify_name")); + TownyMessaging.sendErrorMsg(sender, Translatable.of("msg_specify_name")); return; } @@ -1267,7 +1269,7 @@ private void townPlots(CommandSender sender, String[] args) { out.add(Colors.Green + "Residential: " + Colors.LightGreen + residentOwned + " / " + residentOwnedFS + " / " + resident + " / " + (residentOwned * town.getPlotTax())); out.add(Colors.Green + "Embassies : " + Colors.LightGreen + embassyRO + " / " + embassyFS + " / " + embassy + " / " + (embassyRO * town.getEmbassyPlotTax())); out.add(Colors.Green + "Shops : " + Colors.LightGreen + shopRO + " / " + shopFS + " / " + shop + " / " + (shop * town.getCommercialPlotTax())); - out.add(Translation.of("msg_town_plots_revenue_disclaimer")); + out.add(Translation.of("msg_town_plots_revenue_disclaimer", sender)); TownyMessaging.sendMessage(sender, out); } @@ -1278,22 +1280,22 @@ private void parseTownOnlineCommand(Player player, String[] split) throws TownyE Town town = TownyUniverse.getInstance().getTown(split[0]); if (town == null) { - throw new TownyException(Translation.of("msg_err_not_registered_1", split[0])); + throw new TownyException(Translatable.of("msg_err_not_registered_1", split[0])); } List onlineResidents = ResidentUtil.getOnlineResidentsViewable(player, town); if (onlineResidents.size() > 0) { - TownyMessaging.sendMessage(player, TownyFormatter.getFormattedOnlineResidents(Translation.of("msg_town_online"), town, player)); + TownyMessaging.sendMessage(player, TownyFormatter.getFormattedOnlineResidents(Translation.of("msg_town_online", player), town, player)); } else { - TownyMessaging.sendMessage(player, Translation.of("default_towny_prefix") + Colors.White + "0 " + Translation.of("res_list") + " " + (Translation.of("msg_town_online") + ": " + town)); + TownyMessaging.sendMsg(player, Colors.White + "0 " + Translation.of("res_list", player) + " " + (Translation.of("msg_town_online", player) + ": " + town)); } } else { try { Resident resident = getResidentOrThrow(player.getUniqueId()); Town town = resident.getTown(); - TownyMessaging.sendMessage(player, TownyFormatter.getFormattedOnlineResidents(Translation.of("msg_town_online"), town, player)); + TownyMessaging.sendMessage(player, TownyFormatter.getFormattedOnlineResidents(Translation.of("msg_town_online", player), town, player)); } catch (NotRegisteredException x) { - TownyMessaging.sendMessage(player, Translation.of("msg_err_dont_belong_town")); + TownyMessaging.sendMsg(player, Translatable.of("msg_err_dont_belong_town")); } } } @@ -1325,7 +1327,7 @@ public void listTowns(CommandSender sender, String[] split) throws TownyExceptio * The default comparator on /t list is by residents, test it before we start anything else. */ if (split.length < 2 && !console && !permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWN_LIST_RESIDENTS.getNode())) { - TownyMessaging.sendErrorMsg(sender, Translation.of("msg_err_command_disable")); + TownyMessaging.sendErrorMsg(sender, Translatable.of("msg_err_command_disable")); return; } @@ -1338,7 +1340,7 @@ public void listTowns(CommandSender sender, String[] split) throws TownyExceptio for (int i = 1; i < split.length; i++) { if (split[i].equalsIgnoreCase("by")) { // Is a case of someone using /n list by {comparator} if (comparatorSet) { - TownyMessaging.sendErrorMsg(sender, Translation.of("msg_error_multiple_comparators")); + TownyMessaging.sendErrorMsg(sender, Translatable.of("msg_error_multiple_comparators")); return; } i++; @@ -1348,42 +1350,42 @@ public void listTowns(CommandSender sender, String[] split) throws TownyExceptio split[i] = "residents"; if (!console && !permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWN_LIST.getNode(split[i]))) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); if (!townListTabCompletes.contains(split[i].toLowerCase())) - throw new TownyException(Translation.of("msg_error_invalid_comparator_town")); + throw new TownyException(Translatable.of("msg_error_invalid_comparator_town")); type = ComparatorType.valueOf(split[i].toUpperCase()); } else { - TownyMessaging.sendErrorMsg(sender, Translation.of("msg_error_missing_comparator")); + TownyMessaging.sendErrorMsg(sender, Translatable.of("msg_error_missing_comparator")); return; } comparatorSet = true; } else { // Is a case of someone using /t list, /t list # or /t list by {comparator} # if (pageSet) { - TownyMessaging.sendErrorMsg(sender, Translation.of("msg_error_too_many_pages")); + TownyMessaging.sendErrorMsg(sender, Translatable.of("msg_error_too_many_pages")); return; } try { page = Integer.parseInt(split[i]); if (page < 0) { - TownyMessaging.sendErrorMsg(sender, Translation.of("msg_err_negative")); + TownyMessaging.sendErrorMsg(sender, Translatable.of("msg_err_negative")); return; } else if (page == 0) { - TownyMessaging.sendErrorMsg(sender, Translation.of("msg_error_must_be_int")); + TownyMessaging.sendErrorMsg(sender, Translatable.of("msg_error_must_be_int")); return; } pageSet = true; } catch (NumberFormatException e) { - TownyMessaging.sendErrorMsg(sender, Translation.of("msg_error_must_be_int")); + TownyMessaging.sendErrorMsg(sender, Translatable.of("msg_error_must_be_int")); return; } } } if (page > total) { - TownyMessaging.sendErrorMsg(sender, Translation.of("LIST_ERR_NOT_ENOUGH_PAGES", total)); + TownyMessaging.sendErrorMsg(sender, Translatable.of("list_err_not_enough_pages", total)); return; } @@ -1407,19 +1409,19 @@ public void listTowns(CommandSender sender, String[] split) throws TownyExceptio townName = townName.append(Component.text(Colors.Gray + " - " + Colors.LightBlue + "(" + town.getResidents().size() + ")")); if (town.isOpen()) - townName = townName.append(Component.text(" " + Colors.LightBlue + Translation.of("status_title_open"))); + townName = townName.append(Component.text(" " + Colors.LightBlue + Translation.of("status_title_open", sender))); String spawnCost = "Free"; if (TownyEconomyHandler.isActive()) - spawnCost = ChatColor.RESET + Translation.of("msg_spawn_cost", TownyEconomyHandler.getFormattedBalance(town.getSpawnCost())); + spawnCost = ChatColor.RESET + Translation.of("msg_spawn_cost", sender, TownyEconomyHandler.getFormattedBalance(town.getSpawnCost())); - townName = townName.hoverEvent(HoverEvent.showText(Component.text(Translation.of("msg_click_spawn", town) + "\n" + spawnCost).color(NamedTextColor.GOLD))); + townName = townName.hoverEvent(HoverEvent.showText(Component.text(Translation.of("msg_click_spawn", sender, town) + "\n" + spawnCost).color(NamedTextColor.GOLD))); output.add(townName); } TownyMessaging.sendTownList(sender, output, finalType, pageNumber, totalNumber); } } catch (RuntimeException e) { - TownyMessaging.sendErrorMsg(sender, Translation.of("msg_error_comparator_failed")); + TownyMessaging.sendErrorMsg(sender, Translatable.of("msg_error_comparator_failed")); } } @@ -1442,7 +1444,7 @@ public static void townToggle(CommandSender sender, String[] split, boolean admi } if (!admin && !permSource.testPermission((Player) sender, PermissionNodes.TOWNY_COMMAND_TOWN_TOGGLE.getNode(split[0].toLowerCase()))) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); Optional choice = Optional.empty(); if (split.length == 2) { @@ -1461,9 +1463,9 @@ public static void townToggle(CommandSender sender, String[] split, boolean admi town.setPublic(preEvent.getFutureState()); // Send message feedback. - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_changed_public", town.isPublic() ? Translation.of("enabled") : Translation.of("disabled"))); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_changed_public", town.isPublic() ? Translatable.of("enabled") : Translatable.of("disabled"))); if (admin) - TownyMessaging.sendMsg(sender, Translation.of("msg_changed_public", town.isPublic() ? Translation.of("enabled") : Translation.of("disabled"))); + TownyMessaging.sendMsg(sender, Translatable.of("msg_changed_public", town.isPublic() ? Translatable.of("enabled") : Translatable.of("disabled"))); } else if (split[0].equalsIgnoreCase("pvp")) { @@ -1474,7 +1476,7 @@ public static void townToggle(CommandSender sender, String[] split, boolean admi // Test to see if the pvp cooldown timer is active for the town. if (TownySettings.getPVPCoolDownTime() > 0 && !admin && CooldownTimerTask.hasCooldown(town.getName(), CooldownType.PVP) && !permSource.testPermission((Player) sender, PermissionNodes.TOWNY_ADMIN.getNode())) - throw new TownyException(Translation.of("msg_err_cannot_toggle_pvp_x_seconds_remaining", CooldownTimerTask.getCooldownRemaining(town.getName(), CooldownType.PVP))); + throw new TownyException(Translatable.of("msg_err_cannot_toggle_pvp_x_seconds_remaining", CooldownTimerTask.getCooldownRemaining(town.getName(), CooldownType.PVP))); // Test to see if an outsider being inside of the Town would prevent toggling PVP. if (TownySettings.getOutsidersPreventPVPToggle()) { @@ -1482,7 +1484,7 @@ public static void townToggle(CommandSender sender, String[] split, boolean admi if (!TownyAPI.getInstance().isWilderness(target.getLocation()) && TownyAPI.getInstance().getTown(target.getLocation()).equals(town) && !town.hasResident(target.getName())) - throw new TownyException(Translation.of("msg_cant_toggle_pvp_outsider_in_town")); + throw new TownyException(Translatable.of("msg_cant_toggle_pvp_outsider_in_town")); } } } @@ -1498,9 +1500,9 @@ public static void townToggle(CommandSender sender, String[] split, boolean admi permChanged = true; // Send message feedback. - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_changed_pvp", town.getName(), town.isPVP() ? Translation.of("enabled") : Translation.of("disabled"))); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_changed_pvp", town.getName(), town.isPVP() ? Translatable.of("enabled") : Translatable.of("disabled"))); if (admin) - TownyMessaging.sendMsg(sender, Translation.of("msg_changed_pvp", town.getName(), town.isPVP() ? Translation.of("enabled") : Translation.of("disabled"))); + TownyMessaging.sendMsg(sender, Translatable.of("msg_changed_pvp", town.getName(), town.isPVP() ? Translatable.of("enabled") : Translatable.of("disabled"))); // Add a cooldown to PVP toggling. if (TownySettings.getPVPCoolDownTime() > 0 && !admin && !permSource.testPermission((Player) sender, PermissionNodes.TOWNY_ADMIN.getNode())) @@ -1523,9 +1525,9 @@ public static void townToggle(CommandSender sender, String[] split, boolean admi permChanged = true; // Send message feedback. - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_changed_expl", town.getName(), town.isBANG() ? Translation.of("enabled") : Translation.of("disabled"))); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_changed_expl", town.getName(), town.isBANG() ? Translatable.of("enabled") : Translatable.of("disabled"))); if (admin) - TownyMessaging.sendMsg(sender, Translation.of("msg_changed_expl", town.getName(), town.isBANG() ? Translation.of("enabled") : Translation.of("disabled"))); + TownyMessaging.sendMsg(sender, Translatable.of("msg_changed_expl", town.getName(), town.isBANG() ? Translatable.of("enabled") : Translatable.of("disabled"))); } else if (split[0].equalsIgnoreCase("fire")) { @@ -1544,9 +1546,9 @@ public static void townToggle(CommandSender sender, String[] split, boolean admi permChanged = true; // Send message feedback. - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_changed_fire", town.getName(), town.isFire() ? Translation.of("enabled") : Translation.of("disabled"))); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_changed_fire", town.getName(), town.isFire() ? Translatable.of("enabled") : Translatable.of("disabled"))); if (admin) - TownyMessaging.sendMsg(sender, Translation.of("msg_changed_fire", town.getName(), town.isFire() ? Translation.of("enabled") : Translation.of("disabled"))); + TownyMessaging.sendMsg(sender, Translatable.of("msg_changed_fire", town.getName(), town.isFire() ? Translatable.of("enabled") : Translatable.of("disabled"))); } else if (split[0].equalsIgnoreCase("mobs")) { @@ -1565,9 +1567,9 @@ public static void townToggle(CommandSender sender, String[] split, boolean admi permChanged = true; // Send message feedback. - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_changed_mobs", town.getName(), town.hasMobs() ? Translation.of("enabled") : Translation.of("disabled"))); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_changed_mobs", town.getName(), town.hasMobs() ? Translatable.of("enabled") : Translatable.of("disabled"))); if (admin) - TownyMessaging.sendMsg(sender, Translation.of("msg_changed_mobs", town.getName(), town.hasMobs() ? Translation.of("enabled") : Translation.of("disabled"))); + TownyMessaging.sendMsg(sender, Translatable.of("msg_changed_mobs", town.getName(), town.hasMobs() ? Translatable.of("enabled") : Translatable.of("disabled"))); } else if (split[0].equalsIgnoreCase("taxpercent")) { @@ -1581,14 +1583,14 @@ public static void townToggle(CommandSender sender, String[] split, boolean admi town.setTaxPercentage(preEvent.getFutureState()); // Send message feedback. - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_changed_taxpercent", town.isTaxPercentage() ? Translation.of("enabled") : Translation.of("disabled"))); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_changed_taxpercent", town.isTaxPercentage() ? Translatable.of("enabled") : Translatable.of("disabled"))); if (admin) - TownyMessaging.sendMsg(sender, Translation.of("msg_changed_taxpercent", town.isTaxPercentage() ? Translation.of("enabled") : Translation.of("disabled"))); + TownyMessaging.sendMsg(sender, Translatable.of("msg_changed_taxpercent", town.isTaxPercentage() ? Translatable.of("enabled") : Translatable.of("disabled"))); } else if (split[0].equalsIgnoreCase("open")) { if(town.isBankrupt()) - throw new TownyException(Translation.of("msg_err_bankrupt_town_cannot_toggle_open")); + throw new TownyException(Translatable.of("msg_err_bankrupt_town_cannot_toggle_open")); // Fire cancellable event directly before setting the toggle. TownToggleOpenEvent preEvent = new TownToggleOpenEvent(sender, town, admin, choice.orElse(!town.isOpen())); @@ -1600,24 +1602,24 @@ public static void townToggle(CommandSender sender, String[] split, boolean admi town.setOpen(preEvent.getFutureState()); // Send message feedback. - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_changed_open", town.isOpen() ? Translation.of("enabled") : Translation.of("disabled"))); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_changed_open", town.isOpen() ? Translatable.of("enabled") : Translatable.of("disabled"))); if (admin) - TownyMessaging.sendMsg(sender, Translation.of("msg_changed_open", town.isOpen() ? Translation.of("enabled") : Translation.of("disabled"))); + TownyMessaging.sendMsg(sender, Translatable.of("msg_changed_open", town.isOpen() ? Translatable.of("enabled") : Translatable.of("disabled"))); // Send a warning when toggling on (a reminder about plot permissions). if (town.isOpen()) - TownyMessaging.sendMsg(sender, Translation.of("msg_toggle_open_on_warning")); + TownyMessaging.sendMsg(sender, Translatable.of("msg_toggle_open_on_warning")); } else if (split[0].equalsIgnoreCase("neutral") || split[0].equalsIgnoreCase("peaceful")) { boolean peacefulState = choice.orElse(!town.isNeutral()); double cost = TownySettings.getTownNeutralityCost(); - if (town.isNeutral() && peacefulState) throw new TownyException(Translation.of("msg_town_already_peaceful")); - else if (!town.isNeutral() && !peacefulState) throw new TownyException(Translation.of("msg_town_already_not_peaceful")); + if (town.isNeutral() && peacefulState) throw new TownyException(Translatable.of("msg_town_already_peaceful")); + else if (!town.isNeutral() && !peacefulState) throw new TownyException(Translatable.of("msg_town_already_not_peaceful")); if (peacefulState && TownyEconomyHandler.isActive() && !town.getAccount().canPayFromHoldings(cost)) - throw new TownyException(Translation.of("msg_nation_cant_peaceful")); + throw new TownyException(Translatable.of("msg_nation_cant_peaceful")); // Fire cancellable event directly before setting the toggle. TownToggleNeutralEvent preEvent = new TownToggleNeutralEvent(sender, town, admin, choice.orElse(!town.isNeutral())); @@ -1628,16 +1630,16 @@ public static void townToggle(CommandSender sender, String[] split, boolean admi // If they setting neutral status on send a message confirming they paid something, if they did. if (peacefulState && TownyEconomyHandler.isActive() && cost > 0) { town.getAccount().withdraw(cost, "Peaceful Nation Cost"); - TownyMessaging.sendMsg(sender, Translation.of("msg_you_paid", TownyEconomyHandler.getFormattedBalance(cost))); + TownyMessaging.sendMsg(sender, Translatable.of("msg_you_paid", TownyEconomyHandler.getFormattedBalance(cost))); } // Set the toggle setting. town.setNeutral(preEvent.getFutureState()); // Send message feedback. - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_changed_peaceful", town.isNeutral() ? Translation.of("enabled") : Translation.of("disabled"))); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_changed_peaceful", town.isNeutral() ? Translatable.of("enabled") : Translatable.of("disabled"))); if (admin) - TownyMessaging.sendMsg(sender, Translation.of("msg_changed_peaceful", town.isNeutral() ? Translation.of("enabled") : Translation.of("disabled"))); + TownyMessaging.sendMsg(sender, Translatable.of("msg_changed_peaceful", town.isNeutral() ? Translatable.of("enabled") : Translatable.of("disabled"))); } else if (TownyCommandAddonAPI.hasCommand(CommandType.TOWN_TOGGLE, split[0])) { TownyCommandAddonAPI.getAddonCommand(CommandType.TOWN_TOGGLE, split[0]).execute(sender, "town", split); @@ -1688,7 +1690,7 @@ private static void parseUnJailCommand(CommandSender sender, Town town, String[] Resident jailedResident = TownyUniverse.getInstance().getResident(split[0]); if (jailedResident == null || !jailedResident.isJailed() || (jailedResident.isJailed() && !jailedResident.getJail().getTown().equals(town))) - throw new TownyException(Translation.of("msg_player_not_jailed_in_your_town")); + throw new TownyException(Translatable.of("msg_player_not_jailed_in_your_town")); JailUtil.unJailResident(jailedResident, UnJailReason.PARDONED); if (admin) @@ -1706,7 +1708,7 @@ private static void parseJailCommand(CommandSender sender, Town town, String[] s } if (!town.hasJails()) - throw new TownyException(Translation.of("msg_town_has_no_jails")); + throw new TownyException(Translatable.of("msg_town_has_no_jails")); int hours = 1; int jailNum = 1; @@ -1725,24 +1727,24 @@ private static void parseJailCommand(CommandSender sender, Town town, String[] s try { Resident jailedResident = TownyUniverse.getInstance().getResident(split[0]); if (jailedResident == null || !town.hasResident(jailedResident)) - throw new TownyException(Translation.of("msg_resident_not_your_town")); + throw new TownyException(Translatable.of("msg_resident_not_your_town")); if (TownySettings.newPlayerJailImmunity() > 0) { long time = (jailedResident.getRegistered() + TownySettings.newPlayerJailImmunity()) - System.currentTimeMillis(); if (time > 0) { - throw new TownyException(Translation.of("msg_resident_has_not_played_long_enough_to_be_jailed", jailedResident.getName(), TimeMgmt.getFormattedTimeValue(time))); + throw new TownyException(Translatable.of("msg_resident_has_not_played_long_enough_to_be_jailed", jailedResident.getName(), TimeMgmt.getFormattedTimeValue(time))); } } if (jailedResident.isJailed()) - throw new TownyException(Translation.of("msg_err_resident_is_already_jailed", jailedResident.getName())); + throw new TownyException(Translatable.of("msg_err_resident_is_already_jailed", jailedResident.getName())); Player jailedPlayer = jailedResident.getPlayer(); if (jailedPlayer == null) - throw new TownyException(Translation.of("msg_player_is_not_online", jailedResident.getName())); + throw new TownyException(Translatable.of("msg_player_is_not_online", jailedResident.getName())); if (!admin && jailedPlayer.getUniqueId().equals(((Player) sender).getUniqueId())) - throw new TownyException(Translation.of("msg_no_self_jailing")); + throw new TownyException(Translatable.of("msg_no_self_jailing")); if (split.length > 1) { try { @@ -1763,19 +1765,19 @@ private static void parseJailCommand(CommandSender sender, Town town, String[] s jailNum = Integer.valueOf(split[2]); jail = town.getJail(jailNum); if (jail == null) - throw new TownyException(Translation.of("msg_err_the_town_does_not_have_that_many_jails")); + throw new TownyException(Translatable.of("msg_err_the_town_does_not_have_that_many_jails")); } if (split.length == 4) { cell = Integer.valueOf(split[3]) - 1; if (!jail.hasJailCell(cell)) - throw new TownyException("msg_err_that_jail_plot_does_not_have_that_many_cells"); + throw new TownyException(Translatable.of("msg_err_that_jail_plot_does_not_have_that_many_cells")); } } JailUtil.jailResident(jailedResident, jail, cell, hours, JailReason.MAYOR, sender); if (admin) - TownyMessaging.sendMsg(sender, Translation.of("msg_player_has_been_sent_to_jail_number", jailedPlayer.getName(), jailNum)); + TownyMessaging.sendMsg(sender, Translatable.of("msg_player_has_been_sent_to_jail_number", jailedPlayer.getName(), jailNum)); } catch (NullPointerException e) { e.printStackTrace(); @@ -1790,11 +1792,11 @@ private static void parseJailListCommand(CommandSender sender, Town town, String if (sender instanceof Player) { player = (Player) sender; if (!TownyUniverse.getInstance().getPermissionSource().testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWN_JAIL_LIST.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); Resident resident = TownyAPI.getInstance().getResident(player.getUniqueId()); if (resident == null || !resident.hasTown()) - throw new TownyException(Translation.of("msg_err_must_belong_town")); + throw new TownyException(Translatable.of("msg_err_must_belong_town")); } int page = 1; @@ -1803,20 +1805,20 @@ private static void parseJailListCommand(CommandSender sender, Town town, String try { page = Integer.parseInt(args[0]); if (page < 0) { - throw new TownyException(Translation.of("msg_err_negative")); + throw new TownyException(Translatable.of("msg_err_negative")); } else if (page == 0) { - throw new TownyException(Translation.of("msg_error_must_be_int")); + throw new TownyException(Translatable.of("msg_error_must_be_int")); } } catch (NumberFormatException e) { - throw new TownyException(Translation.of("msg_error_must_be_int")); + throw new TownyException(Translatable.of("msg_error_must_be_int")); } } if (page > total) - throw new TownyException(Translation.of("LIST_ERR_NOT_ENOUGH_PAGES", total)); + throw new TownyException(Translatable.of("LIST_ERR_NOT_ENOUGH_PAGES", total)); TownyMessaging.sendJailList(player, town, page, total); } catch (TownyException e) { - TownyMessaging.sendErrorMsg(sender, e.getMessage()); + TownyMessaging.sendErrorMsg(sender, e.getMessage(sender)); } @@ -1830,22 +1832,22 @@ private static void toggleTest(Player player, Town town, String split) throws To if (split.contains("mobs")) { if (town.getHomeblockWorld().isForceTownMobs()) - throw new TownyException(Translation.of("msg_world_mobs")); + throw new TownyException(Translatable.of("msg_world_mobs")); } if (split.contains("fire")) { if (town.getHomeblockWorld().isForceFire()) - throw new TownyException(Translation.of("msg_world_fire")); + throw new TownyException(Translatable.of("msg_world_fire")); } if (split.contains("explosion")) { if (town.getHomeblockWorld().isForceExpl()) - throw new TownyException(Translation.of("msg_world_expl")); + throw new TownyException(Translatable.of("msg_world_expl")); } if (split.contains("pvp")) { if (town.getHomeblockWorld().isForcePVP()) - throw new TownyException(Translation.of("msg_world_pvp")); + throw new TownyException(Translatable.of("msg_world_pvp")); } } @@ -1868,43 +1870,38 @@ public void townRank(Player player, String[] split) throws TownyException { if (split.length < 3) throw new TownyException("Eg: /town rank add/remove [resident] [rank]"); - try { - resident = getResidentOrThrow(player.getUniqueId()); - target = getResidentOrThrow(split[1]); - town = resident.getTown(); + resident = getResidentOrThrow(player.getUniqueId()); + target = getResidentOrThrow(split[1]); + town = resident.getTown(); - if (town != target.getTown()) - throw new TownyException(Translation.of("msg_resident_not_your_town")); - - } catch (TownyException x) { - throw new TownyException(x.getMessage()); - } + if (town != target.getTown()) + throw new TownyException(Translatable.of("msg_resident_not_your_town")); /* * Match casing to an existing rank, returns null if Town rank doesn't exist. */ rank = TownyPerms.matchTownRank(split[2]); if (rank == null) - throw new TownyException(Translation.of("msg_unknown_rank_available_ranks", split[2], StringMgmt.join(TownyPerms.getTownRanks(), ", "))); + throw new TownyException(Translatable.of("msg_unknown_rank_available_ranks", split[2], StringMgmt.join(TownyPerms.getTownRanks(), ", "))); /* * Only allow the player to assign ranks if they have the grant perm * for it. */ if (!TownyUniverse.getInstance().getPermissionSource().testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWN_RANK.getNode(rank.toLowerCase()))) - throw new TownyException(Translation.of("msg_no_permission_to_give_rank")); + throw new TownyException(Translatable.of("msg_no_permission_to_give_rank")); if (split[0].equalsIgnoreCase("add")) { if (target.addTownRank(rank)) { if (BukkitTools.isOnline(target.getName())) { - TownyMessaging.sendMsg(target, Translation.of("msg_you_have_been_given_rank", "Town", rank)); + TownyMessaging.sendMsg(target, Translatable.of("msg_you_have_been_given_rank", "Town", rank)); plugin.deleteCache(TownyAPI.getInstance().getPlayer(target)); } - TownyMessaging.sendMsg(player, Translation.of("msg_you_have_given_rank", "Town", rank, target.getName())); + TownyMessaging.sendMsg(player, Translatable.of("msg_you_have_given_rank", "Town", rank, target.getName())); } else { // Must already have this rank - TownyMessaging.sendMsg(player, Translation.of("msg_resident_already_has_rank", target.getName(), "Town")); + TownyMessaging.sendMsg(player, Translatable.of("msg_resident_already_has_rank", target.getName(), "Town")); return; } @@ -1912,18 +1909,18 @@ public void townRank(Player player, String[] split) throws TownyException { if (target.removeTownRank(rank)) { if (BukkitTools.isOnline(target.getName())) { - TownyMessaging.sendMsg(target, Translation.of("msg_you_have_had_rank_taken", "Town", rank)); + TownyMessaging.sendMsg(target, Translatable.of("msg_you_have_had_rank_taken", "Town", rank)); plugin.deleteCache(TownyAPI.getInstance().getPlayer(target)); } - TownyMessaging.sendMsg(player, Translation.of("msg_you_have_taken_rank_from", "Town", rank, target.getName())); + TownyMessaging.sendMsg(player, Translatable.of("msg_you_have_taken_rank_from", "Town", rank, target.getName())); } else { // Doesn't have this rank - TownyMessaging.sendMsg(player, Translation.of("msg_resident_doesnt_have_rank", target.getName(), "Town")); + TownyMessaging.sendMsg(player, Translatable.of("msg_resident_doesnt_have_rank", target.getName(), "Town")); return; } } else { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_invalid_property", split[0])); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_invalid_property", split[0])); return; } @@ -1957,24 +1954,24 @@ public static void townSet(Player player, String[] split, boolean admin, Town to if (town.hasNation()) nation = town.getNation(); } catch (TownyException x) { - TownyMessaging.sendErrorMsg(player, x.getMessage()); + TownyMessaging.sendErrorMsg(player, x.getMessage(player)); return; } if (split[0].equalsIgnoreCase("board")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWN_SET_BOARD.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); if (split.length < 2) { - TownyMessaging.sendErrorMsg(player, "Eg: /town set board " + Translation.of("town_help_9")); + TownyMessaging.sendErrorMsg(player, "Eg: /town set board " + Translation.of("town_help_9", player)); return; } else { String line = StringMgmt.join(StringMgmt.remFirstArg(split), " "); if (!line.equals("none")) { if (!NameValidation.isValidString(line)) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_invalid_string_board_not_set")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_invalid_string_board_not_set")); return; } // TownyFormatter shouldn't be given any string longer than 159, or it has trouble splitting lines. @@ -1989,7 +1986,7 @@ public static void townSet(Player player, String[] split, boolean admin, Town to } else if (split[0].equalsIgnoreCase("title")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWN_SET_TITLE.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); // Give the resident a title if (split.length < 2) @@ -1998,13 +1995,13 @@ public static void townSet(Player player, String[] split, boolean admin, Town to resident = getResidentOrThrow(split[1]); if (!admin && !CombatUtil.isSameTown(getResidentOrThrow(player.getUniqueId()), resident)) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_not_same_town", resident.getName())); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_not_same_town", resident.getName())); return; } String title = StringMgmt.join(NameValidation.checkAndFilterArray(StringMgmt.remArgs(split, 2))); if (title.length() > TownySettings.getMaxTitleLength()) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_input_too_long")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_input_too_long")); return; } @@ -2012,17 +2009,17 @@ public static void townSet(Player player, String[] split, boolean admin, Town to resident.save(); if (resident.hasTitle()) - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_set_title", resident.getName(), Colors.translateColorCodes(resident.getTitle()))); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_set_title", resident.getName(), Colors.translateColorCodes(resident.getTitle()))); else - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_clear_title_surname", "Title", resident.getName())); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_clear_title_surname", "Title", resident.getName())); } else if (split[0].equalsIgnoreCase("taxpercentcap")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWN_SET_TAXPERCENTCAP.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); if (!town.isTaxPercentage()) { // msg_max_tax_amount_only_for_percent - throw new TownyException(Translation.of("msg_max_tax_amount_only_for_percent")); + throw new TownyException(Translatable.of("msg_max_tax_amount_only_for_percent")); } if (split.length < 2) { @@ -2033,12 +2030,12 @@ public static void townSet(Player player, String[] split, boolean admin, Town to double amount = Double.parseDouble(split[1]); town.setMaxPercentTaxAmount(amount); - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_town_set_tax_max_percent_amount", player.getName(), TownyEconomyHandler.getFormattedBalance(town.getMaxPercentTaxAmount()))); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_town_set_tax_max_percent_amount", player.getName(), TownyEconomyHandler.getFormattedBalance(town.getMaxPercentTaxAmount()))); } else if (split[0].equalsIgnoreCase("surname")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWN_SET_SURNAME.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); // Give the resident a title if (split.length < 2) @@ -2047,13 +2044,13 @@ public static void townSet(Player player, String[] split, boolean admin, Town to resident = getResidentOrThrow(split[1]); if (!admin && !CombatUtil.isSameTown(getResidentOrThrow(player.getUniqueId()), resident)) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_not_same_town", resident.getName())); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_not_same_town", resident.getName())); return; } String surname = StringMgmt.join(NameValidation.checkAndFilterArray(StringMgmt.remArgs(split, 2))); if (surname.length() > TownySettings.getMaxTitleLength()) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_input_too_long")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_input_too_long")); return; } @@ -2061,9 +2058,9 @@ public static void townSet(Player player, String[] split, boolean admin, Town to resident.save(); if (resident.hasSurname()) - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_set_surname", resident.getName(), Colors.translateColorCodes(resident.getSurname()))); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_set_surname", resident.getName(), Colors.translateColorCodes(resident.getSurname()))); else - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_clear_title_surname", "Surname", resident.getName())); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_clear_title_surname", "Surname", resident.getName())); } else { @@ -2072,7 +2069,7 @@ public static void townSet(Player player, String[] split, boolean admin, Town to * Test we have permission to use this command. */ if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWN_SET.getNode(split[0].toLowerCase()))) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); if (split[0].equalsIgnoreCase("mayor")) { @@ -2082,12 +2079,12 @@ public static void townSet(Player player, String[] split, boolean admin, Town to } else try { if (!resident.isMayor()) - throw new TownyException(Translation.of("msg_not_mayor")); + throw new TownyException(Translatable.of("msg_not_mayor")); Resident oldMayor = town.getMayor(); Resident newMayor = getResidentOrThrow(split[1]); if (!town.hasResident(split[1])) - throw new TownyException(Translation.of("msg_err_mayor_doesnt_belong_to_town")); + throw new TownyException(Translatable.of("msg_err_mayor_doesnt_belong_to_town")); TownMayorChangeEvent townMayorChangeEvent = new TownMayorChangeEvent(oldMayor, newMayor); Bukkit.getPluginManager().callEvent(townMayorChangeEvent); @@ -2110,10 +2107,10 @@ public static void townSet(Player player, String[] split, boolean admin, Town to plugin.deleteCache(oldMayor.getName()); plugin.deleteCache(newMayor.getName()); if (admin) - TownyMessaging.sendMessage(player, Translation.of("msg_new_mayor", newMayor.getName())); - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_new_mayor", newMayor.getName())); + TownyMessaging.sendMessage(player, Translatable.of("msg_new_mayor", newMayor.getName())); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_new_mayor", newMayor.getName())); } catch (TownyException e) { - TownyMessaging.sendErrorMsg(player, e.getMessage()); + TownyMessaging.sendErrorMsg(player, e.getMessage(player)); return; } @@ -2126,23 +2123,23 @@ public static void townSet(Player player, String[] split, boolean admin, Town to try { Double amount = Double.parseDouble(split[1]); if (amount < 0) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_negative_money")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_negative_money")); return; } if (town.isTaxPercentage() && amount > 100) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_not_percentage")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_not_percentage")); return; } if (TownySettings.getTownDefaultTaxMinimumTax() > amount) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_tax_minimum_not_met", TownySettings.getTownDefaultTaxMinimumTax())); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_tax_minimum_not_met", TownySettings.getTownDefaultTaxMinimumTax())); return; } town.setTaxes(amount); if (admin) - TownyMessaging.sendMessage(player, Translation.of("msg_town_set_tax", player.getName(), town.getTaxes())); - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_town_set_tax", player.getName(), town.getTaxes())); + TownyMessaging.sendMessage(player, Translatable.of("msg_town_set_tax", player.getName(), town.getTaxes())); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_town_set_tax", player.getName(), town.getTaxes())); } catch (NumberFormatException e) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_error_must_be_num")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_error_must_be_num")); return; } } @@ -2156,15 +2153,15 @@ public static void townSet(Player player, String[] split, boolean admin, Town to try { Double amount = Double.parseDouble(split[1]); if (amount < 0) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_negative_money")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_negative_money")); return; } town.setPlotTax(amount); if (admin) - TownyMessaging.sendMessage(player, Translation.of("msg_town_set_plottax", player.getName(), town.getPlotTax())); - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_town_set_plottax", player.getName(), town.getPlotTax())); + TownyMessaging.sendMessage(player, Translatable.of("msg_town_set_plottax", player.getName(), town.getPlotTax())); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_town_set_plottax", player.getName(), town.getPlotTax())); } catch (NumberFormatException e) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_error_must_be_num")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_error_must_be_num")); return; } } @@ -2177,15 +2174,15 @@ public static void townSet(Player player, String[] split, boolean admin, Town to try { Double amount = Double.parseDouble(split[1]); if (amount < 0) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_negative_money")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_negative_money")); return; } town.setCommercialPlotTax(amount); if (admin) - TownyMessaging.sendMessage(player, Translation.of("msg_town_set_alttax", player.getName(), "shop", town.getCommercialPlotTax())); - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_town_set_alttax", player.getName(), "shop", town.getCommercialPlotTax())); + TownyMessaging.sendMessage(player, Translatable.of("msg_town_set_alttax", player.getName(), "shop", town.getCommercialPlotTax())); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_town_set_alttax", player.getName(), "shop", town.getCommercialPlotTax())); } catch (NumberFormatException e) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_error_must_be_num")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_error_must_be_num")); return; } } @@ -2199,15 +2196,15 @@ public static void townSet(Player player, String[] split, boolean admin, Town to try { Double amount = Double.parseDouble(split[1]); if (amount < 0) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_negative_money")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_negative_money")); return; } town.setEmbassyPlotTax(amount); if (admin) - TownyMessaging.sendMessage(player, Translation.of("msg_town_set_alttax", player.getName(), "embassy", town.getEmbassyPlotTax())); - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_town_set_alttax", player.getName(), "embassy", town.getEmbassyPlotTax())); + TownyMessaging.sendMessage(player, Translatable.of("msg_town_set_alttax", player.getName(), "embassy", town.getEmbassyPlotTax())); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_town_set_alttax", player.getName(), "embassy", town.getEmbassyPlotTax())); } catch (NumberFormatException e) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_error_must_be_num")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_error_must_be_num")); return; } } @@ -2221,15 +2218,15 @@ public static void townSet(Player player, String[] split, boolean admin, Town to try { Double amount = Double.parseDouble(split[1]); if (amount < 0) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_negative_money")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_negative_money")); return; } town.setPlotPrice(amount); if (admin) - TownyMessaging.sendMessage(player, Translation.of("msg_town_set_plotprice", player.getName(), town.getPlotPrice())); - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_town_set_plotprice", player.getName(), town.getPlotPrice())); + TownyMessaging.sendMessage(player, Translatable.of("msg_town_set_plotprice", player.getName(), town.getPlotPrice())); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_town_set_plotprice", player.getName(), town.getPlotPrice())); } catch (NumberFormatException e) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_error_must_be_num")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_error_must_be_num")); return; } } @@ -2243,15 +2240,15 @@ public static void townSet(Player player, String[] split, boolean admin, Town to try { Double amount = Double.parseDouble(split[1]); if (amount < 0) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_negative_money")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_negative_money")); return; } town.setCommercialPlotPrice(amount); if (admin) - TownyMessaging.sendMessage(player, Translation.of("msg_town_set_altprice", player.getName(), "shop", town.getCommercialPlotPrice())); - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_town_set_altprice", player.getName(), "shop", town.getCommercialPlotPrice())); + TownyMessaging.sendMessage(player, Translatable.of("msg_town_set_altprice", player.getName(), "shop", town.getCommercialPlotPrice())); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_town_set_altprice", player.getName(), "shop", town.getCommercialPlotPrice())); } catch (NumberFormatException e) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_error_must_be_num")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_error_must_be_num")); return; } } @@ -2264,15 +2261,15 @@ public static void townSet(Player player, String[] split, boolean admin, Town to try { Double amount = Double.parseDouble(split[1]); if (amount < 0) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_negative_money")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_negative_money")); return; } town.setEmbassyPlotPrice(amount); if (admin) - TownyMessaging.sendMessage(player, Translation.of("msg_town_set_altprice", player.getName(), "embassy", town.getEmbassyPlotPrice())); - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_town_set_altprice", player.getName(), "embassy", town.getEmbassyPlotPrice())); + TownyMessaging.sendMessage(player, Translatable.of("msg_town_set_altprice", player.getName(), "embassy", town.getEmbassyPlotPrice())); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_town_set_altprice", player.getName(), "embassy", town.getEmbassyPlotPrice())); } catch (NumberFormatException e) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_error_must_be_num")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_error_must_be_num")); return; } } @@ -2286,19 +2283,19 @@ public static void townSet(Player player, String[] split, boolean admin, Town to try { Double amount = Double.parseDouble(split[1]); if (amount < 0) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_negative_money")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_negative_money")); return; } if (TownySettings.getSpawnTravelCost() < amount) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_cannot_set_spawn_cost_more_than", TownySettings.getSpawnTravelCost())); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_cannot_set_spawn_cost_more_than", TownySettings.getSpawnTravelCost())); return; } town.setSpawnCost(amount); if (admin) - TownyMessaging.sendMessage(player, Translation.of("msg_spawn_cost_set_to", player.getName(), Translation.of("town_sing"), split[1])); - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_spawn_cost_set_to", player.getName(), Translation.of("town_sing"), split[1])); + TownyMessaging.sendMessage(player, Translatable.of("msg_spawn_cost_set_to", player.getName(), Translatable.of("town_sing"), split[1])); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_spawn_cost_set_to", player.getName(), Translatable.of("town_sing"), split[1])); } catch (NumberFormatException e) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_error_must_be_num")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_error_must_be_num")); return; } } @@ -2313,21 +2310,21 @@ public static void townSet(Player player, String[] split, boolean admin, Town to String name = split[1]; if(NameValidation.isBlacklistName(name)) - throw new TownyException(Translation.of("msg_invalid_name")); + throw new TownyException(Translatable.of("msg_invalid_name")); if (TownySettings.getTownAutomaticCapitalisationEnabled()) name = capitalizeString(name); if(TownyEconomyHandler.isActive() && TownySettings.getTownRenameCost() > 0) { - if (!town.getAccount().canPayFromHoldings(TownySettings.getTownRenameCost())) - throw new TownyException(Translation.of("msg_err_no_money", TownyEconomyHandler.getFormattedBalance(TownySettings.getTownRenameCost()))); + if (!town.getAccount().canPayFromHoldings(TownySettings.getTownRenameCost())) + throw new TownyException(Translatable.of("msg_err_no_money", TownyEconomyHandler.getFormattedBalance(TownySettings.getTownRenameCost()))); final Town finalTown = town; final String finalName = name; Confirmation confirmation = Confirmation.runOnAccept(() -> { // Check if town can still pay rename cost if (!finalTown.getAccount().canPayFromHoldings(TownySettings.getTownRenameCost())) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_no_money", TownyEconomyHandler.getFormattedBalance(TownySettings.getTownRenameCost()))); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_no_money", TownyEconomyHandler.getFormattedBalance(TownySettings.getTownRenameCost()))); return; } @@ -2335,7 +2332,7 @@ public static void townSet(Player player, String[] split, boolean admin, Town to townRename(player, finalTown, finalName); }) - .setTitle(Translation.of("msg_confirm_purchase", TownyEconomyHandler.getFormattedBalance(TownySettings.getTownRenameCost()))) + .setTitle(Translation.of("msg_confirm_purchase", player, TownyEconomyHandler.getFormattedBalance(TownySettings.getTownRenameCost()))) .build(); ConfirmationHandler.sendConfirmation(player, confirmation); @@ -2350,18 +2347,18 @@ public static void townSet(Player player, String[] split, boolean admin, Town to else if (split[1].equalsIgnoreCase("clear")) { town.setTag(" "); if (admin) - TownyMessaging.sendMessage(player, Translation.of("msg_reset_town_tag", player.getName())); - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_reset_town_tag", player.getName())); + TownyMessaging.sendMessage(player, Translatable.of("msg_reset_town_tag", player.getName())); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_reset_town_tag", player.getName())); } else { if (split[1].length() > TownySettings.getMaxTagLength()) - throw new TownyException(Translation.of("msg_err_tag_too_long")); + throw new TownyException(Translatable.of("msg_err_tag_too_long")); town.setTag(NameValidation.checkAndFilterName(split[1])); if (admin) - TownyMessaging.sendMessage(player, Translation.of("msg_set_town_tag", player.getName(), town.getTag())); - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_set_town_tag", player.getName(), town.getTag())); + TownyMessaging.sendMessage(player, Translatable.of("msg_set_town_tag", player.getName(), town.getTag())); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_set_town_tag", player.getName(), town.getTag())); } } else if (split[0].equalsIgnoreCase("homeblock")) { @@ -2377,16 +2374,16 @@ else if (split[1].equalsIgnoreCase("clear")) { try { TownBlock townBlock = TownyAPI.getInstance().getTownBlock(player.getLocation()); if (townBlock == null || !townBlock.hasTown() || !townBlock.isOutpost()) - throw new TownyException(Translation.of("msg_err_location_is_not_within_an_outpost_plot")); + throw new TownyException(Translatable.of("msg_err_location_is_not_within_an_outpost_plot")); if (townBlock.getTownOrNull().equals(town)) { town.addOutpostSpawn(player.getLocation()); - TownyMessaging.sendMsg(player, Translation.of("msg_set_outpost_spawn")); + TownyMessaging.sendMsg(player, Translatable.of("msg_set_outpost_spawn")); } else - TownyMessaging.sendErrorMsg(player, Translation.of("msg_not_own_area")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_not_own_area")); } catch (TownyException e) { - TownyMessaging.sendErrorMsg(player, e.getMessage()); + TownyMessaging.sendErrorMsg(player, e.getMessage(player)); return; } @@ -2395,8 +2392,8 @@ else if (split[1].equalsIgnoreCase("clear")) { // Make sure we are allowed to set these permissions. try { toggleTest(player, town, StringMgmt.join(split, " ")); - } catch (Exception e) { - TownyMessaging.sendErrorMsg(player, e.getMessage()); + } catch (TownyException e) { + TownyMessaging.sendErrorMsg(player, e.getMessage(player)); return; } String[] newSplit = StringMgmt.remFirstArg(split); @@ -2416,18 +2413,18 @@ else if (split[1].equalsIgnoreCase("clear")) { if (!TownySettings.getTownColorsMap().containsKey(line.toLowerCase())) { String allowedColorsListAsString = TownySettings.getTownColorsMap().keySet().toString(); - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_invalid_nation_map_color", allowedColorsListAsString)); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_invalid_nation_map_color", allowedColorsListAsString)); return; } town.setMapColorHexCode(TownySettings.getTownColorsMap().get(line.toLowerCase())); - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_town_map_color_changed", line.toLowerCase())); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_town_map_color_changed", line.toLowerCase())); } } else if (TownyCommandAddonAPI.hasCommand(CommandType.TOWN_SET, split[0])) { TownyCommandAddonAPI.getAddonCommand(CommandType.TOWN_SET, split[0]).execute(player, "town", split); } else { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_invalid_property", "town")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_invalid_property", "town")); return; } } @@ -2444,13 +2441,13 @@ private static void setPrimaryJail(Player player, Town town) { try { TownBlock tb = TownyAPI.getInstance().getTownBlock(player.getLocation()); if (tb == null || !tb.isJail()) - throw new TownyException("msg_err_location_is_not_within_a_jail_plot"); + throw new TownyException(Translatable.of("msg_err_location_is_not_within_a_jail_plot")); Jail jail = tb.getJail(); town.setPrimaryJail(jail); - TownyMessaging.sendMsg(player, Translation.of("msg_primary_jail_set_for_town")); + TownyMessaging.sendMsg(player, Translatable.of("msg_primary_jail_set_for_town")); } catch (TownyException e) { - TownyMessaging.sendErrorMsg(player, Translation.of(e.getMessage())); + TownyMessaging.sendErrorMsg(player, e.getMessage(player)); } } @@ -2463,33 +2460,33 @@ private static void parseTownSetHomeblock(Player player, Town town, @Nullable Na try { if (world == null || townBlock == null || !townBlock.hasTown() || townBlock.getTownOrNull() != town) - throw new TownyException(Translation.of("msg_area_not_own")); + throw new TownyException(Translatable.of("msg_area_not_own")); if (TownySettings.getHomeBlockMovementCooldownHours() > 0 && town.getMovedHomeBlockAt() > 0 && TimeTools.getHours(System.currentTimeMillis() - town.getMovedHomeBlockAt()) < TownySettings.getHomeBlockMovementCooldownHours()) { long timeRemaining = ((town.getMovedHomeBlockAt() + TimeTools.getMillis(TownySettings.getHomeBlockMovementCooldownHours() + "h")) - System.currentTimeMillis()); - throw new TownyException(Translation.of("msg_err_you_have_moved_your_homeblock_too_recently_wait_x", TimeMgmt.getFormattedTimeValue(timeRemaining))); + throw new TownyException(Translatable.of("msg_err_you_have_moved_your_homeblock_too_recently_wait_x", TimeMgmt.getFormattedTimeValue(timeRemaining))); } if (TownyAPI.getInstance().isWarTime()) - throw new TownyException(Translation.of("msg_war_cannot_do")); + throw new TownyException(Translatable.of("msg_war_cannot_do")); if (town.hasHomeBlock() && town.getHomeBlock().getWorldCoord().equals(townBlock.getWorldCoord())) - throw new TownyException(Translation.of("msg_err_homeblock_already_set_here")); + throw new TownyException(Translatable.of("msg_err_homeblock_already_set_here")); final int minDistanceFromHomeblock = world.getMinDistanceFromOtherTowns(coord, town); if (minDistanceFromHomeblock < TownySettings.getMinDistanceFromTownHomeblocks()) - throw new TownyException(Translation.of("msg_too_close2", Translation.of("homeblock"))); + throw new TownyException(Translatable.of("msg_too_close2", Translatable.of("homeblock"))); if (TownySettings.getMaxDistanceBetweenHomeblocks() > 0) if ((minDistanceFromHomeblock > TownySettings.getMaxDistanceBetweenHomeblocks()) && world.hasTowns()) - throw new TownyException(Translation.of("msg_too_far")); + throw new TownyException(Translatable.of("msg_too_far")); if (TownySettings.getHomeBlockMovementDistanceInTownBlocks() > 0) { double distance = MathUtil.distance(town.getHomeBlock().getX(), townBlock.getX(), town.getHomeBlock().getZ(), townBlock.getZ()); if (distance > TownySettings.getHomeBlockMovementDistanceInTownBlocks()) - throw new TownyException(Translation.of("msg_err_you_cannot_move_your_homeblock_this_far_limit_is_x_you_are_x", TownySettings.getHomeBlockMovementDistanceInTownBlocks(), Math.floor(distance))); + throw new TownyException(Translatable.of("msg_err_you_cannot_move_your_homeblock_this_far_limit_is_x_you_are_x", TownySettings.getHomeBlockMovementDistanceInTownBlocks(), Math.floor(distance))); } TownPreSetHomeBlockEvent preEvent = new TownPreSetHomeBlockEvent(town, townBlock, player); @@ -2515,12 +2512,12 @@ private static void parseTownSetHomeblock(Player player, Town town, @Nullable Na finalTown.setSpawn(playerLocation); town.setMovedHomeBlockAt(System.currentTimeMillis()); finalNation.recheckTownDistance(); - TownyMessaging.sendMsg(player, Translation.of("msg_set_town_home", coord.toString())); + TownyMessaging.sendMsg(player, Translatable.of("msg_set_town_home", coord.toString())); } catch (TownyException e) { - TownyMessaging.sendErrorMsg(player, e.getMessage()); + TownyMessaging.sendErrorMsg(player, e.getMessage(player)); return; } - }).setTitle(Translation.of("msg_warn_the_following_towns_will_be_removed_from_your_nation", StringMgmt.join(removedTowns, ", "))) + }).setTitle(Translation.of("msg_warn_the_following_towns_will_be_removed_from_your_nation", player, StringMgmt.join(removedTowns, ", "))) .sendTo(player); // Phew, the nation won't lose any towns, let's do this. @@ -2528,18 +2525,18 @@ private static void parseTownSetHomeblock(Player player, Town town, @Nullable Na town.setHomeBlock(townBlock); town.setSpawn(player.getLocation()); town.setMovedHomeBlockAt(System.currentTimeMillis()); - TownyMessaging.sendMsg(player, Translation.of("msg_set_town_home", coord.toString())); + TownyMessaging.sendMsg(player, Translatable.of("msg_set_town_home", coord.toString())); } // No nation to check proximity for/proximity isn't tested anyways. } else { town.setHomeBlock(townBlock); town.setSpawn(player.getLocation()); town.setMovedHomeBlockAt(System.currentTimeMillis()); - TownyMessaging.sendMsg(player, Translation.of("msg_set_town_home", coord.toString())); + TownyMessaging.sendMsg(player, Translatable.of("msg_set_town_home", coord.toString())); } } catch (TownyException e) { - TownyMessaging.sendErrorMsg(player, e.getMessage()); + TownyMessaging.sendErrorMsg(player, e.getMessage(player)); return; } } @@ -2548,13 +2545,13 @@ private static void parseTownSetSpawn(Player player, Town town) { try { // Towns can only set their spawn if they have a homeblock. if (!town.hasHomeBlock()) - throw new TownyException(Translation.of("msg_err_homeblock_has_not_been_set")); + throw new TownyException(Translatable.of("msg_err_homeblock_has_not_been_set")); TownBlock tb = TownyAPI.getInstance().getTownBlock(player.getLocation()); // The townblock needs to exist, belong to the town and also be inside of the homeblock. if (tb == null || !tb.hasTown() || !tb.getTownOrNull().equals(town) || !town.getHomeBlock().getWorldCoord().equals(tb.getWorldCoord())) - throw new TownyException(Translation.of("msg_err_spawn_not_within_homeblock")); + throw new TownyException(Translatable.of("msg_err_spawn_not_within_homeblock")); // Throw unset event, for SpawnPoint particles. if (town.getSpawnOrNull() != null) @@ -2562,9 +2559,9 @@ private static void parseTownSetSpawn(Player player, Town town) { // Set the spawn point and send feedback message. town.setSpawn(player.getLocation()); - TownyMessaging.sendMsg(player, Translation.of("msg_set_town_spawn")); + TownyMessaging.sendMsg(player, Translatable.of("msg_set_town_spawn")); } catch (TownyException e) { - TownyMessaging.sendErrorMsg(player, e.getMessage()); + TownyMessaging.sendErrorMsg(player, e.getMessage(player)); return; } } @@ -2572,7 +2569,7 @@ private static void parseTownSetSpawn(Player player, Town town) { public void townBuy(Player player, String[] split) { if (!TownyEconomyHandler.isActive()) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_no_economy")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_no_economy")); return; } @@ -2583,7 +2580,7 @@ public void townBuy(Player player, String[] split) { town = resident.getTown(); } catch (TownyException x) { - TownyMessaging.sendErrorMsg(player, x.getMessage()); + TownyMessaging.sendErrorMsg(player, x.getMessage(player)); return; } @@ -2609,10 +2606,10 @@ public void townBuy(Player player, String[] split) { if (split.length == 2) townBuyBonusTownBlocks(town, Integer.parseInt(split[1].trim()), player); else - throw new TownyException(Translation.of("msg_must_specify_amnt", "/town buy bonus")); + throw new TownyException(Translatable.of("msg_must_specify_amnt", "/town buy bonus")); } } catch (TownyException x) { - TownyMessaging.sendErrorMsg(player, x.getMessage()); + TownyMessaging.sendErrorMsg(player, x.getMessage(player)); } } } @@ -2628,7 +2625,7 @@ public void townBuy(Player player, String[] split) { public static void townBuyBonusTownBlocks(Town town, int inputN, Player player) throws TownyException { if (inputN < 0) - throw new TownyException(Translation.of("msg_err_negative")); + throw new TownyException(Translatable.of("msg_err_negative")); int current = town.getPurchasedBlocks(); @@ -2644,18 +2641,18 @@ public static void townBuyBonusTownBlocks(Town town, int inputN, Player player) double cost = town.getBonusBlockCostN(n); // Test if the town can pay and throw economy exception if not. if (!town.getAccount().canPayFromHoldings(cost)) - throw new TownyException(Translation.of("msg_no_funds_to_buy", n, Translation.of("bonus_townblocks"), TownyEconomyHandler.getFormattedBalance(cost))); + throw new TownyException(Translatable.of("msg_no_funds_to_buy", n, Translatable.of("bonus_townblocks"), TownyEconomyHandler.getFormattedBalance(cost))); Confirmation confirmation = Confirmation.runOnAccept(() -> { if (!town.getAccount().withdraw(cost, String.format("Town Buy Bonus (%d)", n))) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_no_funds_to_buy", n, Translation.of("bonus_townblocks"), TownyEconomyHandler.getFormattedBalance(cost))); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_no_funds_to_buy", n, Translatable.of("bonus_townblocks"), TownyEconomyHandler.getFormattedBalance(cost))); return; } town.addPurchasedBlocks(n); - TownyMessaging.sendMsg(player, Translation.of("msg_buy", n, Translation.of("bonus_townblocks"), TownyEconomyHandler.getFormattedBalance(cost))); + TownyMessaging.sendMsg(player, Translatable.of("msg_buy", n, Translatable.of("bonus_townblocks"), TownyEconomyHandler.getFormattedBalance(cost))); town.save(); }) - .setTitle(Translation.of("msg_confirm_purchase", TownyEconomyHandler.getFormattedBalance(cost))) + .setTitle(Translation.of("msg_confirm_purchase", player, TownyEconomyHandler.getFormattedBalance(cost))) .build(); ConfirmationHandler.sendConfirmation(player, confirmation); } @@ -2681,10 +2678,10 @@ public static void newTown(Player player, String name, Resident resident, boolea try { if (TownyAPI.getInstance().isWarTime()) - throw new TownyException(Translation.of("msg_war_cannot_do")); + throw new TownyException(Translatable.of("msg_war_cannot_do")); if (TownySettings.hasTownLimit() && dataSource.getTowns().size() >= TownySettings.getTownLimit()) - throw new TownyException(Translation.of("msg_err_universe_limit")); + throw new TownyException(Translatable.of("msg_err_universe_limit")); if (TownySettings.getTownAutomaticCapitalisationEnabled()) name = capitalizeString(name); @@ -2698,36 +2695,36 @@ public static void newTown(Player player, String name, Resident resident, boolea } if ((filteredName == null) || dataSource.hasTown(filteredName)) - throw new TownyException(Translation.of("msg_err_invalid_name", name)); + throw new TownyException(Translatable.of("msg_err_invalid_name", name)); name = filteredName; if (resident.hasTown()) - throw new TownyException(Translation.of("msg_err_already_res", resident.getName())); + throw new TownyException(Translatable.of("msg_err_already_res", resident.getName())); if (!TownyAPI.getInstance().isTownyWorld(player.getWorld())) - throw new TownyException(Translation.of("msg_set_use_towny_off")); + throw new TownyException(Translatable.of("msg_set_use_towny_off")); TownyWorld world = TownyAPI.getInstance().getTownyWorld(player.getWorld().getName()); if (!world.isClaimable()) - throw new TownyException(Translation.of("msg_not_claimable")); + throw new TownyException(Translatable.of("msg_not_claimable")); Coord key = Coord.parseCoord(player); if (!TownyAPI.getInstance().isWilderness(player.getLocation())) - throw new TownyException(Translation.of("msg_already_claimed_1", key)); + throw new TownyException(Translatable.of("msg_already_claimed_1", key)); if ((world.getMinDistanceFromOtherTownsPlots(key) < TownySettings.getMinDistanceFromTownPlotblocks())) - throw new TownyException(Translation.of("msg_too_close2", Translation.of("townblock"))); + throw new TownyException(Translatable.of("msg_too_close2", Translatable.of("townblock"))); final int minDistFromOtherTowns = world.getMinDistanceFromOtherTowns(key); if (minDistFromOtherTowns < TownySettings.getMinDistanceFromTownHomeblocks()) - throw new TownyException(Translation.of("msg_too_close2", Translation.of("homeblock"))); + throw new TownyException(Translatable.of("msg_too_close2", Translatable.of("homeblock"))); if (TownySettings.getMaxDistanceBetweenHomeblocks() > 0) if ((minDistFromOtherTowns > TownySettings.getMaxDistanceBetweenHomeblocks()) && world.hasTowns()) - throw new TownyException(Translation.of("msg_too_far")); + throw new TownyException(Translatable.of("msg_too_far")); Location spawnLocation = player.getLocation(); @@ -2735,7 +2732,7 @@ public static void newTown(Player player, String name, Resident resident, boolea if (!noCharge && TownyEconomyHandler.isActive()) { // Test if the resident can afford the town. if (!resident.getAccount().canPayFromHoldings(TownySettings.getNewTownPrice())) - throw new TownyException(Translation.of("msg_no_funds_new_town2", (resident.getName().equals(player.getName()) ? Translation.of("msg_you") : resident.getName()), TownySettings.getNewTownPrice())); + throw new TownyException(Translatable.of("msg_no_funds_new_town2", (resident.getName().equals(player.getName()) ? Translatable.of("msg_you") : resident.getName()), TownySettings.getNewTownPrice())); final String finalName = name; Confirmation.runOnAccept(() -> { @@ -2743,7 +2740,7 @@ public static void newTown(Player player, String name, Resident resident, boolea // Make the resident pay here. if (!resident.getAccount().withdraw(TownySettings.getNewTownPrice(), "New Town Cost")) { // Send economy message - TownyMessaging.sendErrorMsg(player,Translation.of("msg_no_funds_new_town2", (resident.getName().equals(player.getName()) ? Translation.of("msg_you") : resident.getName()), TownySettings.getNewTownPrice())); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_no_funds_new_town2", (resident.getName().equals(player.getName()) ? Translatable.of("msg_you") : resident.getName()), TownySettings.getNewTownPrice())); return; } @@ -2751,21 +2748,21 @@ public static void newTown(Player player, String name, Resident resident, boolea // Make town. newTown(world, finalName, resident, key, spawnLocation, player); } catch (TownyException e) { - TownyMessaging.sendErrorMsg(player, e.getMessage()); + TownyMessaging.sendErrorMsg(player, e.getMessage(player)); e.printStackTrace(); } - TownyMessaging.sendGlobalMessage(Translation.of("msg_new_town", player.getName(), StringMgmt.remUnderscore(finalName))); + TownyMessaging.sendGlobalMessage(Translatable.of("msg_new_town", player.getName(), StringMgmt.remUnderscore(finalName))); }) - .setTitle(Translation.of("msg_confirm_purchase", TownyEconomyHandler.getFormattedBalance(TownySettings.getNewTownPrice()))) + .setTitle(Translation.of("msg_confirm_purchase", player, TownyEconomyHandler.getFormattedBalance(TownySettings.getNewTownPrice()))) .sendTo(player); // Or, if the town doesn't cost money to create, just make the Town. } else { newTown(world, name, resident, key, spawnLocation, player); - TownyMessaging.sendGlobalMessage(Translation.of("msg_new_town", player.getName(), StringMgmt.remUnderscore(name))); + TownyMessaging.sendGlobalMessage(Translatable.of("msg_new_town", player.getName(), StringMgmt.remUnderscore(name))); } } catch (TownyException x) { - TownyMessaging.sendErrorMsg(player, x.getMessage()); + TownyMessaging.sendErrorMsg(player, x.getMessage(player)); // TODO: delete town data that might have been done } catch (Exception e) { e.printStackTrace(); @@ -2838,7 +2835,7 @@ public static void townRename(Player player, Town town, String newName) { TownPreRenameEvent event = new TownPreRenameEvent(town, newName); Bukkit.getServer().getPluginManager().callEvent(event); if (event.isCancelled()) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_rename_cancelled")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_rename_cancelled")); return; } @@ -2849,9 +2846,9 @@ public static void townRename(Player player, Town town, String newName) { if (town == null) throw new TownyException("Error renaming town! Cannot fetch town with new name " + newName); - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_town_set_name", player.getName(), town.getName())); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_town_set_name", player.getName(), town.getName())); } catch (TownyException e) { - TownyMessaging.sendErrorMsg(player, e.getMessage()); + TownyMessaging.sendErrorMsg(player, e.getMessage(player)); } } @@ -2860,20 +2857,20 @@ public void townLeave(Player player) { try { // TODO: Allow leaving town during war. if (TownyAPI.getInstance().isWarTime()) - throw new TownyException(Translation.of("msg_war_cannot_do")); + throw new TownyException(Translatable.of("msg_war_cannot_do")); Resident resident = getResidentOrThrow(player.getUniqueId()); if (!resident.hasTown()) - throw new TownyException(Translation.of("msg_err_dont_belong_town")); + throw new TownyException(Translatable.of("msg_err_dont_belong_town")); Town town = resident.getTown(); if (resident.isMayor()) - throw new TownyException(Translation.of("msg_mayor_abandon")); + throw new TownyException(Translatable.of("msg_mayor_abandon")); if (resident.isJailed() && TownySettings.JailDeniesTownLeave() && resident.getJailTown().getName().equals(town.getName())) - throw new TownyException(Translation.of("msg_cannot_abandon_town_while_jailed")); + throw new TownyException(Translatable.of("msg_cannot_abandon_town_while_jailed")); TownLeaveEvent event = new TownLeaveEvent(resident, town); Bukkit.getPluginManager().callEvent(event); @@ -2887,8 +2884,8 @@ public void townLeave(Player player) { if (town.hasResident(resident)) resident.removeTown(); - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_left_town", resident.getName())); - TownyMessaging.sendMsg(player, Translation.of("msg_left_town", resident.getName())); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_left_town", resident.getName())); + TownyMessaging.sendMsg(player, Translatable.of("msg_left_town", resident.getName())); try { checkTownResidents(town, resident); @@ -2898,7 +2895,7 @@ public void townLeave(Player player) { }).sendTo(player); } catch (TownyException x) { - TownyMessaging.sendErrorMsg(player, x.getMessage()); + TownyMessaging.sendErrorMsg(player, x.getMessage(player)); return; } @@ -2929,21 +2926,21 @@ public static void townSpawn(Player player, String[] split, Boolean outpost, boo if (split.length == 0 || outpost || split[0].equals("-ignore")) { if (!resident.hasTown()) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_dont_belong_town")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_dont_belong_town")); return; } town = resident.getTown(); - notAffordMSG = Translation.of("msg_err_cant_afford_tp"); + notAffordMSG = Translation.of("msg_err_cant_afford_tp", player); } else { // split.length > 1 town = TownyUniverse.getInstance().getTown(split[0]); if (town == null) - throw new TownyException(Translation.of("msg_err_not_registered_1", split[0])); + throw new TownyException(Translatable.of("msg_err_not_registered_1", split[0])); - notAffordMSG = Translation.of("msg_err_cant_afford_tp_town", town.getName()); + notAffordMSG = Translation.of("msg_err_cant_afford_tp_town", player, town.getName()); } SpawnUtil.sendToTownySpawn(player, split, town, notAffordMSG, outpost, ignoreWarning, SpawnType.TOWN); @@ -2960,9 +2957,9 @@ public void townDelete(Player player, String[] split) { Resident resident = getResidentOrThrow(player.getUniqueId()); if (TownRuinSettings.getTownRuinsEnabled()) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_warning_town_ruined_if_deleted", TownRuinSettings.getTownRuinsMaxDurationHours())); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_warning_town_ruined_if_deleted", TownRuinSettings.getTownRuinsMaxDurationHours())); if (TownRuinSettings.getTownRuinsReclaimEnabled()) - TownyMessaging.sendErrorMsg(player, Translation.of("msg_warning_town_ruined_if_deleted2", TownRuinSettings.getTownRuinsMinDurationHours())); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_warning_town_ruined_if_deleted2", TownRuinSettings.getTownRuinsMinDurationHours())); } town = resident.getTown(); Confirmation.runOnAccept(() -> { @@ -2971,23 +2968,23 @@ public void townDelete(Player player, String[] split) { .sendTo(player); } catch (TownyException x) { - TownyMessaging.sendErrorMsg(player, x.getMessage()); + TownyMessaging.sendErrorMsg(player, x.getMessage(player)); } } else { if (!townyUniverse.getPermissionSource().testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWNYADMIN_TOWN_DELETE.getNode())) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_admin_only_delete_town")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_admin_only_delete_town")); return; } town = townyUniverse.getTown(split[0]); if (town == null) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_not_registered_1", split[0])); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_not_registered_1", split[0])); return; } Confirmation.runOnAccept(() -> { - TownyMessaging.sendMsg(player, Translation.of("town_deleted_by_admin", town.getName())); + TownyMessaging.sendMsg(player, Translatable.of("town_deleted_by_admin", town.getName())); TownyUniverse.getInstance().getDataSource().removeTown(town); }) .sendTo(player); @@ -3011,7 +3008,7 @@ public static void townKick(Player player, String[] names) { resident = getResidentOrThrow(player.getUniqueId()); town = resident.getTown(); } catch (TownyException x) { - TownyMessaging.sendErrorMsg(player, x.getMessage()); + TownyMessaging.sendErrorMsg(player, x.getMessage(player)); return; } @@ -3050,19 +3047,19 @@ public static void townAddResidents(CommandSender sender, Town town, List 0 && town.getResidents().size() >= TownySettings.getMaxResidentsForTown(town)){ - TownyMessaging.sendErrorMsg(sender, Translation.of("msg_err_max_residents_per_town_reached", TownySettings.getMaxResidentsForTown(town))); + TownyMessaging.sendErrorMsg(sender, Translatable.of("msg_err_max_residents_per_town_reached", TownySettings.getMaxResidentsForTown(town))); invited.remove(newMember); } else if (!admin && TownySettings.getTownInviteCooldown() > 0 && ( (System.currentTimeMillis()/1000 - newMember.getRegistered()/1000) < (TownySettings.getTownInviteCooldown()) )) { - TownyMessaging.sendErrorMsg(sender, Translation.of("msg_err_resident_doesnt_meet_invite_cooldown", newMember)); + TownyMessaging.sendErrorMsg(sender, Translatable.of("msg_err_resident_doesnt_meet_invite_cooldown", newMember)); invited.remove(newMember); } else if (TownySettings.getMaxNumResidentsWithoutNation() > 0 && !town.hasNation() && town.getResidents().size() >= TownySettings.getMaxNumResidentsWithoutNation()) { - TownyMessaging.sendErrorMsg(sender, Translation.of("msg_err_unable_to_add_more_residents_without_nation", TownySettings.getMaxNumResidentsWithoutNation())); + TownyMessaging.sendErrorMsg(sender, Translatable.of("msg_err_unable_to_add_more_residents_without_nation", TownySettings.getMaxNumResidentsWithoutNation())); invited.remove(newMember); } else { town.addResidentCheck(newMember); @@ -3070,7 +3067,7 @@ public static void townAddResidents(CommandSender sender, Town town, List kicking) { + public static void townKickResidents(CommandSender sender, Resident resident, Town town, List kicking) { Player player = null; @@ -3164,17 +3159,17 @@ public static void townKickResidents(Object sender, Resident resident, Town town for (Resident member : new ArrayList<>(kicking)) { if (!town.getResidents().contains(member)) { - TownyMessaging.sendErrorMsg(sender, Translation.of("msg_resident_not_your_town")); + TownyMessaging.sendErrorMsg(sender, Translatable.of("msg_resident_not_your_town")); kicking.remove(member); continue; } if (resident == member) { - TownyMessaging.sendErrorMsg(sender, Translation.of("msg_you_cannot_kick_yourself")); + TownyMessaging.sendErrorMsg(sender, Translatable.of("msg_you_cannot_kick_yourself")); kicking.remove(member); continue; } if (member.isMayor() || town.hasResidentWithRank(member, "assistant")) { - TownyMessaging.sendErrorMsg(sender, Translation.of("msg_you_cannot_kick_this_resident", member)); + TownyMessaging.sendErrorMsg(sender, Translatable.of("msg_you_cannot_kick_this_resident", member)); kicking.remove(member); continue; } else { @@ -3187,8 +3182,8 @@ public static void townKickResidents(Object sender, Resident resident, Town town if (townKickEvent.isCancelled()) { if (player != null) TownyMessaging.sendErrorMsg(player, townKickEvent.getCancelMessage()); - else if (sender instanceof CommandSender) - TownyMessaging.sendErrorMsg((CommandSender) sender, townKickEvent.getCancelMessage()); + else + TownyMessaging.sendErrorMsg(sender, townKickEvent.getCancelMessage()); kicking.remove(member); } else @@ -3203,21 +3198,20 @@ else if (sender instanceof CommandSender) msg.append(member.getName()).append(", "); Player p = BukkitTools.getPlayer(member.getName()); if (p != null) - TownyMessaging.sendMessage(p, Translation.of("msg_kicked_by", (player != null) ? player.getName() : "CONSOLE")); + TownyMessaging.sendMessage(p, Translatable.of("msg_kicked_by", (player != null) ? player.getName() : "CONSOLE")); } - msg = new StringBuilder(msg.substring(0, msg.length() - 2)); - msg = new StringBuilder(Translation.of("msg_kicked", (player != null) ? player.getName() : "CONSOLE", msg.toString())); - TownyMessaging.sendPrefixedTownMessage(town, msg.toString()); + String message = msg.substring(0, msg.length() - 2); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_kicked", (player != null) ? player.getName() : "CONSOLE", message)); try { Resident playerRes = getResidentOrThrow(player.getUniqueId()); if (!(sender instanceof Player) || !playerRes.hasTown() || !playerRes.getTown().equals(town)) // For when the an admin uses /ta town {name} kick {residents} - TownyMessaging.sendMessage(sender, msg.toString()); + TownyMessaging.sendMessage(sender, message); } catch (NotRegisteredException e) { } town.save(); } else { - TownyMessaging.sendErrorMsg(sender, Translation.of("msg_invalid_name")); + TownyMessaging.sendErrorMsg(sender, Translatable.of("msg_invalid_name")); } try { @@ -3237,21 +3231,21 @@ public static void checkTownResidents(Town town, Resident removedResident) throw town.getNation().setCapital(newCapital); if ((TownySettings.getNumResidentsJoinNation() > 0) && (removedResident.getTown().getNumResidents() < TownySettings.getNumResidentsJoinNation())) { town.removeNation(); - TownyMessaging.sendPrefixedNationMessage(nation, Translation.of("msg_capital_not_enough_residents_left_nation", town.getName())); + TownyMessaging.sendPrefixedNationMessage(nation, Translatable.of("msg_capital_not_enough_residents_left_nation", town.getName())); } - TownyMessaging.sendPrefixedNationMessage(nation, Translation.of("msg_not_enough_residents_no_longer_capital", newCapital.getName())); + TownyMessaging.sendPrefixedNationMessage(nation, Translatable.of("msg_not_enough_residents_no_longer_capital", newCapital.getName())); return; } - TownyMessaging.sendPrefixedNationMessage(town.getNation(), Translation.of("msg_nation_disbanded_town_not_enough_residents", town.getName())); - TownyMessaging.sendGlobalMessage(Translation.of("MSG_DEL_NATION", town.getNation())); + TownyMessaging.sendPrefixedNationMessage(town.getNation(), Translatable.of("msg_nation_disbanded_town_not_enough_residents", town.getName())); + TownyMessaging.sendGlobalMessage(Translatable.of("msg_del_nation", town.getNation())); TownyUniverse.getInstance().getDataSource().removeNation(town.getNation()); if (TownyEconomyHandler.isActive() && TownySettings.isRefundNationDisbandLowResidents()) { town.getAccount().deposit(TownySettings.getNewNationPrice(), "nation refund"); - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_not_enough_residents_refunded", TownySettings.getNewNationPrice())); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_not_enough_residents_refunded", TownySettings.getNewNationPrice())); } } else if ((!town.isCapital()) && (TownySettings.getNumResidentsJoinNation() > 0) && (town.getNumResidents() < TownySettings.getNumResidentsJoinNation())) { - TownyMessaging.sendPrefixedNationMessage(nation, Translation.of("msg_town_not_enough_residents_left_nation", town.getName())); + TownyMessaging.sendPrefixedNationMessage(nation, Translatable.of("msg_town_not_enough_residents_left_nation", town.getName())); town.removeNation(); } } @@ -3275,7 +3269,7 @@ public static void parseTownJoin(CommandSender sender, String[] args) { if (sender instanceof Player) { // Player if (args.length < 1) - throw new Exception(String.format("Usage: /town join [town]")); + throw new TownyException("Usage: /town join [town]"); Player player = (Player) sender; residentName = player.getName(); @@ -3285,7 +3279,7 @@ public static void parseTownJoin(CommandSender sender, String[] args) { } else { // Console if (args.length < 2) - throw new Exception(String.format("Usage: town join [resident] [town]")); + throw new TownyException("Usage: town join [resident] [town]"); residentName = args[0]; townName = args[1]; @@ -3297,23 +3291,23 @@ public static void parseTownJoin(CommandSender sender, String[] args) { town = TownyUniverse.getInstance().getTown(townName); if (resident == null || town == null) { - throw new Exception(Translation.of("msg_err_not_registered_1", resident == null ? residentName : townName)); + throw new TownyException(Translatable.of("msg_err_not_registered_1", resident == null ? residentName : townName)); } // Check if resident is currently in a town. if (resident.hasTown()) - throw new Exception(Translation.of(exceptionMsg, contextualResidentName)); + throw new TownyException(Translatable.of(exceptionMsg, contextualResidentName)); if (!console) { // Check if town is town is free to join. if (!town.isOpen()) - throw new Exception(Translation.of("msg_err_not_open", town.getFormattedName())); + throw new TownyException(Translatable.of("msg_err_not_open", town.getFormattedName())); if (TownySettings.getMaxResidentsPerTown() > 0 && town.getResidents().size() >= TownySettings.getMaxResidentsForTown(town)) - throw new Exception(Translation.of("msg_err_max_residents_per_town_reached", TownySettings.getMaxResidentsForTown(town))); + throw new TownyException(Translatable.of("msg_err_max_residents_per_town_reached", TownySettings.getMaxResidentsForTown(town))); if (TownySettings.getMaxNumResidentsWithoutNation() > 0 && !town.hasNation() && town.getResidents().size() >= TownySettings.getMaxNumResidentsWithoutNation()) - throw new Exception(Translation.of("msg_err_unable_to_add_more_residents_without_nation", TownySettings.getMaxNumResidentsWithoutNation())); + throw new TownyException(Translatable.of("msg_err_unable_to_add_more_residents_without_nation", TownySettings.getMaxNumResidentsWithoutNation())); if (town.hasOutlaw(resident)) - throw new Exception(Translation.of("msg_err_outlaw_in_open_town")); + throw new TownyException(Translatable.of("msg_err_outlaw_in_open_town")); } TownPreAddResidentEvent preEvent = new TownPreAddResidentEvent(town, resident); @@ -3329,8 +3323,10 @@ public static void parseTownJoin(CommandSender sender, String[] args) { townAddResident(town, resident); // Resident was added successfully. - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_join_town", resident.getName())); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_join_town", resident.getName())); + } catch (TownyException e) { + TownyMessaging.sendErrorMsg(sender, e.getMessage(sender)); } catch (Exception e) { TownyMessaging.sendErrorMsg(sender, e.getMessage()); } @@ -3368,17 +3364,17 @@ public static void townAdd(CommandSender sender, Town specifiedTown, String[] na } } catch (TownyException x) { - TownyMessaging.sendErrorMsg(sender, x.getMessage()); + TownyMessaging.sendErrorMsg(sender, x.getMessage(sender)); return; } if (town.isBankrupt()) - throw new TownyException(Translation.of("msg_err_bankrupt_town_cannot_invite")); + throw new TownyException(Translatable.of("msg_err_bankrupt_town_cannot_invite")); if (TownySettings.getMaxDistanceFromTownSpawnForInvite() != 0) { if (!town.hasSpawn()) - throw new TownyException(Translation.of("msg_err_townspawn_has_not_been_set")); + throw new TownyException(Translatable.of("msg_err_townspawn_has_not_been_set")); Location spawnLoc = town.getSpawn(); ArrayList newNames = new ArrayList(); @@ -3391,7 +3387,7 @@ public static void townAdd(CommandSender sender, Town specifiedTown, String[] na if (distance <= maxDistance) newNames.add(nameForDistanceTest); else { - TownyMessaging.sendMessage(sender, Translation.of("msg_err_player_too_far_from_town_spawn", nameForDistanceTest, maxDistance)); + TownyMessaging.sendMessage(sender, Translatable.of("msg_err_player_too_far_from_town_spawn", nameForDistanceTest, maxDistance)); } } names = newNames.toArray(new String[0]); @@ -3478,9 +3474,9 @@ public static void setTownBlockPermissions(Player player, TownBlockOwner townBlo } } if (townBlockOwner instanceof Town) - TownyMessaging.sendMsg(player, Translation.of("msg_set_perms_reset", "Town owned")); + TownyMessaging.sendMsg(player, Translatable.of("msg_set_perms_reset", "Town owned")); else - TownyMessaging.sendMsg(player, Translation.of("msg_set_perms_reset", "your")); + TownyMessaging.sendMsg(player, Translatable.of("msg_set_perms_reset", "your")); // Reset all caches as this can affect everyone. plugin.resetCache(); @@ -3495,7 +3491,7 @@ public static void setTownBlockPermissions(Player player, TownBlockOwner townBlo perm.change(TownyPermissionChange.Action.ALL_PERMS, b); } catch (Exception e) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_town_set_perm_syntax_error")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_town_set_perm_syntax_error")); return; } } @@ -3506,7 +3502,7 @@ public static void setTownBlockPermissions(Player player, TownBlockOwner townBlo try { b = StringMgmt.parseOnOff(split[1]); } catch (Exception e) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_town_set_perm_syntax_error")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_town_set_perm_syntax_error")); return; } @@ -3530,7 +3526,7 @@ else if (split[0].equalsIgnoreCase("itemuse")) perm.change(TownyPermissionChange.Action.ACTION_TYPE, b, actionType); } catch (IllegalArgumentException actionTypeException) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_town_set_perm_syntax_error")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_town_set_perm_syntax_error")); return; } } @@ -3554,7 +3550,7 @@ else if (split[0].equalsIgnoreCase("town")) permLevel = TownyPermission.PermLevel.valueOf(split[0].toUpperCase()); actionType = TownyPermission.ActionType.valueOf(split[1].toUpperCase()); } catch (IllegalArgumentException ignore) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_town_set_perm_syntax_error")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_town_set_perm_syntax_error")); return; } @@ -3564,7 +3560,7 @@ else if (split[0].equalsIgnoreCase("town")) perm.change(TownyPermissionChange.Action.SINGLE_PERM, b, permLevel, actionType); } catch (Exception e) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_town_set_perm_syntax_error")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_town_set_perm_syntax_error")); return; } } @@ -3583,7 +3579,7 @@ else if (split[0].equalsIgnoreCase("town")) } } - TownyMessaging.sendMsg(player, Translation.of("msg_set_perms")); + TownyMessaging.sendMsg(player, Translatable.of("msg_set_perms")); TownyMessaging.sendMessage(player, (Colors.Green + " Perm: " + ((townBlockOwner instanceof Resident) ? perm.getColourString().replace("n", "t") : perm.getColourString().replace("f", "r")))); TownyMessaging.sendMessage(player, (Colors.Green + " Perm: " + ((townBlockOwner instanceof Resident) ? perm.getColourString2().replace("n", "t") : perm.getColourString2().replace("f", "r")))); 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")); @@ -3608,18 +3604,18 @@ public static void parseTownClaimCommand(Player player, String[] split) { // Allow a bankrupt town to claim a single plot. if (town.isBankrupt() && town.getTownBlocks().size() != 0) - throw new TownyException(Translation.of("msg_err_bankrupt_town_cannot_claim")); + throw new TownyException(Translatable.of("msg_err_bankrupt_town_cannot_claim")); world = TownyAPI.getInstance().getTownyWorld(player.getWorld().getName()); if (!world.isUsingTowny()) - throw new TownyException(Translation.of("msg_set_use_towny_off")); + throw new TownyException(Translatable.of("msg_set_use_towny_off")); if (!world.isClaimable()) - throw new TownyException(Translation.of("msg_not_claimable")); + throw new TownyException(Translatable.of("msg_not_claimable")); if (TownyAPI.getInstance().isWarTime()) - throw new TownyException(Translation.of("msg_war_cannot_do")); + throw new TownyException(Translatable.of("msg_war_cannot_do")); List selection; boolean outpost = false; @@ -3633,42 +3629,42 @@ public static void parseTownClaimCommand(Player player, String[] split) { if (TownySettings.isAllowingOutposts()) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWN_CLAIM_OUTPOST.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); // Run various tests required by configuration/permissions through Util. OutpostUtil.OutpostTests(town, resident, world, key, isAdmin, false); if (!TownyAPI.getInstance().isWilderness(plugin.getCache(player).getLastLocation())) - throw new TownyException(Translation.of("msg_already_claimed_1", key)); + throw new TownyException(Translatable.of("msg_already_claimed_1", key)); // Select a single WorldCoord using the AreaSelectionUtil. selection = AreaSelectionUtil.selectWorldCoordArea(town, new WorldCoord(world.getName(), key), new String[0]); outpost = true; } else - throw new TownyException(Translation.of("msg_outpost_disable")); + throw new TownyException(Translatable.of("msg_outpost_disable")); } else { // Prevent someone manually running /t claim world x z (a command which should only be run via /plot claim world x z) if (split.length != 0 && TownyAPI.getInstance().getTownyWorld(split[0]) != null) - throw new TownyException(Translation.of("tc_err_invalid_command")); + throw new TownyException(Translatable.of("tc_err_invalid_command")); if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWN_CLAIM_TOWN.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); // Select the area, can be one or many. selection = AreaSelectionUtil.selectWorldCoordArea(town, new WorldCoord(world.getName(), key), split); if ((selection.size() > 1) && (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWN_CLAIM_TOWN_MULTIPLE.getNode()))) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); } // Not enough available claims. if (selection.size() > TownySettings.getMaxTownBlocks(town) - town.getTownBlocks().size()) - throw new TownyException(Translation.of("msg_err_not_enough_blocks")); + throw new TownyException(Translatable.of("msg_err_not_enough_blocks")); // If this is a single claim and it is already claimed, by someone else. if (selection.size() == 1 && selection.get(0).getTownOrNull() != null) - throw new TownyException(Translation.of("msg_already_claimed", selection.get(0).getTownOrNull())); + throw new TownyException(Translatable.of("msg_already_claimed", selection.get(0).getTownOrNull())); /* * Filter out any unallowed claims. @@ -3678,23 +3674,23 @@ public static void parseTownClaimCommand(Player player, String[] split) { // Filter out townblocks already owned. selection = AreaSelectionUtil.filterOutTownOwnedBlocks(selection); if (selection.isEmpty()) - throw new TownyException(Translation.of("msg_err_empty_area_selection")); + throw new TownyException(Translatable.of("msg_err_empty_area_selection")); // Filter out townblocks too close to another Town's homeblock. selection = AreaSelectionUtil.filterInvalidProximityToHomeblock(selection, town); if (selection.isEmpty()) - throw new TownyException(Translation.of("msg_too_close2", Translation.of("homeblock"))); + throw new TownyException(Translatable.of("msg_too_close2", Translatable.of("homeblock"))); // Filter out townblocks too close to other Towns' normal townblocks. selection = AreaSelectionUtil.filterInvalidProximityTownBlocks(selection, town); if (selection.isEmpty()) - throw new TownyException(Translation.of("msg_too_close2", Translation.of("townblock"))); + throw new TownyException(Translatable.of("msg_too_close2", Translatable.of("townblock"))); TownyMessaging.sendDebugMsg("townClaim: Post-Filter Selection ["+selection.size()+"] " + Arrays.toString(selection.toArray(new WorldCoord[0]))); // When not claiming an outpost, make sure at least one of the selection is attached to a claimed plot. if (!outpost && !isEdgeBlock(town, selection) && !town.getTownBlocks().isEmpty()) - throw new TownyException(Translation.of("msg_err_not_attached_edge")); + throw new TownyException(Translatable.of("msg_err_not_attached_edge")); /* * Allow other plugins to have a say in whether the claim is allowed. @@ -3732,7 +3728,7 @@ else if (selection.size() == 1) double missingAmount = blockCost - town.getAccount().getHoldingBalance(); if (!town.getAccount().canPayFromHoldings(blockCost)) - throw new TownyException(Translation.of("msg_no_funds_claim2", selection.size(), TownyEconomyHandler.getFormattedBalance(blockCost), TownyEconomyHandler.getFormattedBalance(missingAmount), new DecimalFormat("#").format(missingAmount))); + throw new TownyException(Translatable.of("msg_no_funds_claim2", selection.size(), TownyEconomyHandler.getFormattedBalance(blockCost), TownyEconomyHandler.getFormattedBalance(missingAmount), new DecimalFormat("#").format(missingAmount))); town.getAccount().withdraw(blockCost, String.format("Town Claim (%d)", selection.size())); } catch (NullPointerException e2) { throw new TownyException("The server economy plugin " + TownyEconomyHandler.getVersion() + " could not return the Town account!"); @@ -3745,7 +3741,7 @@ else if (selection.size() == 1) new TownClaim(plugin, player, town, selection, outpost, true, false).start(); } catch (TownyException x) { - TownyMessaging.sendErrorMsg(player, x.getMessage()); + TownyMessaging.sendErrorMsg(player, x.getMessage(player)); return; } } @@ -3761,7 +3757,7 @@ public static void parseTownUnclaimCommand(Player player, String[] split) { TownyWorld world; try { if (TownyAPI.getInstance().isWarTime()) - throw new TownyException(Translation.of("msg_war_cannot_do")); + throw new TownyException(Translatable.of("msg_war_cannot_do")); resident = getResidentOrThrow(player.getUniqueId()); town = resident.getTown(); @@ -3774,7 +3770,7 @@ public static void parseTownUnclaimCommand(Player player, String[] split) { if (split.length == 1 && split[0].equalsIgnoreCase("all")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWN_UNCLAIM_ALL.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); new TownClaim(plugin, player, town, null, false, false, false).start(); // townUnclaimAll(town); // If the unclaim code knows its an outpost or not, doesnt matter its only used once the world deletes the townblock, where it takes the value from the townblock. @@ -3782,33 +3778,33 @@ public static void parseTownUnclaimCommand(Player player, String[] split) { } else { // Check permissions here because of the townunclaim mode. if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWN_UNCLAIM.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); // Prevent someone manually running /t unclaim world x z (a command which should only be run via /plot claim world x z) if (split.length == 3 && TownyAPI.getInstance().getTownyWorld(split[0]) != null) - throw new TownyException(Translation.of("tc_err_invalid_command")); + throw new TownyException(Translatable.of("tc_err_invalid_command")); List selection = AreaSelectionUtil.selectWorldCoordArea(town, new WorldCoord(world.getName(), Coord.parseCoord(plugin.getCache(player).getLastLocation())), split); selection = AreaSelectionUtil.filterOwnedBlocks(town, selection); if (selection.isEmpty()) - throw new TownyException(Translation.of("msg_err_empty_area_selection")); + throw new TownyException(Translatable.of("msg_err_empty_area_selection")); if (selection.get(0).getTownBlock().isHomeBlock()) - throw new TownyException(Translation.of("msg_err_cannot_unclaim_homeblock")); + throw new TownyException(Translatable.of("msg_err_cannot_unclaim_homeblock", player)); if (AreaSelectionUtil.filterHomeBlock(town, selection)) { // Do not stop the entire unclaim, just warn that the homeblock cannot be unclaimed - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_cannot_unclaim_homeblock")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_cannot_unclaim_homeblock")); } // Set the area to unclaim new TownClaim(plugin, player, town, selection, false, false, false).start(); - TownyMessaging.sendMsg(player, Translation.of("msg_abandoned_area", Arrays.toString(selection.toArray(new WorldCoord[0])))); + TownyMessaging.sendMsg(player, Translatable.of("msg_abandoned_area", Arrays.toString(selection.toArray(new WorldCoord[0])))); } } catch (TownyException x) { - TownyMessaging.sendErrorMsg(player, x.getMessage()); + TownyMessaging.sendErrorMsg(player, x.getMessage(player)); return; } } @@ -3817,7 +3813,7 @@ public static void parseTownUnclaimCommand(Player player, String[] split) { public static void parseTownMergeCommand(Player player, String[] args) { Resident resident = TownyUniverse.getInstance().getResident(player.getUniqueId()); if (!resident.isMayor()) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_town_merge_err_mayor_only")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_town_merge_err_mayor_only")); return; } Town remainingTown = TownyAPI.getInstance().getResidentTownOrNull(resident); // The isMayor() test guarantees we get a town. @@ -3825,38 +3821,38 @@ public static void parseTownMergeCommand(Player player, String[] args) { // A lot of checks. if (succumbingTown == null || succumbingTown.getName().equals(remainingTown.getName())) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_invalid_name", args[0])); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_invalid_name", args[0])); return; } if (TownySettings.getMaxDistanceForTownMerge() > 0 && homeBlockDistance(remainingTown, succumbingTown) > TownySettings.getMaxDistanceForTownMerge()) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_town_merge_err_not_close", succumbingTown.getName(), TownySettings.getMaxDistanceForTownMerge())); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_town_merge_err_not_close", succumbingTown.getName(), TownySettings.getMaxDistanceForTownMerge())); return; } int newResidentsAmount = remainingTown.getResidents().size() + succumbingTown.getResidents().size(); if (TownySettings.getMaxResidentsPerTown() > 0 && newResidentsAmount > TownySettings.getMaxResidentsForTown(remainingTown)) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_town_merge_err_too_many_residents", TownySettings.getMaxResidentsForTown(remainingTown))); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_town_merge_err_too_many_residents", TownySettings.getMaxResidentsForTown(remainingTown))); return; } if ((remainingTown.getTownBlocks().size() + succumbingTown.getTownBlocks().size()) > TownySettings.getMaxTownBlocks(remainingTown, newResidentsAmount)) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_town_merge_err_too_many_townblocks", TownySettings.getMaxTownBlocks(remainingTown, newResidentsAmount))); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_town_merge_err_too_many_townblocks", TownySettings.getMaxTownBlocks(remainingTown, newResidentsAmount))); return; } if ((remainingTown.getPurchasedBlocks() + succumbingTown.getPurchasedBlocks()) > TownySettings.getMaxPurchasedBlocks(remainingTown) && succumbingTown.getPurchasedBlocks() > 0) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_town_merge_err_too_many_purchased_townblocks", TownySettings.getMaxPurchasedBlocks(remainingTown))); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_town_merge_err_too_many_purchased_townblocks", TownySettings.getMaxPurchasedBlocks(remainingTown))); return; } if (TownySettings.isAllowingOutposts() && (remainingTown.getMaxOutpostSpawn() + succumbingTown.getMaxOutpostSpawn()) > remainingTown.getOutpostLimit() && succumbingTown.getMaxOutpostSpawn() > 0) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_town_merge_err_too_many_outposts", remainingTown.getOutpostLimit())); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_town_merge_err_too_many_outposts", remainingTown.getOutpostLimit())); return; } if (!BukkitTools.isOnline(succumbingTown.getMayor().getName()) || succumbingTown.getMayor().isNPC()) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_town_merge_other_offline", succumbingTown.getName(), succumbingTown.getMayor().getName())); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_town_merge_other_offline", succumbingTown.getName(), succumbingTown.getMayor().getName())); return; } @@ -3873,27 +3869,27 @@ public static void parseTownMergeCommand(Player player, String[] args) { cost = baseCost + townblockCost + bankruptcyCost; if (!remainingTown.getAccount().canPayFromHoldings(cost)) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_town_merge_err_not_enough_money", TownyEconomyHandler.getFormattedBalance(remainingTown.getAccount().getHoldingBalance()), TownyEconomyHandler.getFormattedBalance(cost))); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_town_merge_err_not_enough_money", TownyEconomyHandler.getFormattedBalance(remainingTown.getAccount().getHoldingBalance()), TownyEconomyHandler.getFormattedBalance(cost))); return; } } catch (TownyException e) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_town_merge_failed")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_town_merge_failed")); return; } } if (cost > 0) { - TownyMessaging.sendMsg(player, Translation.of("msg_town_merge_warning", succumbingTown.getName(), TownyEconomyHandler.getFormattedBalance(cost))); + TownyMessaging.sendMsg(player, Translatable.of("msg_town_merge_warning", succumbingTown.getName(), TownyEconomyHandler.getFormattedBalance(cost))); if (bankruptcyCost > 0) - TownyMessaging.sendMsg(player, Translation.of("msg_town_merge_debt_warning", succumbingTown.getName())); - TownyMessaging.sendMsg(player, Translation.of("msg_town_merge_cost_breakdown", TownyEconomyHandler.getFormattedBalance(baseCost), TownyEconomyHandler.getFormattedBalance(townblockCost), TownyEconomyHandler.getFormattedBalance(bankruptcyCost))); + TownyMessaging.sendMsg(player, Translatable.of("msg_town_merge_debt_warning", succumbingTown.getName())); + TownyMessaging.sendMsg(player, Translatable.of("msg_town_merge_cost_breakdown", TownyEconomyHandler.getFormattedBalance(baseCost), TownyEconomyHandler.getFormattedBalance(townblockCost), TownyEconomyHandler.getFormattedBalance(bankruptcyCost))); final Town finalSuccumbingTown = succumbingTown; final Town finalRemainingTown = remainingTown; final double finalCost = cost; Confirmation.runOnAccept(() -> { sendTownMergeRequest(player, finalRemainingTown, finalSuccumbingTown, finalCost); }).runOnCancel(() -> { - TownyMessaging.sendMsg(player, Translation.of("msg_town_merge_cancelled")); + TownyMessaging.sendMsg(player, Translatable.of("msg_town_merge_cancelled")); return; }).sendTo(player); } else @@ -3902,15 +3898,15 @@ public static void parseTownMergeCommand(Player player, String[] args) { private static void sendTownMergeRequest(Player sender, Town remainingTown, Town succumbingTown, double cost) { Resident resident = TownyUniverse.getInstance().getResident(sender.getUniqueId()); - TownyMessaging.sendMsg(sender, Translation.of("msg_town_merge_request_sent", succumbingTown.getName())); - TownyMessaging.sendMsg(succumbingTown.getMayor(), Translation.of("msg_town_merge_request_received", remainingTown.getName(), resident.getName(), remainingTown.getName())); + TownyMessaging.sendMsg(sender, Translatable.of("msg_town_merge_request_sent", succumbingTown.getName())); + TownyMessaging.sendMsg(succumbingTown.getMayor(), Translatable.of("msg_town_merge_request_received", remainingTown.getName(), resident.getName(), remainingTown.getName())); final Town finalSuccumbingTown = succumbingTown; final Town finalRemainingTown = remainingTown; final double finalCost = cost; Confirmation.runOnAccept(() -> { if (TownyEconomyHandler.isActive() && !finalRemainingTown.getAccount().canPayFromHoldings(finalCost)) - TownyMessaging.sendErrorMsg(sender, Translation.of("msg_town_merge_err_not_enough_money", (int) finalRemainingTown.getAccount().getHoldingBalance(), (int) finalCost)); + TownyMessaging.sendErrorMsg(sender, Translatable.of("msg_town_merge_err_not_enough_money", (int) finalRemainingTown.getAccount().getHoldingBalance(), (int) finalCost)); TownPreMergeEvent townPreMergeEvent = new TownPreMergeEvent(finalRemainingTown, finalSuccumbingTown); @@ -3933,8 +3929,8 @@ private static void sendTownMergeRequest(Player sender, Town remainingTown, Town TownMergeEvent townMergeEvent = new TownMergeEvent(finalRemainingTown, succumbingTownName, succumbingTownUUID); Bukkit.getPluginManager().callEvent(townMergeEvent); }).runOnCancel(() -> { - TownyMessaging.sendMsg(sender, Translation.of("msg_town_merge_request_denied")); - TownyMessaging.sendMsg(succumbingTown.getMayor(), Translation.of("msg_town_merge_cancelled")); + TownyMessaging.sendMsg(sender, Translatable.of("msg_town_merge_request_denied")); + TownyMessaging.sendMsg(succumbingTown.getMayor(), Translatable.of("msg_town_merge_cancelled")); }).sendTo(BukkitTools.getPlayerExact(succumbingTown.getMayor().getName())); } @@ -3984,14 +3980,14 @@ private static void townTransaction(Player player, String[] args, boolean withdr try { Resident resident = TownyUniverse.getInstance().getResident(player.getUniqueId()); if (resident == null || !resident.hasTown()) - throw new TownyException(Translation.of("msg_err_dont_belong_town")); + throw new TownyException(Translatable.of("msg_err_dont_belong_town")); if (args.length == 2) { int amount; try { amount = Integer.parseInt(args[1].trim()); } catch (NumberFormatException ex) { - throw new TownyException(Translation.of("msg_error_must_be_int")); + throw new TownyException(Translatable.of("msg_error_must_be_int")); } if (withdraw) @@ -4006,11 +4002,11 @@ private static void townTransaction(Player player, String[] args, boolean withdr else command = "/town deposit"; - throw new TownyException(Translation.of("msg_must_specify_amnt", command)); + throw new TownyException(Translatable.of("msg_must_specify_amnt", command)); } } catch (TownyException e) { - TownyMessaging.sendErrorMsg(player, e.getMessage()); + TownyMessaging.sendErrorMsg(player, e.getMessage(player)); } } @@ -4020,11 +4016,11 @@ private static void townOutpost(Player player, String[] args) { if (args.length >= 2) { if (args[1].equalsIgnoreCase("list")) { if (!TownyUniverse.getInstance().getPermissionSource().testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWN_OUTPOST_LIST.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); Resident resident = getResidentOrThrow(player.getUniqueId()); if (!resident.hasTown()) - throw new TownyException(Translation.of("msg_err_must_belong_town")); + throw new TownyException(Translatable.of("msg_err_must_belong_town")); Town town = resident.getTown(); List outposts = town.getAllOutpostSpawns(); @@ -4034,16 +4030,16 @@ private static void townOutpost(Player player, String[] args) { try { page = Integer.parseInt(args[2]); if (page < 0) { - throw new TownyException(Translation.of("msg_err_negative")); + throw new TownyException(Translatable.of("msg_err_negative")); } else if (page == 0) { - throw new TownyException(Translation.of("msg_error_must_be_int")); + throw new TownyException(Translatable.of("msg_error_must_be_int")); } } catch (NumberFormatException e) { - throw new TownyException(Translation.of("msg_error_must_be_int")); + throw new TownyException(Translatable.of("msg_error_must_be_int")); } } if (page > total) - throw new TownyException(Translation.of("LIST_ERR_NOT_ENOUGH_PAGES", total)); + throw new TownyException(Translatable.of("LIST_ERR_NOT_ENOUGH_PAGES", total)); TownyMessaging.sendOutpostList(player, town, page, total); } else { @@ -4060,7 +4056,7 @@ private static void townOutpost(Player player, String[] args) { townSpawn(player, StringMgmt.remFirstArg(args), true, false); } } catch (TownyException e) { - TownyMessaging.sendErrorMsg(player, e.getMessage()); + TownyMessaging.sendErrorMsg(player, e.getMessage(player)); } } @@ -4068,7 +4064,7 @@ private void townStatusScreen(CommandSender sender, Town town) { /* * This is run async because it will ping the economy plugin for the town bank value. */ - Bukkit.getScheduler().runTaskAsynchronously(plugin, () -> TownyMessaging.sendMessage(sender, TownyFormatter.getStatus(town))); + Bukkit.getScheduler().runTaskAsynchronously(plugin, () -> TownyMessaging.sendMessage(sender, TownyFormatter.getStatus(town, Translation.getLocale(sender)))); } private void townResList(CommandSender sender, String[] args) throws TownyException { @@ -4080,7 +4076,7 @@ private void townResList(CommandSender sender, String[] args) throws TownyExcept Town town = null; if (args.length == 1 && player != null) { if (TownRuinUtil.isPlayersTownRuined(player)) - throw new TownyException(Translation.of("msg_err_cannot_use_command_because_town_ruined")); + throw new TownyException(Translatable.of("msg_err_cannot_use_command_because_town_ruined")); town = getResidentOrThrow(player.getUniqueId()).getTown(); } else { @@ -4090,7 +4086,7 @@ private void townResList(CommandSender sender, String[] args) throws TownyExcept if (town != null) TownyMessaging.sendMessage(sender, TownyFormatter.getFormattedResidents(town)); else - TownyMessaging.sendErrorMsg(sender, Translation.of("msg_specify_name")); + TownyMessaging.sendErrorMsg(sender, Translatable.of("msg_specify_name")); } private void townPlotGroupList(CommandSender sender, String[] args) throws TownyException { @@ -4101,7 +4097,7 @@ private void townPlotGroupList(CommandSender sender, String[] args) throws Towny player = (Player) sender; if (player != null && TownRuinUtil.isPlayersTownRuined(player)) - throw new TownyException(Translation.of("msg_err_cannot_use_command_because_town_ruined")); + throw new TownyException(Translatable.of("msg_err_cannot_use_command_because_town_ruined")); Town town = null; if (args.length > 1) // not just /town plotgrouplist @@ -4110,12 +4106,12 @@ private void townPlotGroupList(CommandSender sender, String[] args) throws Towny if (town == null && player != null) { // Probably a number and not a town name. Resident res = getResidentOrThrow(player.getUniqueId()); if (!res.hasTown()) // If the player has no town we cannot go on. - throw new TownyException(Translation.of("msg_specify_name")); + throw new TownyException(Translatable.of("msg_specify_name")); town = res.getTownOrNull(); } if (!town.hasPlotGroups()) - throw new TownyException(Translation.of("msg_err_this_town_has_no_plot_groups")); + throw new TownyException(Translatable.of("msg_err_this_town_has_no_plot_groups")); int page = 1; int total = (int) Math.ceil(((double) town.getPlotGroups().size()) / ((double) 10)); @@ -4123,14 +4119,14 @@ private void townPlotGroupList(CommandSender sender, String[] args) throws Towny try { page = Integer.parseInt(args[args.length - 1]); if (page < 0) { - throw new TownyException(Translation.of("msg_err_negative")); + throw new TownyException(Translatable.of("msg_err_negative")); } else if (page == 0) { - throw new TownyException(Translation.of("msg_error_must_be_int")); + throw new TownyException(Translatable.of("msg_error_must_be_int")); } } catch (NumberFormatException ignored) {} // page will continue to be one. } if (page > total) - throw new TownyException(Translation.of("LIST_ERR_NOT_ENOUGH_PAGES", total)); + throw new TownyException(Translatable.of("LIST_ERR_NOT_ENOUGH_PAGES", total)); TownyMessaging.sendPlotGroupList(sender, town, page, total); } @@ -4144,7 +4140,7 @@ private void townOutlawList(CommandSender sender, String[] args) throws TownyExc Town town = null; if (args.length == 1 && player != null) { if (TownRuinUtil.isPlayersTownRuined(player)) - throw new TownyException(Translation.of("msg_err_cannot_use_command_because_town_ruined")); + throw new TownyException(Translatable.of("msg_err_cannot_use_command_because_town_ruined")); town = getResidentOrThrow(player.getUniqueId()).getTown(); } else { @@ -4154,7 +4150,7 @@ private void townOutlawList(CommandSender sender, String[] args) throws TownyExc if (town != null) TownyMessaging.sendMessage(player, TownyFormatter.getFormattedOutlaws(town)); else - TownyMessaging.sendErrorMsg(player, Translation.of("msg_specify_name")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_specify_name")); } public static void parseTownTrustCommand(Player player, String[] args, @Nullable Town town) { diff --git a/src/com/palmergames/bukkit/towny/command/TownyAdminCommand.java b/src/com/palmergames/bukkit/towny/command/TownyAdminCommand.java index 6287e2ab53..5cb3bbfa7e 100644 --- a/src/com/palmergames/bukkit/towny/command/TownyAdminCommand.java +++ b/src/com/palmergames/bukkit/towny/command/TownyAdminCommand.java @@ -30,6 +30,7 @@ import com.palmergames.bukkit.towny.object.TownBlock; import com.palmergames.bukkit.towny.object.TownBlockType; import com.palmergames.bukkit.towny.object.TownyWorld; +import com.palmergames.bukkit.towny.object.Translatable; import com.palmergames.bukkit.towny.object.Translation; import com.palmergames.bukkit.towny.object.WorldCoord; import com.palmergames.bukkit.towny.object.jail.UnJailReason; @@ -230,7 +231,7 @@ public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, try { return parseTownyAdminCommand(args); } catch (TownyException e) { - TownyMessaging.sendErrorMsg(sender, e.getMessage()); + TownyMessaging.sendErrorMsg(sender, e.getMessage(sender)); } return true; @@ -509,7 +510,7 @@ private CommandSender getSender() { public boolean parseTownyAdminCommand(String[] split) throws TownyException { TownyUniverse townyUniverse = TownyUniverse.getInstance(); if (getSender()==player && !townyUniverse.getPermissionSource().testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWNYADMIN_SCREEN.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); if (split.length == 0) { buildTAPanel(); for (String line : ta_panel) { @@ -552,7 +553,7 @@ public boolean parseTownyAdminCommand(String[] split) throws TownyException { } if ((!isConsole) && (!townyUniverse.getPermissionSource().testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWNYADMIN.getNode(split[0].toLowerCase())))) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); if (split[0].equalsIgnoreCase("givebonus") || split[0].equalsIgnoreCase("giveplots")) { @@ -597,7 +598,7 @@ public boolean parseTownyAdminCommand(String[] split) throws TownyException { } else if (split[0].equalsIgnoreCase("backup")) { CompletableFuture.runAsync(new BackupTask()) - .thenRun(()-> TownyMessaging.sendMsg(getSender(), Translation.of("mag_backup_success"))); + .thenRun(()-> TownyMessaging.sendMsg(getSender(), Translatable.of("mag_backup_success"))); } else if (split[0].equalsIgnoreCase("database")) { @@ -608,10 +609,10 @@ public boolean parseTownyAdminCommand(String[] split) throws TownyException { if (TownySettings.getSaveDatabase().equalsIgnoreCase("mysql") && TownySettings.getLoadDatabase().equalsIgnoreCase("mysql")) { TownyDataSource dataSource = new TownyFlatFileSource(plugin, townyUniverse); dataSource.saveAll(); - TownyMessaging.sendMsg(getSender(), Translation.of("msg_mysql_dump_success")); + TownyMessaging.sendMsg(getSender(), Translatable.of("msg_mysql_dump_success")); return true; } else - throw new TownyException(Translation.of("msg_err_mysql_not_being_used")); + throw new TownyException(Translatable.of("msg_err_mysql_not_being_used")); } else if (split[0].equalsIgnoreCase("newday")) { @@ -620,7 +621,7 @@ public boolean parseTownyAdminCommand(String[] split) throws TownyException { } else if (split[0].equalsIgnoreCase("newhour")) { TownyTimerHandler.newHour(); - TownyMessaging.sendMsg(getSender(), Translation.of("msg_newhour_success")); + TownyMessaging.sendMsg(getSender(), Translatable.of("msg_newhour_success")); } else if (split[0].equalsIgnoreCase("purge")) { @@ -652,13 +653,13 @@ public boolean parseTownyAdminCommand(String[] split) throws TownyException { } else if (split[0].equalsIgnoreCase("depositall")) { if (!TownyEconomyHandler.isActive()) - throw new TownyException(Translation.of("msg_err_no_economy")); + throw new TownyException(Translatable.of("msg_err_no_economy")); parseAdminDepositAllCommand(StringMgmt.remFirstArg(split)); } else if (TownyCommandAddonAPI.hasCommand(CommandType.TOWNYADMIN, split[0])) { TownyCommandAddonAPI.getAddonCommand(CommandType.TOWNYADMIN, split[0]).execute(getSender(), "townyadmin", split); } else { - TownyMessaging.sendErrorMsg(getSender(), Translation.of("msg_err_invalid_sub")); + TownyMessaging.sendErrorMsg(getSender(), Translatable.of("msg_err_invalid_sub")); return false; } } @@ -704,7 +705,7 @@ private void parseAdminTownypermsGroupCommand(String[] args) throws TownyExcepti return; } if (!TownyPerms.getGroupList().contains(args[0].toLowerCase())) - throw new TownyException(Translation.of("msg_err_group_not_found", args[0])); + throw new TownyException(Translatable.of("msg_err_group_not_found", args[0])); String group = args[0]; List groupNodes = TownyPerms.getPermsOfGroup(group); @@ -717,7 +718,7 @@ private void parseAdminTownypermsGroupCommand(String[] args) throws TownyExcepti if ((!args[1].equalsIgnoreCase("addperm") && !args[1].equalsIgnoreCase("removeperm")) || args.length != 3) - throw new TownyException(Translation.of("msg_err_expected_command_format", "/ta townyperms group add|remove node")); + throw new TownyException(Translatable.of("msg_err_expected_command_format", "/ta townyperms group add|remove node")); boolean add = args[1].equalsIgnoreCase("addperm"); String node = args[2]; @@ -725,12 +726,12 @@ private void parseAdminTownypermsGroupCommand(String[] args) throws TownyExcepti switch (args[1].toLowerCase()) { case "addperm": if (groupNodes.contains(node)) - throw new TownyException(Translation.of("msg_err_group_already_has_node", group, node)); + throw new TownyException(Translatable.of("msg_err_group_already_has_node", group, node)); changed = groupNodes.add(node); break; case "removeperm": if (!groupNodes.contains(node)) - throw new TownyException(Translation.of("msg_err_group_doesnt_have_node", group, node)); + throw new TownyException(Translatable.of("msg_err_group_doesnt_have_node", group, node)); changed = groupNodes.remove(node); break; } @@ -741,20 +742,20 @@ private void parseAdminTownypermsGroupCommand(String[] args) throws TownyExcepti TownyPerms.getTownyPermsFile().set(group, groupNodes); TownyPerms.getTownyPermsFile().save(); if (add) - TownyMessaging.sendMsg(sender, Translation.of("msg_successfully_added_node_to_group", node, group)); + TownyMessaging.sendMsg(sender, Translatable.of("msg_successfully_added_node_to_group", node, group)); else - TownyMessaging.sendMsg(sender, Translation.of("msg_successfully_removed_node_from_group", node, group)); + TownyMessaging.sendMsg(sender, Translatable.of("msg_successfully_removed_node_from_group", node, group)); reloadPerms(); } private void displayNodesHelpByGroup(String group, List groupNodes) { if (groupNodes.size() > 0) { - TownyMessaging.sendMessage(sender, ChatTools.formatTitle(Translation.of("msg_title_group_permissions", StringMgmt.capitalize(group)))); + TownyMessaging.sendMessage(sender, ChatTools.formatTitle(Translation.of("msg_title_group_permissions", sender, StringMgmt.capitalize(group)))); for (String node : groupNodes) TownyMessaging.sendMessage(sender, " - " + node); } else { - TownyMessaging.sendErrorMsg(Translation.of("msg_err_group_has_no_nodes", group)); + TownyMessaging.sendErrorMsg(Translatable.of("msg_err_group_has_no_nodes", group)); } } @@ -768,7 +769,7 @@ private void parseAdminTownypermsRankCommand(String[] args) throws TownyExceptio if ((!args[1].equalsIgnoreCase("addrank") && !args[1].equalsIgnoreCase("removerank")) || args.length != 3) - throw new TownyException(Translation.of("msg_err_expected_command_format", "/ta townyperms townrank|nationrank add|remove [rank]")); + throw new TownyException(Translatable.of("msg_err_expected_command_format", "/ta townyperms townrank|nationrank add|remove [rank]")); boolean town = args[0].equalsIgnoreCase("townrank"); boolean add = args[1].equalsIgnoreCase("addrank"); @@ -779,7 +780,7 @@ private void parseAdminTownypermsRankCommand(String[] args) throws TownyExceptio // Changing town ranks. if (town) { if (TownyPerms.getTownRanks().contains(rank)) - throw new TownyException(Translation.of("msg_err_there_is_already_a_town_or_nationrank_called_x", args[0], rank)); + throw new TownyException(Translatable.of("msg_err_there_is_already_a_town_or_nationrank_called_x", args[0], rank)); TownyPerms.getTownyPermsFile().createSection("towns.ranks." + rank); changed = true; @@ -787,7 +788,7 @@ private void parseAdminTownypermsRankCommand(String[] args) throws TownyExceptio // Changing nation ranks. } else { if (TownyPerms.getNationRanks().contains(rank)) - throw new TownyException(Translation.of("msg_err_there_is_already_a_town_or_nationrank_called_x", args[0], rank)); + throw new TownyException(Translatable.of("msg_err_there_is_already_a_town_or_nationrank_called_x", args[0], rank)); TownyPerms.getTownyPermsFile().createSection("nations.ranks." + rank); changed = true; @@ -797,7 +798,7 @@ private void parseAdminTownypermsRankCommand(String[] args) throws TownyExceptio // Changing town ranks. if (town) { if (!TownyPerms.getTownRanks().contains(rank)) - throw new TownyException(Translation.of("msg_err_there_is_no_town_or_nationrank_called_x", args[0], rank)); + throw new TownyException(Translatable.of("msg_err_there_is_no_town_or_nationrank_called_x", args[0], rank)); TownyPerms.getTownyPermsFile().set("towns.ranks." + rank, null); changed = true; @@ -805,7 +806,7 @@ private void parseAdminTownypermsRankCommand(String[] args) throws TownyExceptio // Changing nation ranks. } else { if (!TownyPerms.getNationRanks().contains(rank)) - throw new TownyException(Translation.of("msg_err_there_is_no_town_or_nationrank_called_x", args[0], rank)); + throw new TownyException(Translatable.of("msg_err_there_is_no_town_or_nationrank_called_x", args[0], rank)); TownyPerms.getTownyPermsFile().set("nations.ranks." + rank, null); changed = true; @@ -818,9 +819,9 @@ private void parseAdminTownypermsRankCommand(String[] args) throws TownyExceptio TownyPerms.getTownyPermsFile().save(); if (add) - TownyMessaging.sendMsg(sender, Translation.of("msg_successfully_add_rank_to_the_town_or_nation_rank", rank, args[0])); + TownyMessaging.sendMsg(sender, Translatable.of("msg_successfully_add_rank_to_the_town_or_nation_rank", rank, args[0])); else - TownyMessaging.sendMsg(sender, Translation.of("msg_successfully_removed_rank_from_the_town_or_nation_rank", rank, args[0])); + TownyMessaging.sendMsg(sender, Translatable.of("msg_successfully_removed_rank_from_the_town_or_nation_rank", rank, args[0])); reloadPerms(); } @@ -833,12 +834,12 @@ private void parseAdminDatabaseCommand(String[] split) { if (split[0].equalsIgnoreCase("save")) { if (TownyUniverse.getInstance().getDataSource().saveAll()) - TownyMessaging.sendMsg(getSender(), Translation.of("msg_save_success")); + TownyMessaging.sendMsg(getSender(), Translatable.of("msg_save_success")); } else if (split[0].equalsIgnoreCase("load")) { TownyUniverse.getInstance().clearAllObjects(); if (TownyUniverse.getInstance().getDataSource().loadAll()) { - TownyMessaging.sendMsg(getSender(), Translation.of("msg_load_success")); + TownyMessaging.sendMsg(getSender(), Translatable.of("msg_load_success")); Bukkit.getPluginManager().callEvent(new TownyLoadedDatabaseEvent()); } } else if (split[0].equalsIgnoreCase("remove")) { @@ -849,7 +850,7 @@ private void parseAdminDatabaseCommand(String[] split) { private void parseAdminDatabaseRemoveCommand(String[] split) { if (split.length == 0 || split[0].equalsIgnoreCase("?")) { TownyMessaging.sendMessage(sender, ChatTools.formatTitle("/townyadmin database remove")); - TownyMessaging.sendMessage(sender, ChatTools.formatCommand(Translation.of("admin_sing"), "/townyadmin database remove", "titles", "Removes all titles and surnames from every resident.")); + TownyMessaging.sendMessage(sender, ChatTools.formatCommand(Translation.of("admin_sing", sender), "/townyadmin database remove", "titles", "Removes all titles and surnames from every resident.")); return; } @@ -860,7 +861,7 @@ private void parseAdminDatabaseRemoveCommand(String[] split) { resident.setSurname(""); resident.save(); }); - TownyMessaging.sendMsg(getSender(), Translation.of("msg_ta_removed_all_titles_and_surnames_removed")); + TownyMessaging.sendMsg(getSender(), Translatable.of("msg_ta_removed_all_titles_and_surnames_removed")); } } @@ -884,16 +885,16 @@ private void parseAdminPlotCommand(String[] split) throws TownyException { if (split[0].equalsIgnoreCase("claim")) { if (!townyUniverse.getPermissionSource().testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWNYADMIN_PLOT_CLAIM.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); if (split.length == 1) { - TownyMessaging.sendErrorMsg(sender, Translation.of("msg_error_ta_plot_claim")); + TownyMessaging.sendErrorMsg(sender, Translatable.of("msg_error_ta_plot_claim")); return; } Optional resOpt = townyUniverse.getResidentOpt(split[1]); if (!resOpt.isPresent()) { - TownyMessaging.sendErrorMsg(sender, Translation.of("msg_error_no_player_with_that_name", split[1])); + TownyMessaging.sendErrorMsg(sender, Translatable.of("msg_error_no_player_with_that_name", split[1])); return; } @@ -904,16 +905,16 @@ private void parseAdminPlotCommand(String[] split) throws TownyException { new PlotClaim(plugin, player, resOpt.get(), selection, true, true, false).start(); } else if (split[0].equalsIgnoreCase("claimedat")) { if (!townyUniverse.getPermissionSource().testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWNYADMIN_PLOT_CLAIMEDAT.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); WorldCoord wc = WorldCoord.parseWorldCoord((Player) getSender()); if (!wc.hasTownBlock() || wc.getTownBlock().getClaimedAt() == 0) throw new NotRegisteredException(); - TownyMessaging.sendMsg(sender, Translation.of("msg_plot_perm_claimed_at", TownyFormatter.fullDateFormat.format(wc.getTownBlock().getClaimedAt()))); + TownyMessaging.sendMsg(sender, Translatable.of("msg_plot_perm_claimed_at", TownyFormatter.fullDateFormat.format(wc.getTownBlock().getClaimedAt()))); } else if (split[0].equalsIgnoreCase("trust")) { if (!townyUniverse.getPermissionSource().testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWNYADMIN_PLOT_TRUST.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); PlotCommand.parsePlotTrustCommand(player, StringMgmt.remFirstArg(split)); } @@ -922,7 +923,7 @@ private void parseAdminPlotCommand(String[] split) throws TownyException { private void parseAdminCheckPermCommand(String[] split) throws TownyException { if (split.length !=2 ) { - throw new TownyException(Translation.of("msg_err_invalid_input", "Eg: /ta checkperm {name} {node}")); + throw new TownyException(Translatable.of("msg_err_invalid_input", "Eg: /ta checkperm {name} {node}")); } Player player = BukkitTools.getPlayer(split[0]); if (player == null) { @@ -938,7 +939,7 @@ private void parseAdminCheckPermCommand(String[] split) throws TownyException { private void parseAdminTpPlotCommand(String[] split) throws TownyException { if (split.length != 3) { - throw new TownyException(Translation.of("msg_err_invalid_input", "Eg: /ta tpplot world x z")); + throw new TownyException(Translatable.of("msg_err_invalid_input", "Eg: /ta tpplot world x z")); } Player player = (Player) sender; @@ -952,7 +953,7 @@ private void parseAdminTpPlotCommand(String[] split) throws TownyException { x = Double.parseDouble(split[1]) * TownySettings.getTownBlockSize(); z = Double.parseDouble(split[2]) * TownySettings.getTownBlockSize(); } else { - throw new TownyException(Translation.of("msg_err_invalid_input", "Eg: /ta tpplot world x z")); + throw new TownyException(Translatable.of("msg_err_invalid_input", "Eg: /ta tpplot world x z")); } y = Bukkit.getWorld(world.getName()).getHighestBlockYAt(new Location(world, x, y, z)); loc = new Location(world, x, y, z); @@ -965,7 +966,7 @@ private void giveBonus(String[] split) throws TownyException { boolean isTown = false; if (split.length != 2) - throw new TownyException(Translation.of("msg_err_invalid_input", "Eg: givebonus [town/player] [n]")); + throw new TownyException(Translatable.of("msg_err_invalid_input", "Eg: givebonus [town/player] [n]")); if ((town = townyUniverse.getTown(split[0])) != null) { isTown = true; @@ -973,7 +974,7 @@ private void giveBonus(String[] split) throws TownyException { Resident target = getResidentOrThrow(split[0]); if (!target.hasTown()) - throw new TownyException(Translation.of("msg_err_resident_doesnt_belong_to_any_town")); + throw new TownyException(Translatable.of("msg_err_resident_doesnt_belong_to_any_town")); town = target.getTownOrNull(); } @@ -983,11 +984,11 @@ private void giveBonus(String[] split) throws TownyException { try { extraBlocks = Integer.parseInt(split[1].trim()); } catch (NumberFormatException ex) { - throw new TownyException(Translation.of("msg_error_must_be_int")); + throw new TownyException(Translatable.of("msg_error_must_be_int")); } town.setBonusBlocks(town.getBonusBlocks() + extraBlocks); - TownyMessaging.sendMsg(getSender(), Translation.of("msg_give_total", town.getName(), split[1], town.getBonusBlocks())); + TownyMessaging.sendMsg(getSender(), Translatable.of("msg_give_total", town.getName(), split[1], town.getBonusBlocks())); if (!isConsole || isTown) TownyMessaging.sendTownMessagePrefixed(town, "You have been given " + extraBlocks + " bonus townblocks."); if (isConsole && !isTown) { @@ -1003,8 +1004,8 @@ private void buildTAPanel() { ta_panel.clear(); Runtime run = Runtime.getRuntime(); - ta_panel.add(ChatTools.formatTitle(Translation.of("ta_panel_1"))); - ta_panel.add(Colors.Blue + "[" + Colors.LightBlue + "Towny" + Colors.Blue + "] " + Colors.Green + Translation.of("ta_panel_2") + Colors.LightGreen + TownyAPI.getInstance().isWarTime() + Colors.Gray + " | " + Colors.Green + Translation.of("ta_panel_3") + (TownyTimerHandler.isHealthRegenRunning() ? Colors.LightGreen + "On" : Colors.Rose + "Off") + Colors.Gray + " | " + (Colors.Green + Translation.of("ta_panel_5") + (TownyTimerHandler.isDailyTimerRunning() ? Colors.LightGreen + "On" : Colors.Rose + "Off"))); + ta_panel.add(ChatTools.formatTitle(Translation.of("ta_panel_1", sender))); + ta_panel.add(Colors.Blue + "[" + Colors.LightBlue + "Towny" + Colors.Blue + "] " + Colors.Green + Translation.of("ta_panel_2", sender) + Colors.LightGreen + TownyAPI.getInstance().isWarTime() + Colors.Gray + " | " + Colors.Green + Translation.of("ta_panel_3", sender) + (TownyTimerHandler.isHealthRegenRunning() ? Colors.LightGreen + "On" : Colors.Rose + "Off") + Colors.Gray + " | " + (Colors.Green + Translation.of("ta_panel_5", sender) + (TownyTimerHandler.isDailyTimerRunning() ? Colors.LightGreen + "On" : Colors.Rose + "Off"))); /* * ta_panel.add(Colors.Blue + "[" + Colors.LightBlue + "Towny" + * Colors.Blue + "] " + Colors.Green + @@ -1023,7 +1024,7 @@ private void buildTAPanel() { * Translation.of("ta_panel_7") + Colors.LightGreen + * getNumBankAccounts()); } catch (Exception e) { } */ - ta_panel.add(Colors.Blue + "[" + Colors.LightBlue + Translation.of("ta_panel_8") + Colors.Blue + "] " + Colors.Green + Translation.of("ta_panel_9") + Colors.LightGreen + MemMgmt.getMemSize(run.totalMemory()) + Colors.Gray + " | " + Colors.Green + Translation.of("ta_panel_10") + Colors.LightGreen + Thread.getAllStackTraces().keySet().size() + Colors.Gray + " | " + Colors.Green + Translation.of("ta_panel_11") + Colors.LightGreen + TownyFormatter.getTime()); + ta_panel.add(Colors.Blue + "[" + Colors.LightBlue + Translation.of("ta_panel_8", sender) + Colors.Blue + "] " + Colors.Green + Translation.of("ta_panel_9", sender) + Colors.LightGreen + MemMgmt.getMemSize(run.totalMemory()) + Colors.Gray + " | " + Colors.Green + Translation.of("ta_panel_10", sender) + Colors.LightGreen + Thread.getAllStackTraces().keySet().size() + Colors.Gray + " | " + Colors.Green + Translation.of("ta_panel_11", sender) + Colors.LightGreen + TownyFormatter.getTime()); ta_panel.add(Colors.Yellow + MemMgmt.getMemoryBar(50, run)); } @@ -1041,7 +1042,7 @@ public void parseAdminUnclaimCommand(String[] split) { try { if (TownyAPI.getInstance().isWarTime()) - throw new TownyException(Translation.of("msg_war_cannot_do")); + throw new TownyException(Translatable.of("msg_war_cannot_do")); List selection; selection = AreaSelectionUtil.selectWorldCoordArea(null, new WorldCoord(player.getWorld().getName(), Coord.parseCoord(player)), split); @@ -1072,14 +1073,14 @@ public void parseAdminResidentCommand(String[] split) throws TownyException { } if (!townyUniverse.getPermissionSource().testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWNYADMIN_RESIDENT.getNode(split[1].toLowerCase()))) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); if(split[1].equalsIgnoreCase("rename")) { if (!NameValidation.isBlacklistName(split[2])) { townyUniverse.getDataSource().renamePlayer(resident, split[2]); } else - throw new TownyException(Translation.of("msg_invalid_name")); + throw new TownyException(Translatable.of("msg_invalid_name")); } else if(split[1].equalsIgnoreCase("friend")) { @@ -1097,7 +1098,7 @@ public void parseAdminResidentCommand(String[] split) throws TownyException { if (resident.isJailed()) JailUtil.unJailResident(resident, UnJailReason.ADMIN); else - throw new TownyException(Translation.of("msg_err_player_is_not_jailed")); + throw new TownyException(Translatable.of("msg_err_player_is_not_jailed")); } } catch (TownyException e) { TownyMessaging.sendErrorMsg(getSender(), e.getMessage()); @@ -1119,15 +1120,15 @@ public void parseAdminTownCommand(String[] split) throws TownyException { * Moved from TownCommand as of 0.92.0.13 */ if (split.length != 3) - throw new TownyException(Translation.of("msg_err_not_enough_variables") + "/ta town new [name] [mayor]"); + throw new TownyException(Translatable.of("msg_err_not_enough_variables") + "/ta town new [name] [mayor]"); if (!townyUniverse.getPermissionSource().testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWNYADMIN_TOWN_NEW.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); Optional resOpt = TownyUniverse.getInstance().getResidentOpt(split[2]); if (!resOpt.isPresent()) { - TownyMessaging.sendErrorMsg(getSender(), Translation.of("msg_err_not_registered_1", split[2])); + TownyMessaging.sendErrorMsg(getSender(), Translatable.of("msg_err_not_registered_1", split[2])); return; } @@ -1138,7 +1139,7 @@ public void parseAdminTownCommand(String[] split) throws TownyException { Town town = townyUniverse.getTown(split[0]); if (town == null) { - TownyMessaging.sendErrorMsg(getSender(), Translation.of("msg_err_not_registered_1", split[0])); + TownyMessaging.sendErrorMsg(getSender(), Translatable.of("msg_err_not_registered_1", split[0])); return; } @@ -1149,7 +1150,7 @@ public void parseAdminTownCommand(String[] split) throws TownyException { } if (!townyUniverse.getPermissionSource().testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWNYADMIN_TOWN.getNode(split[1].toLowerCase()))) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); if (split[1].equalsIgnoreCase("invite")) { // Give admins the ability to invite a player to town, invite still requires acceptance. @@ -1160,13 +1161,13 @@ public void parseAdminTownCommand(String[] split) throws TownyException { Resident resident = townyUniverse.getResident(split[2]); if (resident == null) { - TownyMessaging.sendMessage(sender, Translation.of("msg_error_no_player_with_that_name", split[2])); + TownyMessaging.sendMessage(sender, Translatable.of("msg_error_no_player_with_that_name", split[2])); return; } TownCommand.townAddResident(town, resident); - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_join_town", resident.getName())); - TownyMessaging.sendMessage(sender, Translation.of("msg_join_town", resident.getName())); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_join_town", resident.getName())); + TownyMessaging.sendMessage(sender, Translatable.of("msg_join_town", resident.getName())); } else if (split[1].equalsIgnoreCase("kick")) { @@ -1175,7 +1176,7 @@ public void parseAdminTownCommand(String[] split) throws TownyException { } else if (split[1].equalsIgnoreCase("delete")) { Confirmation.runOnAccept(() -> { - TownyMessaging.sendMsg(sender, Translation.of("town_deleted_by_admin", town.getName())); + TownyMessaging.sendMsg(sender, Translatable.of("town_deleted_by_admin", town.getName())); TownyUniverse.getInstance().getDataSource().removeTown(town); }).sendTo(sender); @@ -1184,16 +1185,16 @@ public void parseAdminTownCommand(String[] split) throws TownyException { TownPreRenameEvent event = new TownPreRenameEvent(town, split[2]); Bukkit.getServer().getPluginManager().callEvent(event); if (event.isCancelled()) { - TownyMessaging.sendErrorMsg(sender, Translation.of("msg_err_rename_cancelled")); + TownyMessaging.sendErrorMsg(sender, Translatable.of("msg_err_rename_cancelled")); return; } if (!NameValidation.isBlacklistName(split[2])) { townyUniverse.getDataSource().renameTown(town, split[2]); - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_town_set_name", ((getSender() instanceof Player) ? player.getName() : "CONSOLE"), town.getName())); - TownyMessaging.sendMsg(getSender(), Translation.of("msg_town_set_name", ((getSender() instanceof Player) ? player.getName() : "CONSOLE"), town.getName())); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_town_set_name", ((getSender() instanceof Player) ? player.getName() : "CONSOLE"), town.getName())); + TownyMessaging.sendMsg(getSender(), Translatable.of("msg_town_set_name", ((getSender() instanceof Player) ? player.getName() : "CONSOLE"), town.getName())); } else { - TownyMessaging.sendErrorMsg(getSender(), Translation.of("msg_invalid_name")); + TownyMessaging.sendErrorMsg(getSender(), Translatable.of("msg_invalid_name")); } } else if (split[1].equalsIgnoreCase("spawn")) { @@ -1224,7 +1225,7 @@ public void parseAdminTownCommand(String[] split) throws TownyException { town.setAdminEnabledPVP(choice.orElse(!town.isAdminEnabledPVP())); town.save(); - TownyMessaging.sendMessage(sender, Translation.of("msg_town_forcepvp_setting_set_to", town.getName(), town.isAdminEnabledPVP())); + TownyMessaging.sendMessage(sender, Translatable.of("msg_town_forcepvp_setting_set_to", town.getName(), town.isAdminEnabledPVP())); } else TownCommand.townToggle(sender, StringMgmt.remArgs(split, 2), true, town); @@ -1242,7 +1243,7 @@ public void parseAdminTownCommand(String[] split) throws TownyException { try { pages = Integer.parseInt(split[2]); } catch (NumberFormatException e) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_error_must_be_int")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_error_must_be_int")); return; } @@ -1250,55 +1251,55 @@ public void parseAdminTownCommand(String[] split) throws TownyException { } else if (split[1].equalsIgnoreCase("deposit")) { if (!TownyEconomyHandler.isActive()) - throw new TownyException(Translation.of("msg_err_no_economy")); + throw new TownyException(Translatable.of("msg_err_no_economy")); int amount; // Handle incorrect number of arguments if (split.length != 3) - throw new TownyException(Translation.of("msg_err_invalid_input", "deposit [amount]")); + throw new TownyException(Translatable.of("msg_err_invalid_input", "deposit [amount]")); try { amount = Integer.parseInt(split[2]); } catch (NumberFormatException ex) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_error_must_be_int")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_error_must_be_int")); return; } if (town.getAccount().deposit(amount, "Admin Deposit")) { // Send notifications - String depositMessage = Translation.of("msg_xx_deposited_xx", (isConsole ? "Console" : player.getName()), amount, Translation.of("town_sing")); + Translatable depositMessage = Translatable.of("msg_xx_deposited_xx", (isConsole ? "Console" : player.getName()), amount, Translatable.of("town_sing")); TownyMessaging.sendMessage(sender, depositMessage); TownyMessaging.sendPrefixedTownMessage(town, depositMessage); } else { - TownyMessaging.sendErrorMsg(sender, Translation.of("msg_unable_to_deposit_x", amount)); + TownyMessaging.sendErrorMsg(sender, Translatable.of("msg_unable_to_deposit_x", amount)); } } else if (split[1].equalsIgnoreCase("withdraw")) { if (!TownyEconomyHandler.isActive()) - throw new TownyException(Translation.of("msg_err_no_economy")); + throw new TownyException(Translatable.of("msg_err_no_economy")); int amount; // Handle incorrect number of arguments if (split.length != 3) - throw new TownyException(Translation.of("msg_err_invalid_input", "withdraw [amount]")); + throw new TownyException(Translatable.of("msg_err_invalid_input", "withdraw [amount]")); try { amount = Integer.parseInt(split[2]); } catch (NumberFormatException ex) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_error_must_be_int")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_error_must_be_int")); return; } if (town.getAccount().withdraw(amount, "Admin Withdraw")) { // Send notifications - String withdrawMessage = Translation.of("msg_xx_withdrew_xx", (isConsole ? "Console" : player.getName()), amount, Translation.of("town_sing")); + Translatable withdrawMessage = Translatable.of("msg_xx_withdrew_xx", (isConsole ? "Console" : player.getName()), amount, Translatable.of("town_sing")); TownyMessaging.sendMessage(sender, withdrawMessage); TownyMessaging.sendPrefixedTownMessage(town, withdrawMessage); } else { - TownyMessaging.sendErrorMsg(sender, Translation.of("msg_unable_to_withdraw_x", amount)); + TownyMessaging.sendErrorMsg(sender, Translatable.of("msg_unable_to_withdraw_x", amount)); } } else if (split[1].equalsIgnoreCase("outlaw")) { TownCommand.parseTownOutlawCommand(sender, StringMgmt.remArgs(split, 2), true, town); @@ -1307,14 +1308,14 @@ public void parseAdminTownCommand(String[] split) throws TownyException { if (town.hasNation()) nation = town.getNation(); else - throw new TownyException(Translation.of("That town does not belong to a nation.")); + throw new TownyException(Translatable.of("That town does not belong to a nation.")); town.removeNation(); plugin.resetCache(); - TownyMessaging.sendPrefixedNationMessage(nation, Translation.of("msg_nation_town_left", StringMgmt.remUnderscore(town.getName()))); - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_town_left_nation", StringMgmt.remUnderscore(nation.getName()))); + TownyMessaging.sendPrefixedNationMessage(nation, Translatable.of("msg_nation_town_left", StringMgmt.remUnderscore(town.getName()))); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_town_left_nation", StringMgmt.remUnderscore(nation.getName()))); } else if (split[1].equalsIgnoreCase("unruin")) { // Sets the town to unruined with the existing NPC mayor still in place. @@ -1342,10 +1343,10 @@ private void parseAdminTownRankCommand(Player player, Town town, String[] split) Resident target = getResidentOrThrow(split[1]); if (!target.hasTown()) { - throw new TownyException(Translation.of("msg_err_resident_doesnt_belong_to_any_town")); + throw new TownyException(Translatable.of("msg_err_resident_doesnt_belong_to_any_town")); } if (target.getTown() != town) { - throw new TownyException(Translation.of("msg_err_townadmintownrank_wrong_town")); + throw new TownyException(Translatable.of("msg_err_townadmintownrank_wrong_town")); } /* @@ -1353,30 +1354,30 @@ private void parseAdminTownRankCommand(Player player, Town town, String[] split) */ String rank = TownyPerms.matchTownRank(split[2]); if (rank == null) - throw new TownyException(Translation.of("msg_unknown_rank_available_ranks", split[2], StringMgmt.join(TownyPerms.getTownRanks(), ", "))); + throw new TownyException(Translatable.of("msg_unknown_rank_available_ranks", split[2], StringMgmt.join(TownyPerms.getTownRanks(), ", "))); if (split[0].equalsIgnoreCase("add")) { if (target.addTownRank(rank)) { - TownyMessaging.sendMsg(target, Translation.of("msg_you_have_been_given_rank", "Town", rank)); - TownyMessaging.sendMsg(player, Translation.of("msg_you_have_given_rank", "Town", rank, target.getName())); + TownyMessaging.sendMsg(target, Translatable.of("msg_you_have_been_given_rank", "Town", rank)); + TownyMessaging.sendMsg(player, Translatable.of("msg_you_have_given_rank", "Town", rank, target.getName())); } else { // Must already have this rank - TownyMessaging.sendMsg(player, Translation.of("msg_resident_already_has_rank", target.getName(), "Town")); + TownyMessaging.sendMsg(player, Translatable.of("msg_resident_already_has_rank", target.getName(), "Town")); return; } } else if (split[0].equalsIgnoreCase("remove")) { if (target.removeTownRank(rank)) { - TownyMessaging.sendMsg(target, Translation.of("msg_you_have_had_rank_taken", "Town", rank)); - TownyMessaging.sendMsg(player, Translation.of("msg_you_have_taken_rank_from", "Town", rank, target.getName())); + TownyMessaging.sendMsg(target, Translatable.of("msg_you_have_had_rank_taken", "Town", rank)); + TownyMessaging.sendMsg(player, Translatable.of("msg_you_have_taken_rank_from", "Town", rank, target.getName())); } else { // Doesn't have this rank - TownyMessaging.sendMsg(player, Translation.of("msg_resident_doesnt_have_rank", target.getName(), "Town")); + TownyMessaging.sendMsg(player, Translatable.of("msg_resident_doesnt_have_rank", target.getName(), "Town")); return; } } else { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_invalid_property", split[0])); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_invalid_property", split[0])); return; } @@ -1399,15 +1400,15 @@ public void parseAdminNationCommand(String[] split) throws TownyException { if (split[0].equalsIgnoreCase("new")) { if (split.length != 3) - throw new TownyException(Translation.of("msg_err_not_enough_variables") + "/ta nation new [name] [capital]"); + throw new TownyException(Translatable.of("msg_err_not_enough_variables") + "/ta nation new [name] [capital]"); if (!townyUniverse.getPermissionSource().testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWNYADMIN_NATION_NEW.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); final Town capitalTown = townyUniverse.getTown(split[2]); if (capitalTown == null) - throw new TownyException(Translation.of("msg_err_invalid_name", split[2])); + throw new TownyException(Translatable.of("msg_err_invalid_name", split[2])); NationCommand.newNation(player, split[1], capitalTown, true); return; @@ -1416,7 +1417,7 @@ public void parseAdminNationCommand(String[] split) throws TownyException { Nation nation = townyUniverse.getNation(split[0]); if (nation == null) { - throw new NotRegisteredException(Translation.of("msg_err_no_nation_with_that_name", split[0])); + throw new TownyException(Translatable.of("msg_err_no_nation_with_that_name", split[0])); } if (split.length == 1) { @@ -1425,12 +1426,12 @@ public void parseAdminNationCommand(String[] split) throws TownyException { } if (!townyUniverse.getPermissionSource().testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWNYADMIN_NATION.getNode(split[1].toLowerCase()))) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); if (split[1].equalsIgnoreCase("add")) { if (split.length != 3) - throw new TownyException(Translation.of("msg_err_not_enough_variables") + "/ta nation [nationname] add [townname]"); + throw new TownyException(Translatable.of("msg_err_not_enough_variables") + "/ta nation [nationname] add [townname]"); townyAdminNationAddTown(sender, nation, StringMgmt.remArgs(split, 2)); @@ -1440,13 +1441,13 @@ public void parseAdminNationCommand(String[] split) throws TownyException { } else if (split[1].equalsIgnoreCase("delete")) { if (!isConsole) { - TownyMessaging.sendMessage(sender, Translation.of("nation_deleted_by_admin", nation.getName())); - TownyMessaging.sendGlobalMessage(Translation.of("msg_del_nation", nation.getName())); + TownyMessaging.sendMessage(sender, Translatable.of("nation_deleted_by_admin", nation.getName())); + TownyMessaging.sendGlobalMessage(Translatable.of("msg_del_nation", nation.getName())); townyUniverse.getDataSource().removeNation(nation); } else { Confirmation.runOnAccept(() -> { TownyUniverse.getInstance().getDataSource().removeNation(nation); - TownyMessaging.sendGlobalMessage(Translation.of("MSG_DEL_NATION", nation.getName())); + TownyMessaging.sendGlobalMessage(Translatable.of("MSG_DEL_NATION", nation.getName())); }) .sendTo(sender); // It takes the nation, an admin deleting another town has no confirmation. } @@ -1454,31 +1455,31 @@ public void parseAdminNationCommand(String[] split) throws TownyException { } else if(split[1].equalsIgnoreCase("recheck")) { nation.recheckTownDistance(); - TownyMessaging.sendMessage(sender, Translation.of("nation_rechecked_by_admin", nation.getName())); + TownyMessaging.sendMessage(sender, Translatable.of("nation_rechecked_by_admin", nation.getName())); } else if (split[1].equalsIgnoreCase("rename")) { NationPreRenameEvent event = new NationPreRenameEvent(nation, split[2]); Bukkit.getServer().getPluginManager().callEvent(event); if (event.isCancelled()) { - TownyMessaging.sendErrorMsg(sender, Translation.of("msg_err_rename_cancelled")); + TownyMessaging.sendErrorMsg(sender, Translatable.of("msg_err_rename_cancelled")); return; } if (!NameValidation.isBlacklistName(split[2])) { townyUniverse.getDataSource().renameNation(nation, split[2]); - TownyMessaging.sendPrefixedNationMessage(nation, Translation.of("msg_nation_set_name", ((getSender() instanceof Player) ? player.getName() : "CONSOLE"), nation.getName())); + TownyMessaging.sendPrefixedNationMessage(nation, Translatable.of("msg_nation_set_name", ((getSender() instanceof Player) ? player.getName() : "CONSOLE"), nation.getName())); } else - TownyMessaging.sendErrorMsg(getSender(), Translation.of("msg_invalid_name")); + TownyMessaging.sendErrorMsg(getSender(), Translatable.of("msg_invalid_name")); } else if (split[1].equalsIgnoreCase("merge")) { Nation remainingNation = townyUniverse.getNation(split[2]); if (remainingNation == null || remainingNation.equals(nation)) - throw new TownyException(Translation.of("msg_err_invalid_name", split[2])); + throw new TownyException(Translatable.of("msg_err_invalid_name", split[2])); townyUniverse.getDataSource().mergeNation(nation, remainingNation); - TownyMessaging.sendGlobalMessage(Translation.of("nation1_has_merged_with_nation2", nation, remainingNation)); + TownyMessaging.sendGlobalMessage(Translatable.of("nation1_has_merged_with_nation2", nation, remainingNation)); } else if(split[1].equalsIgnoreCase("set")) { @@ -1494,7 +1495,7 @@ public void parseAdminNationCommand(String[] split) throws TownyException { try { pages = Integer.parseInt(split[2]); } catch (NumberFormatException e) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_error_must_be_int")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_error_must_be_int")); return; } @@ -1502,50 +1503,50 @@ public void parseAdminNationCommand(String[] split) throws TownyException { } else if (split[1].equalsIgnoreCase("deposit")) { if (!TownyEconomyHandler.isActive()) - throw new TownyException(Translation.of("msg_err_no_economy")); + throw new TownyException(Translatable.of("msg_err_no_economy")); int amount; // Handle incorrect number of arguments if (split.length != 3) - throw new TownyException(Translation.of("msg_err_invalid_input", "deposit [amount]")); + throw new TownyException(Translatable.of("msg_err_invalid_input", "deposit [amount]")); try { amount = Integer.parseInt(split[2]); } catch (NumberFormatException ex) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_error_must_be_int")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_error_must_be_int")); return; } nation.getAccount().deposit(amount, "Admin Deposit"); // Send notifications - String depositMessage = Translation.of("msg_xx_deposited_xx", (isConsole ? "Console" : player.getName()), amount, Translation.of("nation_sing")); + Translatable depositMessage = Translatable.of("msg_xx_deposited_xx", (isConsole ? "Console" : player.getName()), amount, Translatable.of("nation_sing")); TownyMessaging.sendMessage(sender, depositMessage); TownyMessaging.sendPrefixedNationMessage(nation, depositMessage); } else if (split[1].equalsIgnoreCase("withdraw")) { if (!TownyEconomyHandler.isActive()) - throw new TownyException(Translation.of("msg_err_no_economy")); + throw new TownyException(Translatable.of("msg_err_no_economy")); int amount; // Handle incorrect number of arguments if (split.length != 3) - throw new TownyException(Translation.of("msg_err_invalid_input", "withdraw [amount]")); + throw new TownyException(Translatable.of("msg_err_invalid_input", "withdraw [amount]")); try { amount = Integer.parseInt(split[2]); } catch (NumberFormatException ex) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_error_must_be_int")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_error_must_be_int")); return; } nation.getAccount().withdraw(amount, "Admin Withdraw"); // Send notifications - String withdrawMessage = Translation.of("msg_xx_withdrew_xx", (isConsole ? "Console" : player.getName()), amount, Translation.of("nation_sing")); + Translatable withdrawMessage = Translatable.of("msg_xx_withdrew_xx", (isConsole ? "Console" : player.getName()), amount, Translatable.of("nation_sing")); TownyMessaging.sendMessage(sender, withdrawMessage); TownyMessaging.sendPrefixedNationMessage(nation, withdrawMessage); } @@ -1565,11 +1566,11 @@ else if (split[1].equalsIgnoreCase("rank")) { } if (!target.hasTown() || !target.getTownOrNull().hasNation() || !target.getTownOrNull().getNationOrNull().getUUID().equals(nation.getUUID())) - throw new TownyException(Translation.of("msg_err_that_resident_doesnt_belong_to_that_nation")); + throw new TownyException(Translatable.of("msg_err_that_resident_doesnt_belong_to_that_nation")); rank = TownyPerms.matchNationRank(split[4]); if (rank == null) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_unknown_rank_available_ranks", split[4], StringMgmt.join(TownyPerms.getNationRanks(), ", "))); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_unknown_rank_available_ranks", split[4], StringMgmt.join(TownyPerms.getNationRanks(), ", "))); return; } @@ -1577,29 +1578,29 @@ else if (split[1].equalsIgnoreCase("rank")) { case "add": if (target.addNationRank(rank)) { if (BukkitTools.isOnline(target.getName())) { - TownyMessaging.sendMsg(target, Translation.of("msg_you_have_been_given_rank", "Nation", rank)); + TownyMessaging.sendMsg(target, Translatable.of("msg_you_have_been_given_rank", "Nation", rank)); plugin.deleteCache(TownyAPI.getInstance().getPlayer(target)); } - TownyMessaging.sendMsg(player, Translation.of("msg_you_have_given_rank", "Nation", rank, target.getName())); + TownyMessaging.sendMsg(player, Translatable.of("msg_you_have_given_rank", "Nation", rank, target.getName())); target.save(); } else { // Already has the rank. - TownyMessaging.sendMsg(player, Translation.of("msg_resident_already_has_rank", target.getName(), "Nation")); + TownyMessaging.sendMsg(player, Translatable.of("msg_resident_already_has_rank", target.getName(), "Nation")); return; } return; case "remove": if (target.removeNationRank(rank)) { if (BukkitTools.isOnline(target.getName())) { - TownyMessaging.sendMsg(target, Translation.of("msg_you_have_had_rank_taken", "Nation", rank)); + TownyMessaging.sendMsg(target, Translatable.of("msg_you_have_had_rank_taken", "Nation", rank)); plugin.deleteCache(TownyAPI.getInstance().getPlayer(target)); } - TownyMessaging.sendMsg(player, Translation.of("msg_you_have_taken_rank_from", "Nation", rank, target.getName())); + TownyMessaging.sendMsg(player, Translatable.of("msg_you_have_taken_rank_from", "Nation", rank, target.getName())); target.save(); return; } else { // Doesn't have the rank. - TownyMessaging.sendMsg(player, String.format("msg_resident_doesnt_have_rank", target.getName(), "Nation")); + TownyMessaging.sendMsg(player, Translatable.of("msg_resident_doesnt_have_rank", target.getName(), "Nation")); return; } default: @@ -1608,13 +1609,13 @@ else if (split[1].equalsIgnoreCase("rank")) { } } else if (split[1].equalsIgnoreCase("ally")) { if (split.length < 4) { - TownyMessaging.sendErrorMsg(getSender(), Translation.of("msg_err_invalid_input", "/ta nation [nation] ally [add/remove] [nation]")); + TownyMessaging.sendErrorMsg(getSender(), Translatable.of("msg_err_invalid_input", "/ta nation [nation] ally [add/remove] [nation]")); return; } Nation ally = townyUniverse.getNation(split[3]); if (ally == null || ally.equals(nation)) { - TownyMessaging.sendErrorMsg(getSender(), Translation.of("msg_err_invalid_name", split[3])); + TownyMessaging.sendErrorMsg(getSender(), Translatable.of("msg_err_invalid_name", split[3])); return; } @@ -1633,11 +1634,11 @@ else if (split[1].equalsIgnoreCase("rank")) { ally.save(); plugin.resetCache(); - TownyMessaging.sendPrefixedNationMessage(nation, Translation.of("msg_added_ally", ally.getName())); - TownyMessaging.sendPrefixedNationMessage(ally, Translation.of("msg_added_ally", nation.getName())); - TownyMessaging.sendMsg(getSender(), Translation.of("msg_ta_allies_enemies_updated", nation.getName())); + TownyMessaging.sendPrefixedNationMessage(nation, Translatable.of("msg_added_ally", ally.getName())); + TownyMessaging.sendPrefixedNationMessage(ally, Translatable.of("msg_added_ally", nation.getName())); + TownyMessaging.sendMsg(getSender(), Translatable.of("msg_ta_allies_enemies_updated", nation.getName())); } else - TownyMessaging.sendErrorMsg(getSender(), Translation.of("msg_err_nation_already_allied_with_2", nation.getName(), ally.getName())); + TownyMessaging.sendErrorMsg(getSender(), Translatable.of("msg_err_nation_already_allied_with_2", nation.getName(), ally.getName())); } else if (split[2].equalsIgnoreCase("remove")) { if (nation.hasAlly(ally)) { nation.removeAlly(ally); @@ -1647,22 +1648,22 @@ else if (split[1].equalsIgnoreCase("rank")) { ally.save(); plugin.resetCache(); - TownyMessaging.sendPrefixedNationMessage(nation, Translation.of("msg_removed_ally", ally.getName())); - TownyMessaging.sendPrefixedNationMessage(ally, Translation.of("msg_removed_ally", nation.getName())); - TownyMessaging.sendMsg(getSender(), Translation.of("msg_ta_allies_enemies_updated", nation.getName())); + TownyMessaging.sendPrefixedNationMessage(nation, Translatable.of("msg_removed_ally", ally.getName())); + TownyMessaging.sendPrefixedNationMessage(ally, Translatable.of("msg_removed_ally", nation.getName())); + TownyMessaging.sendMsg(getSender(), Translatable.of("msg_ta_allies_enemies_updated", nation.getName())); } else - TownyMessaging.sendErrorMsg(getSender(), Translation.of("msg_err_nation_not_allied_with_2", nation.getName(), ally.getName())); + TownyMessaging.sendErrorMsg(getSender(), Translatable.of("msg_err_nation_not_allied_with_2", nation.getName(), ally.getName())); } else - TownyMessaging.sendErrorMsg(getSender(), Translation.of("msg_err_invalid_input", "/ta nation [nation] ally [add/remove] [nation]")); + TownyMessaging.sendErrorMsg(getSender(), Translatable.of("msg_err_invalid_input", "/ta nation [nation] ally [add/remove] [nation]")); } else if (split[1].equalsIgnoreCase("enemy")) { if (split.length < 4) { - TownyMessaging.sendErrorMsg(getSender(), Translation.of("msg_err_invalid_input", "/ta nation [nation] enemy [add/remove] [nation]")); + TownyMessaging.sendErrorMsg(getSender(), Translatable.of("msg_err_invalid_input", "/ta nation [nation] enemy [add/remove] [nation]")); return; } Nation enemy = townyUniverse.getNation(split[3]); if (enemy == null || enemy.equals(nation)) { - TownyMessaging.sendErrorMsg(getSender(), Translation.of("msg_err_invalid_name", split[3])); + TownyMessaging.sendErrorMsg(getSender(), Translatable.of("msg_err_invalid_name", split[3])); return; } @@ -1676,21 +1677,21 @@ else if (split[1].equalsIgnoreCase("rank")) { nation.addEnemy(enemy); nation.save(); - TownyMessaging.sendPrefixedNationMessage(nation, Translation.of("msg_enemy_nations", getSenderFormatted(), enemy.getName())); - TownyMessaging.sendMsg(getSender(), Translation.of("msg_ta_allies_enemies_updated", nation.getName())); + TownyMessaging.sendPrefixedNationMessage(nation, Translatable.of("msg_enemy_nations", getSenderFormatted(), enemy.getName())); + TownyMessaging.sendMsg(getSender(), Translatable.of("msg_ta_allies_enemies_updated", nation.getName())); } else - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_nation_already_enemies_with_2", nation.getName(), enemy.getName())); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_nation_already_enemies_with_2", nation.getName(), enemy.getName())); } else if (split[2].equalsIgnoreCase("remove")) { if (nation.hasEnemy(enemy)) { nation.removeEnemy(enemy); nation.save(); - TownyMessaging.sendPrefixedNationMessage(nation, Translation.of("msg_enemy_to_neutral", getSenderFormatted(), enemy.getName())); - TownyMessaging.sendPrefixedNationMessage(enemy, Translation.of("msg_removed_enemy", nation.getName())); - TownyMessaging.sendMsg(getSender(), Translation.of("msg_ta_allies_enemies_updated", nation.getName())); + TownyMessaging.sendPrefixedNationMessage(nation, Translatable.of("msg_enemy_to_neutral", getSenderFormatted(), enemy.getName())); + TownyMessaging.sendPrefixedNationMessage(enemy, Translatable.of("msg_removed_enemy", nation.getName())); + TownyMessaging.sendMsg(getSender(), Translatable.of("msg_ta_allies_enemies_updated", nation.getName())); } else - TownyMessaging.sendErrorMsg(getSender(), Translation.of("msg_err_nation_not_enemies_with_2", nation.getName(), enemy.getName())); + TownyMessaging.sendErrorMsg(getSender(), Translatable.of("msg_err_nation_not_enemies_with_2", nation.getName(), enemy.getName())); } else - TownyMessaging.sendErrorMsg(getSender(), Translation.of("msg_err_invalid_input", "/ta nation [nation] enemy [add/remove] [nation]")); + TownyMessaging.sendErrorMsg(getSender(), Translatable.of("msg_err_invalid_input", "/ta nation [nation] enemy [add/remove] [nation]")); } } catch (NotRegisteredException | AlreadyRegisteredException | InvalidNameException e) { @@ -1717,20 +1718,20 @@ private void townyAdminNationAddTown(CommandSender sender, Nation nation, String Town town = TownyUniverse.getInstance().getTown(townName[0]); if (town == null) { - TownyMessaging.sendErrorMsg(sender, Translation.of("msg_err_invalid_name", townName[0])); + TownyMessaging.sendErrorMsg(sender, Translatable.of("msg_err_invalid_name", townName[0])); return; } if (town.hasNation()) { - TownyMessaging.sendErrorMsg(sender, Translation.of("msg_err_already_nation")); + TownyMessaging.sendErrorMsg(sender, Translatable.of("msg_err_already_nation")); TownyMessaging.sendMessage(sender, "Suggestion: /townyadmin town " + town.getName() + "leavenation"); } else { try { town.setNation(nation); } catch (AlreadyRegisteredException ignored) {} town.save(); - TownyMessaging.sendNationMessagePrefixed(nation, Translation.of("msg_join_nation", town.getName())); - TownyMessaging.sendMessage(sender, Translation.of("msg_join_nation", town.getName())); + TownyMessaging.sendNationMessagePrefixed(nation, Translatable.of("msg_join_nation", town.getName())); + TownyMessaging.sendMessage(sender, Translatable.of("msg_join_nation", town.getName())); } } @@ -1738,7 +1739,7 @@ private void adminSet(String[] split) throws TownyException { TownyUniverse townyUniverse = TownyUniverse.getInstance(); if (!townyUniverse.getPermissionSource().testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWNYADMIN_SET.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); if (split.length == 0) { HelpMenu.TA_SET.send(sender); @@ -1747,7 +1748,7 @@ private void adminSet(String[] split) throws TownyException { if (split[0].equalsIgnoreCase("mayor")) { if (!townyUniverse.getPermissionSource().testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWNYADMIN_SET_MAYOR.getNode(split[0].toLowerCase()))) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); if (split.length < 3) { HelpMenu.TA_SET_MAYOR.send(sender); @@ -1757,7 +1758,7 @@ private void adminSet(String[] split) throws TownyException { Town town = townyUniverse.getTown(split[1]); if (town == null) { - TownyMessaging.sendErrorMsg(getSender(), Translation.of("msg_err_not_registered_1", split[1])); + TownyMessaging.sendErrorMsg(getSender(), Translatable.of("msg_err_not_registered_1", split[1])); return; } @@ -1785,14 +1786,14 @@ private void adminSet(String[] split) throws TownyException { town.setHasUpkeep(true); } town.save(); - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_new_mayor", newMayor.getName())); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_new_mayor", newMayor.getName())); } catch (TownyException e) { TownyMessaging.sendErrorMsg(getSender(), e.getMessage()); } } else if (split[0].equalsIgnoreCase("capital")) { if (!townyUniverse.getPermissionSource().testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWNYADMIN_SET_CAPITAL.getNode(split[0].toLowerCase()))) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); if (split.length < 2) { HelpMenu.TA_SET_CAPITAL.send(sender); @@ -1800,7 +1801,7 @@ private void adminSet(String[] split) throws TownyException { final Town newCapital = townyUniverse.getTown(split[1]); if (newCapital == null) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_not_registered_1", split[1])); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_not_registered_1", split[1])); return; } @@ -1814,7 +1815,7 @@ private void adminSet(String[] split) throws TownyException { } } else if (split[0].equalsIgnoreCase("title")) { if (!townyUniverse.getPermissionSource().testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWNYADMIN_SET_TITLE.getNode(split[0].toLowerCase()))) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); Resident resident = null; // Give the resident a title @@ -1825,7 +1826,7 @@ private void adminSet(String[] split) throws TownyException { split = StringMgmt.remArgs(split, 2); if (StringMgmt.join(split).length() > TownySettings.getMaxTitleLength()) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_input_too_long")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_input_too_long")); return; } @@ -1834,16 +1835,16 @@ private void adminSet(String[] split) throws TownyException { resident.save(); if (resident.hasTitle()) { - TownyMessaging.sendMessage(sender, Translation.of("msg_set_title", resident.getName(), Colors.translateColorCodes(resident.getTitle()))); - TownyMessaging.sendMessage(resident, Translation.of("msg_set_title", resident.getName(), Colors.translateColorCodes(resident.getTitle()))); + TownyMessaging.sendMessage(sender, Translatable.of("msg_set_title", resident.getName(), Colors.translateColorCodes(resident.getTitle()))); + TownyMessaging.sendMessage(resident, Translatable.of("msg_set_title", resident.getName(), Colors.translateColorCodes(resident.getTitle()))); } else { - TownyMessaging.sendMessage(sender, Translation.of("msg_clear_title_surname", "Title", resident.getName())); - TownyMessaging.sendMessage(resident, Translation.of("msg_clear_title_surname", "Title", resident.getName())); + TownyMessaging.sendMessage(sender, Translatable.of("msg_clear_title_surname", "Title", resident.getName())); + TownyMessaging.sendMessage(resident, Translatable.of("msg_clear_title_surname", "Title", resident.getName())); } } else if (split[0].equalsIgnoreCase("surname")) { if (!townyUniverse.getPermissionSource().testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWNYADMIN_SET_SURNAME.getNode(split[0].toLowerCase()))) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); Resident resident = null; // Give the resident a surname @@ -1854,7 +1855,7 @@ private void adminSet(String[] split) throws TownyException { split = StringMgmt.remArgs(split, 2); if (StringMgmt.join(split).length() > TownySettings.getMaxTitleLength()) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_input_too_long")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_input_too_long")); return; } @@ -1863,16 +1864,16 @@ private void adminSet(String[] split) throws TownyException { resident.save(); if (resident.hasSurname()) { - TownyMessaging.sendMessage(sender, Translation.of("msg_set_surname", resident.getName(), Colors.translateColorCodes(resident.getSurname()))); - TownyMessaging.sendMessage(resident, Translation.of("msg_set_surname", resident.getName(), Colors.translateColorCodes(resident.getSurname()))); + TownyMessaging.sendMessage(sender, Translatable.of("msg_set_surname", resident.getName(), Colors.translateColorCodes(resident.getSurname()))); + TownyMessaging.sendMessage(resident, Translatable.of("msg_set_surname", resident.getName(), Colors.translateColorCodes(resident.getSurname()))); } else { - TownyMessaging.sendMessage(sender, Translation.of("msg_clear_title_surname", "Surname", resident.getName())); - TownyMessaging.sendMessage(resident, Translation.of("msg_clear_title_surname", "Surname", resident.getName())); + TownyMessaging.sendMessage(sender, Translatable.of("msg_clear_title_surname", "Surname", resident.getName())); + TownyMessaging.sendMessage(resident, Translatable.of("msg_clear_title_surname", "Surname", resident.getName())); } } else if (split[0].equalsIgnoreCase("plot")) { if (!townyUniverse.getPermissionSource().testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWNYADMIN_SET_PLOT.getNode(split[0].toLowerCase()))) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); TownBlock tb = TownyAPI.getInstance().getTownBlock(player.getLocation()); if (split.length < 2) { @@ -1887,16 +1888,16 @@ private void adminSet(String[] split) throws TownyException { tb.setTown(newTown); tb.setType(TownBlockType.RESIDENTIAL); tb.setName(""); - TownyMessaging.sendMessage(player, Translation.of("changed_plot_town", newTown.getName())); + TownyMessaging.sendMessage(player, Translatable.of("changed_plot_town", newTown.getName())); } else { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_not_registered_1", split[1])); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_not_registered_1", split[1])); } } else { Town town = townyUniverse.getTown(split[1]); if (town == null) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_not_registered_1", split[1])); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_not_registered_1", split[1])); return; } @@ -1920,21 +1921,22 @@ private void adminSet(String[] split) throws TownyException { } else if (TownyCommandAddonAPI.hasCommand(CommandType.TOWNYADMIN_SET, split[0])) { TownyCommandAddonAPI.getAddonCommand(CommandType.TOWNYADMIN_SET, split[0]).execute(getSender(), "townyadmin", split); } else { - TownyMessaging.sendErrorMsg(getSender(), Translation.of("msg_err_invalid_property", "administrative")); + TownyMessaging.sendErrorMsg(getSender(), Translatable.of("msg_err_invalid_property", "administrative")); } } public void reloadLangs() { String rootFolder = TownyUniverse.getInstance().getRootFolder(); try { + Translation.loadTranslationRegistry(); Translation.loadLanguage(rootFolder + File.separator + "settings", "english.yml"); } catch (IOException e) { - TownyMessaging.sendErrorMsg(sender, Translation.of("msg_reload_error")); + TownyMessaging.sendErrorMsg(sender, Translatable.of("msg_reload_error")); e.printStackTrace(); return; } - TownyMessaging.sendMsg(sender, Translation.of("msg_reloaded_lang")); + TownyMessaging.sendMsg(sender, Translatable.of("msg_reloaded_lang")); } public void reloadPerms() { @@ -1954,7 +1956,7 @@ public void reloadPerms() { // Update everyone who is online with the changes made. TownyPerms.updateOnlinePerms(); - TownyMessaging.sendMsg(sender, Translation.of("msg_reloaded_perms")); + TownyMessaging.sendMsg(sender, Translatable.of("msg_reloaded_perms")); } @@ -1967,7 +1969,7 @@ public void reloadConfig(boolean reset) { if (reset) { TownyUniverse.getInstance().getDataSource().deleteFile(plugin.getConfigPath()); - TownyMessaging.sendMsg(sender, Translation.of("msg_reset_config")); + TownyMessaging.sendMsg(sender, Translatable.of("msg_reset_config")); } try { @@ -1977,12 +1979,12 @@ public void reloadConfig(boolean reset) { TownySettings.loadNationLevelConfig(); // but later so the config-migrator can do it's work on them if needed. Translation.loadLanguage(rootFolder + File.separator + "settings", "english.yml"); } catch (IOException e) { - TownyMessaging.sendErrorMsg(sender, Translation.of("msg_reload_error")); + TownyMessaging.sendErrorMsg(sender, Translatable.of("msg_reload_error")); e.printStackTrace(); return; } - TownyMessaging.sendMsg(sender, Translation.of("msg_reloaded_config")); + TownyMessaging.sendMsg(sender, Translatable.of("msg_reloaded_config")); } /** @@ -2001,7 +2003,7 @@ public void reloadDatabase() { } - TownyMessaging.sendMsg(sender, Translation.of("msg_reloaded_db")); + TownyMessaging.sendMsg(sender, Translatable.of("msg_reloaded_db")); } /** @@ -2024,7 +2026,7 @@ public void purge(String[] split) { try { days += String.valueOf(split[0]); } catch (NumberFormatException e) { - TownyMessaging.sendErrorMsg(getSender(), Translation.of("msg_error_must_be_int")); + TownyMessaging.sendErrorMsg(getSender(), Translatable.of("msg_error_must_be_int")); return; } @@ -2032,7 +2034,7 @@ public void purge(String[] split) { if (!TownyUniverse.getInstance().getPermissionSource().testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWNYADMIN_PURGE.getNode())) { try { - throw new TownyException(Translation.of("msg_err_admin_only")); + throw new TownyException(Translatable.of("msg_err_admin_only")); } catch (TownyException e) { TownyMessaging.sendErrorMsg(player, e.getMessage()); } @@ -2095,23 +2097,23 @@ public void residentDelete(Player player, String[] split) { TownyUniverse townyUniverse = TownyUniverse.getInstance(); if (split.length == 0) - TownyMessaging.sendErrorMsg(player, Translation.of("msg_invalid_name")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_invalid_name")); else try { if (!townyUniverse.getPermissionSource().isTownyAdmin(player)) - throw new TownyException(Translation.of("msg_err_admin_only_delete")); + throw new TownyException(Translatable.of("msg_err_admin_only_delete")); for (String name : split) { Resident resident = townyUniverse.getResident(name); if (resident != null) { if (!resident.isNPC() && !BukkitTools.isOnline(resident.getName())) { townyUniverse.getDataSource().removeResident(resident); - TownyMessaging.sendGlobalMessage(Translation.of("MSG_DEL_RESIDENT", resident.getName())); + TownyMessaging.sendGlobalMessage(Translatable.of("MSG_DEL_RESIDENT", resident.getName())); } else - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_online_or_npc", name)); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_online_or_npc", name)); } else { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_invalid_name", name)); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_invalid_name", name)); } } } catch (TownyException x) { @@ -2137,85 +2139,85 @@ public void parseToggleCommand(String[] split) throws TownyException { } if (!townyUniverse.getPermissionSource().testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWNYADMIN_TOGGLE.getNode(split[0].toLowerCase()))) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); if (split[0].equalsIgnoreCase("wildernessuse")) { // Toggles build/destroy/switch/itemuse on or off in all worlds. True is the default, for installation setup to alter the defaulted false. toggleWildernessUsage(choice.orElse(true)); - TownyMessaging.sendMsg(getSender(), Translation.of("msg_wilderness_use_x_in_all_worlds", choice.orElse(true))); + TownyMessaging.sendMsg(getSender(), Translatable.of("msg_wilderness_use_x_in_all_worlds", choice.orElse(true))); } else if (split[0].equalsIgnoreCase("regenerations")) { toggleRegenerations(choice.orElse(false)); - TownyMessaging.sendMsg(getSender(), Translation.of("msg_regenerations_use_x_in_all_worlds", choice.orElse(false))); + TownyMessaging.sendMsg(getSender(), Translatable.of("msg_regenerations_use_x_in_all_worlds", choice.orElse(false))); } else if (split[0].equalsIgnoreCase("war")) { if (!choice.orElse(TownyAPI.getInstance().isWarTime())) { townyUniverse.startWarEvent(); - TownyMessaging.sendMsg(getSender(), Translation.of("msg_war_started")); + TownyMessaging.sendMsg(getSender(), Translatable.of("msg_war_started")); } else { townyUniverse.endWarEvent(); - TownyMessaging.sendMsg(getSender(), Translation.of("msg_war_ended")); + TownyMessaging.sendMsg(getSender(), Translatable.of("msg_war_ended")); } } else if (split[0].equalsIgnoreCase("peaceful") || split[0].equalsIgnoreCase("neutral")) { try { TownySettings.setDeclaringNeutral(choice.orElse(!TownySettings.isDeclaringNeutral())); - TownyMessaging.sendMsg(getSender(), Translation.of("msg_nation_allow_peaceful", TownySettings.isDeclaringNeutral() ? Translation.of("enabled") : Translation.of("disabled"))); + TownyMessaging.sendMsg(getSender(), Translatable.of("msg_nation_allow_peaceful", TownySettings.isDeclaringNeutral() ? Translatable.of("enabled") : Translatable.of("disabled"))); } catch (Exception e) { - TownyMessaging.sendErrorMsg(getSender(), Translation.of("msg_err_invalid_choice")); + TownyMessaging.sendErrorMsg(getSender(), Translatable.of("msg_err_invalid_choice")); } } else if (split[0].equalsIgnoreCase("devmode")) { try { TownySettings.setDevMode(choice.orElse(!TownySettings.isDevMode())); - TownyMessaging.sendMsg(getSender(), "Dev Mode " + (TownySettings.isDevMode() ? Colors.Green + Translation.of("enabled") : Colors.Red + Translation.of("disabled"))); + TownyMessaging.sendMsg(getSender(), "Dev Mode " + (TownySettings.isDevMode() ? Colors.Green + Translatable.of("enabled") : Colors.Red + Translatable.of("disabled"))); } catch (Exception e) { - TownyMessaging.sendErrorMsg(getSender(), Translation.of("msg_err_invalid_choice")); + TownyMessaging.sendErrorMsg(getSender(), Translatable.of("msg_err_invalid_choice")); } } else if (split[0].equalsIgnoreCase("debug")) { try { TownySettings.setDebug(choice.orElse(!TownySettings.getDebug())); TownyLogger.getInstance().refreshDebugLogger(); - TownyMessaging.sendMsg(getSender(), "Debug Mode " + (TownySettings.getDebug() ? Colors.Green + Translation.of("enabled") : Colors.Red + Translation.of("disabled"))); + TownyMessaging.sendMsg(getSender(), "Debug Mode " + (TownySettings.getDebug() ? Colors.Green + Translatable.of("enabled") : Colors.Red + Translatable.of("disabled"))); } catch (Exception e) { - TownyMessaging.sendErrorMsg(getSender(), Translation.of("msg_err_invalid_choice")); + TownyMessaging.sendErrorMsg(getSender(), Translatable.of("msg_err_invalid_choice")); } } else if (split[0].equalsIgnoreCase("townwithdraw")) { try { TownySettings.SetTownBankAllowWithdrawls(choice.orElse(!TownySettings.getTownBankAllowWithdrawls())); - TownyMessaging.sendMsg(getSender(), "Town Withdrawls " + (TownySettings.getTownBankAllowWithdrawls() ? Colors.Green + Translation.of("enabled") : Colors.Red + Translation.of("disabled"))); + TownyMessaging.sendMsg(getSender(), "Town Withdrawls " + (TownySettings.getTownBankAllowWithdrawls() ? Colors.Green + Translatable.of("enabled") : Colors.Red + Translatable.of("disabled"))); } catch (Exception e) { - TownyMessaging.sendErrorMsg(getSender(), Translation.of("msg_err_invalid_choice")); + TownyMessaging.sendErrorMsg(getSender(), Translatable.of("msg_err_invalid_choice")); } } else if (split[0].equalsIgnoreCase("nationwithdraw")) { try { TownySettings.SetNationBankAllowWithdrawls(choice.orElse(!TownySettings.getNationBankAllowWithdrawls())); - TownyMessaging.sendMsg(getSender(), "Nation Withdrawls " + (TownySettings.getNationBankAllowWithdrawls() ? Colors.Green + Translation.of("enabled") : Colors.Red + Translation.of("disabled"))); + TownyMessaging.sendMsg(getSender(), "Nation Withdrawls " + (TownySettings.getNationBankAllowWithdrawls() ? Colors.Green + Translatable.of("enabled") : Colors.Red + Translatable.of("disabled"))); } catch (Exception e) { - TownyMessaging.sendErrorMsg(getSender(), Translation.of("msg_err_invalid_choice")); + TownyMessaging.sendErrorMsg(getSender(), Translatable.of("msg_err_invalid_choice")); } } else if (split[0].equalsIgnoreCase("npc")) { if (split.length != 2) - throw new TownyException(Translation.of("msg_err_invalid_input", "Eg: toggle npc [resident]")); + throw new TownyException(Translatable.of("msg_err_invalid_input", "Eg: toggle npc [resident]")); Resident resident = townyUniverse.getResident(split[1]); if (resident == null) { - throw new TownyException(Translation.of("msg_err_not_registered_1", split[1])); + throw new TownyException(Translatable.of("msg_err_not_registered_1", split[1])); } resident.setNPC(!resident.isNPC()); resident.save(); - TownyMessaging.sendMessage(sender, Translation.of("msg_npc_flag", resident.isNPC(), resident.getName())); + TownyMessaging.sendMessage(sender, Translatable.of("msg_npc_flag", resident.isNPC(), resident.getName())); } else if (TownyCommandAddonAPI.hasCommand(CommandType.TOWNYADMIN_TOGGLE, split[0])) { TownyCommandAddonAPI.getAddonCommand(CommandType.TOWNYADMIN_TOGGLE, split[0]).execute(getSender(), "townyadmin", split); } else { // parameter error message // peaceful/war/townmobs/worldmobs - TownyMessaging.sendErrorMsg(getSender(), Translation.of("msg_err_invalid_choice")); + TownyMessaging.sendErrorMsg(getSender(), Translatable.of("msg_err_invalid_choice")); } } @@ -2242,7 +2244,7 @@ public static void handleTownMetaCommand(Player player, Town town, String[] spli TownyUniverse townyUniverse = TownyUniverse.getInstance(); if (!townyUniverse.getPermissionSource().testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWNYADMIN_TOWN_META.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); if (split.length == 2) { if (town.hasMeta()) { @@ -2251,7 +2253,7 @@ public static void handleTownMetaCommand(Player player, Town town, String[] spli TownyMessaging.sendMessage(player, field.getKey() + " = " + field.getValue()); } } else { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_this_town_doesnt_have_any_associated_metadata")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_this_town_doesnt_have_any_associated_metadata")); } return; @@ -2285,29 +2287,29 @@ public static void handleTownMetaCommand(Player player, Town town, String[] spli cdf.setValueFromString(val); // Let user know that it was successful. - TownyMessaging.sendMsg(player, Translation.of("msg_key_x_was_successfully_updated_to_x", mdKey, cdf.getValue())); + TownyMessaging.sendMsg(player, Translatable.of("msg_key_x_was_successfully_updated_to_x", mdKey, cdf.getValue())); // Save changes. town.save(); } else { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_key_x_is_not_part_of_this_town", mdKey)); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_key_x_is_not_part_of_this_town", mdKey)); } } else if (split[2].equalsIgnoreCase("add")) { if (!townyUniverse.getRegisteredMetadataMap().containsKey(mdKey)){ - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_the_metadata_for_key_is_not_registered", mdKey)); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_the_metadata_for_key_is_not_registered", mdKey)); return; } CustomDataField md = townyUniverse.getRegisteredMetadataMap().get(mdKey); if (town.hasMeta() && town.hasMeta(md.getKey())) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_key_x_already_exists", mdKey)); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_key_x_already_exists", mdKey)); return; } - TownyMessaging.sendMsg(player, Translation.of("msg_custom_data_was_successfully_added_to_town")); + TownyMessaging.sendMsg(player, Translatable.of("msg_custom_data_was_successfully_added_to_town")); town.addMetaData(md.clone()); @@ -2316,11 +2318,11 @@ public static void handleTownMetaCommand(Player player, Town town, String[] spli if (town.hasMeta() && town.hasMeta(mdKey)) { CustomDataField cdf = town.getMetadata(mdKey); town.removeMetaData(cdf); - TownyMessaging.sendMsg(player, Translation.of("msg_data_successfully_deleted")); + TownyMessaging.sendMsg(player, Translatable.of("msg_data_successfully_deleted")); return; } - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_key_cannot_be_deleted")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_key_cannot_be_deleted")); } } @@ -2338,7 +2340,7 @@ public static boolean handlePlotMetaCommand(Player player, String[] split) throw } if (!townyUniverse.getPermissionSource().testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWNYADMIN_PLOT_META.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); if (split.length == 1) { if (townBlock.hasMeta()) { @@ -2347,7 +2349,7 @@ public static boolean handlePlotMetaCommand(Player player, String[] split) throw TownyMessaging.sendMessage(player, field.getKey() + " = " + field.getValue()); } } else { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_this_plot_doesnt_have_any_associated_metadata")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_this_plot_doesnt_have_any_associated_metadata")); } return true; @@ -2380,30 +2382,30 @@ public static boolean handlePlotMetaCommand(Player player, String[] split) throw cdf.setValueFromString(val); // Let user know that it was successful. - TownyMessaging.sendMsg(player, Translation.of("msg_key_x_was_successfully_updated_to_x", mdKey, cdf.getValue())); + TownyMessaging.sendMsg(player, Translatable.of("msg_key_x_was_successfully_updated_to_x", mdKey, cdf.getValue())); // Save changes. townBlock.save(); return true; } else { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_key_x_is_not_part_of_this_plot", mdKey)); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_key_x_is_not_part_of_this_plot", mdKey)); return false; } } else if (split[1].equalsIgnoreCase("add")) { if (!townyUniverse.getRegisteredMetadataMap().containsKey(mdKey)) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_the_metadata_for_key_is_not_registered", mdKey)); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_the_metadata_for_key_is_not_registered", mdKey)); return false; } CustomDataField md = townyUniverse.getRegisteredMetadataMap().get(mdKey); if (townBlock.hasMeta() && townBlock.hasMeta(md.getKey())) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_key_x_already_exists", mdKey)); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_key_x_already_exists", mdKey)); return false; } - TownyMessaging.sendMsg(player, Translation.of("msg_custom_data_was_successfully_added_to_townblock")); + TownyMessaging.sendMsg(player, Translatable.of("msg_custom_data_was_successfully_added_to_townblock")); townBlock.addMetaData(md.clone()); @@ -2412,11 +2414,11 @@ public static boolean handlePlotMetaCommand(Player player, String[] split) throw if (townBlock.hasMeta() && townBlock.hasMeta(mdKey)) { CustomDataField cdf = townBlock.getMetadata(mdKey); townBlock.removeMetaData(cdf); - TownyMessaging.sendMsg(player, Translation.of("msg_data_successfully_deleted")); + TownyMessaging.sendMsg(player, Translatable.of("msg_data_successfully_deleted")); return true; } - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_key_cannot_be_deleted")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_key_cannot_be_deleted")); return false; } @@ -2433,7 +2435,7 @@ private void parseAdminDepositAllCommand(String[] split) { try { amount = Double.parseDouble(split[0]); } catch (NumberFormatException e) { - TownyMessaging.sendErrorMsg(sender, Translation.of("msg_error_must_be_num")); + TownyMessaging.sendErrorMsg(sender, Translatable.of("msg_error_must_be_num")); return; } @@ -2443,7 +2445,7 @@ private void parseAdminDepositAllCommand(String[] split) { for (Town town : TownyUniverse.getInstance().getTowns()) town.getAccount().deposit(amount, reason); - TownyMessaging.sendMsg(sender, Translation.of("msg_ta_deposit_all_success", TownyEconomyHandler.getFormattedBalance(amount))); + TownyMessaging.sendMsg(sender, Translatable.of("msg_ta_deposit_all_success", TownyEconomyHandler.getFormattedBalance(amount))); } } diff --git a/src/com/palmergames/bukkit/towny/command/TownyCommand.java b/src/com/palmergames/bukkit/towny/command/TownyCommand.java index ba37a6bc63..9ab79a857b 100644 --- a/src/com/palmergames/bukkit/towny/command/TownyCommand.java +++ b/src/com/palmergames/bukkit/towny/command/TownyCommand.java @@ -15,6 +15,8 @@ import com.palmergames.bukkit.towny.exceptions.TownyException; import com.palmergames.bukkit.towny.huds.HUDManager; import com.palmergames.bukkit.towny.object.Government; +import com.palmergames.bukkit.towny.object.Translatable; +import com.palmergames.bukkit.towny.object.Translator; import com.palmergames.bukkit.towny.object.comparators.GovernmentComparators; import com.palmergames.bukkit.towny.object.Nation; import com.palmergames.bukkit.towny.object.Resident; @@ -48,6 +50,7 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; +import java.util.Locale; import java.util.Optional; public class TownyCommand extends BaseCommand implements CommandExecutor { @@ -161,7 +164,7 @@ public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, TownyMessaging.sendMessage(sender, "The world isn't currently at war."); } else if (args[0].equalsIgnoreCase("universe")) { - for (String line : getUniverseStats()) + for (String line : getUniverseStats(Translation.getDefaultLocale())) TownyMessaging.sendMessage(sender, Colors.strip(line)); } @@ -224,11 +227,11 @@ private void parseTownyCommand(Player player, String[] split) { TownyWorld world = TownyAPI.getInstance().getTownyWorld(player.getWorld().getName()); if (world == null && split[0].equalsIgnoreCase("wildsblocks") || split[0].equalsIgnoreCase("plotclearblocks")) - throw new TownyException(Translation.of("msg_err_usingtowny_disabled")); + throw new TownyException(Translatable.of("msg_err_usingtowny_disabled")); if (split[0].equalsIgnoreCase("map")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWNY_MAP.getNode(split[0].toLowerCase()))) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); if (split.length > 1 && split[1].equalsIgnoreCase("big")) TownyAsciiMap.generateAndSend(plugin, player, 18); @@ -239,13 +242,13 @@ else if (split.length > 1 && split[1].equalsIgnoreCase("hud")) } else if (split[0].equalsIgnoreCase("prices")) { Town town = null; if (!TownyEconomyHandler.isActive()) - throw new TownyException(Translation.of("msg_err_no_economy")); + throw new TownyException(Translatable.of("msg_err_no_economy")); if (split.length > 1) { town = TownyUniverse.getInstance().getTown(split[1]); if (town == null) { - sendErrorMsg(player, Translation.of("msg_err_not_registered_1", split[1])); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_not_registered_1", split[1])); return; } } else { @@ -256,61 +259,61 @@ else if (split.length > 1 && split[1].equalsIgnoreCase("hud")) } } - for (String line : getTownyPrices(town)) + for (String line : getTownyPrices(town, Translation.getLocale(player))) TownyMessaging.sendMessage(player, line); } else if (split[0].equalsIgnoreCase("switches")) { Resident resident = getResidentOrThrow(player.getUniqueId()); - ResidentUtil.openGUIInventory(resident, TownySettings.getSwitchMaterials(), Translation.of("gui_title_towny_switch")); + ResidentUtil.openGUIInventory(resident, TownySettings.getSwitchMaterials(), Translation.of("gui_title_towny_switch", player)); } else if (split[0].equalsIgnoreCase("itemuse")) { Resident resident = getResidentOrThrow(player.getUniqueId()); - ResidentUtil.openGUIInventory(resident, TownySettings.getItemUseMaterials(), Translation.of("gui_title_towny_itemuse")); + ResidentUtil.openGUIInventory(resident, TownySettings.getItemUseMaterials(), Translation.of("gui_title_towny_itemuse", player)); } else if (split[0].equalsIgnoreCase("farmblocks")) { Resident resident = getResidentOrThrow(player.getUniqueId()); - ResidentUtil.openGUIInventory(resident, TownySettings.getFarmPlotBlocks(), Translation.of("gui_title_towny_farmblocks")); + ResidentUtil.openGUIInventory(resident, TownySettings.getFarmPlotBlocks(), Translation.of("gui_title_towny_farmblocks", player)); } else if (split[0].equalsIgnoreCase("wildsblocks")) { Resident resident = getResidentOrThrow(player.getUniqueId()); - ResidentUtil.openGUIInventory(resident, world.getUnclaimedZoneIgnoreMaterials(), Translation.of("gui_title_towny_wildsblocks")); + ResidentUtil.openGUIInventory(resident, world.getUnclaimedZoneIgnoreMaterials(), Translation.of("gui_title_towny_wildsblocks", player)); } else if (split[0].equalsIgnoreCase("plotclearblocks")) { Resident resident = getResidentOrThrow(player.getUniqueId()); - ResidentUtil.openGUIInventory(resident, world.getPlotManagementMayorDelete(), Translation.of("gui_title_towny_plotclear")); + ResidentUtil.openGUIInventory(resident, world.getPlotManagementMayorDelete(), Translation.of("gui_title_towny_plotclear", player)); } else if (split[0].equalsIgnoreCase("top")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWNY_TOP.getNode(split[0].toLowerCase()))) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); TopCommand(player, StringMgmt.remFirstArg(split)); } else if (split[0].equalsIgnoreCase("tree")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWNY_TREE.getNode(split[0].toLowerCase()))) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); consoleUseOnly(player); } else if (split[0].equalsIgnoreCase("time")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWNY_TIME.getNode(split[0].toLowerCase()))) - throw new TownyException(Translation.of("msg_err_command_disable")); - TownyMessaging.sendMsg(player, Translation.of("msg_time_until_a_new_day") + TimeMgmt.formatCountdownTime(TownyTimerHandler.townyTime())); + throw new TownyException(Translatable.of("msg_err_command_disable")); + TownyMessaging.sendMsg(player, Translatable.of("msg_time_until_a_new_day") + TimeMgmt.formatCountdownTime(TownyTimerHandler.townyTime())); } else if (split[0].equalsIgnoreCase("universe")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWNY_UNIVERSE.getNode(split[0].toLowerCase()))) - throw new TownyException(Translation.of("msg_err_command_disable")); - for (String line : getUniverseStats()) + throw new TownyException(Translatable.of("msg_err_command_disable")); + for (String line : getUniverseStats(Translation.getLocale(player))) TownyMessaging.sendMessage(player, line); } else if (split[0].equalsIgnoreCase("version") || split[0].equalsIgnoreCase("v")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWNY_VERSION.getNode(split[0].toLowerCase()))) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); if (TownyUpdateChecker.shouldShowNotification()) { - TownyMessaging.sendMsg(player, Colors.strip(Translation.of("msg_latest_version", plugin.getVersion(), TownyUpdateChecker.getNewVersion()))); + TownyMessaging.sendMsg(player, Translatable.of("msg_latest_version", plugin.getVersion(), TownyUpdateChecker.getNewVersion()).stripColors(true)); } else { TownyMessaging.sendMsg(player, towny_version); if (TownyUpdateChecker.hasCheckedSuccessfully()) - TownyMessaging.sendMsg(player, Translation.of("msg_up_to_date")); + TownyMessaging.sendMsg(player, Translatable.of("msg_up_to_date")); } } else if (split[0].equalsIgnoreCase("war")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWNY_WAR.getNode(split[0].toLowerCase()))) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); boolean war = TownyWar(StringMgmt.remFirstArg(split), player); if (war) for (String line : towny_war) TownyMessaging.sendMessage(player, Colors.strip(line)); else - sendErrorMsg(player, "The world isn't currently at war."); + TownyMessaging.sendErrorMsg(player, "The world isn't currently at war."); towny_war.clear(); } else if (split[0].equalsIgnoreCase("spy")) { @@ -318,14 +321,14 @@ else if (split.length > 1 && split[1].equalsIgnoreCase("hud")) Resident resident = getResidentOrThrow(player.getUniqueId()); resident.toggleMode(split, true); } else - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_command_disable")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_command_disable")); } else if (TownyCommandAddonAPI.hasCommand(CommandType.TOWNY, split[0])) { TownyCommandAddonAPI.getAddonCommand(CommandType.TOWNY, split[0]).execute(player, "towny", split); } else - sendErrorMsg(player, "Invalid sub command."); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_invalid_sub")); } catch (TownyException e) { - TownyMessaging.sendErrorMsg(player, e.getMessage()); + TownyMessaging.sendErrorMsg(player, e.getMessage(player)); } } @@ -348,7 +351,7 @@ else if (args[0].equalsIgnoreCase("hud") && p != null) { if (townyUniverse.getPermissionSource().testPermission(p, PermissionNodes.TOWNY_COMMAND_TOWNY_WAR_HUD.getNode())) { HUDManager.toggleWarHUD(p); } else { - TownyMessaging.sendErrorMsg(p, Translation.of("msg_err_command_disable")); + TownyMessaging.sendErrorMsg(p, Translatable.of("msg_err_command_disable")); } } } @@ -388,19 +391,19 @@ else if (resident.getTownOrNull().getNationOrNull().hasAlly(nations)) try { page = Integer.parseInt(split[1]); if (page < 0) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_negative")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_negative")); return; } else if (page == 0) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_error_must_be_int")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_error_must_be_int")); return; } } catch (NumberFormatException e) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_error_must_be_int")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_error_must_be_int")); return; } } if (page > total) { - TownyMessaging.sendErrorMsg(player, Translation.of("LIST_ERR_NOT_ENOUGH_PAGES", total)); + TownyMessaging.sendErrorMsg(player, Translatable.of("LIST_ERR_NOT_ENOUGH_PAGES", total)); return; } @@ -415,7 +418,7 @@ else if (resident.getTownOrNull().getNationOrNull().hasAlly(nations)) } TownyMessaging.sendMessage(player, ChatTools.formatList("War Participants", Colors.Gold + "Nation Name" + Colors.Gray + " - " + Colors.Blue + "Town Names", - warparticipantsformatted, Translation.of("LIST_PAGE", page, total) + warparticipantsformatted, Translation.of("LIST_PAGE", player, page, total) ) ); output.clear(); @@ -441,7 +444,7 @@ private void TopCommand(Player player, String[] args) { towny_top.add(ChatTools.formatTitle("Most Residents in a Nation")); towny_top.addAll(getMostResidents(new ArrayList<>(universe.getNations()))); } else - sendErrorMsg(player, "Invalid sub command."); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_invalid_sub")); else if (args[0].equalsIgnoreCase("land")) if (args.length == 1 || args[1].equalsIgnoreCase("all")) { List list = new ArrayList<>(universe.getResidents()); @@ -455,7 +458,7 @@ else if (args[0].equalsIgnoreCase("land")) towny_top.add(ChatTools.formatTitle("Most Land Owned by Town")); towny_top.addAll(getMostLand(new ArrayList<>(universe.getDataSource().getTowns()))); } else - sendErrorMsg(player, "Invalid sub command."); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_invalid_sub")); else if (args[0].equalsIgnoreCase("balance")) { if (args.length == 1 || args[1].equalsIgnoreCase("all")) { List list = new ArrayList<>(); @@ -472,11 +475,11 @@ else if (args[0].equalsIgnoreCase("balance")) { towny_top.add(ChatTools.formatTitle("Top Bank Balances by Nation")); towny_top.addAll(getTopBankBalance(list)); } else { - sendErrorMsg(player, "Invalid sub command."); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_invalid_sub")); } } else - sendErrorMsg(player, "Invalid sub command."); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_invalid_sub")); for (String line : towny_top) TownyMessaging.sendMessage(player, line); @@ -485,17 +488,19 @@ else if (args[0].equalsIgnoreCase("balance")) { } - public List getUniverseStats() { + public List getUniverseStats(Locale locale) { TownyUniverse townyUniverse = TownyUniverse.getInstance(); TownyDataSource townyDS = townyUniverse.getDataSource(); List output = new ArrayList<>(); + final Translator translator = Translator.locale(locale); + output.add(""); // Intentionally left blank output.add("\u00A70-\u00A74###\u00A70---\u00A74###\u00A70- " + Colors.Gold + "[" + Colors.Yellow + "Towny " + Colors.Green + plugin.getVersion() + Colors.Gold + "]"); - output.add("\u00A74#\u00A7c###\u00A74#\u00A70-\u00A74#\u00A7c###\u00A74#\u00A70 " + Colors.Blue + Translation.of("msg_universe_attribution") + Colors.LightBlue + "Chris H (Shade), ElgarL, LlmDl"); - output.add("\u00A74#\u00A7c####\u00A74#\u00A7c####\u00A74# " + Colors.LightBlue + Translation.of("msg_universe_contributors") + Colors.Rose + Translation.of("msg_universe_heart")); + output.add("\u00A74#\u00A7c###\u00A74#\u00A70-\u00A74#\u00A7c###\u00A74#\u00A70 " + Colors.Blue + translator.of("msg_universe_attribution") + Colors.LightBlue + "Chris H (Shade), ElgarL, LlmDl"); + output.add("\u00A74#\u00A7c####\u00A74#\u00A7c####\u00A74# " + Colors.LightBlue + translator.of("msg_universe_contributors") + Colors.Rose + translator.of("msg_universe_heart")); output.add("\u00A70-\u00A74#\u00A7c#######\u00A74#\u00A70-"); - output.add("\u00A70--\u00A74##\u00A7c###\u00A74##\u00A70-- " + Colors.Blue + Translation.of("res_list")+ ": " + Colors.LightBlue + townyUniverse.getNumResidents() + Colors.Gray + " | " + Colors.Blue + Translation.of("town_plu") + ": " + Colors.LightBlue + townyDS.getTowns().size() + Colors.Gray + " | " + Colors.Blue + Translation.of("nation_plu") + ": " + Colors.LightBlue + townyUniverse.getNumNations()); - output.add("\u00A70----\u00A74#\u00A7c#\u00A74#\u00A70---- " + Colors.Blue + Translation.of("world_plu") + ": " + Colors.LightBlue + townyDS.getWorlds().size() + Colors.Gray + " | " + Colors.Blue + Translation.of("townblock_plu") + ": " + Colors.LightBlue + townyUniverse.getTownBlocks().size()); + output.add("\u00A70--\u00A74##\u00A7c###\u00A74##\u00A70-- " + Colors.Blue + translator.of("res_list")+ ": " + Colors.LightBlue + townyUniverse.getNumResidents() + Colors.Gray + " | " + Colors.Blue + translator.of("town_plu") + ": " + Colors.LightBlue + townyDS.getTowns().size() + Colors.Gray + " | " + Colors.Blue + translator.of("nation_plu") + ": " + Colors.LightBlue + townyUniverse.getNumNations()); + output.add("\u00A70----\u00A74#\u00A7c#\u00A74#\u00A70---- " + Colors.Blue + translator.of("world_plu") + ": " + Colors.LightBlue + townyDS.getWorlds().size() + Colors.Gray + " | " + Colors.Blue + translator.of("townblock_plu") + ": " + Colors.LightBlue + townyUniverse.getTownBlocks().size()); output.add("\u00A70-----\u00A74#\u00A70----- " + Colors.LightGreen + "https://TownyAdvanced.github.io/"); output.add(""); // Intentionally left blank @@ -569,50 +574,51 @@ public static void showMap(Player player) { * @param town - The town being checked. * @return - Prices screen for a town. */ - public List getTownyPrices(Town town) { + public List getTownyPrices(Town town, Locale locale) { List output = new ArrayList<>(); + final Translator translator = Translator.locale(locale); Nation nation = null; if (town != null) if (town.hasNation()) nation = town.getNationOrNull(); - output.add(ChatTools.formatTitle(Translation.of("towny_prices_title"))); - output.add(Translation.of("towny_prices_town_nation", TownyEconomyHandler.getFormattedBalance(TownySettings.getNewTownPrice()), TownyEconomyHandler.getFormattedBalance(TownySettings.getNewNationPrice()))); - output.add(Translation.of("towny_prices_reclaim", TownyEconomyHandler.getFormattedBalance(TownRuinSettings.getEcoPriceReclaimTown()))); + output.add(ChatTools.formatTitle(translator.of("towny_prices_title"))); + output.add(translator.of("towny_prices_town_nation", TownyEconomyHandler.getFormattedBalance(TownySettings.getNewTownPrice()), TownyEconomyHandler.getFormattedBalance(TownySettings.getNewNationPrice()))); + output.add(translator.of("towny_prices_reclaim", TownyEconomyHandler.getFormattedBalance(TownRuinSettings.getEcoPriceReclaimTown()))); if (town != null) { - output.add(Translation.of("towny_prices_upkeep", TownyEconomyHandler.getFormattedBalance(TownySettings.getTownUpkeepCost(town)), TownyEconomyHandler.getFormattedBalance(TownySettings.getNationUpkeepCost(nation)))); - output.add(Translation.of("towny_prices_upkeep_based_on", (TownySettings.isUpkeepByPlot() ? Translation.of("towny_prices_upkeep_num_plots") : Translation.of("towny_prices_upkeep_town_level")))); + output.add(translator.of("towny_prices_upkeep", TownyEconomyHandler.getFormattedBalance(TownySettings.getTownUpkeepCost(town)), TownyEconomyHandler.getFormattedBalance(TownySettings.getNationUpkeepCost(nation)))); + output.add(translator.of("towny_prices_upkeep_based_on", (TownySettings.isUpkeepByPlot() ? translator.of("towny_prices_upkeep_num_plots") : translator.of("towny_prices_upkeep_town_level")))); if (town.isOverClaimed() && TownySettings.getUpkeepPenalty() > 0) - output.add(Translation.of("towny_prices_overclaimed_upkeep", TownyEconomyHandler.getFormattedBalance(TownySettings.getTownPenaltyUpkeepCost(town)))); + output.add(translator.of("towny_prices_overclaimed_upkeep", TownyEconomyHandler.getFormattedBalance(TownySettings.getTownPenaltyUpkeepCost(town)))); if (TownySettings.getUpkeepPenalty() > 0 ) - output.add(Translation.of("towny_prices_overclaimed_based_on", (TownySettings.isUpkeepPenaltyByPlot() ? Translation.of("towny_prices_overclaimed_num_plots") : Translation.of("towny_prices_overclaimed_flat_cost")), TownySettings.getUpkeepPenalty())); + output.add(translator.of("towny_prices_overclaimed_based_on", (TownySettings.isUpkeepPenaltyByPlot() ? translator.of("towny_prices_overclaimed_num_plots") : translator.of("towny_prices_overclaimed_flat_cost")), TownySettings.getUpkeepPenalty())); - output.add(Translation.of("towny_prices_town_merge", TownyEconomyHandler.getFormattedBalance(TownySettings.getBaseCostForTownMerge()), TownyEconomyHandler.getFormattedBalance(town.getTownBlockCost()/2))); - output.add(Translation.of("towny_prices_claiming_townblock", TownyEconomyHandler.getFormattedBalance(town.getTownBlockCost()) + - (Double.valueOf(TownySettings.getClaimPriceIncreaseValue()).equals(1.0) ? "" : Translation.of("towny_prices_claiming_townblock_increase", new DecimalFormat("##.##%").format(TownySettings.getClaimPriceIncreaseValue()-1))))); - output.add(Translation.of("towny_prices_claiming_outposts", TownyEconomyHandler.getFormattedBalance(TownySettings.getOutpostCost()))); + output.add(translator.of("towny_prices_town_merge", TownyEconomyHandler.getFormattedBalance(TownySettings.getBaseCostForTownMerge()), TownyEconomyHandler.getFormattedBalance(town.getTownBlockCost()/2))); + output.add(translator.of("towny_prices_claiming_townblock", TownyEconomyHandler.getFormattedBalance(town.getTownBlockCost()) + + (Double.valueOf(TownySettings.getClaimPriceIncreaseValue()).equals(1.0) ? "" : translator.of("towny_prices_claiming_townblock_increase", new DecimalFormat("##.##%").format(TownySettings.getClaimPriceIncreaseValue()-1))))); + output.add(translator.of("towny_prices_claiming_outposts", TownyEconomyHandler.getFormattedBalance(TownySettings.getOutpostCost()))); } if (town == null) - output.add(Translation.of("towny_prices_upkeep", TownyEconomyHandler.getFormattedBalance(TownySettings.getTownUpkeep()), TownyEconomyHandler.getFormattedBalance(TownySettings.getNationUpkeep()))); + output.add(translator.of("towny_prices_upkeep", TownyEconomyHandler.getFormattedBalance(TownySettings.getTownUpkeep()), TownyEconomyHandler.getFormattedBalance(TownySettings.getNationUpkeep()))); if (town != null) { - output.add(Translation.of("towny_prices_townname", town.getFormattedName())); - output.add(Translation.of("towny_prices_price_plot", TownyEconomyHandler.getFormattedBalance(town.getPlotPrice()),TownyEconomyHandler.getFormattedBalance(TownySettings.getOutpostCost()))); - output.add(Translation.of("towny_prices_price_shop", TownyEconomyHandler.getFormattedBalance(town.getCommercialPlotPrice()), TownyEconomyHandler.getFormattedBalance(town.getEmbassyPlotPrice()))); + output.add(translator.of("towny_prices_townname", town.getFormattedName())); + output.add(translator.of("towny_prices_price_plot", TownyEconomyHandler.getFormattedBalance(town.getPlotPrice()),TownyEconomyHandler.getFormattedBalance(TownySettings.getOutpostCost()))); + output.add(translator.of("towny_prices_price_shop", TownyEconomyHandler.getFormattedBalance(town.getCommercialPlotPrice()), TownyEconomyHandler.getFormattedBalance(town.getEmbassyPlotPrice()))); - output.add(Translation.of("towny_prices_taxes_plot", (town.isTaxPercentage()? town.getTaxes() + "%" : TownyEconomyHandler.getFormattedBalance(town.getTaxes())), TownyEconomyHandler.getFormattedBalance(town.getPlotTax()))); - output.add(Translation.of("towny_prices_taxes_shop", TownyEconomyHandler.getFormattedBalance(town.getCommercialPlotTax()), TownyEconomyHandler.getFormattedBalance(town.getEmbassyPlotTax()))); + output.add(translator.of("towny_prices_taxes_plot", (town.isTaxPercentage()? town.getTaxes() + "%" : TownyEconomyHandler.getFormattedBalance(town.getTaxes())), TownyEconomyHandler.getFormattedBalance(town.getPlotTax()))); + output.add(translator.of("towny_prices_taxes_shop", TownyEconomyHandler.getFormattedBalance(town.getCommercialPlotTax()), TownyEconomyHandler.getFormattedBalance(town.getEmbassyPlotTax()))); - output.add(Translation.of("towny_prices_plots_shop", TownyEconomyHandler.getFormattedBalance(TownySettings.getPlotSetCommercialCost()), TownyEconomyHandler.getFormattedBalance(TownySettings.getPlotSetEmbassyCost()))); - output.add(Translation.of("towny_prices_plots_wilds", TownyEconomyHandler.getFormattedBalance(TownySettings.getPlotSetWildsCost()), TownyEconomyHandler.getFormattedBalance(TownySettings.getPlotSetInnCost()))); - output.add(Translation.of("towny_prices_plots_jail", TownyEconomyHandler.getFormattedBalance(TownySettings.getPlotSetJailCost()), TownyEconomyHandler.getFormattedBalance(TownySettings.getPlotSetFarmCost()))); - output.add(Translation.of("towny_prices_plots_bank", TownyEconomyHandler.getFormattedBalance(TownySettings.getPlotSetBankCost()))); + output.add(translator.of("towny_prices_plots_shop", TownyEconomyHandler.getFormattedBalance(TownySettings.getPlotSetCommercialCost()), TownyEconomyHandler.getFormattedBalance(TownySettings.getPlotSetEmbassyCost()))); + output.add(translator.of("towny_prices_plots_wilds", TownyEconomyHandler.getFormattedBalance(TownySettings.getPlotSetWildsCost()), TownyEconomyHandler.getFormattedBalance(TownySettings.getPlotSetInnCost()))); + output.add(translator.of("towny_prices_plots_jail", TownyEconomyHandler.getFormattedBalance(TownySettings.getPlotSetJailCost()), TownyEconomyHandler.getFormattedBalance(TownySettings.getPlotSetFarmCost()))); + output.add(translator.of("towny_prices_plots_bank", TownyEconomyHandler.getFormattedBalance(TownySettings.getPlotSetBankCost()))); if (nation != null) { - output.add(Translation.of("towny_prices_nationname", nation.getFormattedName())); - output.add(Translation.of("towny_prices_nation_tax", nation.getTaxes(), TownyEconomyHandler.getFormattedBalance(TownySettings.getNationNeutralityCost()))); + output.add(translator.of("towny_prices_nationname", nation.getFormattedName())); + output.add(translator.of("towny_prices_nation_tax", nation.getTaxes(), TownyEconomyHandler.getFormattedBalance(TownySettings.getNationNeutralityCost()))); } } return output; @@ -690,16 +696,4 @@ public void inGameUseOnly(CommandSender sender) { TownyMessaging.sendMessage(sender, "[Towny] InputError: This command was designed for use in game only."); } - - public boolean sendErrorMsg(CommandSender sender, String msg) { - - if (sender instanceof Player) { - Player player = (Player) sender; - TownyMessaging.sendErrorMsg(player, msg); - } else - // Console - TownyMessaging.sendMessage(sender, "[Towny] ConsoleError: " + msg); - - return false; - } } diff --git a/src/com/palmergames/bukkit/towny/command/TownyWorldCommand.java b/src/com/palmergames/bukkit/towny/command/TownyWorldCommand.java index 9e9e92a5dd..0f743a87ad 100644 --- a/src/com/palmergames/bukkit/towny/command/TownyWorldCommand.java +++ b/src/com/palmergames/bukkit/towny/command/TownyWorldCommand.java @@ -10,6 +10,7 @@ import com.palmergames.bukkit.towny.event.TownBlockSettingsChangedEvent; import com.palmergames.bukkit.towny.exceptions.TownyException; import com.palmergames.bukkit.towny.object.TownyWorld; +import com.palmergames.bukkit.towny.object.Translatable; import com.palmergames.bukkit.towny.object.Translation; import com.palmergames.bukkit.towny.permissions.PermissionNodes; import com.palmergames.bukkit.towny.permissions.TownyPermissionSource; @@ -154,7 +155,7 @@ else if (split[0].equalsIgnoreCase("regen") || split[0].equalsIgnoreCase("undo") } else { Globalworld = TownyAPI.getInstance().getTownyWorld(split[0].toLowerCase()); if (Globalworld == null) { - TownyMessaging.sendErrorMsg(sender, Translation.of("msg_area_not_recog")); + TownyMessaging.sendErrorMsg(sender, Translatable.of("msg_area_not_recog")); return; } split = StringMgmt.remFirstArg(split); @@ -171,7 +172,7 @@ public void parseWorldCommand(CommandSender sender, String[] split) { if (Globalworld == null) Globalworld = TownyAPI.getInstance().getTownyWorld(player.getWorld().getName()); if (Globalworld == null) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_area_not_recog")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_area_not_recog")); return; } } @@ -182,7 +183,7 @@ public void parseWorldCommand(CommandSender sender, String[] split) { TownyMessaging.sendMessage(sender, Colors.strip(line)); } } else { - TownyMessaging.sendMessage(player, TownyFormatter.getStatus(Globalworld)); + TownyMessaging.sendMessage(player, TownyFormatter.getStatus(Globalworld, Translation.getLocale(player))); } return; @@ -195,14 +196,14 @@ public void parseWorldCommand(CommandSender sender, String[] split) { } else if (split[0].equalsIgnoreCase("list")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWNYWORLD_LIST.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); listWorlds(player, sender); } else if (split[0].equalsIgnoreCase("set")) { if (!permSource.testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWNYWORLD_SET.getNode())) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); worldSet(player, sender, StringMgmt.remFirstArg(split)); @@ -256,20 +257,20 @@ public void parseWorldCommand(CommandSender sender, String[] split) { } else if (TownyCommandAddonAPI.hasCommand(CommandType.TOWNYWORLD, split[0])) { TownyCommandAddonAPI.getAddonCommand(CommandType.TOWNYWORLD, split[0]).execute(sender, "townyworld", split); } else { - TownyMessaging.sendErrorMsg(sender, Translation.of("msg_err_invalid_property", "townyworld")); + TownyMessaging.sendErrorMsg(sender, Translatable.of("msg_err_invalid_property", "townyworld")); } } catch (TownyException e) { - TownyMessaging.sendErrorMsg(player, e.getMessage()); + TownyMessaging.sendErrorMsg(player, e.getMessage(player)); } } public void listWorlds(Player player, CommandSender sender) { if (player == null) { - TownyMessaging.sendMessage(sender, ChatTools.formatTitle(Translation.of("world_plu"))); + TownyMessaging.sendMessage(sender, ChatTools.formatTitle(Translation.of("world_plu", sender))); } else - TownyMessaging.sendMessage(player, ChatTools.formatTitle(Translation.of("world_plu"))); + TownyMessaging.sendMessage(player, ChatTools.formatTitle(Translation.of("world_plu", player))); ArrayList formatedList = new ArrayList<>(); HashMap playersPerWorld = BukkitTools.getPlayersPerWorld(); @@ -299,12 +300,12 @@ public void worldToggle(Player player, CommandSender sender, String[] split) thr } else { if (!TownyUniverse.getInstance().getPermissionSource().testPermission(player, PermissionNodes.TOWNY_COMMAND_TOWNYWORLD_TOGGLE.getNode(split[0].toLowerCase()))) - throw new TownyException(Translation.of("msg_err_command_disable")); + throw new TownyException(Translatable.of("msg_err_command_disable")); if (!Globalworld.isUsingTowny() && !split[0].equalsIgnoreCase("usingtowny")) - throw new TownyException(Translation.of("msg_err_usingtowny_disabled")); + throw new TownyException(Translatable.of("msg_err_usingtowny_disabled")); - String msg; + Translatable msg; Optional choice = Optional.empty(); if (split.length == 2) { choice = BaseCommand.parseToggleChoice(split[1]); @@ -313,7 +314,7 @@ public void worldToggle(Player player, CommandSender sender, String[] split) thr if (split[0].equalsIgnoreCase("claimable")) { Globalworld.setClaimable(choice.orElse(!Globalworld.isClaimable())); - msg = Translation.of("msg_set_claim", Globalworld.getName(), Globalworld.isClaimable() ? Translation.of("enabled") : Translation.of("disabled")); + msg = Translatable.of("msg_set_claim", Globalworld.getName(), Globalworld.isClaimable() ? Translatable.of("enabled") : Translatable.of("disabled")); if (player != null) TownyMessaging.sendMsg(player, msg); else @@ -323,7 +324,7 @@ public void worldToggle(Player player, CommandSender sender, String[] split) thr Globalworld.setUsingTowny(choice.orElse(!Globalworld.isUsingTowny())); plugin.resetCache(); - msg = String.format(Globalworld.isUsingTowny() ? Translation.of("msg_set_use_towny_on") : Translation.of("msg_set_use_towny_off")); + msg = Globalworld.isUsingTowny() ? Translatable.of("msg_set_use_towny_on") : Translatable.of("msg_set_use_towny_off"); if (player != null) TownyMessaging.sendMsg(player, msg); else @@ -333,7 +334,7 @@ public void worldToggle(Player player, CommandSender sender, String[] split) thr Globalworld.setWarAllowed(choice.orElse(!Globalworld.isWarAllowed())); plugin.resetCache(); - msg = String.format(Globalworld.isWarAllowed() ? Translation.of("msg_set_war_allowed_on") : Translation.of("msg_set_war_allowed_off")); + msg = Globalworld.isWarAllowed() ? Translatable.of("msg_set_war_allowed_on") : Translatable.of("msg_set_war_allowed_off"); if (player != null) TownyMessaging.sendMsg(player, msg); else @@ -342,7 +343,7 @@ public void worldToggle(Player player, CommandSender sender, String[] split) thr } else if (split[0].equalsIgnoreCase("pvp")) { Globalworld.setPVP(choice.orElse(!Globalworld.isPVP())); - msg = Translation.of("msg_changed_world_setting", "Global PVP", Globalworld.getName(), Globalworld.isPVP() ? Translation.of("enabled") : Translation.of("disabled")); + msg = Translatable.of("msg_changed_world_setting", "Global PVP", Globalworld.getName(), Globalworld.isPVP() ? Translatable.of("enabled") : Translatable.of("disabled")); if (player != null) TownyMessaging.sendMsg(player, msg); else @@ -351,7 +352,7 @@ public void worldToggle(Player player, CommandSender sender, String[] split) thr } else if (split[0].equalsIgnoreCase("forcepvp")) { Globalworld.setForcePVP(choice.orElse(!Globalworld.isForcePVP())); - msg = Translation.of("msg_changed_world_setting", "Force town PVP", Globalworld.getName(), Globalworld.isForcePVP() ? Translation.of("forced") : Translation.of("adjustable")); + msg = Translatable.of("msg_changed_world_setting", "Force town PVP", Globalworld.getName(), Globalworld.isForcePVP() ? Translatable.of("forced") : Translatable.of("adjustable")); if (player != null) TownyMessaging.sendMsg(player, msg); else @@ -360,7 +361,7 @@ public void worldToggle(Player player, CommandSender sender, String[] split) thr } else if (split[0].equalsIgnoreCase("friendlyfire")) { Globalworld.setFriendlyFire(choice.orElse(!Globalworld.isFriendlyFireEnabled())); - msg = Translation.of("msg_changed_world_setting", "Friendly Fire", Globalworld.getName(), Globalworld.isFriendlyFireEnabled() ? Translation.of("enabled") : Translation.of("disabled")); + msg = Translatable.of("msg_changed_world_setting", "Friendly Fire", Globalworld.getName(), Globalworld.isFriendlyFireEnabled() ? Translatable.of("enabled") : Translatable.of("disabled")); if (player != null) TownyMessaging.sendMsg(player, msg); else @@ -369,7 +370,7 @@ public void worldToggle(Player player, CommandSender sender, String[] split) thr } else if (split[0].equalsIgnoreCase("explosion")) { Globalworld.setExpl(choice.orElse(!Globalworld.isExpl())); - msg = Translation.of("msg_changed_world_setting", "Explosions", Globalworld.getName(), Globalworld.isExpl() ? Translation.of("enabled") : Translation.of("disabled")); + msg = Translatable.of("msg_changed_world_setting", "Explosions", Globalworld.getName(), Globalworld.isExpl() ? Translatable.of("enabled") : Translatable.of("disabled")); if (player != null) TownyMessaging.sendMsg(player, msg); else @@ -378,7 +379,7 @@ public void worldToggle(Player player, CommandSender sender, String[] split) thr } else if (split[0].equalsIgnoreCase("forceexplosion")) { Globalworld.setForceExpl(choice.orElse(!Globalworld.isForceExpl())); - msg = Translation.of("msg_changed_world_setting", "Force town Explosions", Globalworld.getName(), Globalworld.isForceExpl() ? Translation.of("forced") : Translation.of("adjustable")); + msg = Translatable.of("msg_changed_world_setting", "Force town Explosions", Globalworld.getName(), Globalworld.isForceExpl() ? Translatable.of("forced") : Translatable.of("adjustable")); if (player != null) TownyMessaging.sendMsg(player, msg); else @@ -387,7 +388,7 @@ public void worldToggle(Player player, CommandSender sender, String[] split) thr } else if (split[0].equalsIgnoreCase("fire")) { Globalworld.setFire(choice.orElse(!Globalworld.isFire())); - msg = Translation.of("msg_changed_world_setting", "Fire Spread", Globalworld.getName(), Globalworld.isFire() ? Translation.of("enabled") : Translation.of("disabled")); + msg = Translatable.of("msg_changed_world_setting", "Fire Spread", Globalworld.getName(), Globalworld.isFire() ? Translatable.of("enabled") : Translatable.of("disabled")); if (player != null) TownyMessaging.sendMsg(player, msg); else @@ -396,7 +397,7 @@ public void worldToggle(Player player, CommandSender sender, String[] split) thr } else if (split[0].equalsIgnoreCase("forcefire")) { Globalworld.setForceFire(choice.orElse(!Globalworld.isForceFire())); - msg = Translation.of("msg_changed_world_setting", "Force town Fire Spread", Globalworld.getName(), Globalworld.isForceFire() ? Translation.of("forced") : Translation.of("adjustable")); + msg = Translatable.of("msg_changed_world_setting", "Force town Fire Spread", Globalworld.getName(), Globalworld.isForceFire() ? Translatable.of("forced") : Translatable.of("adjustable")); if (player != null) TownyMessaging.sendMsg(player, msg); else @@ -405,7 +406,7 @@ public void worldToggle(Player player, CommandSender sender, String[] split) thr } else if (split[0].equalsIgnoreCase("townmobs")) { Globalworld.setForceTownMobs(choice.orElse(!Globalworld.isForceTownMobs())); - msg = Translation.of("msg_changed_world_setting", "Town Mob spawns", Globalworld.getName(), Globalworld.isForceTownMobs() ? Translation.of("forced") : Translation.of("adjustable")); + msg = Translatable.of("msg_changed_world_setting", "Town Mob spawns", Globalworld.getName(), Globalworld.isForceTownMobs() ? Translatable.of("forced") : Translatable.of("adjustable")); if (player != null) TownyMessaging.sendMsg(player, msg); else @@ -414,7 +415,7 @@ public void worldToggle(Player player, CommandSender sender, String[] split) thr } else if (split[0].equalsIgnoreCase("worldmobs")) { Globalworld.setWorldMobs(choice.orElse(!Globalworld.hasWorldMobs())); - msg = Translation.of("msg_changed_world_setting", "World Mob spawns", Globalworld.getName(), Globalworld.hasWorldMobs() ? Translation.of("enabled") : Translation.of("disabled")); + msg = Translatable.of("msg_changed_world_setting", "World Mob spawns", Globalworld.getName(), Globalworld.hasWorldMobs() ? Translatable.of("enabled") : Translatable.of("disabled")); if (player != null) TownyMessaging.sendMsg(player, msg); else @@ -423,7 +424,7 @@ public void worldToggle(Player player, CommandSender sender, String[] split) thr } else if (split[0].equalsIgnoreCase("wildernessmobs")) { Globalworld.setWildernessMobs(choice.orElse(!Globalworld.hasWildernessMobs())); - msg = Translation.of("msg_changed_world_setting", "Wilderness Mob spawns", Globalworld.getName(), Globalworld.hasWildernessMobs() ? Translation.of("enabled") : Translation.of("disabled")); + msg = Translatable.of("msg_changed_world_setting", "Wilderness Mob spawns", Globalworld.getName(), Globalworld.hasWildernessMobs() ? Translatable.of("enabled") : Translatable.of("disabled")); if (player != null) TownyMessaging.sendMsg(player, msg); else @@ -438,7 +439,7 @@ public void worldToggle(Player player, CommandSender sender, String[] split) thr TownyRegenAPI.removePlotChunksForWorld(Globalworld, true); // Stop any active reverts being done. } - msg = Translation.of("msg_changed_world_setting", "Unclaim Revert", Globalworld.getName(), Globalworld.isUsingPlotManagementRevert() ? Translation.of("enabled") : Translation.of("disabled")); + msg = Translatable.of("msg_changed_world_setting", "Unclaim Revert", Globalworld.getName(), Globalworld.isUsingPlotManagementRevert() ? Translatable.of("enabled") : Translatable.of("disabled")); if (player != null) TownyMessaging.sendMsg(player, msg); else @@ -447,7 +448,7 @@ public void worldToggle(Player player, CommandSender sender, String[] split) thr } else if (split[0].equalsIgnoreCase("revertentityexpl")) { Globalworld.setUsingPlotManagementWildEntityRevert(choice.orElse(!Globalworld.isUsingPlotManagementWildEntityRevert())); - msg = Translation.of("msg_changed_world_setting", "Wilderness Entity Explosion Revert", Globalworld.getName(), Globalworld.isUsingPlotManagementWildEntityRevert() ? Translation.of("enabled") : Translation.of("disabled")); + msg = Translatable.of("msg_changed_world_setting", "Wilderness Entity Explosion Revert", Globalworld.getName(), Globalworld.isUsingPlotManagementWildEntityRevert() ? Translatable.of("enabled") : Translatable.of("disabled")); if (player != null) TownyMessaging.sendMsg(player, msg); else @@ -456,7 +457,7 @@ public void worldToggle(Player player, CommandSender sender, String[] split) thr } else if (split[0].equalsIgnoreCase("revertblockexpl")) { Globalworld.setUsingPlotManagementWildBlockRevert(choice.orElse(!Globalworld.isUsingPlotManagementWildBlockRevert())); - msg = Translation.of("msg_changed_world_setting", "Wilderness Block Explosion Revert", Globalworld.getName(), Globalworld.isUsingPlotManagementWildBlockRevert() ? Translation.of("enabled") : Translation.of("disabled")); + msg = Translatable.of("msg_changed_world_setting", "Wilderness Block Explosion Revert", Globalworld.getName(), Globalworld.isUsingPlotManagementWildBlockRevert() ? Translatable.of("enabled") : Translatable.of("disabled")); if (player != null) TownyMessaging.sendMsg(player, msg); else @@ -465,7 +466,7 @@ public void worldToggle(Player player, CommandSender sender, String[] split) thr } else if (split[0].equalsIgnoreCase("plotcleardelete")) { Globalworld.setUsingPlotManagementMayorDelete(choice.orElse(!Globalworld.isUsingPlotManagementMayorDelete())); - msg = Translation.of("msg_changed_world_setting", "Plot Clear Delete", Globalworld.getName(), Globalworld.isUsingPlotManagementMayorDelete() ? Translation.of("enabled") : Translation.of("disabled")); + msg = Translatable.of("msg_changed_world_setting", "Plot Clear Delete", Globalworld.getName(), Globalworld.isUsingPlotManagementMayorDelete() ? Translatable.of("enabled") : Translatable.of("disabled")); if (player != null) TownyMessaging.sendMsg(player, msg); else @@ -474,7 +475,7 @@ public void worldToggle(Player player, CommandSender sender, String[] split) thr } else if (split[0].equalsIgnoreCase("unclaimblockdelete")) { Globalworld.setUsingPlotManagementDelete(choice.orElse(!Globalworld.isUsingPlotManagementDelete())); - msg = Translation.of("msg_changed_world_setting", "Unclaim Block Delete", Globalworld.getName(), Globalworld.isUsingPlotManagementDelete() ? Translation.of("enabled") : Translation.of("disabled")); + msg = Translatable.of("msg_changed_world_setting", "Unclaim Block Delete", Globalworld.getName(), Globalworld.isUsingPlotManagementDelete() ? Translatable.of("enabled") : Translatable.of("disabled")); if (player != null) TownyMessaging.sendMsg(player, msg); else @@ -483,7 +484,7 @@ public void worldToggle(Player player, CommandSender sender, String[] split) thr } else if (TownyCommandAddonAPI.hasCommand(CommandType.TOWNYWORLD_TOGGLE, split[0])) { TownyCommandAddonAPI.getAddonCommand(CommandType.TOWNYWORLD_TOGGLE, split[0]).execute(sender, "townyworld", split); } else { - msg = Translation.of("msg_err_invalid_property", "'" + split[0] + "'"); + msg = Translatable.of("msg_err_invalid_property", "'" + split[0] + "'"); if (player != null) TownyMessaging.sendErrorMsg(player, msg); else @@ -511,9 +512,9 @@ public void worldSet(Player player, CommandSender sender, String[] split) { Globalworld.setUsingDefault(); plugin.resetCache(); if (player != null) - TownyMessaging.sendMsg(player, Translation.of("msg_usedefault", Globalworld.getName())); + TownyMessaging.sendMsg(player, Translatable.of("msg_usedefault", Globalworld.getName())); else - TownyMessaging.sendMessage(sender, Translation.of("msg_usedefault", Globalworld.getName())); + TownyMessaging.sendMessage(sender, Translatable.of("msg_usedefault", Globalworld.getName())); } else if (split[0].equalsIgnoreCase("wildperm")) { @@ -521,9 +522,9 @@ public void worldSet(Player player, CommandSender sender, String[] split) { // set default wildperm settings (/tw set wildperm) Globalworld.setUsingDefault(); if (player != null) - TownyMessaging.sendMsg(player, Translation.of("msg_usedefault", Globalworld.getName())); + TownyMessaging.sendMsg(player, Translatable.of("msg_usedefault", Globalworld.getName())); else - TownyMessaging.sendMessage(sender, Translation.of("msg_usedefault", Globalworld.getName())); + TownyMessaging.sendMessage(sender, Translatable.of("msg_usedefault", Globalworld.getName())); } else try { List perms = Arrays.asList(StringMgmt.remFirstArg(split)); @@ -534,9 +535,9 @@ public void worldSet(Player player, CommandSender sender, String[] split) { plugin.resetCache(); if (player != null) - TownyMessaging.sendMsg(player, Translation.of("msg_set_wild_perms", Globalworld.getName(), perms.toString())); + TownyMessaging.sendMsg(player, Translatable.of("msg_set_wild_perms", Globalworld.getName(), perms.toString())); else - TownyMessaging.sendMessage(sender, Translation.of("msg_set_wild_perms", Globalworld.getName(), perms.toString())); + TownyMessaging.sendMessage(sender, Translatable.of("msg_set_wild_perms", Globalworld.getName(), perms.toString())); } catch (Exception e) { if (player != null) TownyMessaging.sendErrorMsg(player, "Eg: /townyworld set wildperm build destroy"); @@ -561,12 +562,12 @@ public void worldSet(Player player, CommandSender sender, String[] split) { plugin.resetCache(); if (player != null) - TownyMessaging.sendMsg(player, Translation.of("msg_set_wild_ignore", Globalworld.getName(), Globalworld.getUnclaimedZoneIgnoreMaterials())); + TownyMessaging.sendMsg(player, Translatable.of("msg_set_wild_ignore", Globalworld.getName(), Globalworld.getUnclaimedZoneIgnoreMaterials())); else - TownyMessaging.sendMessage(sender, Translation.of("msg_set_wild_ignore", Globalworld.getName(), Globalworld.getUnclaimedZoneIgnoreMaterials())); + TownyMessaging.sendMessage(sender, Translatable.of("msg_set_wild_ignore", Globalworld.getName(), Globalworld.getUnclaimedZoneIgnoreMaterials())); } catch (Exception e) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_invalid_input", " on/off.")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_invalid_input", " on/off.")); } } else if (split[0].equalsIgnoreCase("wildregen")) { @@ -583,9 +584,9 @@ public void worldSet(Player player, CommandSender sender, String[] split) { Globalworld.setPlotManagementWildRevertEntities(entities); if (player != null) - TownyMessaging.sendMsg(player, Translation.of("msg_set_wild_regen", Globalworld.getName(), Globalworld.getPlotManagementWildRevertEntities())); + TownyMessaging.sendMsg(player, Translatable.of("msg_set_wild_regen", Globalworld.getName(), Globalworld.getPlotManagementWildRevertEntities())); else - TownyMessaging.sendMessage(sender, Translation.of("msg_set_wild_regen", Globalworld.getName(), Globalworld.getPlotManagementWildRevertEntities())); + TownyMessaging.sendMessage(sender, Translatable.of("msg_set_wild_regen", Globalworld.getName(), Globalworld.getPlotManagementWildRevertEntities())); } @@ -599,11 +600,11 @@ public void worldSet(Player player, CommandSender sender, String[] split) { Globalworld.setUnclaimedZoneName(split[1]); if (player != null) - TownyMessaging.sendMsg(player, Translation.of("msg_set_wild_name", Globalworld.getName(), split[1])); + TownyMessaging.sendMsg(player, Translatable.of("msg_set_wild_name", Globalworld.getName(), split[1])); else - TownyMessaging.sendMessage(sender, Translation.of("msg_set_wild_name", Globalworld.getName(), split[1])); + TownyMessaging.sendMessage(sender, Translatable.of("msg_set_wild_name", Globalworld.getName(), split[1])); } catch (Exception e) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_invalid_input", " on/off.")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_invalid_input", " on/off.")); } } else if (TownyCommandAddonAPI.hasCommand(CommandType.TOWNYWORLD_SET, split[0])) { try { @@ -613,7 +614,7 @@ public void worldSet(Player player, CommandSender sender, String[] split) { } } else { if (player != null) - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_invalid_property", "world")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_invalid_property", "world")); return; } diff --git a/src/com/palmergames/bukkit/towny/db/TownyDatabaseHandler.java b/src/com/palmergames/bukkit/towny/db/TownyDatabaseHandler.java index 36923e0d37..e012a79b12 100644 --- a/src/com/palmergames/bukkit/towny/db/TownyDatabaseHandler.java +++ b/src/com/palmergames/bukkit/towny/db/TownyDatabaseHandler.java @@ -30,6 +30,7 @@ import com.palmergames.bukkit.towny.object.TownBlockType; import com.palmergames.bukkit.towny.object.TownyObject; import com.palmergames.bukkit.towny.object.TownyWorld; +import com.palmergames.bukkit.towny.object.Translatable; import com.palmergames.bukkit.towny.object.Translation; import com.palmergames.bukkit.towny.object.WorldCoord; import com.palmergames.bukkit.towny.object.metadata.DataFieldIO; @@ -354,7 +355,7 @@ public List getResidents(Player player, String[] names) { for (String name : names) { Resident target = universe.getResident(name); if (target == null) { - TownyMessaging.sendErrorMsg(player, Translation.of("msg_err_not_registered_1", name)); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_not_registered_1", name)); } else { invited.add(target); @@ -821,7 +822,7 @@ public void removeTown(Town town, boolean delayFullRemoval) { BukkitTools.getPluginManager().callEvent(new DeleteTownEvent(town, mayor.getUUID())); - TownyMessaging.sendGlobalMessage(Translation.of("msg_del_town2", town.getName())); + TownyMessaging.sendGlobalMessage(Translatable.of("msg_del_town2", town.getName())); } @Override @@ -1672,7 +1673,7 @@ public void mergeTown(Town mergeInto, Town mergeFrom) { removeTown(mergeFrom, false); mergeInto.save(); - TownyMessaging.sendGlobalMessage(Translation.of("msg_town_merge_success", mergeFrom.getName(), mayorName, mergeInto.getName())); + TownyMessaging.sendGlobalMessage(Translatable.of("msg_town_merge_success", mergeFrom.getName(), mayorName, mergeInto.getName())); } public List toUUIDList(Collection residents) { diff --git a/src/com/palmergames/bukkit/towny/exceptions/TownyException.java b/src/com/palmergames/bukkit/towny/exceptions/TownyException.java index 664e5532ca..b1062cd6ce 100644 --- a/src/com/palmergames/bukkit/towny/exceptions/TownyException.java +++ b/src/com/palmergames/bukkit/towny/exceptions/TownyException.java @@ -1,16 +1,40 @@ package com.palmergames.bukkit.towny.exceptions; +import com.palmergames.bukkit.towny.object.Translatable; +import com.palmergames.bukkit.towny.object.Translation; +import org.bukkit.command.CommandSender; + public class TownyException extends Exception { private static final long serialVersionUID = -6821768221748544277L; + private Object message; public TownyException() { - super("unknown"); } public TownyException(String message) { - super(message); + this.message = message; + } + + public TownyException(Translatable message) { + super(message.translate()); + this.message = message; + } + + @Override + public String getMessage() { + if (message instanceof Translatable) + return ((Translatable) message).translate(); + else + return (String) message; + } + + public String getMessage(CommandSender sender) { + if (message instanceof Translatable) + return ((Translatable) message).translate(Translation.getLocale(sender)); + else + return (String) message; } } diff --git a/src/com/palmergames/bukkit/towny/huds/MapHUD.java b/src/com/palmergames/bukkit/towny/huds/MapHUD.java index 96162c8215..108d88ed59 100644 --- a/src/com/palmergames/bukkit/towny/huds/MapHUD.java +++ b/src/com/palmergames/bukkit/towny/huds/MapHUD.java @@ -44,8 +44,8 @@ public static void toggleOn(Player player) { score--; } - String townEntry = ChatColor.DARK_GREEN + Translation.of("town_sing") + ": "; - String ownerEntry = ChatColor.DARK_GREEN + Translation.of("owner_status") + ": "; + String townEntry = ChatColor.DARK_GREEN + Translation.of("town_sing", player) + ": "; + String ownerEntry = ChatColor.DARK_GREEN + Translation.of("owner_status", player) + ": "; board.registerNewTeam("townTeam").addEntry(townEntry); objective.getScore(townEntry).setScore(2); @@ -190,8 +190,8 @@ else if (nation.hasEnemy(townblock.getTown().getNation())) } TownBlock tb = wc.getTownBlockOrNull(); - board.getTeam("townTeam").setSuffix(ChatColor.GREEN + (tb != null && tb.hasTown() ? tb.getTownOrNull().getName() : Translation.of("status_no_town"))); - board.getTeam("ownerTeam").setSuffix(ChatColor.GREEN + (tb != null && tb.hasResident() ? tb.getResidentOrNull().getName() : Translation.of("status_no_town"))); + board.getTeam("townTeam").setSuffix(ChatColor.GREEN + (tb != null && tb.hasTown() ? tb.getTownOrNull().getName() : Translation.of("status_no_town", player))); + board.getTeam("ownerTeam").setSuffix(ChatColor.GREEN + (tb != null && tb.hasResident() ? tb.getResidentOrNull().getName() : Translation.of("status_no_town", player))); } private static Map getWildernessMapDataMap() { diff --git a/src/com/palmergames/bukkit/towny/object/Translatable.java b/src/com/palmergames/bukkit/towny/object/Translatable.java index c22407cca1..7070023e1c 100644 --- a/src/com/palmergames/bukkit/towny/object/Translatable.java +++ b/src/com/palmergames/bukkit/towny/object/Translatable.java @@ -1,10 +1,14 @@ package com.palmergames.bukkit.towny.object; +import com.palmergames.bukkit.util.Colors; + import java.util.Locale; public class Translatable { private String key; private Object[] args; + private boolean stripColors; + private String appended = ""; private Translatable(String key) { this.key = key; @@ -31,22 +35,48 @@ public Object[] args() { return args; } - public void key(String key) { + public boolean stripColors() { + return stripColors; + } + + public String appended() { + return appended; + } + + public Translatable key(String key) { this.key = key; + return this; } - public void args(Object... args) { + public Translatable args(Object... args) { this.args = args; + return this; + } + + public Translatable stripColors(boolean strip) { + this.stripColors = strip; + return this; + } + + public Translatable append(String append) { + appended += append; + return this; } public String translate(Locale locale) { checkArgs(locale); - return args == null ? Translation.of(key, locale) : Translation.of(key, locale, args); + String translated = args == null ? Translation.of(key, locale) : Translation.of(key, locale, args); + translated += appended; + + return stripColors ? Colors.strip(translated) : translated; } public String translate() { checkArgs(); - return args == null ? Translation.of(key) : Translation.of(key, args); + String translated = args == null ? Translation.of(key) : Translation.of(key, args); + translated += appended; + + return stripColors ? Colors.strip(translated) : translated; } private void checkArgs() { @@ -66,4 +96,9 @@ private void checkArgs(Locale locale) { if (args[i] instanceof Translatable) args[i] = ((Translatable) args[i]).translate(locale); } + + @Override + public String toString() { + return translate(); + } } diff --git a/src/com/palmergames/bukkit/towny/object/Translation.java b/src/com/palmergames/bukkit/towny/object/Translation.java index 35308497d1..17e05b46ab 100644 --- a/src/com/palmergames/bukkit/towny/object/Translation.java +++ b/src/com/palmergames/bukkit/towny/object/Translation.java @@ -6,6 +6,7 @@ import com.palmergames.bukkit.towny.TownyMessaging; import com.palmergames.bukkit.towny.TownySettings; import com.palmergames.bukkit.towny.command.HelpMenu; +import com.palmergames.bukkit.util.BukkitTools; import com.palmergames.bukkit.util.Colors; import com.palmergames.util.FileMgmt; import org.apache.commons.compress.utils.FileNameUtils; @@ -56,7 +57,7 @@ public static void loadTranslationRegistry() { translations.put(lang, new HashMap<>()); for (Map.Entry entry : values.entrySet()) - translations.get(lang).put(entry.getKey(), String.valueOf(entry.getValue())); + translations.get(lang).put(entry.getKey().toLowerCase(Locale.ROOT), String.valueOf(entry.getValue())); } catch (Exception e) { // An IO exception occured, or the file had invalid yaml e.printStackTrace(); @@ -125,11 +126,11 @@ public static void loadLanguage(String filepath, String defaultRes) throws IOExc * @return The localized string. */ public static String of(String key) { - String data = translations.get(defaultLocale.toString()).get(key); + String data = translations.get(defaultLocale.toString()).get(key.toLowerCase(Locale.ROOT)); if (data == null) { TownySettings.sendError(key.toLowerCase() + " from " + TownySettings.getString(ConfigNodes.LANGUAGE)); - return ""; + return key; } return Colors.translateColorCodes(data); } @@ -146,11 +147,11 @@ public static String of(String key, Object... args) { } public static String of(String key, Locale locale) { - String data = translations.get(validateLocale(locale.toString())).get(key); + String data = translations.get(validateLocale(locale.toString())).get(key.toLowerCase(Locale.ROOT)); if (data == null) { TownySettings.sendError(key.toLowerCase() + " from " + TownySettings.getString(ConfigNodes.LANGUAGE)); - return ""; + return key; } return Colors.translateColorCodes(data); @@ -159,6 +160,22 @@ public static String of(String key, Locale locale) { public static String of(String key, Locale locale, Object... args) { return String.format(of(key, locale), args); } + + public static String of(String key, CommandSender sender) { + return of(key, getLocale(sender)); + } + + public static String of(String key, CommandSender sender, Object... args) { + return String.format(of(key, getLocale(sender)), args); + } + + public static String of(String key, Resident resident) { + return of(key, getLocale(resident)); + } + + public static String of(String key, Resident resident, Object... args) { + return String.format(of(key, getLocale(resident)), args); + } /** * Attempt to rename old languages files (ie: english.yml to en-US.yml.) @@ -217,11 +234,19 @@ private static String validateLocale(String locale) { } public static String translateTranslatables(CommandSender sender, Translatable... translatables) { + return translateTranslatables(sender, " ", translatables); + } + + public static String translateTranslatables(CommandSender sender, String delimiter, Translatable... translatables) { Locale locale = getLocale(sender); - return Arrays.stream(translatables).map(translatable -> translatable.translate(locale)).collect(Collectors.joining(" ")); + return Arrays.stream(translatables).map(translatable -> translatable.translate(locale)).collect(Collectors.joining(delimiter)); } public static Locale getLocale(CommandSender sender) { return sender instanceof Player ? Translation.toLocale(((Player) sender).getLocale()) : defaultLocale; } + + public static Locale getLocale(Resident resident) { + return BukkitTools.isOnline(resident.getName()) ? getLocale(resident.getPlayer()) : defaultLocale; + } } \ No newline at end of file diff --git a/src/com/palmergames/bukkit/towny/object/Translator.java b/src/com/palmergames/bukkit/towny/object/Translator.java new file mode 100644 index 0000000000..3fecb35c73 --- /dev/null +++ b/src/com/palmergames/bukkit/towny/object/Translator.java @@ -0,0 +1,23 @@ +package com.palmergames.bukkit.towny.object; + +import java.util.Locale; + +public class Translator { + private final Locale locale; + + public Translator(Locale locale) { + this.locale = locale; + } + + public static Translator locale(Locale locale) { + return new Translator(locale); + } + + public String of(String key) { + return Translation.of(key, locale); + } + + public String of(String key, Object... args) { + return Translation.of(key, locale, args); + } +} diff --git a/src/com/palmergames/bukkit/towny/tasks/DailyTimerTask.java b/src/com/palmergames/bukkit/towny/tasks/DailyTimerTask.java index ab7caf2fb7..6dd8179e60 100644 --- a/src/com/palmergames/bukkit/towny/tasks/DailyTimerTask.java +++ b/src/com/palmergames/bukkit/towny/tasks/DailyTimerTask.java @@ -14,7 +14,7 @@ import com.palmergames.bukkit.towny.object.Town; import com.palmergames.bukkit.towny.object.TownBlock; import com.palmergames.bukkit.towny.object.TownyWorld; -import com.palmergames.bukkit.towny.object.Translation; +import com.palmergames.bukkit.towny.object.Translatable; import com.palmergames.bukkit.towny.permissions.TownyPerms; import com.palmergames.bukkit.towny.utils.MoneyUtil; import com.palmergames.bukkit.util.ChatTools; @@ -54,7 +54,7 @@ public void run() { * If enabled, collect taxes and then server upkeep costs. */ if (TownyEconomyHandler.isActive() && TownySettings.isTaxingDaily()) { - TownyMessaging.sendGlobalMessage(Translation.of("msg_new_day_tax")); + TownyMessaging.sendGlobalMessage(Translatable.of("msg_new_day_tax")); TownyMessaging.sendDebugMsg("Collecting Town Taxes"); collectTownTaxes(); TownyMessaging.sendDebugMsg("Collecting Nation Taxes"); @@ -66,7 +66,7 @@ public void run() { Bukkit.getServer().getPluginManager().callEvent(new NewDayEvent(bankruptedTowns, removedTowns, removedNations, totalTownUpkeep, totalNationUpkeep, start)); } else - TownyMessaging.sendGlobalMessage(Translation.of("msg_new_day")); + TownyMessaging.sendGlobalMessage(Translatable.of("msg_new_day")); /* * If enabled, remove old residents who haven't logged in for the configured number of days. @@ -91,7 +91,7 @@ public void run() { } } if (!deletedTowns.isEmpty()) - TownyMessaging.sendGlobalMessage(Translation.of("msg_the_following_towns_were_deleted_for_having_0_claims", String.join(", ", deletedTowns))); + TownyMessaging.sendGlobalMessage(Translatable.of("msg_the_following_towns_were_deleted_for_having_0_claims", String.join(", ", deletedTowns))); } /* @@ -193,7 +193,7 @@ protected void collectNationTaxes(Nation nation) { if (town.getAccount().canPayFromHoldings(taxAmount)) { // Town is able to pay the nation's tax. town.getAccount().payTo(taxAmount, nation, "Nation Tax to " + nation.getName()); - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_payed_nation_tax", TownyEconomyHandler.getFormattedBalance(taxAmount))); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_payed_nation_tax", TownyEconomyHandler.getFormattedBalance(taxAmount))); } else { // Town is unable to pay the nation's tax. if (!TownySettings.isTownBankruptcyEnabled() || !TownySettings.doBankruptTownsPayNationTax()) { @@ -208,7 +208,7 @@ protected void collectNationTaxes(Nation nation) { localNewlyDelinquentTowns.add(town.getName()); town.removeNation(); - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_your_town_couldnt_pay_the_nation_tax_of", TownyEconomyHandler.getFormattedBalance(taxAmount))); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_your_town_couldnt_pay_the_nation_tax_of", TownyEconomyHandler.getFormattedBalance(taxAmount))); continue; } @@ -225,7 +225,7 @@ protected void collectNationTaxes(Nation nation) { // can no longer pay the full nation tax with their allowed debt. localNewlyDelinquentTowns.add(town.getName()); town.removeNation(); - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_your_town_couldnt_pay_the_nation_tax_of", TownyEconomyHandler.getFormattedBalance(nation.getTaxes()))); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_your_town_couldnt_pay_the_nation_tax_of", TownyEconomyHandler.getFormattedBalance(nation.getTaxes()))); continue; } @@ -235,7 +235,7 @@ protected void collectNationTaxes(Nation nation) { // Pay the nation tax with at least some amount of debt. town.getAccount().withdraw(taxAmount, "Nation Tax to " + nation.getName()); // .withdraw() is used because other economy methods do not allow a town to go into debt. nation.getAccount().deposit(taxAmount, "Nation Tax from " + town.getName()); - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_payed_nation_tax_with_debt", TownyEconomyHandler.getFormattedBalance(taxAmount))); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_payed_nation_tax_with_debt", TownyEconomyHandler.getFormattedBalance(taxAmount))); // Check if the town was newly bankrupted and punish them for it. if (!townWasBankrupt) { @@ -255,15 +255,15 @@ protected void collectNationTaxes(Nation nation) { } if (!localNewlyDelinquentTowns.isEmpty()) if (localNewlyDelinquentTowns.size() == 1) - TownyMessaging.sendPrefixedNationMessage(nation, Translation.of(msg1, localNewlyDelinquentTowns.get(0), Translation.of("nation_sing"))); + TownyMessaging.sendPrefixedNationMessage(nation, Translatable.of(msg1, localNewlyDelinquentTowns.get(0), Translatable.of("nation_sing"))); else TownyMessaging.sendPrefixedNationMessage(nation, ChatTools.list(localNewlyDelinquentTowns, msg2)); if (!localTownsDestroyed.isEmpty()) if (localTownsDestroyed.size() == 1) - TownyMessaging.sendNationMessagePrefixed(nation, Translation.of("msg_town_destroyed_by_nation_tax", ChatTools.list(localTownsDestroyed))); + TownyMessaging.sendPrefixedNationMessage(nation, Translatable.of("msg_town_destroyed_by_nation_tax", ChatTools.list(localTownsDestroyed))); else - TownyMessaging.sendNationMessagePrefixed(nation, ChatTools.list(localTownsDestroyed, Translation.of("msg_town_destroyed_by_nation_tax_multiple"))); + TownyMessaging.sendNationMessagePrefixed(nation, Translatable.of("msg_town_destroyed_by_nation_tax_multiple").append(ChatTools.list(localTownsDestroyed).get(0))); } @@ -316,7 +316,7 @@ protected void collectTownTaxes(Town town) { if (TownyPerms.getResidentPerms(resident).containsKey("towny.tax_exempt") || resident.isNPC() || resident.isMayor()) { try { - TownyMessaging.sendResidentMessage(resident, Translation.of("MSG_TAX_EXEMPT")); + TownyMessaging.sendResidentMessage(resident, Translatable.of("MSG_TAX_EXEMPT")); } catch (TownyException e) { // Player is not online } @@ -355,9 +355,9 @@ protected void collectTownTaxes(Town town) { } if (removedResidents != null) { if (removedResidents.size() == 1) - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_couldnt_pay_tax", removedResidents.get(0), "town")); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_couldnt_pay_tax", removedResidents.get(0), "town")); else - TownyMessaging.sendPrefixedTownMessage(town, ChatTools.list(removedResidents, Translation.of("msg_couldnt_pay_town_tax_multiple"))); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_couldnt_pay_town_tax_multiple").append(ChatTools.list(removedResidents).get(0))); } } @@ -419,9 +419,9 @@ protected void collectTownTaxes(Town town) { } if (lostPlots != null) { if (lostPlots.size() == 1) - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_couldnt_pay_plot_taxes", lostPlots.get(0))); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_couldnt_pay_plot_taxes", lostPlots.get(0))); else - TownyMessaging.sendPrefixedTownMessage(town, ChatTools.list(lostPlots, Translation.of("msg_couldnt_pay_plot_taxes_multiple"))); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_couldnt_pay_plot_taxes_multiple").append(ChatTools.list(lostPlots).get(0))); } } } @@ -455,12 +455,12 @@ public void collectTownCosts() { if (town.getAccount().canPayFromHoldings(upkeep)) { // Town is able to pay the upkeep. town.getAccount().withdraw(upkeep, "Town Upkeep"); - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_your_town_payed_upkeep", TownyEconomyHandler.getFormattedBalance(upkeep))); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_your_town_payed_upkeep", TownyEconomyHandler.getFormattedBalance(upkeep))); } else { // Town is unable to pay the upkeep. if (!TownySettings.isTownBankruptcyEnabled()) { // Bankruptcy is disabled, remove the town for not paying upkeep. - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_your_town_couldnt_pay_upkeep", TownyEconomyHandler.getFormattedBalance(upkeep))); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_your_town_couldnt_pay_upkeep", TownyEconomyHandler.getFormattedBalance(upkeep))); universe.getDataSource().removeTown(town); removedTowns.add(town.getName()); continue; @@ -477,7 +477,7 @@ public void collectTownCosts() { if (TownySettings.isUpkeepDeletingTownsThatReachDebtCap()) { // Alternatively, if configured, towns will not be allowed to exceed // their debt and be deleted from the server for non-payment finally. - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_your_town_couldnt_pay_upkeep", TownyEconomyHandler.getFormattedBalance(upkeep))); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_your_town_couldnt_pay_upkeep", TownyEconomyHandler.getFormattedBalance(upkeep))); universe.getDataSource().removeTown(town); removedTowns.add(town.getName()); continue; @@ -487,7 +487,7 @@ public void collectTownCosts() { // Finally pay the upkeep or the modified upkeep up to the debtcap. town.getAccount().withdraw(upkeep, "Town Upkeep"); - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_your_town_payed_upkeep_with_debt", TownyEconomyHandler.getFormattedBalance(upkeep))); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_your_town_payed_upkeep_with_debt", TownyEconomyHandler.getFormattedBalance(upkeep))); // Check if the town was newly bankrupted and punish them for it. if(!townWasBankrupt) { @@ -533,32 +533,32 @@ public void collectTownCosts() { if (!town.getAccount().withdraw(neutralityCost, "Town Peace Upkeep")) { town.setNeutral(false); town.save(); - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_town_not_peaceful")); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_town_not_peaceful")); } else { - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_town_paid_for_neutral_status", TownyEconomyHandler.getFormattedBalance(neutralityCost))); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_town_paid_for_neutral_status", TownyEconomyHandler.getFormattedBalance(neutralityCost))); } } } } - String msg1 = Translation.of("msg_bankrupt_town2"); - String msg2 = Translation.of("msg_bankrupt_town_multiple"); + String msg1 = "msg_bankrupt_town2"; + String msg2 = "msg_bankrupt_town_multiple"; if(TownySettings.isTownBankruptcyEnabled() && TownySettings.isUpkeepDeletingTownsThatReachDebtCap()) { plugin.resetCache(); //Allow perms change to take effect immediately - msg1 = Translation.of("msg_town_reached_debtcap_and_is_disbanded"); - msg2 = Translation.of("msg_town_reached_debtcap_and_is_disbanded_multiple"); + msg1 = "msg_town_reached_debtcap_and_is_disbanded"; + msg2 = "msg_town_reached_debtcap_and_is_disbanded_multiple"; } if (bankruptedTowns != null) if (bankruptedTowns.size() == 1) - TownyMessaging.sendGlobalMessage(String.format(Translation.of("msg_town_bankrupt_by_upkeep"), bankruptedTowns.get(0))); + TownyMessaging.sendGlobalMessage(Translatable.of("msg_town_bankrupt_by_upkeep", bankruptedTowns.get(0))); else - TownyMessaging.sendGlobalMessage(ChatTools.list(bankruptedTowns, Translation.of("msg_town_bankrupt_by_upkeep_multiple"))); + TownyMessaging.sendGlobalMessage(Translatable.of("msg_town_bankrupt_by_upkeep_multiple").append(ChatTools.list(bankruptedTowns).get(0))); if (removedTowns != null) if (removedTowns.size() == 1) - TownyMessaging.sendGlobalMessage(String.format(msg1, removedTowns.get(0))); + TownyMessaging.sendGlobalMessage(Translatable.of(msg1, removedTowns.get(0))); else - TownyMessaging.sendGlobalMessage(ChatTools.list(removedTowns, msg2)); + TownyMessaging.sendGlobalMessage(Translatable.of(msg2).append(ChatTools.list(removedTowns).get(0))); } /** @@ -588,9 +588,9 @@ public void collectNationCosts() { if (nation.getAccount().canPayFromHoldings(upkeep)) { nation.getAccount().withdraw(upkeep, "Nation Upkeep"); - TownyMessaging.sendPrefixedNationMessage(nation, Translation.of("msg_your_nation_payed_upkeep", TownyEconomyHandler.getFormattedBalance(upkeep))); + TownyMessaging.sendPrefixedNationMessage(nation, Translatable.of("msg_your_nation_payed_upkeep", TownyEconomyHandler.getFormattedBalance(upkeep))); } else { - TownyMessaging.sendPrefixedNationMessage(nation, Translation.of("msg_your_nation_couldnt_pay_upkeep", TownyEconomyHandler.getFormattedBalance(upkeep))); + TownyMessaging.sendPrefixedNationMessage(nation, Translatable.of("msg_your_nation_couldnt_pay_upkeep", TownyEconomyHandler.getFormattedBalance(upkeep))); universe.getDataSource().removeNation(nation); removedNations.add(nation.getName()); } @@ -603,18 +603,18 @@ public void collectNationCosts() { if (!nation.getAccount().withdraw(neutralityCost, "Nation Peace Upkeep")) { nation.setNeutral(false); nation.save(); - TownyMessaging.sendPrefixedNationMessage(nation, Translation.of("msg_nation_not_peaceful")); + TownyMessaging.sendPrefixedNationMessage(nation, Translatable.of("msg_nation_not_peaceful")); } else { - TownyMessaging.sendPrefixedNationMessage(nation, Translation.of("msg_nation_paid_for_neutral_status", TownyEconomyHandler.getFormattedBalance(neutralityCost))); + TownyMessaging.sendPrefixedNationMessage(nation, Translatable.of("msg_nation_paid_for_neutral_status", TownyEconomyHandler.getFormattedBalance(neutralityCost))); } } } } if (removedNations != null && !removedNations.isEmpty()) { if (removedNations.size() == 1) - TownyMessaging.sendGlobalMessage(Translation.of("msg_bankrupt_nation2", removedNations.get(0))); + TownyMessaging.sendGlobalMessage(Translatable.of("msg_bankrupt_nation2", removedNations.get(0))); else - TownyMessaging.sendGlobalMessage(ChatTools.list(removedNations, Translation.of("msg_bankrupt_nation_multiple"))); + TownyMessaging.sendGlobalMessage(Translatable.of("msg_bankrupt_nation_multiple").append(ChatTools.list(removedNations).get(0))); } } } diff --git a/src/com/palmergames/bukkit/towny/tasks/OnPlayerLogin.java b/src/com/palmergames/bukkit/towny/tasks/OnPlayerLogin.java index e40eb6a347..efaa0cabc6 100644 --- a/src/com/palmergames/bukkit/towny/tasks/OnPlayerLogin.java +++ b/src/com/palmergames/bukkit/towny/tasks/OnPlayerLogin.java @@ -14,6 +14,7 @@ import com.palmergames.bukkit.towny.object.Nation; import com.palmergames.bukkit.towny.object.Resident; import com.palmergames.bukkit.towny.object.Town; +import com.palmergames.bukkit.towny.object.Translatable; import com.palmergames.bukkit.towny.object.Translation; import com.palmergames.bukkit.towny.permissions.PermissionNodes; import com.palmergames.bukkit.towny.permissions.TownyPerms; @@ -164,7 +165,7 @@ public void run() { // Send a message warning of ruined status and time until deletion. if (town.isRuined()) - TownyMessaging.sendMsg(resident, Translation.of("msg_warning_your_town_is_ruined_for_x_more_hours", TownRuinSettings.getTownRuinsMaxDurationHours() - TownRuinUtil.getTimeSinceRuining(town))); + TownyMessaging.sendMsg(resident, Translatable.of("msg_warning_your_town_is_ruined_for_x_more_hours", TownRuinSettings.getTownRuinsMaxDurationHours() - TownRuinUtil.getTimeSinceRuining(town))); } if (TownyAPI.getInstance().isWarTime()) @@ -178,8 +179,8 @@ public void run() { Audience audience = Towny.getAdventure().player(player); ClickEvent clickEvent = ClickEvent.openUrl(TownyUpdateChecker.getUpdateURL()); - audience.sendMessage(Component.text(Translation.of("default_towny_prefix") + Translation.of("msg_new_update_available", TownyUpdateChecker.getNewVersion(), Towny.getPlugin().getVersion())).clickEvent(clickEvent)); - audience.sendMessage(Component.text(Translation.of("default_towny_prefix") + Translation.of("msg_click_to_download")).clickEvent(clickEvent)); + audience.sendMessage(Component.text(Translation.of("default_towny_prefix", player) + Translation.of("msg_new_update_available", player, TownyUpdateChecker.getNewVersion(), Towny.getPlugin().getVersion())).clickEvent(clickEvent)); + audience.sendMessage(Component.text(Translation.of("default_towny_prefix", player) + Translation.of("msg_click_to_download", player)).clickEvent(clickEvent)); } } } @@ -229,9 +230,9 @@ private void warningMessage(Resident resident, Town town, Nation nation) { */ if(TownySettings.isTownBankruptcyEnabled()) { if (!town.isBankrupt()) //Is town already bankrupt? - TownyMessaging.sendMsg(resident, Translation.of("msg_warning_bankrupt", town.getName())); + TownyMessaging.sendMsg(resident, Translatable.of("msg_warning_bankrupt", town.getName())); } else { - TownyMessaging.sendMsg(resident, Translation.of("msg_warning_delete", town.getName())); + TownyMessaging.sendMsg(resident, Translatable.of("msg_warning_delete", town.getName())); } } } @@ -242,7 +243,7 @@ private void warningMessage(Resident resident, Town town, Nation nation) { /* * Warn that the nation is due to be deleted. */ - TownyMessaging.sendMsg(resident, Translation.of("msg_warning_delete", nation.getName())); + TownyMessaging.sendMsg(resident, Translatable.of("msg_warning_delete", nation.getName())); } } } diff --git a/src/com/palmergames/bukkit/towny/tasks/PlotClaim.java b/src/com/palmergames/bukkit/towny/tasks/PlotClaim.java index 6be433aa53..6f7ee86da0 100644 --- a/src/com/palmergames/bukkit/towny/tasks/PlotClaim.java +++ b/src/com/palmergames/bukkit/towny/tasks/PlotClaim.java @@ -13,10 +13,10 @@ import com.palmergames.bukkit.towny.object.Town; import com.palmergames.bukkit.towny.object.TownBlock; import com.palmergames.bukkit.towny.object.TownBlockType; +import com.palmergames.bukkit.towny.object.Translatable; import com.palmergames.bukkit.towny.object.Translation; import com.palmergames.bukkit.towny.object.WorldCoord; import com.palmergames.bukkit.towny.permissions.PermissionNodes; -import com.palmergames.bukkit.util.BukkitTools; import org.bukkit.entity.Player; @@ -67,9 +67,9 @@ public void run() { if (player != null){ if (claim) - TownyMessaging.sendMsg(player, Translation.of("msg_process_claim")); + TownyMessaging.sendMsg(player, Translatable.of("msg_process_claim")); else - TownyMessaging.sendMsg(player, Translation.of("msg_process_unclaim")); + TownyMessaging.sendMsg(player, Translatable.of("msg_process_unclaim")); } if (selection != null) { @@ -92,7 +92,7 @@ public void run() { /* * Should not be possible, as the resident has already been tested to see if they have enough to pay. */ - TownyMessaging.sendErrorMsg(player, Translation.of("msg_no_money_purchase_plot")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_no_money_purchase_plot")); break; } } else { @@ -102,14 +102,14 @@ public void run() { double bankcap = TownySettings.getTownBankCap(); if (bankcap > 0) { if (worldCoord.getTownBlock().getPlotObjectGroup().getPrice() + worldCoord.getTownBlock().getPlotObjectGroup().getTown().getAccount().getHoldingBalance() > bankcap) - throw new TownyException(Translation.of("msg_err_deposit_capped", bankcap)); + throw new TownyException(Translation.of("msg_err_deposit_capped", player, bankcap)); } if (!resident.getAccount().payTo(worldCoord.getTownBlock().getPlotObjectGroup().getPrice(), worldCoord.getTownBlock().getPlotObjectGroup().getTown(), "Plot Group - Buy From Town")) { /* * Should not be possible, as the resident has already been tested to see if they have enough to pay. */ - TownyMessaging.sendErrorMsg(player, Translation.of("msg_no_money_purchase_plot")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_no_money_purchase_plot")); break; } } @@ -124,7 +124,7 @@ public void run() { worldCoord.getTownBlock().getPlotObjectGroup().setResident(resident); worldCoord.getTownBlock().getPlotObjectGroup().setPrice(-1); - TownyMessaging.sendPrefixedTownMessage(worldCoord.getTownBlock().getTown(), Translation.of("msg_player_successfully_bought_group_x", player.getName(), worldCoord.getTownBlock().getPlotObjectGroup().getName())); + TownyMessaging.sendPrefixedTownMessage(worldCoord.getTownBlock().getTown(), Translatable.of("msg_player_successfully_bought_group_x", player.getName(), worldCoord.getTownBlock().getPlotObjectGroup().getName())); worldCoord.getTownBlock().getPlotObjectGroup().save(); break; @@ -166,14 +166,14 @@ public void run() { if (player != null) { if (claim) { if ((selection != null) && (selection.size() > 0) && (claimed > 0)) { - TownyMessaging.sendMsg(player, Translation.of("msg_claimed") + " " + ((selection.size() > 5) ? Translation.of("msg_total_townblocks") + selection.size() : Arrays.toString(selection.toArray(new WorldCoord[0])))); + TownyMessaging.sendMsg(player, Translation.of("msg_claimed", player) + " " + ((selection.size() > 5) ? Translation.of("msg_total_townblocks", player) + selection.size() : Arrays.toString(selection.toArray(new WorldCoord[0])))); } else { - TownyMessaging.sendMsg(player, Translation.of("msg_not_claimed_1")); + TownyMessaging.sendMsg(player, Translatable.of("msg_not_claimed_1")); } } else if (selection != null) { - TownyMessaging.sendMsg(player, Translation.of("msg_unclaimed") + " " + ((selection.size() > 5) ? Translation.of("msg_total_townblocks") + selection.size() : Arrays.toString(selection.toArray(new WorldCoord[0])))); + TownyMessaging.sendMsg(player, Translation.of("msg_unclaimed", player) + " " + ((selection.size() > 5) ? Translation.of("msg_total_townblocks", player) + selection.size() : Arrays.toString(selection.toArray(new WorldCoord[0])))); } else { - TownyMessaging.sendMsg(player, Translation.of("msg_unclaimed")); + TownyMessaging.sendMsg(player, Translatable.of("msg_unclaimed")); } } @@ -204,7 +204,7 @@ private boolean residentGroupClaim(List worldCoords) throws TownyExc PlotGroup group = townBlock.getPlotObjectGroup(); if ((resident.hasTown() && (resident.getTown() != town) && (!townBlock.getType().equals(TownBlockType.EMBASSY))) || ((!resident.hasTown()) && (!townBlock.getType().equals(TownBlockType.EMBASSY)))) - throw new TownyException(Translation.of("msg_err_not_part_town")); + throw new TownyException(Translation.of("msg_err_not_part_town", player)); if (townBlock.getPlotObjectGroup().hasResident()) { /* @@ -224,9 +224,9 @@ private boolean residentGroupClaim(List worldCoords) throws TownyExc } if (maxPlots >= 0 && resident.getTownBlocks().size() + group.getTownBlocks().size() > maxPlots) - throw new TownyException(Translation.of("msg_max_plot_own", maxPlots)); + throw new TownyException(Translation.of("msg_max_plot_own", player, maxPlots)); - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("MSG_BUY_RESIDENT_PLOT", resident.getName(), owner.getName(), townBlock.getPlotObjectGroup().getPrice())); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_buy_resident_plot", resident.getName(), owner.getName(), townBlock.getPlotObjectGroup().getPrice())); townBlock.setResident(resident); @@ -239,7 +239,7 @@ private boolean residentGroupClaim(List worldCoords) throws TownyExc townBlock.save(); if (i >= worldCoords.size() - 2) { - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_player_successfully_bought_group_x", resident.getName(), group.getName())); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_player_successfully_bought_group_x", resident.getName(), group.getName())); } // Update any caches for this WorldCoord @@ -248,9 +248,9 @@ private boolean residentGroupClaim(List worldCoords) throws TownyExc //Plot isn't for sale but re-possessing for town. if (TownyEconomyHandler.isActive() && !town.getAccount().payTo(0.0, owner, "Plot - Buy Back")) - throw new TownyException(Translation.of("msg_town_no_money_purchase_plot")); + throw new TownyException(Translation.of("msg_town_no_money_purchase_plot", player)); - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("MSG_BUY_RESIDENT_PLOT", town.getName(), owner.getName(), 0.0)); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_buy_resident_plot", town.getName(), owner.getName(), 0.0)); townBlock.setResident(resident); // Set the plot permissions to mirror the towns. @@ -263,7 +263,7 @@ private boolean residentGroupClaim(List worldCoords) throws TownyExc } else { //Should never reach here. - throw new AlreadyRegisteredException(Translation.of("msg_already_claimed", owner.getName())); + throw new AlreadyRegisteredException(Translation.of("msg_already_claimed", player, owner.getName())); } } else { @@ -272,7 +272,7 @@ private boolean residentGroupClaim(List worldCoords) throws TownyExc */ if (townBlock.getPlotObjectGroup().getPrice() == -1) { - throw new TownyException(Translation.of("msg_err_plot_nfs")); + throw new TownyException(Translation.of("msg_err_plot_nfs", player)); } townBlock.setResident(resident); @@ -283,7 +283,7 @@ private boolean residentGroupClaim(List worldCoords) throws TownyExc } } catch (NotRegisteredException e) { - throw new TownyException(Translation.of("msg_err_not_part_town")); + throw new TownyException(Translation.of("msg_err_not_part_town", player)); } } @@ -297,7 +297,7 @@ private boolean residentClaim(WorldCoord worldCoord) throws TownyException { TownBlock townBlock = worldCoord.getTownBlock(); Town town = townBlock.getTown(); if ((resident.hasTown() && (resident.getTown() != town) && (!townBlock.getType().equals(TownBlockType.EMBASSY))) || ((!resident.hasTown()) && (!townBlock.getType().equals(TownBlockType.EMBASSY)))) - throw new TownyException(Translation.of("msg_err_not_part_town")); + throw new TownyException(Translation.of("msg_err_not_part_town", player)); if (townBlock.hasResident()) { Resident owner = townBlock.getResidentOrNull(); @@ -306,7 +306,7 @@ private boolean residentClaim(WorldCoord worldCoord) throws TownyException { // Plot is for sale if (TownyEconomyHandler.isActive() && !resident.getAccount().payTo(townBlock.getPlotPrice(), owner, "Plot - Buy From Seller")) - throw new TownyException(Translation.of("msg_no_money_purchase_plot")); + throw new TownyException(Translation.of("msg_no_money_purchase_plot", player)); int maxPlots = TownySettings.getMaxResidentPlots(resident); int extraPlots = TownySettings.getMaxResidentExtraPlots(resident); @@ -317,9 +317,9 @@ private boolean residentClaim(WorldCoord worldCoord) throws TownyException { } if (maxPlots >= 0 && resident.getTownBlocks().size() + 1 > maxPlots) - throw new TownyException(Translation.of("msg_max_plot_own", maxPlots)); + throw new TownyException(Translation.of("msg_max_plot_own", player, maxPlots)); - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("MSG_BUY_RESIDENT_PLOT", resident.getName(), owner.getName(), townBlock.getPlotPrice())); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_buy_resident_plot", resident.getName(), owner.getName(), townBlock.getPlotPrice())); townBlock.setPlotPrice(-1); townBlock.setResident(resident); @@ -336,9 +336,9 @@ private boolean residentClaim(WorldCoord worldCoord) throws TownyException { //Plot isn't for sale but re-possessing for town. if (TownyEconomyHandler.isActive() && !town.getAccount().payTo(0.0, owner, "Plot - Buy Back")) - throw new TownyException(Translation.of("msg_town_no_money_purchase_plot")); + throw new TownyException(Translation.of("msg_town_no_money_purchase_plot", player)); - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("MSG_BUY_RESIDENT_PLOT", town.getName(), owner.getName(), 0.0)); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_buy_resident_plot", town.getName(), owner.getName(), 0.0)); townBlock.setResident(null); townBlock.setPlotPrice(-1); @@ -352,23 +352,23 @@ private boolean residentClaim(WorldCoord worldCoord) throws TownyException { return true; } else { //Should never reach here. - throw new AlreadyRegisteredException(Translation.of("msg_already_claimed", owner.getName())); + throw new AlreadyRegisteredException(Translation.of("msg_already_claimed", player, owner.getName())); } } else { //Plot has no owner so it's the town selling it if (townBlock.getPlotPrice() == -1) - throw new TownyException(Translation.of("msg_err_plot_nfs")); + throw new TownyException(Translation.of("msg_err_plot_nfs", player)); double bankcap = TownySettings.getTownBankCap(); if (TownyEconomyHandler.isActive() && bankcap > 0) { if (townBlock.getPlotPrice() + town.getAccount().getHoldingBalance() > bankcap) - throw new TownyException(Translation.of("msg_err_deposit_capped", bankcap)); + throw new TownyException(Translation.of("msg_err_deposit_capped", player, bankcap)); } if (TownyEconomyHandler.isActive() && !resident.getAccount().payTo(townBlock.getPlotPrice(), town, "Plot - Buy From Town")) - throw new TownyException(Translation.of("msg_no_money_purchase_plot")); + throw new TownyException(Translation.of("msg_no_money_purchase_plot", player)); townBlock.setPlotPrice(-1); townBlock.setResident(resident); @@ -380,7 +380,7 @@ private boolean residentClaim(WorldCoord worldCoord) throws TownyException { return true; } } catch (NotRegisteredException e) { - throw new TownyException(Translation.of("msg_err_not_part_town")); + throw new TownyException(Translation.of("msg_err_not_part_town", player)); } } @@ -399,7 +399,7 @@ private boolean residentUnclaim(WorldCoord worldCoord) throws TownyException { plugin.updateCache(worldCoord); } catch (NotRegisteredException e) { - throw new TownyException(Translation.of("msg_not_own_place")); + throw new TownyException(Translation.of("msg_not_own_place", player)); } return true; @@ -438,10 +438,10 @@ private void adminClaim(WorldCoord worldCoord) throws TownyException { townBlock.setType(townBlock.getType()); townBlock.save(); - TownyMessaging.sendMessage(BukkitTools.getPlayer(resident.getName()), Translation.of("msg_admin_has_given_you_a_plot", worldCoord.toString())); + TownyMessaging.sendResidentMessage(resident, Translatable.of("msg_admin_has_given_you_a_plot", worldCoord.toString())); } catch (NotRegisteredException e) { //Probably not owned by a town. - throw new TownyException(Translation.of("msg_not_claimed_1")); + throw new TownyException(Translation.of("msg_not_claimed_1", player)); } } diff --git a/src/com/palmergames/bukkit/towny/tasks/TeleportWarmupTimerTask.java b/src/com/palmergames/bukkit/towny/tasks/TeleportWarmupTimerTask.java index 10d635f9a0..c78cad1a15 100644 --- a/src/com/palmergames/bukkit/towny/tasks/TeleportWarmupTimerTask.java +++ b/src/com/palmergames/bukkit/towny/tasks/TeleportWarmupTimerTask.java @@ -7,6 +7,7 @@ import com.palmergames.bukkit.towny.TownySettings; import com.palmergames.bukkit.towny.exceptions.TownyException; import com.palmergames.bukkit.towny.object.Resident; +import com.palmergames.bukkit.towny.object.Translatable; import com.palmergames.bukkit.towny.object.Translation; import com.palmergames.bukkit.towny.tasks.CooldownTimerTask.CooldownType; @@ -82,7 +83,7 @@ public static void abortTeleportRequest(Resident resident) { try { resident.getAccount().deposit(resident.getTeleportCost(), Translation.of("msg_cost_spawn_refund")); resident.setTeleportCost(0); - TownyMessaging.sendResidentMessage(resident, Translation.of("msg_cost_spawn_refund")); + TownyMessaging.sendResidentMessage(resident, Translatable.of("msg_cost_spawn_refund")); } catch (TownyException e) { // Resident not registered exception. } diff --git a/src/com/palmergames/bukkit/towny/tasks/TownClaim.java b/src/com/palmergames/bukkit/towny/tasks/TownClaim.java index f36e176949..619551ac18 100644 --- a/src/com/palmergames/bukkit/towny/tasks/TownClaim.java +++ b/src/com/palmergames/bukkit/towny/tasks/TownClaim.java @@ -14,6 +14,7 @@ import com.palmergames.bukkit.towny.object.Town; import com.palmergames.bukkit.towny.object.TownBlock; import com.palmergames.bukkit.towny.object.TownyWorld; +import com.palmergames.bukkit.towny.object.Translatable; import com.palmergames.bukkit.towny.object.Translation; import com.palmergames.bukkit.towny.object.WorldCoord; import com.palmergames.bukkit.towny.regen.PlotBlockData; @@ -95,7 +96,7 @@ public void run() { } else { // Unclaim this.town = worldCoord.getTownBlock().getTown(); - townUnclaim(town, worldCoord, forced); + townUnclaim(town, worldCoord, forced, player); } // Mark this town as modified for saving. @@ -105,7 +106,7 @@ public void run() { } catch (NotRegisteredException e) { // Invalid world - TownyMessaging.sendMsg(player, Translation.of("msg_err_not_configured")); + TownyMessaging.sendMsg(player, Translatable.of("msg_err_not_configured")); } catch (TownyException x) { TownyMessaging.sendErrorMsg(player, x.getMessage()); } @@ -114,7 +115,7 @@ public void run() { if (!claim && TownySettings.getClaimRefundPrice() > 0.0) { town.getAccount().deposit(TownySettings.getClaimRefundPrice()*selection.size(), "Town Unclaim Refund"); - TownyMessaging.sendMsg(player, Translation.of("refund_message", TownySettings.getClaimRefundPrice()*selection.size(), selection.size())); + TownyMessaging.sendMsg(player, Translatable.of("refund_message", TownySettings.getClaimRefundPrice()*selection.size(), selection.size())); } } else if (!claim) { @@ -135,7 +136,7 @@ public void run() { TownClaim.townUnclaimAll(plugin, town); if (TownyEconomyHandler.isActive() && refund > 0.0) { town.getAccount().deposit(TownySettings.getClaimRefundPrice()*townSize - 1, "Town Unclaim Refund"); - TownyMessaging.sendMsg(player, Translation.of("refund_message", TownySettings.getClaimRefundPrice()*townSize, townSize)); + TownyMessaging.sendMsg(player, Translatable.of("refund_message", TownySettings.getClaimRefundPrice()*townSize, townSize)); } }) .sendTo(player); @@ -157,13 +158,13 @@ public void run() { if (player != null) { if (claim) { - TownyMessaging.sendMsg(player, Translation.of("msg_annexed_area", (selection.size() > 5) ? "Total TownBlocks: " + selection.size() : Arrays.toString(selection.toArray(new WorldCoord[0])))); + TownyMessaging.sendMsg(player, Translatable.of("msg_annexed_area", (selection.size() > 5) ? "Total TownBlocks: " + selection.size() : Arrays.toString(selection.toArray(new WorldCoord[0])))); if (world != null && world.isUsingPlotManagementRevert()) - TownyMessaging.sendMsg(player, Translation.of("msg_wait_locked")); + TownyMessaging.sendMsg(player, Translatable.of("msg_wait_locked")); } else if (forced) { - TownyMessaging.sendMsg(player, Translation.of("msg_admin_unclaim_area", (selection.size() > 5) ? "Total TownBlocks: " + selection.size() : Arrays.toString(selection.toArray(new WorldCoord[0])))); + TownyMessaging.sendMsg(player, Translatable.of("msg_admin_unclaim_area", (selection.size() > 5) ? "Total TownBlocks: " + selection.size() : Arrays.toString(selection.toArray(new WorldCoord[0])))); if ((town != null) && (world != null && world.isUsingPlotManagementRevert())) - TownyMessaging.sendMsg(player, Translation.of("msg_wait_locked")); + TownyMessaging.sendMsg(player, Translatable.of("msg_wait_locked")); } } } @@ -171,7 +172,7 @@ public void run() { private void townClaim(Town town, WorldCoord worldCoord, boolean isOutpost, Player player) throws TownyException { if (TownyUniverse.getInstance().hasTownBlock(worldCoord)) - throw new AlreadyRegisteredException(Translation.of("msg_already_claimed", "some town")); + throw new AlreadyRegisteredException(Translation.of("msg_already_claimed", player, "some town")); else { TownBlock townBlock = new TownBlock(worldCoord.getX(), worldCoord.getZ(), worldCoord.getTownyWorld()); townBlock.setTown(town); @@ -203,13 +204,13 @@ private void townClaim(Town town, WorldCoord worldCoord, boolean isOutpost, Play } // Unclaim event comes later in removeTownBlock(). - private void townUnclaim(final Town town, final WorldCoord worldCoord, boolean force) throws TownyException { + private void townUnclaim(final Town town, final WorldCoord worldCoord, boolean force, Player player) throws TownyException { TownyUniverse townyUniverse = TownyUniverse.getInstance(); try { final TownBlock townBlock = worldCoord.getTownBlock(); if (town != townBlock.getTown() && !force) { - throw new TownyException(Translation.of("msg_area_not_own")); + throw new TownyException(Translation.of("msg_area_not_own", player)); } if (!townBlock.isOutpost() && townBlock.hasTown()) { // TODO: Find out if we actually have to be doing this on every unclaim. How poorly are we not saving townblocks' outpost status? if (AreaSelectionUtil.isTownBlockLocContainedInTownOutposts(townBlock.getTown().getAllOutpostSpawns(), townBlock)) { @@ -226,7 +227,7 @@ private void townUnclaim(final Town town, final WorldCoord worldCoord, boolean f } catch (NotRegisteredException e) { - throw new TownyException(Translation.of("msg_not_claimed_1")); + throw new TownyException(Translation.of("msg_not_claimed_1", player)); } } @@ -246,7 +247,7 @@ public static void townUnclaimAll(Towny plugin, final Town town) { } } - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_abandoned_area_1")); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_abandoned_area_1")); }, 1); diff --git a/src/com/palmergames/bukkit/towny/utils/CombatUtil.java b/src/com/palmergames/bukkit/towny/utils/CombatUtil.java index 5fb0c97e07..86a98f742f 100644 --- a/src/com/palmergames/bukkit/towny/utils/CombatUtil.java +++ b/src/com/palmergames/bukkit/towny/utils/CombatUtil.java @@ -16,7 +16,7 @@ import com.palmergames.bukkit.towny.object.TownBlock; import com.palmergames.bukkit.towny.object.TownBlockType; import com.palmergames.bukkit.towny.object.TownyWorld; -import com.palmergames.bukkit.towny.object.Translation; +import com.palmergames.bukkit.towny.object.Translatable; import com.palmergames.bukkit.towny.object.WorldCoord; import com.palmergames.bukkit.towny.object.TownyPermission.ActionType; import com.palmergames.bukkit.util.BukkitTools; @@ -397,7 +397,7 @@ public static boolean preventFriendlyFire(Player attacker, Player defender, Town if (isArenaPlot(attacker, defender)) return false; - TownyMessaging.sendErrorMsg(attacker, Translation.of("msg_err_friendly_fire_disable")); + TownyMessaging.sendErrorMsg(attacker, Translatable.of("msg_err_friendly_fire_disable")); return true; } return false; diff --git a/src/com/palmergames/bukkit/towny/utils/JailUtil.java b/src/com/palmergames/bukkit/towny/utils/JailUtil.java index 59590d5745..6b8e4f5400 100644 --- a/src/com/palmergames/bukkit/towny/utils/JailUtil.java +++ b/src/com/palmergames/bukkit/towny/utils/JailUtil.java @@ -4,6 +4,7 @@ import java.util.List; import java.util.UUID; +import com.palmergames.bukkit.towny.object.Translatable; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.command.CommandSender; @@ -68,14 +69,14 @@ public static void jailResident(Resident resident, Jail jail, int cell, int hour // Send feedback messages. switch(reason) { case MAYOR: - String jailName = jail.hasName() ? jail.getName() : Translation.of("jail_sing"); - TownyMessaging.sendPrefixedTownMessage(jail.getTown(), Translation.of("msg_player_has_been_sent_to_jail_into_cell_number_x_for_x_hours_by_x", resident.getName(), jailName, cell+1, hours, senderName)); + Object jailName = jail.hasName() ? jail.getName() : Translatable.of("jail_sing"); + TownyMessaging.sendPrefixedTownMessage(jail.getTown(), Translatable.of("msg_player_has_been_sent_to_jail_into_cell_number_x_for_x_hours_by_x", resident.getName(), jailName, cell+1, hours, senderName)); if (TownySettings.doesJailingPreventLoggingOut()) addJailedPlayerToLogOutMap(resident); break; case OUTLAW_DEATH: case PRISONER_OF_WAR: - TownyMessaging.sendTitleMessageToResident(resident, Translation.of("msg_you_have_been_jailed"), Translation.of("msg_run_to_the_wilderness_or_wait_for_a_jailbreak")); + TownyMessaging.sendTitleMessageToResident(resident, Translation.of("msg_you_have_been_jailed", resident), Translation.of("msg_run_to_the_wilderness_or_wait_for_a_jailbreak", resident)); break; } @@ -86,7 +87,7 @@ public static void jailResident(Resident resident, Jail jail, int cell, int hour TownyUniverse.getInstance().getJailedResidentMap().add(resident); // Tell the resident how long they've been jailed for. - TownyMessaging.sendMsg(resident, Translation.of("msg_you've_been_jailed_for_x_hours", hours)); + TownyMessaging.sendMsg(resident, Translatable.of("msg_you've_been_jailed_for_x_hours", hours)); // Teleport them (if possible.) teleportToJail(resident); @@ -113,40 +114,40 @@ public static void unJailResident(Resident resident, UnJailReason reason) { // First show a message to the resident, either by broadcasting to the resident's town or just the resident (if they have no town.) if (town != null) - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_player_escaped_jail_into_wilderness", resident.getName(), jail.getWildName())); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_player_escaped_jail_into_wilderness", resident.getName(), jail.getWildName())); else - TownyMessaging.sendMsg(resident, Translation.of("msg_you_have_been_freed_from_jail")); + TownyMessaging.sendMsg(resident, Translatable.of("msg_you_have_been_freed_from_jail")); // Second, show a message to the town which has just had a prisoner escape. if (town != null && !town.getUUID().equals(jail.getTown().getUUID())) - TownyMessaging.sendPrefixedTownMessage(jail.getTown(), Translation.of("msg_player_escaped_jail_into_wilderness", resident.getName(), jail.getWildName())); + TownyMessaging.sendPrefixedTownMessage(jail.getTown(), Translatable.of("msg_player_escaped_jail_into_wilderness", resident.getName(), jail.getWildName())); break; case BAIL: teleportAwayFromJail(resident); - TownyMessaging.sendMsg(resident, Translation.of("msg_you_have_paid_bail")); - TownyMessaging.sendPrefixedTownMessage(jail.getTown(), resident.getName() + Translation.of("msg_has_paid_bail")); + TownyMessaging.sendMsg(resident, Translatable.of("msg_you_have_paid_bail")); + TownyMessaging.sendPrefixedTownMessage(jail.getTown(), resident.getName() + Translatable.of("msg_has_paid_bail")); break; case SENTENCE_SERVED: teleportAwayFromJail(resident); - TownyMessaging.sendMsg(resident, Translation.of("msg_you_have_served_your_sentence_and_are_free")); - TownyMessaging.sendPrefixedTownMessage(jail.getTown(), Translation.of("msg_x_has_served_their_sentence_and_is_free", resident.getName())); + TownyMessaging.sendMsg(resident, Translatable.of("msg_you_have_served_your_sentence_and_are_free")); + TownyMessaging.sendPrefixedTownMessage(jail.getTown(), Translatable.of("msg_x_has_served_their_sentence_and_is_free", resident.getName())); break; case LEFT_TOWN: town = resident.getTownOrNull(); - TownyMessaging.sendMsg(resident, Translation.of("msg_you_have_been_freed_from_jail")); - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_player_escaped_jail_by_leaving_town", resident.getName())); + TownyMessaging.sendMsg(resident, Translatable.of("msg_you_have_been_freed_from_jail")); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_player_escaped_jail_by_leaving_town", resident.getName())); break; case PARDONED: case JAIL_DELETED: case ADMIN: teleportAwayFromJail(resident); - TownyMessaging.sendMsg(resident, Translation.of("msg_you_have_been_freed_from_jail")); - TownyMessaging.sendPrefixedTownMessage(jail.getTown(), Translation.of("msg_x_has_been_freed_from_x", resident.getName(), jailName)); + TownyMessaging.sendMsg(resident, Translatable.of("msg_you_have_been_freed_from_jail")); + TownyMessaging.sendPrefixedTownMessage(jail.getTown(), Translatable.of("msg_x_has_been_freed_from_x", resident.getName(), jailName)); break; case JAILBREAK: - TownyMessaging.sendMsg(resident, Translation.of("msg_you_have_been_freed_via_jailbreak")); + TownyMessaging.sendMsg(resident, Translatable.of("msg_you_have_been_freed_via_jailbreak")); break; } @@ -223,21 +224,21 @@ private static void teleportAwayFromJail(Resident resident) { } catch (TownyException e) {} // Use teleport warmup - TownyMessaging.sendMsg(resident, Translation.of("msg_town_spawn_warmup", TownySettings.getTeleportWarmupTime())); + TownyMessaging.sendMsg(resident, Translatable.of("msg_town_spawn_warmup", TownySettings.getTeleportWarmupTime())); TownyAPI.getInstance().jailTeleport(resident.getPlayer(), loc); } private static void teleportToJail(Resident resident) { // Send a player to their jail cell. - TownyMessaging.sendMsg(resident, Translation.of("msg_you_are_being_sent_to_jail")); - TownyMessaging.sendMsg(resident, Translation.of("msg_town_spawn_warmup", TownySettings.getTeleportWarmupTime())); + TownyMessaging.sendMsg(resident, Translatable.of("msg_you_are_being_sent_to_jail")); + TownyMessaging.sendMsg(resident, Translatable.of("msg_town_spawn_warmup", TownySettings.getTeleportWarmupTime())); TownyAPI.getInstance().jailTeleport(resident.getPlayer(), resident.getJailSpawn()); } private static void addJailedPlayerToLogOutMap(Resident resident) { queuedJailedResidents.add(resident); - TownyMessaging.sendMsg(resident, Translation.of("msg_do_not_log_out_while_waiting_to_be_teleported")); + TownyMessaging.sendMsg(resident, Translatable.of("msg_do_not_log_out_while_waiting_to_be_teleported")); Bukkit.getScheduler().scheduleSyncDelayedTask(Towny.getPlugin(), () -> queuedJailedResidents.remove(resident), TownySettings.getTeleportWarmupTime() + 20); } diff --git a/src/com/palmergames/bukkit/towny/utils/MoneyUtil.java b/src/com/palmergames/bukkit/towny/utils/MoneyUtil.java index e8b1ea2a31..8dd9e8cf8e 100644 --- a/src/com/palmergames/bukkit/towny/utils/MoneyUtil.java +++ b/src/com/palmergames/bukkit/towny/utils/MoneyUtil.java @@ -1,5 +1,6 @@ package com.palmergames.bukkit.towny.utils; +import com.palmergames.bukkit.towny.object.Translatable; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.entity.Player; @@ -22,7 +23,6 @@ import com.palmergames.bukkit.towny.object.TownBlockType; import com.palmergames.bukkit.towny.object.Transaction; import com.palmergames.bukkit.towny.object.TransactionType; -import com.palmergames.bukkit.towny.object.Translation; import com.palmergames.bukkit.util.BukkitTools; public class MoneyUtil { @@ -56,11 +56,11 @@ public static void townWithdraw(Player player, Resident resident, Town town, int // Withdraw from bank. town.withdrawFromBank(resident, amount); - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_xx_withdrew_xx", resident.getName(), amount, Translation.of("town_sing"))); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_xx_withdrew_xx", resident.getName(), amount, Translatable.of("town_sing"))); BukkitTools.getPluginManager().callEvent(new TownTransactionEvent(town, transaction)); } catch (TownyException e) { - TownyMessaging.sendErrorMsg(player, e.getMessage()); + TownyMessaging.sendErrorMsg(player, e.getMessage(player)); } } @@ -80,17 +80,17 @@ public static void townDeposit(Player player, Resident resident, Town town, Nati if (nation == null) { // Deposit into town from a town resident. town.depositToBank(resident, amount); - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_xx_deposited_xx", resident.getName(), amount, Translation.of("town_sing"))); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_xx_deposited_xx", resident.getName(), amount, Translatable.of("town_sing"))); } else { // Deposit into town from a nation member. resident.getAccount().payTo(amount, town, "Town Deposit from Nation member"); - TownyMessaging.sendPrefixedNationMessage(nation, Translation.of("msg_xx_deposited_xx", resident.getName(), amount, town + " " + Translation.of("town_sing"))); + TownyMessaging.sendPrefixedNationMessage(nation, Translatable.of("msg_xx_deposited_xx", resident.getName(), amount, town + " " + Translatable.of("town_sing"))); } BukkitTools.getPluginManager().callEvent(new TownTransactionEvent(town, transaction)); } catch (TownyException e) { - TownyMessaging.sendErrorMsg(player, e.getMessage()); + TownyMessaging.sendErrorMsg(player, e.getMessage(player)); } } @@ -110,11 +110,11 @@ public static void nationWithdraw(Player player, Resident resident, Nation natio // Withdraw from bank. nation.withdrawFromBank(resident, amount); - TownyMessaging.sendPrefixedNationMessage(nation, Translation.of("msg_xx_withdrew_xx", resident.getName(), amount, Translation.of("nation_sing"))); + TownyMessaging.sendPrefixedNationMessage(nation, Translatable.of("msg_xx_withdrew_xx", resident.getName(), amount, Translatable.of("nation_sing"))); BukkitTools.getPluginManager().callEvent(new NationTransactionEvent(nation, transaction)); } catch (TownyException e) { - TownyMessaging.sendErrorMsg(player, e.getMessage()); + TownyMessaging.sendErrorMsg(player, e.getMessage(player)); } } @@ -134,11 +134,11 @@ public static void nationDeposit(Player player, Resident resident, Nation nation // Deposit into nation. nation.depositToBank(resident, amount); - TownyMessaging.sendPrefixedNationMessage(nation, Translation.of("msg_xx_deposited_xx", resident.getName(), amount, Translation.of("nation_sing"))); + TownyMessaging.sendPrefixedNationMessage(nation, Translatable.of("msg_xx_deposited_xx", resident.getName(), amount, Translatable.of("nation_sing"))); BukkitTools.getPluginManager().callEvent(new NationTransactionEvent(nation, transaction)); } catch (TownyException e) { - TownyMessaging.sendErrorMsg(player, e.getMessage()); + TownyMessaging.sendErrorMsg(player, e.getMessage(player)); } } @@ -156,19 +156,19 @@ public static void nationDeposit(Player player, Resident resident, Nation nation private static void commonTests(int amount, Resident resident, Town town, Location loc, boolean nation, boolean withdraw) throws TownyException { if (!TownyEconomyHandler.isActive()) - throw new TownyException(Translation.of("msg_err_no_economy")); + throw new TownyException(Translatable.of("msg_err_no_economy")); if (amount < 0) - throw new TownyException(Translation.of("msg_err_negative_money")); + throw new TownyException(Translatable.of("msg_err_negative_money")); if (!withdraw && !resident.getAccount().canPayFromHoldings(amount)) - throw new TownyException(Translation.of("msg_insuf_funds")); + throw new TownyException(Translatable.of("msg_insuf_funds")); if (!nation && town.isRuined()) - throw new TownyException(Translation.of("msg_err_cannot_use_command_because_town_ruined")); + throw new TownyException(Translatable.of("msg_err_cannot_use_command_because_town_ruined")); if (withdraw && ((nation && !TownySettings.getNationBankAllowWithdrawls()) || (!nation && !TownySettings.getTownBankAllowWithdrawls()))) - throw new TownyException(Translation.of("msg_err_withdraw_disabled")); + throw new TownyException(Translatable.of("msg_err_withdraw_disabled")); if (!withdraw && (TownySettings.getTownBankCap() > 0 || TownySettings.getNationBankCap() > 0)) { double bankcap = 0; @@ -181,17 +181,17 @@ private static void commonTests(int amount, Resident resident, Town town, Locati balance = town.getNation().getAccount().getHoldingBalance(); } if (bankcap > 0 && amount + balance > bankcap) - throw new TownyException(Translation.of("msg_err_deposit_capped", bankcap)); + throw new TownyException(Translatable.of("msg_err_deposit_capped", bankcap)); } if (TownySettings.isBankActionLimitedToBankPlots() && isNotInBankPlot(town, loc)) - throw new TownyException(Translation.of("msg_err_unable_to_use_bank_outside_bank_plot")); + throw new TownyException(Translatable.of("msg_err_unable_to_use_bank_outside_bank_plot")); if (TownySettings.isBankActionDisallowedOutsideTown() && isNotInOwnTown(town, loc)) { if (nation) - throw new TownyException(Translation.of("msg_err_unable_to_use_bank_outside_nation_capital")); + throw new TownyException(Translatable.of("msg_err_unable_to_use_bank_outside_nation_capital")); else - throw new TownyException(Translation.of("msg_err_unable_to_use_bank_outside_your_town")); + throw new TownyException(Translatable.of("msg_err_unable_to_use_bank_outside_your_town")); } int minAmount = 0; @@ -200,7 +200,7 @@ private static void commonTests(int amount, Resident resident, Town town, Locati else minAmount = nation ? TownySettings.getNationMinDeposit() : TownySettings.getTownMinDeposit(); if (amount < minAmount) - throw new TownyException(Translation.of("msg_err_must_be_greater_than_or_equal_to", TownyEconomyHandler.getFormattedBalance(minAmount))); + throw new TownyException(Translatable.of("msg_err_must_be_greater_than_or_equal_to", TownyEconomyHandler.getFormattedBalance(minAmount))); } diff --git a/src/com/palmergames/bukkit/towny/utils/OutpostUtil.java b/src/com/palmergames/bukkit/towny/utils/OutpostUtil.java index ec2824a80a..4da87a599c 100644 --- a/src/com/palmergames/bukkit/towny/utils/OutpostUtil.java +++ b/src/com/palmergames/bukkit/towny/utils/OutpostUtil.java @@ -7,7 +7,7 @@ import com.palmergames.bukkit.towny.object.Resident; import com.palmergames.bukkit.towny.object.Town; import com.palmergames.bukkit.towny.object.TownyWorld; -import com.palmergames.bukkit.towny.object.Translation; +import com.palmergames.bukkit.towny.object.Translatable; public class OutpostUtil { @@ -31,39 +31,39 @@ public static boolean OutpostTests(Town town, Resident resident, TownyWorld worl // The config can be set up to dole out numbers of outposts to towns based on resident counts/belonging to a nation. if (TownySettings.isOutpostsLimitedByLevels() && (town.getMaxOutpostSpawn() >= town.getOutpostLimit())) - throw new TownyException(Translation.of("msg_err_not_enough_outposts_free_to_claim", town.getMaxOutpostSpawn(), town.getOutpostLimit())); + throw new TownyException(Translatable.of("msg_err_not_enough_outposts_free_to_claim", town.getMaxOutpostSpawn(), town.getOutpostLimit())); // The config can be set to require a number of residents in a town before an outpost can be made. if (TownySettings.getAmountOfResidentsForOutpost() != 0 && town.getResidents().size() < TownySettings.getAmountOfResidentsForOutpost()) - throw new TownyException(Translation.of("msg_err_not_enough_residents")); + throw new TownyException(Translatable.of("msg_err_not_enough_residents")); // Outposts can be limited per resident, with permission nodes. int maxOutposts = TownySettings.getMaxResidentOutposts(resident); if (!isAdmin && maxOutposts != -1 && (maxOutposts <= resident.getTown().getAllOutpostSpawns().size())) - throw new TownyException(Translation.of("msg_max_outposts_own", maxOutposts)); + throw new TownyException(Translatable.of("msg_max_outposts_own", maxOutposts)); // Outposts can have a minimum required distance from homeblocks. if (world.getMinDistanceFromOtherTowns(key) < TownySettings.getMinDistanceFromTownHomeblocks()) - throw new TownyException(Translation.of("msg_too_close2", Translation.of("homeblock"))); + throw new TownyException(Translatable.of("msg_too_close2", Translatable.of("homeblock"))); int maxDistance = TownySettings.getMaxDistanceForOutpostsFromTown(); // Outposts can have a maximum distance they can be from their town's plots. if (maxDistance > 0) { // Doesn't match the world. if (!world.getName().equalsIgnoreCase(town.getHomeblockWorld().getName())) - throw new TownyException(Translation.of("msg_err_you_can_only_claim_outposts_in_your_homeblocks_world")); + throw new TownyException(Translatable.of("msg_err_you_can_only_claim_outposts_in_your_homeblocks_world")); int distance = world.getMinDistanceFromOtherPlotsOwnedByTown(key, town); // Is too far from the nearest townblock. if (distance > maxDistance) - throw new TownyException(Translation.of("msg_err_not_close_enough_to_your_town_nearest_plot", distance, maxDistance)); + throw new TownyException(Translatable.of("msg_err_not_close_enough_to_your_town_nearest_plot", distance, maxDistance)); } // Outposts can have a minimum required distance from other towns' townblocks. int minDistance = world.getMinDistanceFromOtherTownsPlots(key, isPlotSetOutpost ? town : null); // Outposts can have a minimum required distance from other outposts. if (minDistance < TownySettings.getMinDistanceFromTownPlotblocks() || minDistance < TownySettings.getMinDistanceForOutpostsFromPlot()) - throw new TownyException(Translation.of("msg_too_close2", Translation.of("townblock"))); + throw new TownyException(Translatable.of("msg_too_close2", Translatable.of("townblock"))); return true; } diff --git a/src/com/palmergames/bukkit/towny/utils/PermissionGUIUtil.java b/src/com/palmergames/bukkit/towny/utils/PermissionGUIUtil.java index 479fdcbecf..3ac25bd3d7 100644 --- a/src/com/palmergames/bukkit/towny/utils/PermissionGUIUtil.java +++ b/src/com/palmergames/bukkit/towny/utils/PermissionGUIUtil.java @@ -28,7 +28,6 @@ import java.util.Map.Entry; public class PermissionGUIUtil { - private static final String GUI_NAME = Translation.of("permission_gui_header"); private static final SetPermissionType[] defaultTypes = new SetPermissionType[]{SetPermissionType.UNSET, SetPermissionType.UNSET, SetPermissionType.UNSET, SetPermissionType.UNSET}; private static final int[] woolSlots = new int[]{21, 23, 30, 32}; @@ -62,9 +61,8 @@ public static void openPermissionGUI(@NotNull Resident resident, @NotNull TownBl canEdit = false; } - Inventory page = ResidentUtil.getBlankPage(GUI_NAME); + Inventory page = ResidentUtil.getBlankPage(Translation.of("permission_gui_header", resident)); ArrayList pages = new ArrayList<>(); - ArrayList playerSkulls = new ArrayList<>(); for (Entry entry : townBlock.getPermissionOverrides().entrySet()) { ItemStack skull = new ItemStack(Material.PLAYER_HEAD); @@ -83,18 +81,17 @@ public static void openPermissionGUI(@NotNull Resident resident, @NotNull TownBl if (canEdit) { if (entry.getValue().getLastChangedAt() > 0 && !entry.getValue().getLastChangedBy().equals("")) - lore.add(Translation.of("msg_last_edited", TownyFormatter.lastOnlineFormat.format(entry.getValue().getLastChangedAt()), entry.getValue().getLastChangedBy())); + lore.add(Translation.of("msg_last_edited", resident, TownyFormatter.lastOnlineFormat.format(entry.getValue().getLastChangedAt()), entry.getValue().getLastChangedBy())); - lore.add(Translation.of("msg_click_to_edit")); + lore.add(Translation.of("msg_click_to_edit", resident)); } meta.setLore(lore); skull.setItemMeta(meta); - playerSkulls.add(skull); if (page.firstEmpty() == 46) { pages.add(page); - page = ResidentUtil.getBlankPage(GUI_NAME); + page = ResidentUtil.getBlankPage(Translation.of("permission_gui_header", resident)); } page.addItem(skull); @@ -105,11 +102,11 @@ public static void openPermissionGUI(@NotNull Resident resident, @NotNull TownBl pages.add(page); resident.setGUIPages(pages); resident.setGUIPageNum(0); - new PermissionGUI(resident, pages.get(0), GUI_NAME, townBlock, canEdit); + new PermissionGUI(resident, pages.get(0), Translation.of("permission_gui_header", resident), townBlock, canEdit); } public static void openPermissionEditorGUI(@NotNull Resident resident, @NotNull TownBlock townBlock, @NotNull ItemStack clickedItem) { - Inventory inventory = Bukkit.createInventory(null, 54, GUI_NAME); + Inventory inventory = Bukkit.createInventory(null, 54, Translation.of("permission_gui_header", resident)); SkullMeta meta = (SkullMeta) clickedItem.getItemMeta(); Resident skullOwner = TownyAPI.getInstance().getResident(Colors.strip(meta.getDisplayName())); @@ -145,7 +142,7 @@ public static void openPermissionEditorGUI(@NotNull Resident resident, @NotNull inventory.setItem(50, backButton); inventory.setItem(53, deleteButton); - new EditGUI(resident, inventory, GUI_NAME, townBlock, skullOwner); + new EditGUI(resident, inventory, Translation.of("permission_gui_header", resident), townBlock, skullOwner); } public static SetPermissionType[] getDefaultTypes() { diff --git a/src/com/palmergames/bukkit/towny/utils/ResidentUtil.java b/src/com/palmergames/bukkit/towny/utils/ResidentUtil.java index a45dc575b5..a7c8205293 100644 --- a/src/com/palmergames/bukkit/towny/utils/ResidentUtil.java +++ b/src/com/palmergames/bukkit/towny/utils/ResidentUtil.java @@ -4,10 +4,12 @@ import java.util.List; import java.util.UUID; -import com.palmergames.bukkit.towny.object.Translation; +import com.palmergames.bukkit.towny.object.Translatable; +import com.palmergames.bukkit.towny.object.Translation; import org.bukkit.Bukkit; import org.bukkit.Material; +import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; @@ -64,7 +66,7 @@ public static List getOnlineResidentsViewable(Player viewer, ResidentL * @param names - Names to be converted. * @return - List of residents to be used later. */ - public static List getValidatedResidents(Object sender, String[] names) { + public static List getValidatedResidents(CommandSender sender, String[] names) { TownyUniverse townyUniverse = TownyUniverse.getInstance(); List residents = new ArrayList<>(); for (String name : names) { @@ -81,7 +83,7 @@ public static List getValidatedResidents(Object sender, String[] names residents.add(target); } else { - TownyMessaging.sendErrorMsg(sender, Translation.of("msg_err_not_registered_1", targetName)); + TownyMessaging.sendErrorMsg(sender, Translatable.of("msg_err_not_registered_1", targetName)); } } } diff --git a/src/com/palmergames/bukkit/towny/utils/SpawnUtil.java b/src/com/palmergames/bukkit/towny/utils/SpawnUtil.java index 271273f37c..c332e6a62e 100644 --- a/src/com/palmergames/bukkit/towny/utils/SpawnUtil.java +++ b/src/com/palmergames/bukkit/towny/utils/SpawnUtil.java @@ -7,6 +7,7 @@ import com.palmergames.bukkit.towny.event.SpawnEvent; import com.palmergames.bukkit.towny.event.TownSpawnEvent; import com.palmergames.bukkit.towny.event.teleport.ResidentSpawnEvent; +import com.palmergames.bukkit.towny.object.Translatable; import com.palmergames.bukkit.towny.object.Translation; import com.palmergames.bukkit.towny.object.economy.Account; import io.papermc.lib.PaperLib; @@ -67,17 +68,16 @@ public static void sendToTownySpawn(Player player, String[] split, TownyObject t Resident resident = townyUniverse.getResident(player.getUniqueId()); if (resident == null) - throw new TownyException(Translation.of("msg_err_not_registered_1", player.getName())); + throw new TownyException(Translatable.of("msg_err_not_registered_1", player.getName())); // Test if the resident is in a teleport cooldown. if (TownySettings.getSpawnCooldownTime() > 0 && CooldownTimerTask.hasCooldown(resident.getName(), CooldownType.TELEPORT)) - throw new TownyException( - Translation.of("msg_err_cannot_spawn_x_seconds_remaining", CooldownTimerTask.getCooldownRemaining(resident.getName(), CooldownType.TELEPORT))); + throw new TownyException(Translatable.of("msg_err_cannot_spawn_x_seconds_remaining", CooldownTimerTask.getCooldownRemaining(resident.getName(), CooldownType.TELEPORT))); // Disallow jailed players from teleporting. if (resident.isJailed()) - throw new TownyException(Translation.of("msg_cannot_spawn_while_jailed")); + throw new TownyException(Translatable.of("msg_cannot_spawn_while_jailed")); Town town = null; Nation nation = null; @@ -110,7 +110,7 @@ else if (town != null) town = (Town) townyObject; if (outpost) { if (!town.hasOutpostSpawn()) - throw new TownyException(Translation.of("msg_err_outpost_spawn")); + throw new TownyException(Translatable.of("msg_err_outpost_spawn")); Integer index = null; try { @@ -156,7 +156,7 @@ else if (town != null) if (TownySettings.isOutpostLimitStoppingTeleports() && TownySettings.isOutpostsLimitedByLevels() && town.isOverOutpostLimit() && (Math.max(1, index) > town.getOutpostLimit())) { - throw new TownyException(Translation.of("msg_err_over_outposts_limit", town.getMaxOutpostSpawn(), town.getOutpostLimit())); + throw new TownyException(Translatable.of("msg_err_over_outposts_limit", town.getMaxOutpostSpawn(), town.getOutpostLimit())); } spawnLoc = town.getOutpostSpawn(Math.max(1, index)); @@ -180,17 +180,15 @@ else if (town != null) if (playerNation == targetNation) { if (!town.isPublic() && TownySettings.isAllySpawningRequiringPublicStatus()) - throw new TownyException( - Translation.of("msg_err_ally_isnt_public", town)); + throw new TownyException(Translatable.of("msg_err_ally_isnt_public", town)); else townSpawnPermission = TownSpawnLevel.PART_OF_NATION; } else if (targetNation.hasEnemy(playerNation)) { // Prevent enemies from using spawn travel. - throw new TownyException(Translation.of("msg_err_public_spawn_enemy")); + throw new TownyException(Translatable.of("msg_err_public_spawn_enemy")); } else if (targetNation.hasAlly(playerNation)) { if (!town.isPublic() && TownySettings.isAllySpawningRequiringPublicStatus()) - throw new TownyException( - Translation.of("msg_err_ally_isnt_public", town)); + throw new TownyException(Translatable.of("msg_err_ally_isnt_public", town)); else townSpawnPermission = TownSpawnLevel.NATION_ALLY; } else { @@ -207,11 +205,11 @@ else if (town != null) // Check the permissions if (!(isTownyAdmin || ((townSpawnPermission == TownSpawnLevel.UNAFFILIATED) ? town.isPublic() : townSpawnPermission.hasPermissionNode(plugin, player, town)))) - throw new TownyException(Translation.of("msg_err_not_public")); + throw new TownyException(Translatable.of("msg_err_not_public")); // Prevent outlaws from spawning into towns they're considered an outlaw in. if (!isTownyAdmin && town.hasOutlaw(resident)) - throw new TownyException(Translation.of("msg_error_cannot_town_spawn_youre_an_outlaw_in_town", town)); + throw new TownyException(Translatable.of("msg_error_cannot_town_spawn_youre_an_outlaw_in_town", town)); break; case NATION: @@ -234,7 +232,7 @@ else if (town != null) nationSpawnPermission = NationSpawnLevel.PART_OF_NATION; } else if (nation.hasEnemy(playerNation)) { // Prevent enemies from using spawn travel. - throw new TownyException(Translation.of("msg_err_public_spawn_enemy")); + throw new TownyException(Translatable.of("msg_err_public_spawn_enemy")); } else if (nation.hasAlly(playerNation)) { nationSpawnPermission = NationSpawnLevel.NATION_ALLY; } else { @@ -249,7 +247,7 @@ else if (town != null) // Check the permissions if (!(isTownyAdmin || ((nationSpawnPermission == NationSpawnLevel.UNAFFILIATED) ? nation.isPublic() : nationSpawnPermission.hasPermissionNode(plugin, player, nation)))) - throw new TownyException(Translation.of("msg_err_nation_not_public")); + throw new TownyException(Translatable.of("msg_err_nation_not_public")); break; } @@ -268,19 +266,18 @@ else if (town != null) } if (inTown == null && disallowedZones.contains("unclaimed")) - throw new TownyException( - Translation.of("msg_err_x_spawn_disallowed_from_x", spawnType.getTypeName(), Translation.of("msg_the_wilderness"))); + throw new TownyException(Translatable.of("msg_err_x_spawn_disallowed_from_x", spawnType.getTypeName(), Translatable.of("msg_the_wilderness"))); if (inTown != null && resident.hasNation() && townyUniverse.hasTown(inTown) && townyUniverse.getTown(inTown).hasNation()) { Nation inNation = townyUniverse.getTown(inTown).getNation(); Nation playerNation = resident.getTown().getNation(); if (inNation.hasEnemy(playerNation) && disallowedZones.contains("enemy")) throw new TownyException( - Translation.of("msg_err_x_spawn_disallowed_from_x", spawnType.getTypeName(), Translation.of("msg_enemy_areas"))); + Translatable.of("msg_err_x_spawn_disallowed_from_x", spawnType.getTypeName(), Translatable.of("msg_enemy_areas"))); if (!inNation.hasAlly(playerNation) && !inNation.hasEnemy(playerNation) && disallowedZones.contains("neutral")) throw new TownyException( - Translation.of("msg_err_x_spawn_disallowed_from_x", spawnType.getTypeName(), Translation.of("msg_neutral_towns"))); + Translatable.of("msg_err_x_spawn_disallowed_from_x", spawnType.getTypeName(), Translatable.of("msg_neutral_towns"))); } } } @@ -331,15 +328,15 @@ else if (town != null) // Skipping the confirmation. if (ignoreWarn || !TownySettings.isSpawnWarnConfirmationUsed()) { if (resident.getAccount().payTo(finalCost, finalPayee, finalSpawnPerm)) { - TownyMessaging.sendMsg(player, Translation.of("msg_cost_spawn", TownyEconomyHandler.getFormattedBalance(finalCost))); + TownyMessaging.sendMsg(player, Translatable.of("msg_cost_spawn", TownyEconomyHandler.getFormattedBalance(finalCost))); initiateSpawn(player, finalLoc); } } else { // Sending the confirmation. - String title = Translation.of("msg_spawn_warn", TownyEconomyHandler.getFormattedBalance(travelCost)); + String title = Translation.of("msg_spawn_warn", player, TownyEconomyHandler.getFormattedBalance(travelCost)); Confirmation.runOnAccept(() -> { if (resident.getAccount().payTo(finalCost, finalPayee, finalSpawnPerm)) { - TownyMessaging.sendMsg(player, Translation.of("msg_cost_spawn", TownyEconomyHandler.getFormattedBalance(finalCost))); + TownyMessaging.sendMsg(player, Translatable.of("msg_cost_spawn", TownyEconomyHandler.getFormattedBalance(finalCost))); initiateSpawn(player, finalLoc); } }) @@ -399,7 +396,7 @@ private static void initiateSpawn(Player player, Location spawnLoc) { if (TownyTimerHandler.isTeleportWarmupRunning() && !TownyUniverse.getInstance().getPermissionSource().testPermission(player, PermissionNodes.TOWNY_SPAWN_ADMIN_NOWARMUP.getNode())) { // Use teleport warmup - TownyMessaging.sendMsg(player, Translation.of("msg_town_spawn_warmup", TownySettings.getTeleportWarmupTime())); + TownyMessaging.sendMsg(player, Translatable.of("msg_town_spawn_warmup", TownySettings.getTeleportWarmupTime())); TownyAPI.getInstance().requestTeleport(player, spawnLoc); } else { // Don't use teleport warmup @@ -428,7 +425,7 @@ public static void outlawTeleport(Town town, Resident outlaw) { spawnLocation = outlawedPlayer.getBedSpawnLocation(); if (outlaw.hasTown() && TownyAPI.getInstance().getTownSpawnLocation(outlawedPlayer) != null) spawnLocation = TownyAPI.getInstance().getTownSpawnLocation(outlawedPlayer); - TownyMessaging.sendMsg(outlaw, Translation.of("msg_outlaw_kicked", town)); + TownyMessaging.sendMsg(outlaw, Translatable.of("msg_outlaw_kicked", town)); PaperLib.teleportAsync(outlaw.getPlayer(), spawnLocation, TeleportCause.PLUGIN); } } diff --git a/src/com/palmergames/bukkit/towny/war/common/WarZoneListener.java b/src/com/palmergames/bukkit/towny/war/common/WarZoneListener.java index a4653d01e7..f89a59df61 100644 --- a/src/com/palmergames/bukkit/towny/war/common/WarZoneListener.java +++ b/src/com/palmergames/bukkit/towny/war/common/WarZoneListener.java @@ -56,7 +56,7 @@ public void onDestroy(TownyDestroyEvent event) { if ((TownyAPI.getInstance().isWarTime() && status == TownBlockStatus.WARZONE && !WarUtil.isPlayerNeutral(player))) { if (!WarZoneConfig.isEditableMaterialInWarZone(mat)) { event.setCancelled(true); - event.setMessage(Translation.of("msg_err_warzone_cannot_edit_material", "destroy", mat.toString().toLowerCase())); + event.setMessage(Translation.of("msg_err_warzone_cannot_edit_material", player, "destroy", mat.toString().toLowerCase())); return; } event.setCancelled(false); @@ -78,7 +78,7 @@ public void onBuild(TownyBuildEvent event) { if (TownyAPI.getInstance().isWarTime() && status == TownBlockStatus.WARZONE && !WarUtil.isPlayerNeutral(player)) { // Event War if (!WarZoneConfig.isEditableMaterialInWarZone(mat)) { event.setCancelled(true); - event.setMessage(Translation.of("msg_err_warzone_cannot_edit_material", "build", mat.toString().toLowerCase())); + event.setMessage(Translation.of("msg_err_warzone_cannot_edit_material", player, "build", mat.toString().toLowerCase())); return; } event.setCancelled(false); @@ -99,7 +99,7 @@ public void onItemUse(TownyItemuseEvent event) { if (TownyAPI.getInstance().isWarTime() && status == TownBlockStatus.WARZONE && !WarUtil.isPlayerNeutral(player)) { // Event War if (!WarZoneConfig.isAllowingItemUseInWarZone()) { event.setCancelled(true); - event.setMessage(Translation.of("msg_err_warzone_cannot_use_item")); + event.setMessage(Translation.of("msg_err_warzone_cannot_use_item", player)); return; } event.setCancelled(false); @@ -120,7 +120,7 @@ public void onSwitchUse(TownySwitchEvent event) { if (TownyAPI.getInstance().isWarTime() && status == TownBlockStatus.WARZONE && !WarUtil.isPlayerNeutral(player)) { // Event War if (!WarZoneConfig.isAllowingSwitchesInWarZone()) { event.setCancelled(true); - event.setMessage(Translation.of("msg_err_warzone_cannot_use_switches")); + event.setMessage(Translation.of("msg_err_warzone_cannot_use_switches", player)); return; } event.setCancelled(false); @@ -244,7 +244,7 @@ public void onBurn(TownyBurnEvent event) { public void onNationToggleNeutral(NationToggleNeutralEvent event) { if (!TownySettings.isDeclaringNeutral() && event.getFutureState()) { event.setCancelled(true); - event.setCancelMessage(Translation.of("msg_err_fight_like_king")); + event.setCancelMessage(Translation.of("msg_err_fight_like_king", event.getPlayer())); } } @@ -259,35 +259,35 @@ public void onPlayerDamagePlayer(TownyPlayerDamagePlayerEvent event) { //Cancel because one of two players has no town and should not be interfering during war. if (TownySettings.isWarTimeTownsNeutral() && (event.getAttackerTown() == null || event.getVictimTown() == null)){ - event.setMessage(Translation.of("msg_war_a_player_has_no_town")); + event.setMessage(Translation.of("msg_war_a_player_has_no_town", event.getAttackingPlayer())); event.setCancelled(true); return; } //Cancel because one of the two players' town has no nation and should not be interfering during war. AND towns_are_neutral is true in the config. if (TownySettings.isWarTimeTownsNeutral() && (!attackerTown.hasNation() || !defenderTown.hasNation())) { - event.setMessage(Translation.of("msg_war_a_player_has_no_nation")); + event.setMessage(Translation.of("msg_war_a_player_has_no_nation", event.getAttackingPlayer())); event.setCancelled(true); return; } //Cancel because one of the two player's nations is neutral. if ((attackerTown.hasNation() && attackerTown.getNationOrNull().isNeutral()) || (defenderTown.hasNation() && defenderTown.getNationOrNull().isNeutral())) { - event.setMessage(Translation.of("msg_war_a_player_has_a_neutral_nation")); + event.setMessage(Translation.of("msg_war_a_player_has_a_neutral_nation", event.getAttackingPlayer())); event.setCancelled(true); return; } //Cancel because one of the two players are no longer involved in the war. if (!War.isWarringTown(defenderTown) || !War.isWarringTown(attackerTown)) { - event.setMessage(Translation.of("msg_war_a_player_has_been_removed_from_war")); + event.setMessage(Translation.of("msg_war_a_player_has_been_removed_from_war", event.getAttackingPlayer())); event.setCancelled(true); return; } //Cancel because one of the two players considers the other an ally. if (CombatUtil.isAlly(attackerTown, defenderTown)){ - event.setMessage(Translation.of("msg_war_a_player_is_an_ally")); + event.setMessage(Translation.of("msg_war_a_player_is_an_ally", event.getAttackingPlayer())); event.setCancelled(true); return; } diff --git a/src/com/palmergames/bukkit/towny/war/common/townruin/TownRuinUtil.java b/src/com/palmergames/bukkit/towny/war/common/townruin/TownRuinUtil.java index 6d5d4667d9..cac8664f02 100644 --- a/src/com/palmergames/bukkit/towny/war/common/townruin/TownRuinUtil.java +++ b/src/com/palmergames/bukkit/towny/war/common/townruin/TownRuinUtil.java @@ -17,6 +17,7 @@ import com.palmergames.bukkit.towny.object.Town; import com.palmergames.bukkit.towny.object.TownBlock; +import com.palmergames.bukkit.towny.object.Translatable; import com.palmergames.bukkit.towny.object.Translation; import com.palmergames.bukkit.towny.utils.ResidentUtil; import com.palmergames.util.TimeTools; @@ -123,7 +124,7 @@ public static void putTownIntoRuinedState(Town town, Towny plugin) { town.save(); plugin.resetCache(); - TownyMessaging.sendGlobalMessage(Translation.of("msg_ruin_town", town.getName())); + TownyMessaging.sendGlobalMessage(Translatable.of("msg_ruin_town", town.getName())); } /** @@ -138,38 +139,38 @@ public static void processRuinedTownReclaimRequest(Player player, Towny plugin) Resident resident = TownyUniverse.getInstance().getResident(player.getUniqueId()); if (resident == null || !resident.hasTown()) - throw new TownyException(Translation.of("msg_err_dont_belong_town")); + throw new TownyException(Translatable.of("msg_err_dont_belong_town")); //Ensure town is ruined town = resident.getTown(); if (!town.isRuined()) - throw new TownyException(Translation.of("msg_err_cannot_reclaim_town_unless_ruined")); + throw new TownyException(Translatable.of("msg_err_cannot_reclaim_town_unless_ruined")); //Validate if player can pay double townReclaimCost = TownRuinSettings.getEcoPriceReclaimTown(); if (TownyEconomyHandler.isActive() && !resident.getAccount().canPayFromHoldings(townReclaimCost)) - throw new TownyException(Translation.of("msg_insuf_funds")); + throw new TownyException(Translatable.of("msg_insuf_funds")); //Validate if player can remove at this time if (TownRuinSettings.getTownRuinsMinDurationHours() - getTimeSinceRuining(town) > 0) - throw new TownyException(Translation.of("msg_err_cannot_reclaim_town_yet", TownRuinSettings.getTownRuinsMinDurationHours() - getTimeSinceRuining(town))); + throw new TownyException(Translatable.of("msg_err_cannot_reclaim_town_yet", TownRuinSettings.getTownRuinsMinDurationHours() - getTimeSinceRuining(town))); if (TownyEconomyHandler.isActive() && townReclaimCost > 0) { Confirmation.runOnAccept(() -> { if (!resident.getAccount().canPayFromHoldings(townReclaimCost)) { - TownyMessaging.sendErrorMsg(resident, Translation.of("msg_insuf_funds")); + TownyMessaging.sendErrorMsg(player, Translatable.of("msg_insuf_funds")); return; } resident.getAccount().withdraw(townReclaimCost, "Cost of town reclaim."); reclaimTown(resident, town); }) - .setTitle(Translation.of("msg_confirm_purchase", TownyEconomyHandler.getFormattedBalance(townReclaimCost))) + .setTitle(Translation.of("msg_confirm_purchase", player, TownyEconomyHandler.getFormattedBalance(townReclaimCost))) .sendTo(player); } else { reclaimTown(resident, town); } } catch (TownyException e) { - TownyMessaging.sendErrorMsg(player,e.getMessage()); + TownyMessaging.sendErrorMsg(player, e.getMessage(player)); } } @@ -195,7 +196,7 @@ public static void reclaimTown(Resident resident, Town town) { TownReclaimedEvent event = new TownReclaimedEvent(town, resident); Bukkit.getPluginManager().callEvent(event); - TownyMessaging.sendGlobalMessage(Translation.of("msg_town_reclaimed", resident.getName(), town.getName())); + TownyMessaging.sendGlobalMessage(Translatable.of("msg_town_reclaimed", resident.getName(), town.getName())); } @@ -209,7 +210,7 @@ private static void setMayor(Town town, Resident newMayor) { // set upkeep again town.setHasUpkeep(true); } - TownyMessaging.sendPrefixedTownMessage(town, Translation.of("msg_new_mayor", newMayor.getName())); + TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_new_mayor", newMayor.getName())); } /**