From 48fb6b5ed7da8dad022986cfd83d5092a8bf9b04 Mon Sep 17 00:00:00 2001 From: Jakob Schulz <55949993+Lordikak@users.noreply.github.com> Date: Wed, 20 May 2026 19:06:05 +0200 Subject: [PATCH] add parsing for chat prefix mode configuration --- .../SQL/src/de/steamwar/sql/SteamwarUser.kt | 3 ++ .../velocitycore/listeners/ChatListener.java | 45 +++++++++++++++++-- 2 files changed, 45 insertions(+), 3 deletions(-) diff --git a/CommonCore/SQL/src/de/steamwar/sql/SteamwarUser.kt b/CommonCore/SQL/src/de/steamwar/sql/SteamwarUser.kt index a5572bcc..7466a96d 100644 --- a/CommonCore/SQL/src/de/steamwar/sql/SteamwarUser.kt +++ b/CommonCore/SQL/src/de/steamwar/sql/SteamwarUser.kt @@ -175,6 +175,9 @@ class SteamwarUser(id: EntityID) : IntEntity(id) { leaderInternal = false } + fun hasTeam() = + team != 0 + private var leaderInternal by SteamwarUserTable.leader var leader: Boolean get() = leaderInternal diff --git a/VelocityCore/src/de/steamwar/velocitycore/listeners/ChatListener.java b/VelocityCore/src/de/steamwar/velocitycore/listeners/ChatListener.java index 2e083b4d..8c6d2000 100644 --- a/VelocityCore/src/de/steamwar/velocitycore/listeners/ChatListener.java +++ b/VelocityCore/src/de/steamwar/velocitycore/listeners/ChatListener.java @@ -60,6 +60,9 @@ public class ChatListener extends BasicListener { private static final Set noLogCommands = Set.of("webpw", "webpassword", "web"); + private static final String PREFIX_MODE_CONFIG = "chatprefix"; + private static final String PREFIX_MODE_SW = "SW"; + @Subscribe(order = PostOrder.FIRST) public void fixCommands(CommandExecuteEvent e) { String command = e.getCommand(); @@ -241,18 +244,54 @@ public class ChatListener extends BasicListener { private static void chatToReciever(Chatter receiver, Chatter msgReceiver, SteamwarUser sender, String format, String message) { UserPerm.Prefix prefix = sender.prefix(); + boolean useSwPrefix = useSwPrefix(sender); + + String teamPrefix = ""; + String swPrefix = prefix.getChatPrefix().length() == 0 ? "§f" : prefix.getChatPrefix() + " "; + String nameColor = prefix == UserPerm.emptyPrefix ? "§f" : prefix.getColorCode(); + + if (sender.hasPerm(UserPerm.TEAM)) { + swPrefix = "§f"; + + if (useSwPrefix) { + swPrefix = "§eS§8W "; + } else if (sender.getTeam() != 0) { + Team team = Team.byId(sender.getTeam()); + teamPrefix = "§" + team.getTeamColor() + team.getTeamKuerzel() + " "; + } + } else if (sender.getTeam() != 0) { + Team team = Team.byId(sender.getTeam()); + teamPrefix = "§" + team.getTeamColor() + team.getTeamKuerzel() + " "; + } + String chatColorCode = sender.hasPerm(UserPerm.TEAM) ? "§f" : "§7"; receiver.prefixless(format, sender, msgReceiver == null ? receiver : msgReceiver, highlightMentions(message, chatColorCode, receiver), - sender.getTeam() == 0 ? "" : "§" + Team.byId(sender.getTeam()).getTeamColor() + Team.byId(sender.getTeam()).getTeamKuerzel() + " ", + teamPrefix, "", - prefix.getColorCode(), - prefix.getChatPrefix().length() == 0 ? "§f" : prefix.getChatPrefix() + " ", + nameColor, + swPrefix, chatColorCode); } + private static boolean useSwPrefix(SteamwarUser user) { + if (!user.hasPerm(UserPerm.TEAM)) { + return false; + } + + UserPerm.Prefix prefix = user.prefix(); + + boolean hasTeamPrefix = user.getTeam() != 0; + boolean hasSwPrefix = prefix != UserPerm.emptyPrefix; + + if (!hasSwPrefix) return false; + if (!hasTeamPrefix) return true; + + return PREFIX_MODE_SW.equals(UserConfig.getConfig(user.getId(), PREFIX_MODE_CONFIG)); + } + private static boolean filteredCommand(Chatter sender, String message) { String command = message.split(" ", 2)[0]; if (command.startsWith("/") && command.contains(":")) {