Skip to content

Commit

Permalink
Make everything Translatable
Browse files Browse the repository at this point in the history
  • Loading branch information
Warriorrrr committed Aug 7, 2021
1 parent 16a65ba commit 3220c6f
Show file tree
Hide file tree
Showing 31 changed files with 1,904 additions and 1,667 deletions.
12 changes: 2 additions & 10 deletions src/com/palmergames/bukkit/towny/TownyAPI.java
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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<Player> getOnlinePlayers(ResidentList owner) {
ArrayList<Player> 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());
}

/**
Expand Down
313 changes: 194 additions & 119 deletions src/com/palmergames/bukkit/towny/TownyFormatter.java

Large diffs are not rendered by default.

63 changes: 63 additions & 0 deletions src/com/palmergames/bukkit/towny/TownyMessaging.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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.
Expand Down
51 changes: 26 additions & 25 deletions src/com/palmergames/bukkit/towny/command/InviteCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -110,13 +111,13 @@ private static void parseInviteList(Player player, String[] split) {
Optional<Resident> 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)));
Expand All @@ -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));
}

}
Expand All @@ -148,15 +149,15 @@ public static void parseDeny(Player player, String[] args) {
Optional<Resident> 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<Invite> 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;
}

Expand All @@ -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;
}
Expand All @@ -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"));


}
Expand All @@ -206,14 +207,14 @@ public static void parseAccept(Player player, String[] args) {
Optional<Resident> 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<Invite> 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;
}

Expand All @@ -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;
}
Expand All @@ -248,26 +249,26 @@ 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);
} catch (TownyException | InvalidObjectException e) {
e.printStackTrace();
}
} else
TownyMessaging.sendErrorMsg(player, Translation.of("msg_specify_name"));
TownyMessaging.sendErrorMsg(player, Translatable.of("msg_specify_name"));


}

public static void sendInviteList(Player player, List<Invite> 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));
Expand All @@ -289,31 +290,31 @@ public static void sendInviteList(Player player, List<Invite> 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)
));
}
}
Loading

0 comments on commit 3220c6f

Please sign in to comment.