diff --git a/services/modpack-version-checker/blueprint-extension/app/Console/Commands/CheckModpackUpdates.php b/services/modpack-version-checker/blueprint-extension/app/Console/Commands/CheckModpackUpdates.php index c7848b1..032d377 100644 --- a/services/modpack-version-checker/blueprint-extension/app/Console/Commands/CheckModpackUpdates.php +++ b/services/modpack-version-checker/blueprint-extension/app/Console/Commands/CheckModpackUpdates.php @@ -69,13 +69,18 @@ class CheckModpackUpdates extends Command } // Step 1: modpack_installations table (fastest, most reliable) - $installation = DB::table('modpack_installations') - ->where('server_id', $server->id) - ->first(); + // This is a Pterodactyl table — may not exist on all panels + try { + $installation = DB::table('modpack_installations') + ->where('server_id', $server->id) + ->first(); - if ($installation && !empty($installation->provider) && !empty($installation->modpack_id)) { - $this->checkVersion($server, $installation->provider, (string) $installation->modpack_id, 'installer', null); - return; + if ($installation && !empty($installation->provider) && !empty($installation->modpack_id)) { + $this->checkVersion($server, $installation->provider, (string) $installation->modpack_id, 'installer', null); + return; + } + } catch (\Exception $e) { + // Table doesn't exist — skip this detection method } // Step 2: Egg variables diff --git a/services/modpack-version-checker/blueprint-extension/app/Http/Controllers/ModpackAPIController.php b/services/modpack-version-checker/blueprint-extension/app/Http/Controllers/ModpackAPIController.php index 33dca20..b2a07de 100644 --- a/services/modpack-version-checker/blueprint-extension/app/Http/Controllers/ModpackAPIController.php +++ b/services/modpack-version-checker/blueprint-extension/app/Http/Controllers/ModpackAPIController.php @@ -92,14 +92,18 @@ class ModpackAPIController extends Controller }; } - // 2. Check modpack_installations table + // 2. Check modpack_installations table (Pterodactyl — may not exist) if (empty($platform) || empty($modpackId)) { - $installation = DB::table('modpack_installations') - ->where('server_id', $server->id) - ->first(); - if ($installation) { - $platform = $platform ?: ($installation->provider ?? null); - $modpackId = $modpackId ?: (string) ($installation->modpack_id ?? ''); + try { + $installation = DB::table('modpack_installations') + ->where('server_id', $server->id) + ->first(); + if ($installation) { + $platform = $platform ?: ($installation->provider ?? null); + $modpackId = $modpackId ?: (string) ($installation->modpack_id ?? ''); + } + } catch (\Exception $e) { + // Table doesn't exist on this panel — skip } } diff --git a/services/modpack-version-checker/blueprint-extension/database/migrations/2026_04_13_000001_create_modpack_installations_table.php b/services/modpack-version-checker/blueprint-extension/database/migrations/2026_04_13_000001_create_modpack_installations_table.php new file mode 100644 index 0000000..35c7422 --- /dev/null +++ b/services/modpack-version-checker/blueprint-extension/database/migrations/2026_04_13_000001_create_modpack_installations_table.php @@ -0,0 +1,31 @@ +unsignedBigInteger('server_id')->primary(); + $table->string('provider', 191); + $table->string('modpack_id', 191); + $table->tinyInteger('finalized')->default(0); + }); + } + } + + public function down(): void + { + // Don't drop — this may be a Pterodactyl-owned table + } +};