settings->getOrDefault('emulator_service_name', 'arcturus'); $result = Process::timeout(30)->run("systemctl start {$serviceName} 2>&1"); return [ 'success' => $result->successful(), 'message' => $result->successful() ? 'Emulator gestart!' : ($result->output() ?: 'Kon emulator niet starten'), ]; } public function stop(): array { $serviceName = $this->settings->getOrDefault('emulator_service_name', 'arcturus'); $result = Process::timeout(30)->run("systemctl stop {$serviceName} 2>&1"); return [ 'success' => $result->successful(), 'message' => $result->successful() ? 'Emulator gestopt!' : ($result->output() ?: 'Kon emulator niet stoppen'), ]; } public function restart(): array { $serviceName = $this->settings->getOrDefault('emulator_service_name', 'arcturus'); $result = Process::timeout(60)->run("systemctl restart {$serviceName} 2>&1"); return [ 'success' => $result->successful(), 'message' => $result->successful() ? 'Emulator herstart!' : ($result->output() ?: 'Kon emulator niet herstarten'), ]; } public function sendAlert(string $message): array { if (empty($message)) { return ['success' => false, 'message' => 'Bericht mag niet leeg zijn']; } app(RconService::class)->sendCommand('alert', ['message' => $message]); return ['success' => true, 'message' => 'Alert verstuurd naar alle gebruikers!']; } public function build(): array { return $this->updateService->buildFromSource(); } public function update(): array { return $this->updateService->updateEmulator(); } public function runSqlUpdates(): array { return $this->updateService->runSqlUpdates(); } public function getBackups(): array { return $this->updateService->getBackupList(); } public function restoreBackup(string $backupName): array { return $this->updateService->restoreBackup($backupName); } }