Skip to content

Commit 690dc52

Browse files
committed
Fix player name used by parse_raw_player_info
Was causing the player's ID to get added as the players most recent name upon being added to a blacklist
1 parent 733fcf1 commit 690dc52

File tree

3 files changed

+15
-14
lines changed

3 files changed

+15
-14
lines changed

rcon/rcon.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -289,7 +289,7 @@ def get_detailed_players(self) -> GetDetailedPlayers:
289289
continue
290290

291291
try:
292-
player_data = self._get_detailed_player_info(player_id, player_info, player)
292+
player_data = self._get_detailed_player_info(player_info, player)
293293
except Exception:
294294
logger.error("Failed to get info for %s", player_id)
295295
fail_count += 1
@@ -483,11 +483,12 @@ def get_detailed_player_info(self, player_id: str, player: GetPlayersType | None
483483
raw = super().get_player_info(player_id)
484484
except HLLCommandError:
485485
raise HLLCommandFailedError("Player is not online")
486-
return self._get_detailed_player_info(player_id, raw, player)
486+
return self._get_detailed_player_info(raw, player)
487487

488-
def _get_detailed_player_info(self, player_id: str, raw: dict[str, Any],
489-
player: GetPlayersType | None = None) -> GetDetailedPlayer:
490-
player_data = parse_raw_player_info(raw, player_id)
488+
def _get_detailed_player_info(
489+
self, raw: dict[str, Any], player: GetPlayersType | None = None
490+
) -> GetDetailedPlayer:
491+
player_data = parse_raw_player_info(raw)
491492
if player is not None and 'is_vip' in player:
492493
player_data["is_vip"] = player.get('is_vip')
493494
else:

rcon/utils.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -419,10 +419,10 @@ def default_player_info_dict(player) -> GetDetailedPlayer:
419419
}
420420

421421

422-
def parse_raw_player_info(raw: dict[str, Any], player) -> GetDetailedPlayer:
422+
def parse_raw_player_info(raw: dict[str, Any]) -> GetDetailedPlayer:
423423
"""Parse the result of the playerinfo command from the game server"""
424424

425-
data = default_player_info_dict(player)
425+
data = default_player_info_dict(raw["name"])
426426

427427
# Remap keys and parse values
428428
data[PLAYER_ID] = raw["iD"]

tests/test_utils.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ def mock_get_detailed_player(
112112

113113

114114
@pytest.mark.parametrize(
115-
"raw, name, expected",
115+
"raw, expected",
116116
[
117117
(
118118
{
@@ -121,6 +121,7 @@ def mock_get_detailed_player(
121121
"role": 5,
122122
"level": "16",
123123
"loadout": "Standard Issue",
124+
"name": "MasterShake",
124125
"platoon": "JIG",
125126
"scoreData": {
126127
"cOMBAT": 72,
@@ -140,9 +141,8 @@ def mock_get_detailed_player(
140141
"eosId": "",
141142
"worldPosition": {},
142143
},
143-
"MasterShake",
144144
mock_get_detailed_player(
145-
name="",
145+
name="MasterShake",
146146
clan_tag="GH",
147147
eos_id="",
148148
platform="steam",
@@ -172,6 +172,7 @@ def mock_get_detailed_player(
172172
"role": 0,
173173
"level": "16",
174174
"loadout": "Standard Issue",
175+
"name": "MasterShake",
175176
"platoon": "ABLE",
176177
"scoreData": {
177178
"cOMBAT": 72,
@@ -191,9 +192,8 @@ def mock_get_detailed_player(
191192
"eosId": "",
192193
"worldPosition": {},
193194
},
194-
"MasterShake",
195195
mock_get_detailed_player(
196-
name="",
196+
name="MasterShake",
197197
clan_tag="GH",
198198
eos_id="",
199199
platform="steam",
@@ -218,5 +218,5 @@ def mock_get_detailed_player(
218218
),
219219
],
220220
)
221-
def test_parse_raw_player_info(raw, name, expected):
222-
assert parse_raw_player_info(raw=raw, player="") == expected
221+
def test_parse_raw_player_info(raw, expected):
222+
assert parse_raw_player_info(raw=raw) == expected

0 commit comments

Comments
 (0)