LoL Comp Generator
Der LoL Comp Generator erstellt auf Knopfdruck zufällige Team-Kompositionen für League of Legends aus einer verwaltbaren Champion-Datenbank – inklusive Speichern, Teilen und einem zusätzlichen Challenge-Würfel-Modus.
Allgemein
Champions, Sets & Presets
Die Champion-Liste wird im Admin-Dashboard gepflegt. Champions werden zu Sets gruppiert (benannte Champion-Pools je Rolle), mehrere Sets wiederum zu Presets zusammengefasst – ein Preset bestimmt also, aus welchen Sets pro Rolle beim Generieren gezogen wird.
Generieren, Speichern, Teilen
Jede generierte Komposition erhält einen eindeutigen Hash und lässt sich als Link teilen – der Aufruf mit ?lol_session=HASH öffnet direkt die Detailansicht dieser Session, inklusive optionalem Ergebnis, Screenshot, Tags und Notizen.
Challenges
Über einen Umschalter im Generator lässt sich zusätzlich ein Challenge-Modus aktivieren: Aus konfigurierten Kategorien wird per Würfel-Button eine zufällige Challenge gezogen (Name, Beschreibung, optional beteiligte Champions). Ergebnisse lassen sich inklusive Screenshot direkt per Discord-Webhook posten.
Statistiken & Verlauf
Eine chronologische Verlaufsliste sowie Statistiken (Win-Rates, Top-Champions, Leaderboard, Hall of Shame) runden das Modul ab.
Shortcodes
Shortcode Beschreibung weinhold_lol_comp_generator Der Hauptgenerator (3-Schritt-Flow) mit integriertem Challenge-Modus. Mit ?lol_session=HASH direkt zur Session-Detailansicht weinhold_lol_comp_history Chronologische Liste aller gespeicherten Sessions mit Tag-Filter weinhold_lol_comp_stats Statistiken: Win-Rates, Top-Champions, Leaderboard, Hall of Shame
Dateien
Datei Inhalt modules/lol_comp_generator.php Lade-Stub: Init, Audit-Log- und Discord-Integration, alle AJAX-Registrierungen, Admin- und Cleanup-Einstiegspunkte modules/lol_comp_generator/db.php Datenbank-Installation (10 Tabellen) und alle Lese-/Schreibfunktionen modules/lol_comp_generator/admin.php Admin-Oberfläche: Champions, Sets, Presets, Sessions verwalten modules/lol_comp_generator/frontend.php Frontend-Shortcodes: Generator, Challenges, Verlauf, Statistiken
Für Entwickler
Datenbank (Auswahl)
Tabelle Inhalt weinhold_lol_champions Champion-Stammdaten weinhold_lol_sets,weinhold_lol_set_champions Sets und ihre Champion-Zuordnung weinhold_lol_presets,weinhold_lol_preset_sets Presets und ihre Set-Zuordnung weinhold_lol_sessions Generierte/gespeicherte Kompositionen (hash, preset_id, mode, result, screenshot_path, tags, notes) weinhold_lol_session_players Pro Session: Spieler, Rolle, verwendetes Set, gezogener Champion weinhold_lol_challenge_categories,weinhold_lol_challenges,weinhold_lol_challenge_champions Challenge-Oberkategorien, einzelne Challenges und ihre Champion-Zuordnung Berechtigungen
weinhold_lol_comp_generator_current_user_can_view()/_can_edit() setzen zusätzlich zur Modul-Berechtigung immer einen eingeloggten Nutzer voraus – anders als bei rein view-basierten Modulen ist hier auch das reine Ansehen nicht für Gäste vorgesehen.
Discord-Integration
Zwei getrennte Discord-Integrationen über den Filter weinhold_discord_module_integrations: lol_comp_generator (neue gespeicherte Session) und lol_comp_generator_challenge (manuell per Button gepostetes Challenge-Ergebnis). Der Challenge-Discord-Versand läuft dabei NICHT über die zentrale weinhold_discord_fire_module_event()-Funktion wie bei anderen Modulen, sondern baut den Webhook-Request inkl. optionalem Bild-Multipart-Upload (Screenshot als Anhang) direkt selbst zusammen.
AJAX-Endpunkte
Über 20 registrierte wp_ajax_*-Actions, grob in vier Gruppen: Admin-Verwaltung (Champions/Sets/Presets speichern, löschen, synchronisieren), Frontend-Generator (Daten laden, Session speichern, Ergebnis setzen, Screenshot hochladen/ausliefern, Tags/Notizen, Replay), Challenge-Verwaltung (Kategorien und Challenges speichern/löschen, Discord-Versand) sowie ein öffentlicher (nopriv) Endpunkt für Statistiken.
Sessions werden über einen eindeutigen hash (nicht die numerische ID) referenziert – verhindert das Erraten fortlaufender Session-IDs beim Teilen von Links. Der Challenge-Discord-Versand baut den Multipart-Request für Bild-Uploads manuell zusammen (eigener Boundary-String), da WordPress‘ wp_remote_post() keine native Unterstützung für multipart/form-data mit Dateianhang bietet.Besonderheiten
Statistik-Endpunkt (get_stats) und Screenshot-Auslieferung (serve_screenshot) sind bewusst auch für nicht eingeloggte Besucher freigegeben (wp_ajax_nopriv_*), obwohl der Rest des Moduls Login voraussetzt – Statistiken und geteilte Screenshots sollen auch ohne Konto einsehbar sein.
Versionshistorie
Version Datum Änderung 1.0.0 22.09.2026 Einführung der Versionierung.