Eventsystem Changelog v44.56.155 DEV → v44.56.257 DEV
News erstellt von:
STEVEE
- Stand: 12.10.2026 21:57
# 🎮 20ESPORTS EVENTSYSTEM
## 🚀 Development Changelog · v44.56.155 DEV → v44.56.257 DEV
> **DEV-Update · Funktionsübersicht und technische Verbesserungen**
>
---
## ✨ Highlights auf einen Blick
- 🏆 **Turniere:** robustere Serverreservierung, Match-Passwörter und verbesserte Mapveto-Integration
- 🗺️ **Mapveto:** vereinheitlichte Darstellung für Turniere, Quickplay und Gather
- ⚡ **Quickplay & Gather:** klarere Ranked-/Unranked-Trennung und korrigierte Rating-Zuordnung
- 📡 **Live-System:** stabilere SSE-Reconnects, weniger unnötige Requests und schnellere Teilaktualisierungen
- 🛡️ **Sicherheit:** abgesicherte Zuschaueransichten, Teambeitrittsschutz und Profil-Privatsphäre
- 👤 **Profile & Teams:** Matchhistorie, Privatsphäre-Einstellungen und verbesserte Teamverwaltung
- 🖥️ **Admin Center:** übersichtlichere Tabellen, Serververwaltung und kompaktere Navigation
- 🗄️ **Datenbank:** Schema-Datei und Migrationswerkzeug für eine reproduzierbarere Einrichtung
---
## 📋 Versionsübersicht
| Bereich | Stand |
|---|---|
| Ausgangsversion | `v44.56.155 DEV` |
| Dokumentierter Zielstand | `v44.56.257 DEV` |
| Einordnung | Konsolidierter Changelog des Paketstands |
---
**Versionsbereich:** v44.56.155 DEV bis v44.56.257 DEV
## 🏆 Turniere und Matchverwaltung
- Lokale Turniermatches wurden bei der Serverreservierung robuster behandelt: Ein Gameserver wird erst reserviert, wenn beide Matchseiten bereit sind.
- Für Turniermatches werden Match-Passwörter erzeugt, gespeichert und passend zum Spielserver gesetzt; die Anzeige ist auf Teilnehmer und Administratoren beschränkt.
- Die Serverzuweisung wurde für zusätzliche bzw. abweichend benannte Spiele verbessert, darunter Counter-Strike 1.6.
- Die automatische Übernahme der Map aus dem Mapveto wurde für mehrere Engines ergänzt bzw. vereinheitlicht, darunter CS:S, CS2, CoD2X und CS 1.6.
- Mapwechsel werden anhand des Serverstatus überprüft. Wiederholte `changelevel`-Aufrufe werden begrenzt, und ein Race zwischen parallelen Live-Verbindungen beim Setzen von Matchdaten wurde entschärft.
- Manuell durch Administratoren hinzugefügte Turnierspieler ohne direkte `player_id`-Angabe werden bei der Elo-Zuordnung über ihre Turnieranmeldung aufgelöst.
- Die Anzeige des Mapvetos wurde auf der Turnier-Matchseite oberhalb des Matchchats platziert.
- Buchholz in der Swiss-Tabelle erhielt einen erklärenden Tooltip.
- Solo-Turniere verwenden passendere Bezeichnungen wie „Registrierte Spieler“ statt „Teams“.
## 🗺️ Vereinheitlichtes Mapveto
- Turnier-, Quickplay- und Community-Gather-Matches verwenden eine gemeinsame Mapveto-Darstellung und gemeinsame Styles.
- Das Mapveto unterstützt in Turnieren Ban, Pick und die Auswahl der CT-/T-Seite per AJAX.
- Fehler bei der Live-Synchronisierung eines noch leeren Turnier-Vetos wurden behoben.
- BO3- und BO5-Vetos erkennen Picks und Decider korrekt als abgeschlossene Auswahl.
- Nach Abschluss zeigt die Oberfläche gebannte, gepickte und gespielte Maps übersichtlicher an, einschließlich Map-Nummer, Startseite und Verlauf in tatsächlicher Reihenfolge.
- PHP-Warnungen durch fehlende Mapveto-Array-Schlüssel wurden behoben.
- Ein Admin-Aufruf des Turnier-Mapvetos scheitert nicht mehr an einer CSRF-Funktion, die zuvor nur im Admin-Panel verfügbar war.
## ⚔️ Quickplay, Gather und Wertung
- Quickplay-Suchen zeigen den Ranked-/Unranked-Status bereits in der Übersicht und in Live-Aktualisierungen.
- Ranked- und Unranked-Suchen werden getrennt gematcht.
- Unranked-Gather und -Quickplay laufen ohne Elo-Vergabe; auch ein Rating-Neuaufbau berücksichtigt diese Trennung. Rematches übernehmen den Wertungsmodus.
- Die `ranked`-Spalte der Warteschlange wird robuster angelegt bzw. geprüft, um Fehler durch ein fehlendes Datenbankschema zu vermeiden.
- Die Gather-Auswahl wählt nicht mehr unbeabsichtigt Gather #1 anhand der Nexpell-Seiten-ID vor; die Spielauswahl orientiert sich stattdessen am meistgespielten Spiel.
- Rankings zeigen standardmäßig das meistgespielte Spiel, statt zunächst leer zu bleiben.
- Quickplay wird in Rating-Statistiken nicht mehr fälschlich als Gather gezählt.
- Die Rating-Anzeige im Quickplay wurde korrigiert, damit pro Spiel der richtige Wert angezeigt wird und beim Spielwechsel aktualisiert.
- Der Rating-Rebuild erkennt Spiel-Keys wie `cod4x`, `cod2x` und `counter_strike_1_6` zusätzlich zu Anzeigenamen. Dadurch werden die betreffenden Matches nicht mehr übersprungen.
- Eine fehlende Spalte `pending_player_ids` in älteren Rebuild-State-Tabellen wird automatisch ergänzt, damit Rating-Korrekturen im Adminbereich funktionieren.
## 📡 Live-Aktualisierung und Serverlast
- Die Server-Sent-Event-Streams (SSE) wurden begrenzt: Verbindungen enden nach kurzer Laufzeit sauber und verbinden sich automatisch neu.
- Beim Wiederverbinden wird der aktuelle Zustand erneut ausgeliefert; nicht berechtigte Verbindungen warten länger bis zum nächsten Versuch, statt fortlaufend neue Requests zu erzeugen.
- Matchchat-Ereignisse werden in die jeweiligen Match-Streams integriert, wodurch weniger parallele Streams pro Seite erforderlich sind. Separate Chat-Endpunkte bleiben aus Kompatibilitätsgründen bestehen.
- Polling- und Stream-Intervalle wurden angepasst und mit zeitlichem Jitter versehen, um gleichzeitige Lastspitzen zu reduzieren.
- Streams in verdeckten Tabs werden getrennt und beim Zurückkehren neu aufgebaut.
- Unveränderte Gather-Snapshots werden seltener übertragen.
- Neue Endpunkte und Hilfsfunktionen (`live-version.php`, `live-lib.php`) ermöglichen leichte Versionsprüfungen mit ETag/304-Antworten.
- Für ausgewählte Seiten und Zuschaueransichten wird bei Änderungen nur der betroffene Seitenbereich nachgeladen; inaktive Tabs pausieren das Polling, Fehler führen zu Backoff.
- Formulare mit aktivem Fokus werden bei Live-Aktualisierungen nicht überschrieben.
- Zuschauer können Gather-/Quickplay-Matches sowie Turnier-Matchstände live verfolgen, ohne dafür Teilnehmerrechte zu benötigen.
## 🛡️ Zuschauerzugriff und Sicherheit
- Gather-/Quickplay-Matches sind auch für Gäste und nicht beteiligte eingeloggte Nutzer lesbar.
- Die Zuschaueransicht blendet Serveradresse und Passwort, Matchchat sowie Ready-, Ergebnis- und Rematch-Aktionen aus.
- Schreibende POST-Aktionen werden serverseitig abgewiesen, wenn der Nutzer nicht dazu berechtigt ist.
- Live-Updates für Zuschauer liefern keine Serverdaten und lösen keine schreibenden Nebenwirkungen aus.
- Beim Teambeitritt begrenzen Sicherheitsregeln Passwortversuche, verlangen eine Mindestpasswortlänge und beschränken die Teamgröße.
- Fehlerseiten werden im Seitendesign ausgegeben, statt lediglich einen ungestalteten Text auszugeben.
## 👤 Teams und Spielerprofile
- Teamnamen werden auf Eindeutigkeit geprüft; die Teamerstellung liefert eine Erfolgsmeldung.
- Team-Captains können übergeben und Teams unter definierten Voraussetzungen aufgelöst werden. Eine Namensbestätigung schützt vor versehentlichem Auflösen.
- Ein Team-Dashboard ohne gültige Team-ID leitet zur Übersicht „Meine Teams“.
- Die neue Profil-Privatsphäre erlaubt feldweise Sichtbarkeit für Discord, Plattform, Land und Gameaccounts: öffentlich, nur für angemeldete Nutzer oder nur für den Profilinhaber.
- Die Sichtbarkeitsregeln werden im Spielerprofil, in Teamtabellen und in Matchansichten berücksichtigt.
- „Letzte Matches“ zeigt die jüngsten Matches pro Spiel mit Links, Matchtyp, Matchnummer, Gegner, Datum und Ergebnis.
- Gather-/Quickplay-Historie wird aus der Rating-Historie ergänzt; Spiele ohne Matches sind unter „Weitere Spiele“ eingeklappt.
- Die Turnier-Matchhistorie wird ebenfalls begrenzt, damit das Profil übersichtlich bleibt.
- Kollationsprobleme bei Matchabfragen wurden entschärft; ein Fehler bei der Matchhistorie soll nicht mehr die gesamte Profilseite abbrechen.
## 💬 Gather-Streitfälle und Matchoberfläche
- Administratoren können Gather-Matches bei Streitfällen einsehen und auflösen.
- Streitfall-Aktionen verwenden verständlichere Namen und klarere Optionen zur Übernahme eines Ergebnisses.
- In der Matchansicht wird das eigene Team hervorgehoben; Ergebnisfelder zeigen Teamnamen.
- Vor dem Melden eines Ergebnisses wird eine Bestätigung angefordert.
- Das Mapveto bleibt nach Matchende sichtbar.
## 🔔 Benachrichtigungen und Navigation
- Der Link „Alle gelesen“ wurde korrigiert.
- Gather-Benachrichtigungen verwenden aussagekräftigere Labels; abgelaufene Einträge werden optisch abgeschwächt.
- Der doppelte Hinweis „Noch keine Turniere geplant“ auf der Startseite wurde entfernt.
## 🖥️ Admin Center und Spiele-/Serververwaltung
- Die Admin-Navigation wurde kompakter gestaltet; KPI-Kacheln sind auf das Dashboard konzentriert und das Action Center steht weiter oben.
- Die Aktion „Event abschließen“ wurde aus dem prominenten Bereich verschoben und bei abgeschlossenen Turnieren optisch zurückgenommen.
- Matchtabellen bleiben lesbar und erlauben die Bearbeitung einzelner Zeilen; Tabellen scrollen bei Bedarf horizontal, statt Spalten abzuschneiden.
- Offene Streitfälle werden gezielt hervorgehoben.
- Gather-/Quickplay-Matches werden im Adminbereich in einem einheitlichen Listenstil mit verlinktem Match, Teilnehmern, Ergebnis, Sieger, Spiel und Zeit angezeigt und zeilenweise bearbeitbar gemacht.
- Gameserver-Aktionen und Synchronisierungsstatus sind pro Server einklappbar dargestellt.
- Spiele und Modi können im Setup eingeklappt werden, ohne Formularfelder zu entfernen.
- Die Setup-Speicherleiste bleibt sichtbar; Server-KPIs und Tabs wurden verständlicher beschriftet.
- Die Spielnamen-Fallbacks für `cod`, `cod4x` und `cod2x` wurden korrigiert bzw. ergänzt, damit diese als eigenständige Spiele erscheinen.
- Die natürliche Sortierung von Servernamen berücksichtigt Zahlen korrekt (z. B. Server 2 vor Server 10).
- Der Legacy-Challonge-Block ist im Admin-Setup eingeklappt; die Spielauswahl nutzt `games_config`.
- Die Teilnehmerzahl kann über eine Auswahl gesetzt werden.
## 🗄️ Datenbank und Migration
- Das Schema wurde um die `ranked`-Warteschlangenspalte erweitert und die Erkennung vorhandener Spalten robuster gemacht.
- Ein vollständiges `schema/schema.sql` für die 31 lazy erzeugten Tabellen wurde ergänzt.
- `migrate.php` ermöglicht die einmalige Schema-Anlage per CLI oder Admin-Aufruf.
- `db.php` ergänzt `DB_*`-Konstanten nur dann, wenn Nexpell diese nicht bereits bereitstellt.
## 🧩 Neue bzw. ergänzte Dateien
- `sse-lib.php` – gemeinsame SSE-Hilfsfunktionen und sauberes Reconnect-Verhalten
- `live-version.php`, `live-lib.php` – leichtgewichtige Versionsprüfung und Live-Polling
- `error-page.php` – gestaltete Fehlerseiten
- `team-security.php` – Begrenzung von Teambeitrittsversuchen und Teamregeln
- `player-privacy.php` – Profil-Privatsphäre
- `migrate.php`, `schema/schema.sql`, `schema/.htaccess` – Schema- und Migrationsunterstützung
- `map-veto.js`, `map-veto.css` sowie gemeinsame Renderer-Funktionen – vereinheitlichte Mapveto-Oberfläche
(3 Aufrufe)