web-next: estado del reino como Online/Offline (puerto 8085) en vez del conteo

En el recuadro de estado de la home, la fila del reino mostraba el conteo de
personajes online (0). Ahora muestra Online/Offline según un TCP check al
worldserver (puerto 8085), con color verde/rojo como la fila Login.
lib/home.ts añade world_status (checkServerStatus address:8085).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-13 11:16:39 +00:00
parent d6acba4ad5
commit a93527cef7
2 changed files with 13 additions and 3 deletions
+10 -1
View File
@@ -16,8 +16,12 @@ export interface ServerStatus {
expansion: string
online_characters: number
status: 'Online' | 'Offline'
world_status: 'Online' | 'Offline'
}
// Puerto del worldserver (AzerothCore) para el estado del reino.
const WORLD_PORT = 8085
/** Etiqueta de expansión por build del cliente (incluye WoW Classic; Nova WoW = 3.4.3 = 54261). */
export function expansionFromGamebuild(gamebuild: number): string {
if (gamebuild === 12340) return 'WotLK'
@@ -75,12 +79,17 @@ export async function getServerStatus(): Promise<ServerStatus | null> {
)
const s = rows[0]
if (!s) return null
const [online, up] = await Promise.all([getOnlineCount(), checkServerStatus(s.address, s.port)])
const [online, up, worldUp] = await Promise.all([
getOnlineCount(),
checkServerStatus(s.address, s.port),
checkServerStatus(s.address, WORLD_PORT),
])
return {
server_name: s.name,
address: s.address,
expansion: expansionFromGamebuild(s.gamebuild),
online_characters: online,
status: up ? 'Online' : 'Offline',
world_status: worldUp ? 'Online' : 'Offline',
}
}