evaluate the config preference once per message

This commit is contained in:
Jakob Schulz
2026-05-20 19:30:06 +02:00
parent 48fb6b5ed7
commit 53f98d4cd7
@@ -179,19 +179,21 @@ public class ChatListener extends BasicListener {
final String coloredMessage = user.hasPerm(UserPerm.COLOR_CHAT) ? message.replace('&', '§') : message; final String coloredMessage = user.hasPerm(UserPerm.COLOR_CHAT) ? message.replace('&', '§') : message;
if (chatFilter(sender, coloredMessage)) return; if (chatFilter(sender, coloredMessage)) return;
boolean useSwPrefix = useSwPrefix(user);
boolean noReceiver = true; boolean noReceiver = true;
for (Chatter player : receivers.getChatters()) { for (Chatter player : receivers.getChatters()) {
if (player.chatShown()) { if (player.chatShown()) {
chatToReciever(player, msgReceiver, user, format, coloredMessage); chatToReciever(player, msgReceiver, user, format, coloredMessage, useSwPrefix);
if (sender.user().getId() != player.user().getId()) noReceiver = false; if (sender.user().getId() != player.user().getId()) noReceiver = false;
} }
} }
if (format.equals("CHAT_GLOBAL")) { if (format.equals("CHAT_GLOBAL")) {
DiscordBot.withBot(bot -> chatToReciever(bot.getIngameChat(), msgReceiver, user, format, coloredMessage)); DiscordBot.withBot(bot -> chatToReciever(bot.getIngameChat(), msgReceiver, user, format, coloredMessage, useSwPrefix));
} else if (format.equals("CHAT_SERVERTEAM")) { } else if (format.equals("CHAT_SERVERTEAM")) {
DiscordBot.withBot(bot -> chatToReciever(bot.getServerTeamChat(), msgReceiver, user, "CHAT_GLOBAL", coloredMessage)); DiscordBot.withBot(bot -> chatToReciever(bot.getServerTeamChat(), msgReceiver, user, "CHAT_GLOBAL", coloredMessage, useSwPrefix));
} else if (noReceiver) { } else if (noReceiver) {
sender.system("CHAT_NO_RECEIVER"); sender.system("CHAT_NO_RECEIVER");
} }
@@ -242,9 +244,8 @@ public class ChatListener extends BasicListener {
return false; return false;
} }
private static void chatToReciever(Chatter receiver, Chatter msgReceiver, SteamwarUser sender, String format, String message) { private static void chatToReciever(Chatter receiver, Chatter msgReceiver, SteamwarUser sender, String format, String message, boolean useSwPrefix) {
UserPerm.Prefix prefix = sender.prefix(); UserPerm.Prefix prefix = sender.prefix();
boolean useSwPrefix = useSwPrefix(sender);
String teamPrefix = ""; String teamPrefix = "";
String swPrefix = prefix.getChatPrefix().length() == 0 ? "§f" : prefix.getChatPrefix() + " "; String swPrefix = prefix.getChatPrefix().length() == 0 ? "§f" : prefix.getChatPrefix() + " ";