import { PlayerConnection } from '../player-connection'; import { broadcastTitle } from '../view/title-renderer'; import { GameServer } from '../game-server'; import { Message } from './messages'; export interface UpdateDisplayNameMessage extends Message { displayName: string; } export function handleUpdateDisplayName( server: GameServer, conn: PlayerConnection, message: UpdateDisplayNameMessage, ): void { const newDisplayName = message.displayName.trim(); if (!newDisplayName) { conn.sendMessage('error', 'Display name cannot be empty.'); return; } if (newDisplayName.length > 20) { conn.sendMessage( 'error', 'Display name cannot be longer than 20 characters.', ); return; } if (newDisplayName === conn.name) { return; // No change, do nothing } conn.name = newDisplayName; server.webSocketHandler.setPlayerName(conn.id, newDisplayName); broadcastTitle(server); }