mc-manager/src/types/server.ts
2026-02-13 15:16:54 -08:00

68 lines
1.4 KiB
TypeScript

export type ServerType = 'vanilla' | 'bukkit' | 'forge' | 'fabric'
export type ServerStatus = 'online' | 'offline' | 'starting' | 'stopping' | 'crashed'
export interface ServerMemory {
min: number // MB
max: number // MB
}
export interface Server {
_id: string
name: string
type: ServerType
version: string
dockerImage: string
containerId: string | null
containerName: string
port: number
rconPort: number | null
status: ServerStatus
maxPlayers: number
memory: ServerMemory
jvmArgs: string[]
autoStart: boolean
autoRestart: boolean
backupSchedule: string | null
backupRetention: number
admins: string[]
createdBy: string
createdAt: string
updatedAt: string
}
export interface ServerFormData {
name: string
type: ServerType
version: string
dockerImage?: string
port: number
rconPort?: number
maxPlayers: number
memory: ServerMemory
jvmArgs?: string[]
autoStart?: boolean
autoRestart?: boolean
backupSchedule?: string | null
backupRetention?: number
}
export interface OnlinePlayer {
name: string
uuid: string
}
/**
* Returns true if the server type supports plugin management (bukkit-based).
*/
export function supportsPlugins(type: ServerType): boolean {
return type === 'bukkit'
}
/**
* Returns true if the server type supports mod management (forge/fabric).
*/
export function supportsMods(type: ServerType): boolean {
return type === 'forge' || type === 'fabric'
}