mirror of
https://github.com/rmoren97/mc-manager.git
synced 2026-03-28 17:26:47 -07:00
68 lines
1.4 KiB
TypeScript
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'
|
|
}
|