feat: overhaul server automation, files editor, and CS2 setup workflows

This commit is contained in:
2026-02-26 21:01:00 +00:00
parent 44c439e2f9
commit 2a3ad5e78f
40 changed files with 4675 additions and 468 deletions
+64
View File
@@ -10,6 +10,68 @@ export type PluginSource = 'spiget' | 'manual';
export type ConfigParser = 'properties' | 'json' | 'yaml' | 'keyvalue';
export type ServerAutomationEvent =
| 'server.created'
| 'server.install.completed'
| 'server.power.started'
| 'server.power.stopped';
export type ServerAutomationActionType =
| 'github_release_extract'
| 'http_directory_extract'
| 'write_file'
| 'send_command';
export interface ServerAutomationGitHubReleaseExtractAction {
id: string;
type: 'github_release_extract';
owner: string;
repo: string;
assetNamePatterns: string[];
destination?: string;
stripComponents?: number;
maxBytes?: number;
}
export interface ServerAutomationWriteFileAction {
id: string;
type: 'write_file';
path: string;
data: string;
encoding?: 'utf8' | 'base64';
}
export interface ServerAutomationHttpDirectoryExtractAction {
id: string;
type: 'http_directory_extract';
indexUrl: string;
assetNamePattern: string;
destination?: string;
stripComponents?: number;
maxBytes?: number;
}
export interface ServerAutomationSendCommandAction {
id: string;
type: 'send_command';
command: string;
}
export type ServerAutomationAction =
| ServerAutomationGitHubReleaseExtractAction
| ServerAutomationHttpDirectoryExtractAction
| ServerAutomationWriteFileAction
| ServerAutomationSendCommandAction;
export interface GameAutomationWorkflow {
id: string;
event: ServerAutomationEvent;
enabled?: boolean;
runOncePerServer?: boolean;
continueOnError?: boolean;
actions: ServerAutomationAction[];
}
export interface GameConfigFile {
path: string;
parser: ConfigParser;
@@ -23,6 +85,8 @@ export interface GameEnvVar {
required: boolean;
}
export type GameAutomationRule = GameAutomationWorkflow;
export interface ConfigEntry {
key: string;
value: string;