Show fresh player capacity on Fleet cards
This commit is contained in:
@@ -21,6 +21,7 @@
|
||||
import { fleet, fleetServers, fleetError, fleetIntegrations, refreshFleet } from '$ui/stores/fleet.js';
|
||||
import { telemetryByServer, uiNow } from '$ui/stores/servers.js';
|
||||
import { currentRound, fleetIdentity, freshServer, matchesFleet } from '$lib/fleet-overview.js';
|
||||
import { currentCapacity } from '$lib/server-capacity.js';
|
||||
import type { FleetServer, FleetFilter, FleetSort } from '$lib/fleet-overview.js';
|
||||
import type { ZombieGame } from '$lib/map-aliases.js';
|
||||
import { elapsedSince } from '$ui/duration.js';
|
||||
@@ -248,6 +249,7 @@
|
||||
{#each group.servers as server (server.name)}
|
||||
<div class="server-tile">
|
||||
<ServerCard name={server.name} telemetry={server.telemetry} players={server.last_players} map={server.last_map ?? server.map}
|
||||
capacity={currentCapacity(server, observationNow())}
|
||||
gametype={server.last_gametype} roster={server.roster} health={server.health}
|
||||
lastSeenAt={server.last_seen_at} lastError={server.last_error} held={server.held}
|
||||
activeSince={server.active_since} inactiveSince={server.inactive_since}
|
||||
|
||||
@@ -3,6 +3,7 @@ import { listServers } from '$lib/server/fleet/servers.js';
|
||||
import { statusEntry } from '$lib/server/pipeline/worker.js';
|
||||
import { subscribe, type PipelineEvent } from '$lib/server/pipeline/bus.js';
|
||||
import { listTelemetry } from '$lib/server/fleet/telemetry.js';
|
||||
import { playerCapacityReader } from '$lib/server/fleet/player-capacity.js';
|
||||
|
||||
const encoder = new TextEncoder();
|
||||
const HEARTBEAT_MS = 20_000;
|
||||
@@ -27,7 +28,8 @@ export async function GET() {
|
||||
}
|
||||
});
|
||||
const observation = observationReader();
|
||||
const observe = (server: ReturnType<typeof listServers>[number]) => statusEntry(server, observation);
|
||||
const capacity = playerCapacityReader();
|
||||
const observe = (server: ReturnType<typeof listServers>[number]) => statusEntry(server, observation, capacity(server.name));
|
||||
controller.enqueue(encoder.encode(': hello\n\n'));
|
||||
controller.enqueue(encoder.encode(`event: server-status\ndata: ${JSON.stringify({ entries: listServers().map(server => observe(server)), snapshot: true, serverNow: Date.now() })}\n\n`));
|
||||
controller.enqueue(encoder.encode(`event: server-telemetry\ndata: ${JSON.stringify({ entries: listTelemetry(), snapshot: true, serverNow: Date.now() })}\n\n`));
|
||||
|
||||
Reference in New Issue
Block a user