From bc3b94d6e93a676b96684caa41898706c25b4764 Mon Sep 17 00:00:00 2001 From: magge-faf <101107758+magge-faf@users.noreply.github.com> Date: Sat, 13 Apr 2024 12:49:33 +0200 Subject: [PATCH] Add player name to parseModeratorEvent Changes include renaming 'fromInt' to 'fromArmy', setting default values for player names, and player name retrieval from 'armies' object'. --- .../commons/replay/ModeratorEvent.java | 8 +++++-- .../commons/replay/ReplayDataParser.java | 21 ++++++++++++++++--- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/faf-commons-data/src/main/java/com/faforever/commons/replay/ModeratorEvent.java b/faf-commons-data/src/main/java/com/faforever/commons/replay/ModeratorEvent.java index d0dce997..2a20563a 100644 --- a/faf-commons-data/src/main/java/com/faforever/commons/replay/ModeratorEvent.java +++ b/faf-commons-data/src/main/java/com/faforever/commons/replay/ModeratorEvent.java @@ -2,6 +2,10 @@ import java.time.Duration; -public record ModeratorEvent(Duration time, String sender, String message, int activeCommandSource) { - +public record ModeratorEvent(Duration time, + int activeCommandSource, + int fromArmy, + String message, + String playerNameFromArmy, + String playerNameFromCommandSource) { } diff --git a/faf-commons-data/src/main/java/com/faforever/commons/replay/ReplayDataParser.java b/faf-commons-data/src/main/java/com/faforever/commons/replay/ReplayDataParser.java index 5a13cccf..c3284e27 100644 --- a/faf-commons-data/src/main/java/com/faforever/commons/replay/ReplayDataParser.java +++ b/faf-commons-data/src/main/java/com/faforever/commons/replay/ReplayDataParser.java @@ -380,20 +380,35 @@ private void parseGiveResourcesToPlayer(Map lua) { void parseModeratorEvent(Map lua, Integer player) { String messageContent = "Content of Message Missing"; - int fromInt = -1; // Default Value + String playerNameFromArmy = "Player Name Army Missing"; + String playerNameFromCommandSource = "Player Name Command Source Missing"; int activeCommandSource = -1; // Default Value + int fromArmy = -1; // Default Value if (lua.containsKey("Message") && lua.get("Message") instanceof String value) { messageContent = value; } + if (lua.containsKey("From") && lua.get("From") instanceof Number value) { - fromInt = value.intValue(); + fromArmy = value.intValue() - 1; + + if (fromArmy != -2) { + Map army = armies.get(fromArmy); + + if (army != null){ + playerNameFromArmy = (String) army.get("PlayerName"); + } + } } + if (player != null) { activeCommandSource = player; + Map army = armies.get(activeCommandSource); + playerNameFromCommandSource = (String) army.get("PlayerName"); } - moderatorEvents.add(new ModeratorEvent(tickToTime(ticks), Integer.toString(fromInt), messageContent, activeCommandSource)); + moderatorEvents.add(new ModeratorEvent(tickToTime(ticks), activeCommandSource, fromArmy, + messageContent, playerNameFromArmy, playerNameFromCommandSource)); } private Duration tickToTime(int tick) {