Seed the player roster from a status dump on connect and map change

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <[email protected]>
This commit is contained in:
Debian
2026-09-18 12:33:59 +02:00
co-authored by Sisyphus
parent c5e0bc3f01
commit c9487b954a
4 changed files with 101 additions and 9 deletions
+19 -8
View File
@@ -101,14 +101,25 @@ class PlayerTracker:
return self.player_teams.get(name)
def add_player(self, name, score='0', ping='0'):
"""Add player to server's player dict if not exists"""
# Use original name with color codes as key
if name not in self.server_info.players:
self.server_info.players[name] = {
'score': score,
'ping': ping
}
logger.debug(f'Added player: {name}')
"""Add player to server's player dict if not exists. A seeded clean-name
entry is upgraded to the color-coded name (preserving score/ping) instead
of duplicating the roster entry."""
if name in self.server_info.players:
return
clean_name = strip_color_codes(name)
for player_name in list(self.server_info.players.keys()):
if player_name != name and strip_color_codes(player_name) == clean_name:
existing = self.server_info.players.pop(player_name)
existing.setdefault('score', score)
existing.setdefault('ping', ping)
self.server_info.players[name] = existing
logger.debug(f'Upgraded roster entry {player_name} -> {name}')
return
self.server_info.players[name] = {
'score': score,
'ping': ping
}
logger.debug(f'Added player: {name}')
def get_players_by_team(self):
"""Get players organized by team"""