Track roster connects and disconnects from the stats stream
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <[email protected]>
This commit is contained in:
+24
-2
@@ -65,8 +65,8 @@ class EventParser:
|
|||||||
'MATCH_STARTED': self._handle_match_started,
|
'MATCH_STARTED': self._handle_match_started,
|
||||||
'MATCH_REPORT': self._handle_match_report,
|
'MATCH_REPORT': self._handle_match_report,
|
||||||
'PLAYER_STATS': self._handle_player_stats,
|
'PLAYER_STATS': self._handle_player_stats,
|
||||||
'PLAYER_CONNECT': lambda d: None,
|
'PLAYER_CONNECT': self._handle_player_connect,
|
||||||
'PLAYER_DISCONNECT': lambda d: None,
|
'PLAYER_DISCONNECT': self._handle_player_disconnect,
|
||||||
'ROUND_OVER': self._handle_round_over,
|
'ROUND_OVER': self._handle_round_over,
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -92,6 +92,28 @@ class EventParser:
|
|||||||
logger.debug(f'Error parsing event: {e}')
|
logger.debug(f'Error parsing event: {e}')
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
def _handle_player_connect(self, data):
|
||||||
|
"""Track a connecting player so the roster is complete; connects to the
|
||||||
|
server land as spectators until they join a team. No feed line: the
|
||||||
|
RCON connect broadcast already displays one."""
|
||||||
|
name = data.get('NAME')
|
||||||
|
if not name:
|
||||||
|
return None
|
||||||
|
team = data.get('TEAM')
|
||||||
|
if team is None:
|
||||||
|
team = 'SPECTATOR'
|
||||||
|
self.game_state.player_tracker.update_team(name, team)
|
||||||
|
self.game_state.player_tracker.add_player(name)
|
||||||
|
return None
|
||||||
|
|
||||||
|
def _handle_player_disconnect(self, data):
|
||||||
|
"""Remove a disconnecting player from the roster. No feed line: the
|
||||||
|
RCON disconnect broadcast already displays one."""
|
||||||
|
name = data.get('NAME')
|
||||||
|
if name:
|
||||||
|
self.game_state.player_tracker.remove_player(name)
|
||||||
|
return None
|
||||||
|
|
||||||
def _handle_switchteam(self, data):
|
def _handle_switchteam(self, data):
|
||||||
"""Handle PLAYER_SWITCHTEAM event"""
|
"""Handle PLAYER_SWITCHTEAM event"""
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user