Refactor player count calculations to exclude bot counts for accurate statistics
All checks were successful
CI - Build and Push / Build and Push Docker Image (push) Successful in 11s
All checks were successful
CI - Build and Push / Build and Push Docker Image (push) Successful in 11s
This commit is contained in:
@@ -42,14 +42,14 @@ function App() {
|
||||
|
||||
// Calculate server statistics
|
||||
const onlineServers = servers.filter(s => s.status === 'online')
|
||||
const totalPlayers = onlineServers.reduce((sum, s) => sum + (s.playerCount - s.botCount), 0)
|
||||
const totalPlayers = onlineServers.reduce((sum, s) => sum + s.playerCount, 0)
|
||||
const totalSlots = onlineServers.reduce((sum, s) => sum + s.maxPlayers, 0)
|
||||
|
||||
// Get most popular server (highest player count)
|
||||
const mostPopularServer = onlineServers.length > 0
|
||||
? onlineServers.reduce((prev, current) => {
|
||||
const prevPlayers = prev.playerCount - prev.botCount
|
||||
const currentPlayers = current.playerCount - current.botCount
|
||||
const prevPlayers = prev.playerCount
|
||||
const currentPlayers = current.playerCount
|
||||
return currentPlayers > prevPlayers ? current : prev
|
||||
})
|
||||
: null
|
||||
|
||||
@@ -8,7 +8,7 @@ interface ServerListResponse {
|
||||
serverPort: number
|
||||
category: string
|
||||
mapName: string
|
||||
playerCount: number
|
||||
humanCount: number
|
||||
botCount: number
|
||||
maxPlayers?: number
|
||||
}
|
||||
@@ -19,7 +19,7 @@ export interface ServerData {
|
||||
port: number
|
||||
category: string
|
||||
mapName: string
|
||||
playerCount: number
|
||||
playerCount: number // Human players only (excluding bots)
|
||||
botCount: number
|
||||
maxPlayers: number
|
||||
status: 'online' | 'offline' | 'loading'
|
||||
@@ -62,7 +62,7 @@ export function ServerProvider({ children }: { children: ReactNode }) {
|
||||
port: server.serverPort,
|
||||
category: server.category,
|
||||
mapName: server.mapName,
|
||||
playerCount: server.playerCount,
|
||||
playerCount: server.humanCount,
|
||||
botCount: server.botCount,
|
||||
maxPlayers: server.maxPlayers || 0,
|
||||
status: 'online' as const
|
||||
|
||||
@@ -264,7 +264,7 @@ function Servers() {
|
||||
fontWeight: 'bold',
|
||||
color: 'var(--text-primary)'
|
||||
}}>
|
||||
{server.status === 'online' ? `${server.playerCount - server.botCount}/${server.maxPlayers}` : 'Loading...'}
|
||||
{server.status === 'online' ? `${server.playerCount}/${server.maxPlayers}` : 'Loading...'}
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
@@ -380,7 +380,7 @@ function Servers() {
|
||||
color: 'var(--accent-primary)',
|
||||
marginBottom: '0.5rem'
|
||||
}}>
|
||||
{servers.reduce((sum, s) => sum + (s.status === 'online' ? (s.playerCount - s.botCount) : 0), 0)}
|
||||
{servers.reduce((sum, s) => sum + (s.status === 'online' ? s.playerCount : 0), 0)}
|
||||
</div>
|
||||
<div style={{
|
||||
color: 'var(--text-secondary)',
|
||||
|
||||
Reference in New Issue
Block a user