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:
+10
-1
@@ -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',
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user