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' }