This commit is contained in:
xbl
2025-12-29 08:41:07 +01:00
parent 18cf31073f
commit dbc4391be2
4 changed files with 3159 additions and 14 deletions

View File

@ -139,7 +139,6 @@ def parse_player_events(message, game_state, ui):
player_name = re.sub(r'\^\d+$', '', player_name) player_name = re.sub(r'\^\d+$', '', player_name)
logger.info(f'CONNECT: {repr(player_name)}') logger.info(f'CONNECT: {repr(player_name)}')
if game_state.server_info.is_team_mode():
game_state.player_tracker.update_team(player_name, 'SPECTATOR') game_state.player_tracker.update_team(player_name, 'SPECTATOR')
game_state.player_tracker.add_player(player_name) game_state.player_tracker.add_player(player_name)
ui.update_server_info(game_state) ui.update_server_info(game_state)

3136
raw.json Normal file

File diff suppressed because it is too large Load Diff

View File

@ -70,9 +70,6 @@ class PlayerTracker:
def update_team(self, name, team): def update_team(self, name, team):
"""Update player team. Team can be int or string""" """Update player team. Team can be int or string"""
if not self.server_info.is_team_mode():
return
# Convert numeric team to string # Convert numeric team to string
if isinstance(team, int): if isinstance(team, int):
team = TEAM_MAP.get(team, 'FREE') team = TEAM_MAP.get(team, 'FREE')
@ -161,7 +158,6 @@ class PlayerTracker:
self.player_teams.pop(old_clean, None) self.player_teams.pop(old_clean, None)
# Add new team entries with color codes preserved # Add new team entries with color codes preserved
if self.server_info.is_team_mode():
self.update_team(new_name, team) self.update_team(new_name, team)
logger.debug(f'Renamed player: {old_name} -> {new_name} (team: {team})') logger.debug(f'Renamed player: {old_name} -> {new_name} (team: {team})')

28
ui.py
View File

@ -354,13 +354,27 @@ class UIManager:
print_colored(self.info_window, line, 0) print_colored(self.info_window, line, 0)
else: else:
warmup_display = "^3Warmup: ^2YES^9" if server_info.warmup else "^3Warmup: ^1NO^9" warmup_display = "^3Warmup: ^2YES^9" if server_info.warmup else "^3Warmup: ^1NO^9"
print_colored(self.info_window, f"^0^3(FREE) {warmup_display}\n", 0) print_colored(self.info_window, f"^0^5(FREE) ^5(FREE) ^3(SPEC) {warmup_display}\n", 0)
free_players = teams['FREE'][:4] free_players = teams['FREE']
for player in free_players: spec_players = teams['SPECTATOR'][:4]
print_colored(self.info_window, f"^0{player}^9\n", 0) free_col1 = free_players[:4]
# Fill remaining lines free_col2 = free_players[4:8]
for i in range(4 - len(free_players)):
self.info_window.addstr("\n") for i in range(4):
col1 = free_col1[i] if i < len(free_col1) else ''
col2 = free_col2[i] if i < len(free_col2) else ''
spec = spec_players[i] if i < len(spec_players) else ''
from formatter import strip_color_codes
col1_clean = strip_color_codes(col1)
col2_clean = strip_color_codes(col2)
spec_clean = strip_color_codes(spec)
col1_pad = 24 - len(col1_clean)
col2_pad = 24 - len(col2_clean)
line = f"^0{col1}^9{' ' * col1_pad}^0{col2}^9{' ' * col2_pad}^0{spec}^9\n"
print_colored(self.info_window, line, 0)
# Blank lines to fill # Blank lines to fill
self.info_window.addstr("\n\n") self.info_window.addstr("\n\n")