Installation & Einrichtung

Installation & Einrichtung

Vollständige Schritt-für-Schritt-Anleitung zur Installation des Game Mods Installer Plugins und zur Aktivierung für deine Gameserver.


Voraussetzungen

  • Pelican Panel Version 1.0.0+ installiert und aktiv
  • PHP 8.1, 8.2 oder 8.3 auf dem Panel-Server
  • Beschreibbare Verzeichnisse: storage/ und bootstrap/cache/ — Berechtigungen 0755, Eigentümer: Webserver-Benutzer (z.B. www-data)
  • Ein vom Panel verwalteter Gameserver
  • Datenbankbenutzer mit CREATE TABLE-Berechtigung (das Plugin erstellt bei der ersten Nutzung eine Migration)

Schritt 1: Plugin installieren

  1. Lade die neueste Version des game-mods-Plugins herunter
  2. Platziere es im plugins/-Verzeichnis deines Pelican Panels:
    /var/www/pelican/plugins/game-mods/
    
  3. Überprüfe die Verzeichnisstruktur:
    plugins/game-mods/
    ├── src/
    ├── config/
    ├── resources/
    ├── database/
    └── plugin.json
    
  4. Leere den Anwendungscache:
    php artisan cache:clear
    php artisan config:clear
    php artisan view:clear
    
  5. Überprüfe, ob das Plugin unter Admin Panel → Plugins als „Game Mods Installer" erscheint

Das Plugin erstellt automatisch die Datenbanktabelle server_installed_mods beim ersten Laden.


Schritt 2: Für einen Server aktivieren

Das Plugin verwendet Feature-Flags auf Eggs, um festzulegen, welche Server den Mod-Browser anzeigen.

  1. Gehe zu Admin Panel → Eggs
  2. Bearbeite das Egg deines Gameservers (z.B. „Minecraft Java", „Hytale Server")
  3. Füge mods im Feld Features hinzu:
    ["mods"]
    
    Falls das Egg bereits Features hat:
    ["steam_disk_space", "mods"]
    
  4. Klicke Speichern

Wichtig: Das Feature-Flag muss exakt mods (Kleinschreibung) sein. Mods, MODS oder mod funktionieren nicht.


Schritt 3: Spielerkennung

Das Plugin erkennt dein Spiel automatisch (Prüfungsreihenfolge):

  1. Egg-Tags — Schlüsselwörter wie minecraft, hytale, bedrock
  2. Egg-Name — Durchsucht den Egg-Namen
  3. Nest-Name — Prüft den übergeordneten Nest-Namen

Für Hytale-Server mit PATCHLINE="release": Alpha-, Beta-, RC- und Dev-Versionen werden automatisch herausgefiltert.

Minecraft-Versionserkennung (11 Methoden)

Priorität Methode Was geprüft wird
1 variables.txt Panel-gespeicherte Servervariablen
2 server.properties Versionsbezogene Eigenschaften
3 version.json Mojangs Versionsmanifest
4 Fabric-JAR Fabric-Server-JAR-Dateiname
5 Forge-JAR Forge-Server-JAR-Dateiname
6 Forge-Bibliotheken Bibliotheksverzeichnisstruktur
7 Rekursive Suche Durchsucht 7 Verzeichnisse (Tiefe 1-6). Übersprungen: node_modules, cache, temp, logs, crash-reports, World-Verzeichnisse, mods, plugins. Max. Pfadlänge: 250 Zeichen
8 server.jar Generische Server-JAR-Analyse
9 Paper-JAR PaperMC-Dateiname
10 Spigot-JAR Spigot-Dateiname
11 Purpur-JAR Purpur-Dateiname

Validierung: Muss mit 1. beginnen, Minor-Version 0-50. Normalisiert auf major.minor. 5 Minuten gecacht.


Schritt 4: Erster Start

  1. Navigiere zu deinem Server → klicke auf Mod Browser in der Seitenleiste
  2. Das Plugin scannt Spiel und Version (atomarer Lock, 10s TTL gegen gleichzeitige Scans)
  3. Bei Minecraft-Erkennung: Benachrichtigung „Minecraft-Version erkannt: 1.21.4"
  4. Plattform-Tabs erscheinen: Modrinth, CurseForge, Modtale
  5. Vorhandene Mods in /mods/ werden als „Manuell / Upload" registriert
  6. Bereit zum Suchen und Installieren!

Bei Fehlschlag: „Minecraft-Version konnte nicht erkannt werden". Benutze das manuelle Dropdown.


Überprüfungscheckliste

Prüfung Erwartet Bei Problemen
Plugin in Admin → Plugins „Game Mods Installer" gelistet Falscher Pfad oder Cache nicht geleert
„Mod Browser" in Seitenleiste Sichtbar für Server mit mods-Feature Feature-Flag fehlt
Plattform-Tabs Modrinth, CurseForge, Modtale Netzwerk- oder JS-Fehler
Versionserkennung „Erkannt: X.X.X" Server nie gestartet oder kein JAR
server_installed_mods-Tabelle In DB vorhanden php artisan migrate ausführen

Fehlerbehebung

Plugin nicht im Admin Panel sichtbar

  • Stelle sicher, der Pfad ist exakt plugins/game-mods/ (nicht plugins/GameMods/)
  • php artisan cache:clear ausführen und Seite neu laden
  • Prüfe, ob plugin.json im Plugin-Root existiert
  • Prüfe storage/logs/laravel.log auf „Class not found"-Fehler
  • Dateiberechtigungen prüfen

„Mod Browser" nicht in der Server-Seitenleiste

  • Egg muss "mods" in Features haben — Kleinbuchstaben, exakt
  • Egg nach Bearbeitung speichern
  • Config-Cache leeren: php artisan config:clear
  • Das Plugin ruft abort(403) auf, wenn das Feature fehlt

„Minecraft-Version konnte nicht erkannt werden"

  • Starte den Server einmal, damit JAR + version.json generiert werden
  • Benenne Custom-JARs erkennbar um (server.jar, paper-1.21.4.jar)
  • JAR-Pfade >250 Zeichen werden übersprungen
  • Manuelles Dropdown als Workaround nutzen

Datenbank-Migrationsfehler

  • CREATE TABLE gewähren: GRANT CREATE ON deine_datenbank.* TO 'benutzer'@'localhost';
  • Manuell migrieren: php artisan migrate
  • storage/logs/laravel.log prüfen

Berechtigungsfehler

  • chmod -R 755 storage/ bootstrap/cache/
  • chown -R www-data:www-data storage/ bootstrap/cache/
  • SafeCacheService erstellt Cache-Verzeichnisse mit 0755, aber das übergeordnete Verzeichnis muss beschreibbar sein