Changelog

Alle Updates für die Website und den Server-Mod, das Neueste zuerst

Hier findest du die komplette Historie der CloudRidge-Website und des Server-Mods, das Neueste zuerst. So kannst du nachschauen, wann ein Feature dazugekommen ist oder wann ein Fehler behoben wurde.

Nach Version Zurücksetzen

Gefiltert: 65 von 127

v1.9.86 Website 2026-10-31

换页不再白屏一下、注册页的「手机号注册」能点了

  • 点站内链接时,旧页面不再先淡成一片白底 —— 之前新页面要等网络往返才到,中间那一下就是白屏。现在旧页面保持原样,换页后新页面照旧淡入、内容依次上滑。
  • 注册页的「手机号注册」原来点了像是没反应:它只是把单选按钮选中,页面上的提示文案与「发验证码」的去向都没变。现在切一下就整页重渲染,提示、去向、表单都跟着变。
  • 如果站点没有配置短信服务,注册页不会再把你留在「手机号注册」这个空壳上,而是自动退回邮箱注册。
v1.9.85 Website 2026-10-31

Nur noch ein „Anmelden“ in der Kopfzeile, 3D-Hero richtig dimensioniert

  • Der QQ-Einstieg ist aus der Kopfzeile verschwunden – abgemeldet standen dort zwei Buttons nebeneinander, jetzt nur noch „Anmelden“. QQ erscheint nur noch auf Anmelde- und Registrierungsseite.
  • Die 3D-Kamera richtet sich jetzt nach der Modellhöhe statt nach einem festen Abstand: In hohen Fenstern überschwemmt die Szene nicht mehr alles, in niedrigen schrumpft sie nicht zum Haufen.
  • Die Blockfarben sind auf die Kirschblüten-Palette gezogen: Karmesinholzbretter, Netherwarze und Korallen werden zu Kirschholz, Blütenblättern und Blättern – kein farbiges Rauschen mehr. Kein einziger Block hat sich bewegt.
v1.9.84 Website 2026-10-31

Der Startbereich ist jetzt eine drehbare 3D-Szene

  • Der ganze Startbereich ist jetzt eine 3D-Gartenszene: ziehen zum Drehen, scrollen zum Zoomen, Klick baut einen Block ab — nach zehn Sekunden ist er wieder da.
  • Handys und Browser ohne WebGL2 laden die 3D-Ansicht nicht zwangsweise: Sie bekommen ein statisches Poster aus demselben Winkel und eine Schaltfläche 3D ansehen in der Ecke.
  • Auch der Seitenwechsel läuft weicher: Die aktuelle Seite blendet aus, die neue ein, ihre Abschnitte gleiten nacheinander nach oben. Bei reduzierter Bewegung bleibt es beim direkten Sprung.
  • Die auffällige blaue QQ-Kachel ist weg — jetzt ziert das offizielle kleinste 16×16-Symbol von Tencent die Schaltfläche, gleichwertig zu allen anderen Symbolen.
v1.9.83 Website 2026-10-31

Ein QQ-Button für die ganze Seite

  • Anmeldeseite, Registrierung, Kopfzeile und Konto teilen sich jetzt denselben QQ-Button: das offizielle Tencent-Symbol in unserer eigenen umrandeten Pille. Tencent erlaubt die Form „kleines Symbol plus Text“, und das Symbol bleibt das offizielle Original.
  • Unter Konto und Sicherheit gibt es jetzt eine QQ-Zeile: verknüpfen, neu verknüpfen, trennen. Konten ohne Anmeldepasswort dürfen nicht trennen — ein reines QQ-Konto hat kein Passwort und käme danach nicht mehr hinein.
  • Satz und Textur: straffere, kräftigere Überschriften, großzügigere Abschnitte und ein weiches Leuchten, das dem Zeiger über die Karten folgt.
  • Bewegung: der Hero steigt Zeile für Zeile auf, Zahlen laufen hoch, oben sitzt ein Lesefortschritt, die Karten der Startseite driften leicht. Wer im System „Bewegung reduzieren“ aktiviert, bekommt nichts davon; Geräte ohne Zeiger bekommen kein Leuchten.
v1.9.82 Website 2026-10-31

QQ-Anmeldung nutzt jetzt die offizielle Schaltfläche von Tencent — auf Anmelde- und Registrierungsseite sowie in der Kopfzeile

  • Auf der Anmelde- und der Registrierungsseite war bisher ein selbst gezeichnetes Pinguin-Symbol mit dem Text „QQ-Ein-Klick-Anmeldung“ zu sehen. Tenscents Spezifikation für Webseiten verlangt die offizielle „QQ登录“-Grafik und verbietet Änderungen daran; beide Stellen verwenden jetzt das originale 230×48-Bild von Tencent in Originalgröße — nicht gestreckt, nicht skaliert.
  • Auch die Kopfzeile bekommt eine: die offizielle 76×24-Schaltfläche „QQ登录“ auf breiten Bildschirmen, unter 375 px das offizielle 24×24-Symbol, damit die Kopfzeile keinen horizontalen Scrollbalken braucht.
  • Zwei Details gleich mit erledigt: Die offizielle Schaltfläche wird nie ausgegraut — ist das Kästchen für die Nutzungsbedingungen nicht gesetzt, springt die Seite beim Klick zum Kästchen und hebt es rot hervor, statt die Schaltfläche zu deaktivieren (eine ausgegraute Schaltfläche sieht genau so aus wie eine falsch platzierte). Und der Satz „Diese Seite nutzt E-Mail + Passwort“ war überholt — er sagt in allen zehn Sprachen jetzt nur noch den Teil über die Registrierung.
v1.9.81 Website 2026-10-18

Auf dem Handy verdeckte die eigene Inhaltsliste den Text der Server-Anleitung — behoben

  • Auf dem Desktop ist die Seitenspalte der Anleitung eine schmale, oben links fixierte Spalte. Sobald das Layout auf eine einzige Spalte zusammenfällt, wird sie bildschirmbreit und höher als ein Bildschirm — blieb aber oben im Blickfeld fixiert. Der Artikel lief darunter durch, sodass Text überlappt wirkte, weiße Kästen über den Wörtern schwebten und der Inhalt zu fehlen schien. Auf schmalen Bildschirmen (900 px und weniger) läuft sie jetzt mit der Seite; auf dem Desktop bleibt sie fixiert. Der Fehler bestand schon vor dieser Runde — auf dem Handy war er nur nie aufgefallen.
v1.9.80 Website 2026-10-18

Kleine Werkzeuge repariert: die Tab-Leiste reagiert, Verläufe sind freier, und der Rechner gibt dir eine Liste, die du nur ausfüllen und starten musst

  • Alle zehn Werkzeuge lagen früher auf einer Seite, und ein Tipp auf die Kapsel oben sprang nur zu einem Anker — es sah aus, als würde nichts passieren. Jetzt ist es eine echte Tab-Leiste, und es wird immer nur ein Werkzeug angezeigt; eine Adresse mit #t-xxx öffnet ein Werkzeug weiterhin direkt, und auf dem Handy lässt sich die Leiste seitlich schieben. Der Farbverlauf-Text hat statt zwei fest verdrahteter Farben jetzt 2~6 Farbstopps: Leiste antippen fügt einen hinzu, ziehen verschiebt ihn, Stopp auswählen und „Diese Farbe entfernen“ drückt ihn wieder weg; die Farben werden Zeichen für Zeichen nach Position interpoliert, sodass sich §-Codes / MiniMessage / tellraw / MOTD zusammen ändern, und ein zu langes MOTD bekommt einen Hinweis
  • Der Server-Konfigurationsrechner ist von drei Budgetstufen auf neun Eingaben gewachsen. Mods, Sichtweite, Simulationsdistanz, ob Redstone läuft, Ziel-TPS und Version lassen sich alle eintragen. Die Ausgabe sind nicht mehr nur ein paar Zahlen: Der Speicher sagt dir, warum er wächst, dazu kommen ein fertig kopierbarer Startbefehl mit Aikar’s flags, Zeile-für-Zeile-Empfehlungen für server.properties und spigot.yml und eine nach Spielstil getrennte Mod- und Plugin-Liste. Die drei Werte, die sich am häufigsten ändern — Speicher pro Spieler, Mod-Faktor und Redstone-Faktor — liegen jetzt im Admin unter „Werkzeuge“, ein Neuladen übernimmt sie
  • Der Lag-Check rechnet jetzt Punkt für Punkt zu und vergleicht mit den Live-Daten dieser Seite. Du trägst vier Dinge mehr ein: dauerhaft geladene Entities, Chunk-Loader, Redstone-Leitungen und automatische Farmen. Die Ausgabe zerlegt MSPT in sieben Punkte mit Anteil und Millisekunden und nennt nur dann „das hier zieht“, wenn ein Punkt wirklich den Löwenanteil hat (über 45%); sonst sagt sie ehrlich, dass der größte Punkt insgesamt noch klein ist. Zu jedem Punkt gibt es eine umsetzbare Änderung, und die Seite zieht dazu ihre Live-Daten heran: wie viel deine Größe theoretisch kostet und wie viel hier gerade noch übrig ist; ohne Daten bleibt es bei einer lokalen Schätzung, ohne Fehlermeldung
v1.9.79 Website 2026-10-18

Flüssiges Glas neu gemacht wie bei Apple: es bricht, es glänzt und steht auch auf Weiß

  • ① In der letzten Runde war das Glas im Grunde nur noch eine weiße Fläche und verschwand, sobald es auf einer weißen Karte lag. Diesmal ist das Material nach dem Vorbild von iOS 26 neu gebaut: oben eine helle Linie, unten eine dunkle, außen ein 1-px-Haarlinienring, innen ein sanfter Schein, dazu ein sehr leichter Schatten; auf dem Desktop bricht es weiterhin echt (der Hintergrund wird leicht verbogen, die ganze Fläche hebt sich beim Überfahren um 1 px und senkt sich beim Drücken zurück). Haupt- und Gefahrenbuttons waren bisher komplett vom Glas ausgenommen, jetzt nicht mehr: der Markenfarbverlauf bleibt auf dem Button selbst, der Kontrast der weißen Schrift ändert sich nicht, und die Glasschicht liefert nur Glanz und Rand, kein zusätzliches Brechen. Dasselbe Material liegt jetzt auf Eingabefeldern, Auswahllisten, Tags, den Abzeichen für Spiele, Werkzeuge und Spieler und der oberen Navigation.
  • ② Auf dem Handy läuft kein Brechen mehr (das ist der teuerste Schritt), es fällt automatisch auf Weichzeichnen plus Glanzrand zurück: sieht weiterhin aus wie Glas, kostet aber praktisch keine GPU. Nebenbei ist ein echter Fehler behoben: der Handy-Zweig stieg früher sofort aus und führte die Rückfallvariante gar nicht aus, also gab es auf dem Handy überhaupt kein Glas. Auch am Desktop gab es zwei Dinge: gleich große Glasflächen erzeugen nur eine einzige Verschiebungstextur (die 7 Flächen der Startseite nutzen nur 4), und was aus dem Bild scrollt, wird nicht mehr berechnet; außerdem entsteht keine neue Fläche mehr, wenn eine über 300.000 Pixel groß ist oder eine Seite mehr als 80 hat — lieber eine Fläche weniger als ein ruckelndes Scrollen.
  • ③ In der Verwaltung unter Darstellung ist derselbe Schalter, jetzt standardmäßig an; Browser ohne backdrop-filter (Safari, Firefox) fallen auf matte Flächen zurück, statt kaputt zu wirken. Farbschema und Layout sind diesmal unangetastet, das Theme bleibt Cloudridge Blau; der weiße Apple-Hintergrund der letzten Runde ist auf der ganzen Site zurückgerollt (Verwaltung, Forum, Galerie und Karte sind wieder wie vorher), nur zwei echte Fehlerbehebungen bleiben: die Bestätigungsbox für gefährliche Aktionen in der Verwaltung hatte überhaupt kein Styling (alle 43 Meldungen zum Bestätigen des Löschens kamen als nackter Kasten ohne Overlay), und die Galerie-Titel auf schmalen Bildschirmen erschienen nur beim Überfahren mit der Maus.
v1.9.78 Website 2026-10-17

Die ganze Website im Apple-Look: weiße Flächen, Haarlinien, Pillen-Buttons — und eine Runde falscher Zahlen gleich mit erledigt

  • Das Erscheinungsbild der ganzen Website wurde neu gebaut, im Apple-Stil: weißer Grund, fast schwarze Schrift, eine 1-px-Haarlinie statt Schatten, Buttons und Filter-Chips einheitlich als Pillen mit 44 Höhe, und die obere Leiste wechselt beim Scrollen von halbtransparent zu durchgezogen. Milchglas ist komplett raus — die Weichzeichner-Ebenen in Datenkarten, Zeitleiste und Statuskarten sind weg, es bleibt nur eine sehr schwache halbtransparente Schicht in der oberen Leiste. Chinesische Überschriften bekommen keine negative Laufweite mehr: chinesische Zeichen füllen ihre Breite ohnehin, durch Zusammenziehen wirkt der Text wie fett gesetzt; nur Ziffern brauchen das enger. Der Admin-Bereich wurde gleich mit neu geordnet, und ein echter Bug ist behoben: Bestätigungsdialoge für gefährliche Aktionen hatten im Admin überhaupt kein Styling — sie kamen als nackter Kasten ohne Overlay und ohne Positionierung hoch, alle 51 Stellen mit Löschen bestätigen waren betroffen; jetzt ist es eine zentrierte Karte mit Overlay und rot gefärbtem Titel. Das Ganze hängt am Farbschema Apple (im Admin unter Aussehen auswählbar), und mit der Rückkehr zu Cloudridge Blau rollt alles wieder zurück, ohne Codeänderung.
  • Beim Handy ging es diesmal gezielt um die Dinge, die sich nicht gut genug anfühlen: die vier großen Zahlen auf der Datenseite belegten je eine ganze Zeile, jetzt passen sie 2×2 auf einen Bildschirm; das Spielersuche-Feld und der Suchen-Button lagen übereinander (der Button bedeckte fast 70 Pixel des Platzhaltertextes), jetzt stehen sie nebeneinander in einer Zeile; im Ranking bildeten oben und unten je eine graue Linie einen dicken Balken, jetzt ist es eine einzelne 1-px-Haarlinie; der doppelte Rahmen von Karte in Karte in der Zeitleiste, die diversen gestrichelten Kästen und der breite dunkelgraue Windows-Scrollbalken sind alle zusammen aufgeräumt; in der Seitenleiste der Anleitung waren Bezeichnung und Wert des Serverstatus zusammengeklebt (angezeigt als Version1.21.1), jetzt stehen sie links und rechts ausgerichtet mit Trennlinie.
  • Zehn Datenprobleme aus dem Audit sind behoben. Die zwei wichtigsten: auf der Startseite wurde die Gesamt-Onlinezeit in Sekunden als Stunden angezeigt (es stand 35,7 Mio. h da, der echte Wert sind 9907 Stunden, Faktor 3600 daneben); und vier Leute in der Bannliste standen als aufgehoben da, obwohl sie weiter galten — wenn der Heartbeat bereits vorhanden meldete, wurde nur der Status still zurück auf aktiv gesetzt, ohne Verlaufseintrag und ohne das Bann-Merkmal des Spielers wiederherzustellen. Der Rest: die Zahl der installierten Mods stand an drei Stellen der Statusseite auf 0 / 12 / 160 (echter Wert 160), und das Betriebssystem stand auf einem Strich — beides aus demselben Grund: die zugrunde liegende Abfrage liefert eine Whitelist, in der diese beiden Felder fehlen; eine Reihe von UUIDs besetzte als Namen das Ranking und erscheint jetzt als Unbekannter Spieler · 87274f; die Obergrenze der Verfügbarkeit war fest auf 99,2 Prozent verdrahtet (gerechnet mit festen 30 Sekunden Abstand, gemessen kommen die Heartbeats aber alle 31 Sekunden); und K/D ergab ohne Todesfälle astronomische Zahlen, jetzt steht dort ein Strich. Zwei weitere sind Ranking-Politik (zwei Zusammenführungs-Varianten, eine über die Rolle und eine über das Konto, plus ein Schattenkonto, das nur Kills hat) und wurden nicht erzwungen — die Unterschiede und ihre Kosten stehen als Kommentar im Code, damit der Betreiber entscheidet.
v1.9.77 Website 2026-10-11

Gefälschte echte IP: dieser Weg ist jetzt von nginx bis zur Anwendungsschicht dicht

  • ① Erst messen, dann ändern: eine Messsonde auf dem Liveserver ergab zwei Dinge — das nginx von BaoTa nutzt das PROXY-Protokoll, die echte Client-Adresse steht also ohnehin schon in REMOTE_ADDR (gemessen 222.212.76.94, nicht 127.0.0.1); und selbst mitgeschickte X-Real-IP / X-Forwarded-For / CF-Connecting-IP reicht nginx unverändert an PHP durch, alle drei gefälschten Kopfzeilen kommen original an, nginx überschreibt keine davon. ② Beide Enden zusammen absichern: nginx injiziert ein Geheimnis, das nur der eigene Proxy kennt (wer diese Kopfzeile fälscht, bekommt sie von nginx trotzdem überschrieben), und die Anwendung setzt eine zweite Schranke davor — ist REMOTE_ADDR eine öffentliche Adresse, wird sie direkt übernommen und gar nicht mehr auf Proxy-Kopfzeilen geschaut — selbst wenn trust_proxy irgendwann versehentlich eingeschaltet wird, wird die IP in Ratenbegrenzung, Sperren und Audit-Logs nie zu einem Wert, den der Besucher selbst bestimmt.
  • Nebenbei drei Dinge erledigt: der irreführende Kommentar in site/config/config.php („hinter CDN / Reverse-Proxy auf true setzen“) ist durch das Messergebnis und eine Warnung ersetzt — wer das hier befolgt, macht aus einer fälschbaren Kopfzeile erst recht einen verbindlichen Wert; für diese Änderung gibt es jetzt automatische Tests (trust_proxy an + öffentliche REMOTE_ADDR + gefälschte Kopfzeilen ⇒ die echte Adresse kommt trotzdem zurück), die Suite wuchs von 81 auf 83 Prüfungen, alle grün; die temporäre Sonde für die Fehlersuche auf dem Liveserver wurde wie vereinbart entfernt, ein Aufruf liefert jetzt 404.
v1.9.76 Website 2026-10-11

Flüssigeres Scrollen am Handy, ein paar Sicherheitslücken geschlossen, der Chatverlauf verliert die Mitte nicht mehr

  • Vier Punkte zur Handy-Flüssigkeit: das Milchglas der Kopfleiste beim Scrollen, das Milchglas aller Karten auf schmalen Bildschirmen, die Compositing-Ebene, die die Einblendanimation für jedes Element dauerhaft offen hielt, und der Lesefortschrittsbalken, der bei jedem gescrollten Pixel ein Neu-Layout erzwang — alles durch gleichwertige, aber billigere Verfahren ersetzt (die gescrollte Kopfleiste ist ohnehin undurchsichtig, diese Unschärfe war reine Verschwendung; und wenn eine Animation wirklich startet, hebt der Browser die Ebene von selbst an). Gemessen im 390 breiten Handy-Viewport bei 20-facher CPU-Drosselung: schlimmster Frame von 364 Millisekunden auf 57 Millisekunden. Der Unterschied bei der Bildrate insgesamt liegt im Rauschen dieser Maschine, daraus lässt sich nichts Belastbares ableiten — deshalb wurde jeder Punkt oben nur angefasst, wenn er sich auch mechanisch begründen lässt.
  • Drei Sicherheitspunkte (hoch/mittel, sofort behoben): ① das nur zur lokalen Fehlersuche gedachte _admlogin.php muss online jetzt 404 liefern (es konnte einen Besucher direkt zum Administrator machen), und ?to= kann nicht mehr aus der Seite herausführen; ② das ping / dns der Speedtest-Seite übergab einen Hostnamen zum Portscannen, was per DNS-Rebinding ins interne Netz gelenkt werden konnte — jetzt wird nur noch die bereits geprüfte IP verbunden; ③ gefälschte X-Real-IP / CF-Connecting-IP-Kopfzeilen konnten die Ratenbegrenzung pro IP umgehen; solche Kopfzeilen werden jetzt nur noch akzeptiert, wenn die Anfrage wirklich von Loopback kommt. Um ③ endgültig dichtzumachen, muss in nginx X-CDR-Proxy-Secret injiziert und in site/config/config.php security.proxy_secret gesetzt werden — das rührt an der Serverkonfiguration, also erst nach deinem OK.
  • Drei echte Fehler im Chatverlauf: ① sobald ein Tag über 200 Nachrichten kam, war dieser ganze Mittelteil auf der Seite nie zu sehen (am geschäftigsten Tag 2796 Nachrichten, der alte Weg blätterte nur bis 500 zurück, die 2296 dazwischen sah niemand); ② die Sortierung sah nur auf den Primärschlüssel id, sodass an Tagen über eine Tagesgrenze hinweg die Nachrichten nach Mitternacht aus dem Fenster fielen (gemessen: 53 neuere Nachrichten dauerhaft übersprungen); ③ wenn das Senden fehlschlug, tat die Oberfläche, als wäre die Nachricht schon raus. Jetzt wird nach Zeit abgerufen, ein Knopf „Ältere laden“ blättert zurück, und ein Fehlschlag wird klar gemeldet und lässt sich wiederholen.
  • Nebenbei: Seiten für Besucher werden nicht mehr pauschal gar nicht gecacht (Zurück und Vorwärts sind etwas schneller), der eingeloggte Zustand wird weiterhin überhaupt nicht gecacht. Alle 218 PHP-Dateien der Seite sind syntaktisch fehlerfrei, alle 59 Selbsttests liefen durch — die 15 Suiten, die mit dieser Änderung zu tun haben, kamen genau so heraus wie vorher (kein einziger zusätzlicher lokal fehlschlagender Punkt).
v1.9.75 Website 2026-10-10

Serverseitiges Mod entschlackt: Aufwand, der mit der Spielerzahl wächst, raus aus dem Hauptthread

  • Der größte Brocken im Mod-Bericht ist die Karte: drei Karten mit je 256×256, rund 197.000 Punkte. Früher wurden diese Punkte mitten im Server-Tick zu JSON zusammengesetzt, und der Server lief erst danach weiter — eine Runde alle halbe Stunde, was genau zu diesen gelegentlichen „kurz hängt es“-Spitzen passt. Jetzt übergibt der Tick nur noch die Daten, und das Zusammensetzen läuft in einem Hintergrund-Thread: Die Daten lagen ohnehin schon vor, und JSON bauen musste den Hauptthread nie belegen.
  • Nebenbei wurden mehrere Posten eingedämmt, die mit der Zahl der Spieler online wachsen: Die Zahlen in der TAB-Liste (Spielzeit, Spielerzahl und so weiter) wurden für jede Zeile jedes Spielers neu berechnet, obwohl sie sich nur alle 30 Sekunden ändern; die Suche nach einem Spieler über den Namen fiel auf einen zeilenweisen Durchlauf der ganzen Tabelle zurück (10 Spieler bedeuteten 100 Suchvorgänge); die Fortschrittsliste lief alle 10 Minuten über tausend Rezepteinträge; und alle 30 Sekunden wurde nur zum Zählen der Entities jede Welt komplett durchlaufen, während Konfigurationsdateien und Bannliste im Hauptthread gelesen wurden. Jetzt wird stattdessen gecacht, indexiert, einmal berechnet und im Hintergrund gelesen — an dem, was an die Website gemeldet wird, hat sich kein einziges Byte geändert, und die Seiten sehen genau aus wie vorher.
v1.9.74 Website 2026-10-05

Verwaltung und Profil-Datenschutz nachgebessert

  • Der Zähler für offene Prüfungen in der Seitenleiste zählte nur Forum und Galerie, während das Verwaltungsfeld fünf Warteschlangen zählte — jetzt kommt alles aus einer einzigen Funktion und jeder Menüpunkt trägt seine eigene Zahl. Zerstörende Aktionen (Nutzergruppe löschen, Navigationspunkt löschen, Chat-Protokoll leeren, Cache leeren) fragten nicht nach; sie bestätigen jetzt. Skin-, Profilbild- und Chat-Protokoll-Listen waren auf 200 beziehungsweise 60 Einträge begrenzt und lassen sich nun durchblättern.
  • Die Option „Andere dürfen mein Profil sehen“ wirkte bisher nur auf die Teamseite, das Profil selbst blieb für alle sichtbar — jetzt gilt sie wirklich, außer für einen selbst. Passwortänderung und Abmelden anderer Geräte landen außerdem im Prüfprotokoll.
v1.9.73 Website 2026-10-05

Rote Bestätigungs- und Löschen-Schaltflächen sind wieder sichtbar

  • Beim Zurückziehen einer Chat-Nachricht war die Bestätigen-Schaltfläche leer: mit aktiviertem Flüssigglas entfernt die Glasregel den Hintergrund der Schaltfläche, lässt aber die weiße Schrift stehen — weiß auf weiß. Rote Vollflächen-Schaltflächen bleiben jetzt genau wie die blaue Hauptschaltfläche außerhalb des Glases.
  • Betroffen waren alle roten Schaltflächen der Website (Zurückziehen, Löschen, Entbinden und so weiter); sie sind alle mitkorrigiert.
v1.9.72 Website 2026-10-05

Seitenwechsel springt nicht mehr nach oben

  • Ein Klick auf "nächste Seite" weiter unten riss einen bisher ganz nach oben. Jetzt richtet die Blätterleiste stattdessen die Liste darüber aus und tut gar nichts, wenn diese Liste ohnehin sichtbar ist. Vor und zurück kehren an die vorige Scrollposition zurück.
  • Nebenbei ein paar Kleinigkeiten: die Seed-Karte steht jetzt im Menü Server, Sprungmarken verschwinden nicht mehr unter der klebenden Navigation, Galerie-Karten zeigen ihren Autor, und die online Spieler auf der Startseite führen zum Profil.
v1.9.71 Website 2026-10-05

Backendrechte verschärft, kleinere Fehler behoben

  • Einstellungen, Schlüsselwechsel, Backups und Systemwerkzeuge sind jetzt dem Inhaber vorbehalten — die Serververwaltung behält Inhalte, Meldungen und Whitelist.
  • Beim seitenweisen Navigieren wurden mehrere Kleinigkeiten behoben: der Dunkelmodus bleibt erhalten, Formulare werden nicht mehr doppelt gesendet, der Countdown läuft normal schnell und die Sortierauswahl lädt die Seite nicht mehr neu.
v1.9.70 Website 2026-10-05

Seitenwechsel ohne Neuladen

  • Blättern, Filtern, Suche und Sortieren tauschen jetzt nur den Inhalt aus — die Adresse ändert sich weiterhin, die Zurück-Taste funktioniert normal.
  • Speichern, Prüfen und Löschen springen wie bisher auf eine neue Seite.
v1.9.69 Website 2026-10-05

Suchfeld der Spielerliste wurde von den Karten verdeckt

  • Animierte Elemente tragen will-change, und will-change erzeugt einen Stapelkontext, daher galt der z-index der Vorschlagsliste nur innerhalb der eigenen Karte und verlor gegen die später im DOM stehenden Statistik-Karten
  • Die gesamte Suchkarte steht jetzt oben, die Liste schwebt vollständig darüber
v1.9.68 Website 2026-10-04

Profilseite ließ sich auf dem Handy nicht scrollen — behoben

  • Der 3D-Skin-Viewer hatte touch-action:none fest gesetzt und bei touchstart/touchmove bedingungslos preventDefault aufgerufen, sodass ein Finger darauf die ganze Seite blockierte. Senkrechtes Wischen geht jetzt an den Browser, nur waagerechtes dreht das Modell
  • Das Ziehen des Hintergrunds im Kopfbereich ist ebenfalls maus-exklusiv
v1.9.67 Website 2026-10-04

Server-Anleitung neu geschrieben: doppelter Inhalt, und bei den Befehlen ist endlich klar, welche für Spieler sind

  • Alle vier Seiten — Erste Schritte, Regeln, FAQ und Über — wurden neu geschrieben, jede erklärt, warum ein Schritt wichtig ist und was bei Problemen hilft
  • Die Befehlsseite beginnt jetzt mit einem handgeschriebenen Abschnitt Spielerbefehle, gruppiert nach erste Schritte, Fortbewegung, Chat und Status; die vollständige Tabelle mit 435 Zeilen bleibt darunter erhalten
v1.9.66 Website 2026-10-04

Der Scroll-Hinweis klebt nicht mehr an der Tabelle

  • Der Hinweis ueber der Tabelle sass direkt auf deren Oberkante und wirkte wie uebereinandergelegt; jetzt gibt es Abstand
  • Die Kopfzeile wird beim Scrollen vollstaendig undurchsichtig (vorher halbtransparent)
v1.9.65 Website 2026-10-04

Eine Sicherheitslücke in hochgeladenen SVGs geschlossen

  • Früher konnte ein speziell präpariertes SVG als Avatar oder Hintergrund die IP-Adresse und Browserdaten aller Betrachter preisgeben. Solche externen Verweise werden nun entfernt, ohne das Bild selbst zu verändern.
  • Zusätzlich wurden HSTS und einige zurückhaltende Content-Security-Regeln ergänzt.
v1.9.64 Website 2026-10-04

Das Prüf-Abzeichen leuchtet nicht mehr dauerhaft + Statusseite ohne interne IP

  • Das „Prüfen“-Abzeichen im Admin zählte fünf Warteschlangen, das Panel „Serververwaltung“ kann aber nur zwei davon bearbeiten — das Abzeichen leuchtete also, ohne dass es etwas zu prüfen gab. Beide nutzen jetzt dasselbe Maß, und das Panel hat eine Zeile „weitere offene“ bekommen: Galerie / Skins / Forum, jeweils mit Link zur vorhandenen Admin-Seite.
  • Die Zeile „Webkarte“ auf der Statusseite zeigte 127.0.0.1:8100 (eine interne Adresse, nur für die Prüfung). Jetzt wird die öffentliche Adresse der Webkarte angezeigt.
v1.9.63 Website 2026-10-04

Videos direkt in der Admin-Prüfung

  • Bei Hintergründen mit einem Hintergrundvideo wird jetzt dieses Video direkt in der Prüfkarte abgespielt — auf Play drücken, standardmäßig wird nur der Anfang geladen (spart Daten), inklusive Kennzeichnung „enthält Video“.
  • Vorher zeigte die Karte nur das separat gewählte Titelbild, das mit dem Video nichts zu tun haben musste. Kein Freigeben mehr im Blindflug.
  • Ebenfalls behoben: „Upload-Zeit zeigt 1970-01-01“. Mein Asset-Upload-Werkzeug schrieb ein falsches Zeitformat. Daten und Werkzeug sind korrigiert.
v1.9.62 Website 2026-10-04

500-Fehler behoben + zwei optische Anpassungen

  • 500-Fehler behoben: In der vorigen Version hatte ich die Argumente des Audit-Logs nach der Anmeldung an die falschen Positionen gesetzt, sodass jede erfolgreiche Anmeldung einen internen Fehler auslöste. Jetzt wird normal weitergeleitet.
  • Die Zeile „Ich habe die Nutzungsbedingungen und die Datenschutzerklärung gelesen und akzeptiere sie“ steht jetzt ganz unten im Formular (unter dem Anmelden-Knopf), wie auf üblichen Anmeldeseiten. Ohne Häkchen ist keine Anmeldung möglich.
  • Die Abdunklung im Kopfbereich der Spielerseite ist nun ein weicher Verlauf: Die deutlich sichtbare waagerechte Linie ist weg.
v1.9.61 Website 2026-10-04

Zustimmung zu den Bedingungen beim Anmelden

  • Die Anmeldeseite hat jetzt ein Kontrollkästchen: „Ich habe die Nutzungsbedingungen und die Datenschutzerklärung gelesen und akzeptiere sie“ — ohne Häkchen ist keine Anmeldung möglich. Beide Wege sind betroffen (QQ-Ein-Klick und E-Mail + Passwort), und der Server prüft es ebenfalls, denn einen Knopf zu deaktivieren hält niemanden auf.
  • Wir haben zwei echte Seiten geschrieben, Nutzungsbedingungen und Datenschutzerklärung, die Punkt für Punkt auflisten, was die Seite speichert: den von QQ gelieferten Nicknamen und die openid, E-Mail und Passwort-Hash, verknüpfte Charaktere, Spielstatistiken, hochgeladene Bilder sowie IP und Zeitpunkt der Anmeldung.
  • Dort steht auch genau, mit wem wir teilen — nur drei Stellen: QQ Connect (Anmeldung), mc-heads.net (Skin-Avatar, wenn keiner hochgeladen wurde) und 126 Mail (Bestätigungscodes). Keine Werbenetzwerke, kein Datenverkauf.
  • Speicherdauer, Wege zum Löschen oder Exportieren und der Umgang mit Minderjährigen sind ebenfalls beschrieben. Beide Seiten sind auch im Footer verlinkt.
v1.9.60 Website 2026-10-04

Die Kopfzeilenschrift bleibt auch auf hellen Bildern lesbar

  • Seit das Video das Foto ersetzt, lag der weiße Kopfzeilentext auf hellem Himmel und Wolken und erreichte im schlechtesten Fall 1,16:1, war also praktisch unlesbar. Die Ursache war die Zeichenreihenfolge: Das Video ist ein echtes Kindelement, der Abdunklungsverlauf lag jedoch auf body.cdr-body::before (generierter Inhalt), und generierter Inhalt wird immer vor echten Kindern gezeichnet. Das Video verdeckte den Verlauf also vollständig, der damit gar nichts bewirkte
  • Die Korrektur macht die Abdunklung zum eigenen Hintergrund der Kopfzeile: ein einziger Verlauf von oben nach unten (oben 62 Prozent, bei 350px verschwunden), der nur den Kopfzeilenstreifen bedeckt und Motiv, Boden und Wasser pixelgenau unberührt lässt; eine neue feste Ebene wurde nicht hinzugefügt, die Seitenhöhe bleibt bei 6816px
  • Auf dem hellsten Bild stieg der Kontrast der Kopfzeile von 1,16 bis 2,63 auf 4,85 bis 6,91 zu 1 (Norm für weißen Text ist 4,5 zu 1). Nebenbei wurde eine nur online auftretende Regression behoben: Unter flüssigem Glas hat die Zurück-Schaltfläche eine durchscheinende Fläche und wurde mit abgedunkelt (5,19 zu 1 fiel auf 2,14 zu 1); ihre Beschriftung wird nun ebenfalls weiß, schlechtester Fall 6,04 zu 1
  • Betroffen sind nur Seiten mit einem Banner; Seiten ohne Banner bleiben Byte für Byte unverändert. Mausrad, Schaltflächen und Videowiedergabe wurden erneut geprüft
v1.9.59 Website 2026-10-04

Bewegte Hintergründe: die wahre Ursache für totes Mausrad und Klick ist gefunden

  • Die Ursache war eine Klassennamen-Kollision: .pub-bg-video war zugleich die Klasse des Video-Elements und die Schalterklasse auf <html>. Damit landete die ganze Regel der bildschirmfüllenden festen Videoebene auf dem Wurzelelement — die Wurzel wurde position: fixed, die Seitenhöhe fiel auf einen Bildschirm zusammen, und das Mausrad hatte nichts zu scrollen
  • Noch heimtückischer: pointer-events: none wird vererbt. Der gesamte Dokumentbaum bekam keine Maus mehr, nur <html> fing sie ab, und die Zurück-Schaltfläche war unerreichbar
  • Die Korrektur: Die Statusklasse heißt jetzt pub-bg-on, und die Elementregel ist auf video.pub-bg-video eingegrenzt, damit beide nie wieder zusammenstoßen
  • Das Hintergrundmaterial ist wieder die erste Fassung (4,50 MB → 4,41 MB) ohne ins Bild gerechnete Abdunklung, die Farben sind also wieder normal; außerdem wurden drei lokale Prüfstände korrigiert — sie maßen <html>, während sie die Videoebene zu messen glaubten
v1.9.58 Website 2026-10-04

Bewegte Hintergründe: eine verschenkte Bildschirmhöhe entfernt, Ziehen besser erkennbar

  • Neues Video (15,98 MB → 4,50 MB), die Abdunklung ist direkt ins Bild gerechnet; das Standbild auf dem Handy ist dasselbe Bild
  • Eine unsichtbare Maskenebene entfernt, die trotzdem über eine Bildschirmhöhe hinzufügte
  • Über dem Seitenkopf wird der Zeiger zur Greifhand; die Bedingung ist gelockert, damit auch Touchscreen-Notebooks funktionieren
  • Das Mausrad-Problem wird noch untersucht; diese Version behebt die drei Punkte oben
v1.9.57 Website 2026-10-04

Dein Profil kann jetzt einen bewegten Hintergrund haben

  • Lade einen stummen Clip von 5 Sekunden bis 1 Minute hoch: Er läuft am Computer in Schleife, während das Handy das Standbild behält und nichts zusätzlich lädt
  • Nur das Banner-Feld nimmt ein Video an, und es durchläuft dieselbe Prüfung wie Bilder; die Grenze liegt bei 6 MB — darüber wird klar abgelehnt, nie stillschweigend
  • Das Standbild am Handy ist dein Banner — wähle eines, das zum Clip passt
  • Die Funktion ist standardmäßig aus; erst wenn du sie in den Admin-Schaltern aktivierst, erscheint das Upload-Feld
v1.9.56 Website 2026-10-03

Behoben: "Bild ausgewählt, gespeichert – und nichts passierte"

  • Ein Spieler lud Avatar und Banner hoch – sogar mit Video –, doch in der Moderation erschien nichts. Das Bild erreichte den Server nie; $_FILES war von Anfang bis Ende leer
  • Die Ursache war iPhone-HEIC: Der Browser kann es nicht dekodieren, der Zuschnitt-Dialog wertete das als "Abbrechen" – und Abbrechen entfernt die Datei aus dem Formular. Ohne Datei konnte der Server nur "Bild wird nicht geändert" annehmen und antwortete mit einer grünen Erfolgsmeldung
  • Nicht dekodierbare Bilder werden nicht mehr verworfen – das Original wird unverändert hochgeladen (nur ohne Zuschnitt), samt Erklärung
  • Zusätzlich gibt es nun ein Sicherheitsnetz auf Serverseite: Meldet der Browser ein Bild, kommt aber keine Datei an, wird ein Fehler ausgegeben statt Erfolg vorzutäuschen. Ein echtes Abbrechen wird ebenfalls klar angezeigt
v1.9.55 Website 2026-10-03

Die Korrektur von „Unbekannter Spieler"-Namen ist jetzt im Adminbereich

  • Das Kommandozeilen-Skript .tools/_backfill-names.php ist jetzt eine Schaltfläche unter Admin -> Systemwerkzeuge
  • Es liest usercache.json aus den historischen Backups, gibt Zeilen, die noch nach einer UUID benannt sind, ihren echten Namen zurück und verschiebt Sitzungsverlauf / Erfolge / Skins mit
  • Die Seite zeigt zuerst, welche Zeilen sich wohin ändern; vor dem Schreiben wird automatisch ein Datenbank-Snapshot angelegt
  • Nur Zeilen, deren ganzer Name eine UUID ist, werden angefasst; ist der echte Name belegt, werden beide Zeilen zusammengeführt, normale Spieler nie umbenannt
v1.9.54 Website 2026-10-03

Ranglisten: die Top 10 aus neun Kategorien auf einem Bildschirm

  • Das sind die „aufgeschlüsselten Ranglisten“, die du wolltest. Das Sortiermenü der Spielerliste zeigt immer nur eine Dimension, ein Vergleich von „wer hat am meisten gegraben“ mit „wer ist am häufigsten gestorben“ bedeutete ständiges Umschalten. /ranking zeigt die Top 10 aus neun Kategorien auf einem Bildschirm
  • Eine Karte pro Kategorie mit Rang, Avatar, Name und dem Wert dieser Kategorie —
  • die Zahlen sind Zeichen für Zeichen identisch mit der Spielerliste, weil beide denselben Formatierungscode nutzen. Ein Klick auf einen Namen öffnet die Spielerseite
  • Der Link „Alle ansehen“ im Kartenkopf öffnet die vollständige Liste, bereits nach dieser Spalte sortiert (?sort=). Der Einstieg ist der Knopf „Ranglisten“ unter dem Titel der Spielerliste. Kategorien ohne Daten erzeugen keine leere Karte, Bots bleiben wie bisher außen vor
v1.9.53 Website 2026-10-03

Der Profilhintergrund lässt sich jetzt ziehen

  • Auf Profilen mit Banner kann man die Maus drücken und das Hintergrundfoto ziehen — als schöbe man einen Landschaftsabzug umher, während Kopfbereich, Avatar und Name fest darauf sitzen
  • Nur der obere Bereich (der Seitenkopf) reagiert. Karten, Tabellen und Schaltflächen darunter funktionieren wie gewohnt, Textauswahl bleibt möglich; ein Klick auf eine Schaltfläche startet nie ein Ziehen
  • Beim Loslassen federt alles an seinen Platz zurück; am Rand angekommen stoppt die Bewegung (ringsherum bleibt ein kleiner Abstand), damit das Foto nie aus dem Bild läuft und die Hintergrundfarbe sichtbar wird
  • Nur Maus und Trackpad. Touchscreens und alle mit aktivierter Option „Bewegung reduzieren“ sind ausgenommen und verhalten sich wie bisher
v1.9.52 Website 2026-10-03

„Unbekannter Spieler“ repariert sich künftig selbst

  • Einige Zeilen zeigen „Unbekannter Spieler · 87274f“ — diese Zeichenkette ist tatsächlich die UUID. Der Namenscache des Servers hält nur etwa einen Monat; nach einer längeren Pause kann das Mod keinen Namen mehr auflösen und meldet die UUID
  • Das Problem: Solch eine Zeile konnte nie heilen. Kam der Spieler zurück und der Server kannte seinen Namen wieder, kollidierte die Umbenennung mit der Eindeutigkeitsregel (eine Zeile mit dem echten Namen gab es meist schon), der Fehler wurde verschluckt und die UUID blieb stehen
  • Jetzt funktionieren beide Wege: Ist der echte Name frei, wird umbenannt und Sitzungen, Erfolge und Skin ziehen mit; ist er belegt, wird zusammengeführt — Spielzeit addiert, Fortschritt vereinigt, erster/letzter Besuch erweitert
  • Für dich ist nichts zu tun — bei der nächsten Anmeldung stimmt es. Das Sync-Log vermerkt „adopted=N“, sichtbar unter Systemwerkzeuge
v1.9.51 Website 2026-10-03

Dein Avatar erscheint jetzt überall; Login-Verlauf mit Seiten; helle Buttons nicht mehr ausgewaschen

  • Der hochgeladene Avatar war nur im eigenen Profil zu sehen — alle anderen Avatare der Seite liefen über einen anderen Weg, der nichts von deinem Upload wusste. Spielerlisten, Kommentare und Navigation nutzen ihn jetzt. Wer nichts hochgeladen hat, sieht unverändert aus
  • Der最近 Login-Verlauf zeigte 30 Zeilen auf einmal. Jetzt sind es 10 pro Seite, mit derselben Blätterfunktion wie im Rest der Seite (bei nur einer Seite ausgeblendet)
  • Der Knopf „alle Abzeichen ausklappen" wirkte grau und deaktiviert — ein Spezifitätsproblem: die blaue Tönung des hellen Buttons verlor gegen die weiße Basisschicht, und der eigene Hintergrund wurde ebenfalls entfernt. Behoben
  • Die Lücke unter der linken Spalte eines Profils: Die linke Spalte dehnt sich nun auf die Höhe der rechten, die Rangliste füllt den Rest. Keine Lücke mehr, egal ob Abzeichen ein- oder ausgeklappt sind. Die Radar-Hinweise sind standardmäßig eingeklappt
v1.9.50 Website 2026-10-03

Flüssigglas nach der Vorlage neu geschrieben: diesmal ist es echtes Glas

  • Die vorige Fassung war nur „eine Verlaufsmap + eine Verschiebung“, und kein Feintuning machte sie richtig. Der Zeilenvergleich mit der Vorlage zeigte drei fehlende Teile - alle sind jetzt da
  • Die Brechung folgt nun echter Optik: Glasdicke, Fasenbreite, Brechungsindex (1,0-3,0) und die gerundete Oberfläche fließen ein - das erzeugt am Rand den Lupeneffekt von „dickem Glas“
  • Eine Glanzschicht kam hinzu - ein Randreflex entlang einer Richtung. Das ist das auffälligste Merkmal von Flüssigglas, und die vorige Fassung hatte ihn gar nicht
  • Die Sättigung wird nach der Verschiebung wiederhergestellt (Brechung macht Farben grau), plus etwas Kantenglättung. Die Unschärfe bleibt bei 0,3 px: mehr lässt Nachbarpixel nicht mehr differieren und löscht die Brechung völlig
v1.9.49 Website 2026-10-03

Avatare lassen sich jetzt selbst zuschneiden – ziehen Sie, was im Rahmen steht, ist das Ergebnis

  • Früher wurde das ganze Bild hochgeladen und die Seite skalierte es von der Mitte aus – lag das Gesicht am Rand, war das eben so. Jetzt öffnet die Bildauswahl einen Zuschneiderahmen: ziehen zum Verschieben, Mausrad oder Regler zum Zoomen – was im Rahmen steht, wird der endgültige Avatar
  • Der Export erfolgt in 512×512 (dieselbe Obergrenze wie serverseitig) als WebP. Kleine Bilder werden nie vergrößert – das macht sie nur unschärfer, also werden sie in ihrer eigenen Größe zugeschnitten. Auf schmalen Bildschirmen wird der Rahmen automatisch kleiner, also funktioniert es auch am Handy
  • Zwei Bildarten bleiben absichtlich unangetastet: animierte GIFs (Zuschneiden behielte nur ein Einzelbild und würde die Bewegung zerstören) und SVG – beide laufen wie bisher. Schlägt ein Schritt fehl (Browser kann es nicht, Speicher reicht nicht), wird die Originaldatei gesendet – Sie hängen nie bei „Datei gewählt und nichts passiert“ fest
  • Banner werden nicht zugeschnitten – sie sind von Natur aus breit, und sie quadratisch zu machen ergäbe keinen Sinn. Der Rahmen erscheint nur beim Hochladen eines Avatars unter Ich → Mein Profil.
v1.9.48 Website 2026-10-03

Frostglas eine Stufe leichter auf schmalen Bildschirmen – das Ruckeln auf dem Handy sollte nachlassen

  • Das Ruckeln auf der mobilen Profilseite lag nicht an einer schlecht geschriebenen Animation, sondern daran, dass die Unschärfe selbst zu teuer war: Jede Karte trug blur(32px) saturate(180%), und auf dieser Seite sind sieben oder acht Glasflächen gleichzeitig sichtbar – jedes gescrollte Bild musste also alle Pixel dahinter neu abtasten
  • Der Unterschied zwischen 32px und 14px ist mit bloßem Auge kaum zu sehen – die Karten liegen ohnehin auf .70–.78 Weiß, und die Unschärfe weicht das Foto dahinter nur auf; die Abtastkosten wachsen dagegen ungefähr mit dem Quadrat des Radius. Die Sättigung sinkt ebenfalls von 180% auf 150%; nichts auf dieser Seite brauchte kräftigere Farben
  • Nur schmale Bildschirme gehen eine Stufe herunter: Am Desktop hat sich kein Pixel bewegt. Das ist eine reine Performance-Änderung, die Sie kaum sehen werden – aber das Scrollen auf dem Handy fühlt sich deutlich flüssiger an
  • Es ist eine reine Performance-Änderung, kaum sichtbar — wenn das Scrollen auf dem Handy weiterhin ruckelt, sagen Sie mir auf welchem Bildschirm, und ich grabe weiter.
v1.9.47 Website 2026-10-03

Die mobile Statusseite ist viel kürzer; die Bannliste zeigt nicht mehr in jeder Zeile „QQ nicht verknüpft“

  • Auf dem Telefon wurde jede Dienstzeile auf zwei oder drei Zeilen umgebrochen. Der Grund war konkret: Die Zeile war ein dreispaltiges Raster, dessen Mindestbreiten zusammen 504 px ergaben, während ein Telefon-Viewport nur 492 px breit ist — knapp zu schmal, also wurde jede Zeile zum Umbruch gezwungen. Schmale Bildschirme nutzen jetzt zwei Spalten mit der Notiz in einer eigenen Zeile, was die Seite um über 500 px verkürzt
  • Auch Panel-Innenabstände, der Verfügbarkeitsbalken und die Knotenkarten wurden auf schmalen Bildschirmen eine Stufe straffer gesetzt. Diese Änderungen liegen nur in einem Style-Block innerhalb der Statusseite — auf allen anderen Seiten bewegt sich kein Pixel
  • In der Bannliste stand in jeder Zeile dieselbe Angabe „QQ nicht verknüpft“ unter dem Spielernamen, sodass die Tabelle kaputt wirkte. Tatsächlich wurde der Schalter „QQ auf der Bannseite verbergen“ im Backoffice berechnet, aber nie verwendet — die Einstellung war von Anfang an tot
  • Jetzt beachten alle drei Stellen diesen Schalter: die Listenzeile, das QQ-Abzeichen samt Tooltip am Avatar und das aufgeklappte Detail. Bann-Gründe sind weiterhin fest auf Chinesisch verdrahtet (alle zehn Sprachen zeigen Chinesisch); das behandle ich getrennt
v1.9.46 Website 2026-10-03

Hintergrundbilder bewegen sich jetzt und weichen der Maus sanft aus

  • Animierte GIF-Hintergruende werden jetzt unterstuetzt. Es war nie "nicht unterstuetzt", sondern "unterstuetzt und dann plattgedrueckt": jeder Upload wurde zu WebP neu kodiert, und das Dekodieren eines GIF liefert nur das erste Bild —— eine Animation kam also als Standbild an
  • Die Loesung: ein GIF mit mehreren Bildern wird unveraendert gespeichert, ohne Neukodierung, die Animation bleibt erhalten. Der Preis: animierte Hintergruende werden nicht auf 1920x1080 verkleinert —— Neukodierung wuerde die Animation toeten, das ist bewusst so
  • Der Hintergrund folgt jetzt der Maus: bewegt sich der Zeiger, wandert die Hintergrundebene bis zu 10 Pixel in die Gegenrichtung, was dem Foto Tiefe gibt
  • Pro Bild aendert sich nur eine CSS-Variable, das Foto selbst wird nie neu gezeichnet; sobald der Zeiger ruht, endet die Schleife und eine stehende Seite kostet genau so viel wie vorher. Nur Maus und Trackpad, und bei reduzierten Animationen komplett aus
v1.9.45 Website 2026-10-03

Das Kreuz auf dem Zurueck-Knopf: vier Runden, die Ursache lag in einem Kommentar

  • Das Kreuz ist weg. Es war ein heller Fleck, den der Browser beim Abtasten des Hintergrunds einer kleinen Box am oberen Rand mittig hinterlaesst —— dieser Knopf ist nur 58x35, der Fleck faellt darauf deutlich auf; auf einer grossen Karte wird derselbe Fleck verwaschen und ist unsichtbar
  • Die Loesung: dieser kleine Knopf tastet den Hintergrund nicht mehr ab, und seine Toenung steigt von 8 % auf 14 %, damit er durchscheinend bleibt. Die Kosten sind null: mit und ohne Brechung unterscheidet sich dieser Knopf um 0 von 1.766.688 Pixeln (maximale Kanaldifferenz 1)
  • Die wirklich tueckische Schicht kam danach: die Regeln waren richtig, wirkten aber nicht. Beim woertlichen Zitieren des Referenz-CSS in einem Kommentar schrieb ich /* 6% */ —— CSS-Kommentare lassen sich nicht verschachteln, dieses */ schloss den aeusseren Kommentar zu frueh, das folgende } schloss die Regel zu frueh, und der Parser verschluckte alle folgenden Regeln
  • Dieser kaputte Kommentar stand seit 1.9.42 dort: drei Versionen lang fehlten dem Knopfglas der innere Schein und der aeussere Schatten —— jetzt sind beide zurueck. Die Lehre ist jetzt ein Test: nichts in einen Kommentar schreiben, was ihn zu frueh beendet (dieselbe Falle hat mich in PHP schon zweimal erwischt)
v1.9.44 Website 2026-10-03

Diese flackernde Linie bei Mausbewegung: acht Versionen später war die Ursache eine 2px-Hebung beim Hover

  • Die Ursache war weder der Glanz noch die Fläche des Frostglases, sondern eine siteweite Hover-Regel: Jedes Mal, wenn der Zeiger eine Karte überquerte, wurde sie um 2px angehoben. Die Karten tragen einen Frost-Hintergrund, also muss der Browser in dem Moment, in dem sich eine bewegt, das Bild dahinter neu abtasten — und diese Abtastung wird in Kacheln geschnitten; die Kachelfugen sind die Linie
  • Fünf Irrwege unterwegs (den Glanz vom Hintergrund in ein Pseudoelement, dann auf transform, dann in ein echtes Kindelement, dann aus dem Glas heraus, dann komplett gelöscht). Jeder sah aus, als «müsste» er wirken, und keiner traf die Ursache
  • Die Korrektur: Glasflächen bewegen sich beim Hover nicht mehr, sondern antworten mit Rahmen und Schatten. Zwei über die volle Breite laufende Frostleisten (Navigationsleiste und angeheftete Namenszeile) haben ihre Unschärfe ebenfalls verloren; großflächige Abtastung ist die teuerste Art
  • Zwei sichtbare Dinge kamen aus demselben Zug: Der mausfolgende Glanz ist komplett entfernt (zu unruhig), und das Button-Glas wurde wie in der Referenz in drei Schichten neu geschrieben (Brechung und Tönung getrennt)
v1.9.43 Website 2026-10-03

Der Admin-Anmeldeknopf war verschwunden: ein Spezifitätsfehler aus meiner letzten Version

  • Das in v1.9.42 eingeführte Button-Glas hatte einen Spezifitätsfehler: Die Grundschicht mit 8 % weißer Tönung zählte als „fünf Klassen plus zwei Elemente", der marineblaue Verlauf des Primärknopfes aber nur als „drei Klassen" —— die Grundschicht gewann also immer, der Verlauf wurde nie gezeichnet. Zusätzlich entfernte background: none im selben Block den eigenen Verlauf des Primärknopfes. Marineblauer Grund mit weißer Schrift wurde so zu weiß auf weiß, und der Knopf verschwand vollständig
  • Lösung: gefüllte Markenknöpfe (der Primärknopf) nehmen gar nicht mehr am Glas teil. Er ist marineblau mit weißer Schrift; diese Glasbehandlung passt nur zu hellen Knöpfen. Der Primärknopf hat wieder sein ursprüngliches gefülltes Aussehen
  • Derselbe Fehler hat still auch die Aufhellung beim Hover verschluckt (sie zählte „vier Klassen" und verlor gegen fünf) —— die Aussage der letzten Version, „Hover macht jetzt einen Unterschied", hat also nie gegriffen. Jetzt schon
  • Noch ein Folgefehler: background: none löschte auch ladende Knöpfe, während die Glasschichten sie ausnehmen —— der Knopf war in diesen Sekunden völlig durchsichtig. Ladende Knöpfe bekommen ihren Hintergrund zurück
v1.9.41 Website 2026-10-02

Das Leuchten, das der Maus folgte, ist entfernt

  • Was entfernt wurde: das kühle blaue Licht, das auf den Karten dem Zeiger folgte. Alles ist weg — die Variablen, der Schalter, die Ebene, das Skript, kein Fragment bleibt übrig
  • Warum: Sie haben dasselbe Problem viermal gemeldet — „sobald die Maus sich bewegt, flackert dieser Fleck" / „eine horizontale Linie". Ich habe es viermal neu geschrieben (in den Kartenhintergrund gezeichnet, in ein Pseudoelement verschoben, zu einem echten Kindelement gemacht, auf eine eigenständige Ebene über die ganze Seite verschoben) — nichts hat geholfen. Ihr letztes Wort dazu war „lösch das Leuchten, das der Maus folgt, es wackelt zu sehr" — also ist es weg
  • Ein Nebeneffekt: Ohne es löst das Bewegen des Zeigers überhaupt kein Neuzeichnen mehr aus. Das war zugleich das letzte Puzzleteil der flackernden Linie — solange sich irgendetwas im Inneren eines Milchglas-Elements Bild für Bild ändert, muss der Browser das Bild dahinter immer wieder neu berechnen, und er berechnet es in Kacheln: die Kachelfugen sind die Linie, die Sie gesehen haben
  • Sonst hat sich nichts geändert: die Glasdurchlässigkeit, der erste Bildschirm mit nur dem Foto, die angeheftete Namenszeile und die Liquid-Glass-Schaltflächen sind unverändert. Besucher ohne Maus und Touch-Besucher haben dieses Leuchten ohnehin nie gesehen — für sie ist dieses Update ein Nullsummenspiel
v1.9.36 Website 2026-10-02

Das Leuchten springt beim Elementwechsel nicht mehr, und das Liquid Glass der Schaltflächen ist stärker

  • Das Maus-Leuchten „springt" nicht mehr: Wanderte der Zeiger von einer Karte zur anderen, teleportierte das Leuchten —— das alte verschwand, das neue erschien sofort. Jetzt blendet das alte an seiner Stelle aus, während das neue unter dem Zeiger einblendet, und der Mittelpunkt gleitet mit; das Ganze dauert etwa 180ms
  • Warum keine CSS-Transition: transition ersetzt eine ganze Deklaration, und es gibt keine Möglichkeit, sie nur einer einzelnen Eigenschaft hinzuzufügen; dafür bräuchte es einen Selektor, der auch die Einblend- und Hover-Animationen der Karten überschreibt, wodurch das Einblenden beim Scrollen von „einblenden und aufsteigen" zu einem harten Schnitt würde. Deshalb lässt das Skript stattdessen eine einzelne Zahl (die Leuchtstärke) Bild für Bild weich laufen und hört auf, sobald sie steht
  • Das Liquid Glass der Schaltflächen ist stärker: Die Refraktionsverschiebung steigt von 14 auf 50, das Fasenband wurde verbreitert, und die Dinge, die es tatsächlich nach Glas aussehen lassen, kamen hinzu —— eine Spiegelkante oben, warme und kalte Dispersionssäume links und rechts sowie ein innerer Glanz. Gleichzeitig wurde die Unschärfe von 1,5px auf 0,8px zurückgenommen (Unschärfe löscht genau das Detail, von dem die Verschiebung leben soll)
  • Der ehrliche Vorbehalt bleibt: Nur Chrome und Edge rendern es, und die Refraktion ist nur sichtbar, wenn es etwas zu brechen gibt —— auf einer weißen Karte praktisch null, über einem kontrastreichen Bannerfoto dagegen deutlich. Der Schalter liegt in der Verwaltung unter „Systemeinstellungen → Optische Effekte" und ist standardmäßig aus
v1.9.35 Website 2026-10-02

Der erste Bildschirm zeigt nur noch das Foto, beim Scrollen steigt der Inhalt auf, und die Buttons haben Flüssigglas

  • Der erste Bildschirm ist jetzt eine Hero-Fläche: Auf einer Spielerseite mit Banner sieht man beim Ankommen nur den Seitenkopf und das Hintergrundfoto über den ganzen Viewport — der Inhaltsbereich wird gar nicht angezeigt. Eine Raste am Mausrad nach unten blendet den gesamten Inhaltsblock ein und hebt ihn an (weiterhin 28 % Transparenz); ganz nach oben gescrollt legt er sich wieder zusammen, beliebig oft
  • Warum sich die Inhaltsblöcke selbst bewegen und nicht ein Wrapper: Jeder Vorfahre mit einer Deckkraft unter 1 erzeugt eine neue Backdrop-Wurzel, und jede backdrop-filter-Fläche darin tastet dann einen leeren Hintergrund ab — das Milchglas bricht vollständig. Ein blockweises Ein- und Ausblenden hat keinen solchen Vorfahren. Die einzigen beiden position: fixed im Body (die Hintergrundebene und die angeheftete Namenszeile) liegen außerhalb dieser Menge, das Verschieben ist also unbedenklich
  • Flüssigglas-Brechung an Buttons (ein neuer Schalter unter Admin → Systemeinstellungen → Optische Effekte, standardmäßig aus): Eine Buttonkante verbiegt das Muster dahinter nun leicht, wie ein dickes Stück Glas. Verwendet wird eine SVG-Verschiebungskarte plus backdrop-filter; die Karte wird beim Öffnen der Seite einmal per Canvas gezeichnet, und es gibt kein Skript pro Frame
  • Nur Chrome und Edge rendern es: Safari und Firefox unterstützen dieses CSS-Feature nicht und scheitern still (kein Fehler, keine Zeichnung) — sie fallen auf das bisherige Milchglas zurück. Und eine Brechung braucht etwas zum Brechen — über einer glatten Fläche wie einer weißen Karte ist der Effekt praktisch null; sichtbar wird er nur über etwas mit Hell-Dunkel-Details wie dem Bannerfoto
v1.9.34 Website 2026-10-02

Die Karten lassen etwas mehr Foto durch, das Maus-Leuchten ist kleiner, und die angeheftete Zeile gleitet herein

  • Was sich ändert: Auf einer Spielerseite mit Banner lassen die großen Karten jetzt rund 28 % des Fotos durch statt 5-10 % (man sieht es wirklich), und die Statistik-Kacheln sowie die Radar-Karte wurden passend aufgehellt
  • Warum die Statistik-Kacheln wie zwei Farben wirkten: Das mausfolgende Leuchten war ein Fleck in kühlem Blau mit 320px Radius bei alpha .22. Bedeckte er die linke Kartenhälfte, maß Kachel 1 rgb(189,193,197) und Kachel 4 außerhalb des Flecks rgb(245,246,247) —— 56 Stufen Unterschied in einer Zeile. Der Fleck misst jetzt 200px bei alpha .10, und die Kacheln leuchten nicht mehr von selbst (es leuchtet immer die äußerste Karte); dieselbe Zeile misst nun 3 Stufen Unterschied
  • Die andere Hälfte des „Flackerns": Wanderte der Zeiger vom leeren Kartenbereich auf eine Kachel, wechselte das Ziel des Skripts zwischen der ganzen Karte und genau dieser Kachel, und das Leuchten sprang von einer großen Fläche auf einen kleinen Punkt. Nimmt man die Kacheln aus dem Leuchten heraus, entfällt dieser Sprung
  • Das Anheften hat jetzt ein Gleiten: Die Namenszeile senkt sich 10px und blendet unter der Navigation in 180ms ein. Ist „Bewegung reduzieren" aktiv, werden diese Animation und die Federrückmeldung der Schaltflächen abgeschaltet (das Maus-Leuchten bleibt)
v1.9.33 Website 2026-10-02

Die Namenszeile heftet sich beim Scrollen unter die Navigation

  • Was sich ändert: Auf einer Spielerseite mit Banner heftet sich die Zeile „Avatar + Name + Level + Abzeichen" beim Scrollen direkt unter die Seitennavigation, während die Karten darunter durchlaufen. Die Signatur gehört nicht zu dieser Zeile und scrollt wie bisher weg; die Zurück-Schaltfläche bleibt beim Namen
  • Warum `position: sticky` das nicht leisten konnte: Das Elternelement dieser Zeile ist .cdr-container, und das ist nur so hoch wie der Seitenkopf —— der Spielraum von sticky ist darin eingesperrt und die Zeile geht hinter dem Kopf mit. Die Zeile ist deshalb position: fixed, und ein Skript setzt an ihrer alten Stelle einen gleich hohen Platzhalter ein (fixed nimmt sie aus dem Fluss; ohne den Platzhalter springt die ganze Seite in dem Moment, in dem sie anheftet, um 86px nach oben)
  • Beim Anheften muss auch die Textfarbe kippen: Diese Zeile trägt normalerweise weiße Schrift über dem Bannerfoto, sitzt angeheftet aber auf hellem Glas —— weiß auf weiß ist unsichtbar (in einer gemessenen Fassung waren Avatar und „online"-Abzeichen da, die Namenszelle völlig leer). Der angeheftete Zustand schaltet Name, Level und Abzeichen deshalb auf die Tinte um, die auf Glasflächen verwendet wird
  • Betroffen sind nur Spielerseiten mit hochgeladenem Banner —— Seiten ohne Banner (etwa /players/zlc) wurden um kein einziges Byte angefasst
v1.9.32 Website 2026-10-02

Das Zeigerlicht leuchtet jetzt nur noch die eine Fläche aus, die es soll

  • Die Ursache war die Vererbung benutzerdefinierter Eigenschaften. Das Skript setzt .is-lit auf die Karte unter dem Zeiger, und --glass-spot wandert dann die Vererbungskette hinunter in jedes .stat-mini dieser Karte —— aus einem Schalter wurden sieben oder acht leuchtende Flächen. Genau das war zu sehen: „Meine Maus ist woanders, warum leuchtet alles?" Der Beleg: Die Statusleiste der Sonde hat einen spot=-Zähler bekommen, der nicht zählt, wie viele Elemente .is-lit tragen, sondern wie viele berechnete --glass-spot-Werte nicht transparent sind —— vor der Korrektur ergab der Zeiger auf der leeren Titelzone einer Karte lit=1 spot=8/27
  • Die Korrektur: Jede Glasfläche setzt --glass-spot nun selbst auf transparent zurück, wodurch die Vererbungskette dort endet; nur die tatsächlich überfahrene Fläche erhält vom Skript .is-lit. Nach der Änderung: spot=1/27
  • Eine zweite Falle, die dabei behoben wurde: Diese Zurücksetzung hat dieselbe Spezifität wie die .is-lit-Regel und steht weiter unten —— nach „der Letzte gewinnt" würde ein bloßes body.cdr-body .is-lit vollständig überschrieben und das Licht ganz verschwinden (gemessen lit=1 spot=0/27). Die .is-lit-Regel muss daher alle vier Selektoren auflisten und ihre Spezifität erhöhen. Wird dieser Schritt vergessen, kippt der Fehler von „leuchtet zu viel" direkt zu „leuchtet gar nicht"
  • Die Koordinaten werden außerdem beim Betreten eines neuen Elements synchron geschrieben, statt nur auf requestAnimationFrame zu warten: Sonst hat das erste Bild keine Koordinaten und der Lichtfleck blitzt in der Kartenmitte auf, bevor er zum Zeiger springt. Ein .is-lit ist jetzt genau eine leuchtende Fläche —— wo der Zeiger ist, leuchtet es
v1.9.31 Website 2026-10-02

Liquid Glass bekommt zwei Haptik-Details: Zeigerlicht und federnde Buttons

  • Dem Zeiger folgendes Licht: Bewegt sich der Zeiger über eine Glasfläche, folgt ein kleiner Fleck kühles Blauweiß —— nur die Karte unter dem Zeiger leuchtet auf, alles andere bleibt wie es war. Es ist eine radial-gradient-Schicht im Kartenhintergrund, die --glass-mx / --glass-my liest, wie das Skript sie schreibt. Keine zusätzlichen Knoten, kein Eingriff in den Stacking-Kontext, keine Störung der Kartenunschärfe. Im hellen Thema wird kein Weiß, sondern kühles Blauweiß verwendet: Eine weiße Karte (rgb 229~245) lässt sich durch weißes Licht nur um 6 Stufen anheben, was das Auge nicht wahrnimmt
  • Höheres Foto-Band im Seitenkopf: Das untere Padding von .page-head stieg von 30px auf 160px (insgesamt rund 317px) und schiebt die ganze Reihe weißer Karten nach unten —— Avatar, Name und Level-Badge liegen jetzt direkt auf dem Bannerbild. Das ist das gewünschte „mehr vom Hintergrund zeigen". Nur Höhe, keine neuen Inhalte, auf kleinen Bildschirmen 72px. Die Inhalte wurden bewusst nicht als Block nach unten geschoben: Das würde den dunkelsten Teil der oberen Maske verschenken und die weiß gefärbten Zeilen unlesbar machen
  • Federnde Buttons: Beim Drücken wird auf .955 gestaucht, beim Loslassen geht es mit cubic-bezier(.34, 1.56, .64, 1) zurück —— der zweite Kontrollpunkt hat y = 1.56 > 1, die Kurve schießt also über das Ziel hinaus und pendelt sich ein; dieses Überschwingen ist die „Feder". Reines CSS, kein JavaScript und keine Physik-Engine
  • Der prefers-reduced-motion-Fallback reduziert jetzt nur noch autonome Bewegung: Die Button-Feder (die nach dem Loslassen von selbst nachfedert) wird zu einem schlichten kurzen Übergang, das Druckfeedback bleibt. Das Zeigerlicht bleibt erhalten —— dem Zeiger zu folgen ist direkte Manipulation: Der Zeiger bewegt sich, nicht die Seite. Ihre eigene Liquid-Glass-Referenz sagt genau das: Displacement weg, Blur + Highlight behalten. Es ist zugleich die einzige Möglichkeit, das Licht auf dieser Maschine überhaupt zu sehen: Die Windows-Animationseffekte sind hier aus (MinAnimate = 0 / DragFullWindows = 0 / VisualFXSetting = 2), was Browser wahrheitsgemäß als reduce melden —— ein Gating darauf würde das Licht für immer verbergen
  • Alles oben Genannte gilt nur für Profile mit hochgeladenem Banner (der Block liegt weiterhin in $pubBgCss !== ''); jede andere Seite —— auch Profile ohne Banner —— wurde um kein einziges Byte verändert, und vier Assertions der Testsuite wachen genau darüber
  • Eine ehrliche Anmerkung: Beides sind „Gefühls"-Effekte und auf einem statischen Screenshot nicht zu sehen —— man muss den Zeiger wirklich über eine Karte bewegen und wirklich einen Button drücken. Es lohnt sich außerdem, die Windows-Animationen wieder einzuschalten (Einstellungen → Barrierefreiheit → Visuelle Effekte → Animationseffekte), sonst meldet Ihr Browser jeder Website, der Nutzer wünsche weniger Bewegung
v1.9.30 Website 2026-10-02

Liquid Glass neu gebaut: Die Kartenfarbe ändert sich beim Scrollen nicht mehr

  • Die Ursache lag nicht an der Rendering-Engine. Profilseiten hingen das Bannerbild mit background-attachment: fixed an body. Diese Angabe bedeutet „das Bild bleibt am Viewport fixiert" —— und sie ist keine eigene Compositing-Ebene: Der Browser muss sie für das backdrop-filter jeder Karte in jedem Frame neu sampeln; laufen Sampling-Fenster und Scrollposition auseinander, springt die Farbe. Gleichzeitig bewegen sich die Karten, während das Bild stehen bleibt, also überstreicht jede durchscheinende Karte das ganze Foto. Beides zusammen ergab „mal dunkel, mal hell, mal normal"
  • Behebung des Flackerns beim Scrollen: Der Hintergrund wanderte von body in eine eigene position: fixed-Ebene (body::before, z-index: -1, pointer-events: none, will-change: transform). Eine eigene Ebene kann zur Compositing-Ebene befördert werden, sodass die Sampling-Quelle über den gesamten Scroll eine bereits komponierte Bitmap ist
  • Behebung des Unterschieds im Ruhezustand: Die Karten bestimmen ihre Farbe nun selbst. Grundlage ist eine lineare Extrapolation aus Messungen —— Drift ≈ (1−alpha)×53, um unter 4 Stufen zu bleiben braucht es alpha ≥ .925. Große Karten gehen von 72 % → 95 % oben und 60 % → 90 % unten; Statistik-Chips von 80 %/70 % → 97 %/94 %; die Radarkarte von 76 %/66 % → 96 %/92 %. Das Foto scheint weiterhin zu 5~10 % durch —— daher kommt der Farbton des Glases
  • Das Glas ist jetzt ein mehrschichtiges Material: Rauschschicht + vertikaler Verlauf + streifender Kantenglanz + innere Refraktionsfase, alle Parameter als Variablen (--glass-blur --glass-sat --glass-highlight --glass-displacement --glass-noise). Eine ehrliche Anmerkung: Echte SVG-feDisplacementMap-Refraktion ist hier nicht machbar —— Chromium und Safari akzeptieren in backdrop-filter nur Filterfunktionen, niemals url(#svgfilter); eine innere Refraktionsfase nähert diesen Look daher an, statt ihn vorzutäuschen
  • Ergebnis: An derselben Stelle beträgt die Abweichung beim Scrollen nur noch 3~6 Stufen (18 in der Vorversion, ursprünglich 100), die Gesamthelligkeit liegt bei 229~245, im Dunkelmodus sind es nur 1~3 Stufen. Der text-shadow-Halo auf Glasflächen wurde ebenfalls entfernt —— bei stabiler Karte hilft er nicht mehr und frisst nur die Stämme von 12-px-Text
  • Ebenfalls behoben: „die Beschriftungen des Fähigkeitsradars sind schwer zu lesen". Es wurde keine Transparenz angefasst. Die Unterlabels „Serverdurchschnitt" gingen lediglich von .76rem auf .84rem der Hauptzeile, von gedämpftem Grau auf Textfarbe, plus etwas Gewicht. Die eigentliche Ursache: 12-px- und 13-px-CJK nehmen unter Windows unterschiedliche Antialiasing-Stufen. All das betrifft nur Profile mit hochgeladenem Banner; Seiten ohne Banner haben sich um kein Byte geändert
v1.9.29 Website 2026-10-02

Die Kartenhelligkeit schwankt beim Scrollen nicht mehr

  • Die Ursache war kein Rendering-Fehler. Profilseiten nutzen background-attachment: fixed für das Banner: das Bild bleibt am Viewport fixiert, während die Karten darüber hinwegscrollen —— jede durchscheinende Karte überstreicht also das ganze Foto: dunkler Himmel lässt sie dunkel werden, helle Gebäude lassen sie ausbleichen. Dieselbe Karte maß je nach Scrollposition zwischen rgb(99,107,125) und rgb(201,197,200) —— 100 Stufen Unterschied
  • Die Lösung ist, das Glas selbst dichter zu machen, denn Alpha ist der einzige Hebel, der Transparenz und Stabilität zugleich wahrt: große Karten gehen von 56 % → 72 % am oberen Rand und 34 % → 60 % unten; Statistik-Chips von 76 %/60 % → 80 %/70 %; die Radarkarte von 70 %/52 % → 76 %/66 %. Die Dichtestaffelung (große Karten am hellsten, Chips am dichtesten) bleibt unverändert
  • Ergebnis: an derselben Stelle beträgt die Schwankung beim Scrollen jetzt nur noch 14 Stufen statt 47, und die Gesamthelligkeit liegt bei 163~206 —— eine klar helle Milchglasfläche statt eines trüben Graus. Der Dunkelmodus wurde passend verdichtet (die 82 %/72 %-Stufe), dort bleiben nur 4~8 Stufen Drift
  • Betroffen sind nur Profile mit hochgeladenem Banner. Seiten ohne Banner (etwa /players/zlc) geben dieses Glas-Stylesheet gar nicht aus —— dort hat sich kein einziges Byte geändert
v1.9.28 Website 2026-10-02

„86 Stunden Spielzeit pro Tag" ist behoben

  • Die alte Formel war „Gesamtspielzeit ÷ Tage mit Sitzungseinträgen" —— der Zähler umfasst zehn Jahre, der Nenner nur die 11 Tage seit dem 2026-09-12. Die Division zweier Epochen ergab „86 Stunden pro Tag". Nicht der Zähler war falsch, dem Nenner fehlte der Großteil
  • Der Nenner ist jetzt die Lebenszeit-Zahl aktiver Tage: Chatnachrichten, Erfolge und Spielsitzungen werden tageweise vereinigt —— für dieses Konto 423 Tage. 941 Stunden ÷ 423 Tage = 2 Stunden pro Tag, endlich die richtige Größenordnung
  • Zwei weitere Dinge nebenbei behoben: die Anmeldezahl nutzt nun den Gesamtwert (1.655; zuvor zeigten 929 ältere Spieler eine 0), und die längste einzelne Sitzung kann nicht mehr das unmögliche Paar „21 Minuten Durchschnitt, 0 Stunden Maximum" anzeigen
  • Drei Erfolge wurden ebenfalls freigeschaltet: 7 / 30 / 100 aktive Tage waren wegen desselben Nenners nie erreichbar —— serverweit gab es nur 16 Tage mit Sitzungseinträgen, die Schwellen lagen außer Reichweite
  • Sicherheitsaudit, Teil eins: mehrere tatsächlich ausnutzbare Lücken wurden geschlossen —— CSS-Escapes konnten eine externe URL in einem hochgeladenen SVG verstecken (ein Avatar taugte zum Ausspähen von Besucher-IPs), das Admin-Panel konnte Dateien außerhalb von uploads löschen, die Anmeldung hatte eine offene Weiterleitung, ein Skript in einem Backup-Archiv konnte als Webshell landen, und zwei lokale Debug-Skripte waren live erreichbar
  • Sicherheitsaudit, Teil zwei: Härtung von API und Verwaltung —— eine leere Liste kann nicht mehr mit einem Aufruf alle Bans des Servers löschen, Meldungen haben Zeilenobergrenzen, Whitelist-Namen werden geprüft, eine fehlerhafte Chatzeile lässt nicht mehr den ganzen Stapel scheitern, und Datenbankfehler geben keine Details mehr an Besucher aus
v1.9.27 Website 2026-10-02

Die Kleinschrift im Radarfeld ist jetzt lesbar

  • Die kleine Schrift im Feld „Fähigkeits-Radar" (Achsennamen, die Zahlen rechts, die „Server-Durchschnitt"-Zeilen und der Hinweis darunter) lag auf 34 % Glas, dessen dunkelste Stellen nur 3,3 : 1 Kontrast boten —— unter den 4,5 : 1, die kleine Schrift braucht. Das ist das „kann ich nicht lesen", das du gemeldet hast, und es war mein Versäumnis in der letzten Version
  • Zwei Änderungen: die Farbe der Sekundärschrift wurde eine Stufe dunkler, und das Radar-Feld bekam einen eigenen Untergrund —— fast jede Zeile dieser Karte ist Kleinschrift, sie sollte sich also nicht dieselbe Transparenz mit den großen Karten teilen
  • Die großen Karten blieben unberührt: Skin-Karte, Erfolge-Karte und Fußzeile stehen weiterhin bei 34 %, das Bild scheint wie zuvor durch, und die Statistik-Kacheln behalten ihren dichteren Untergrund
  • Das dunkle Theme bekam dieselbe Behandlung. Und das passiert weiterhin nur auf Seiten, deren Besitzer ein Banner hochgeladen hat —— Seiten ohne Banner haben sich keinen Pixel bewegt
v1.9.26 Website 2026-10-02

Eine Stufe durchsichtiger, und der Text hält trotzdem

  • Profile: oben von 62 % auf 56 %, unten von 40 % auf 34 %. Das Bild dahinter ist jetzt wirklich zu sehen —— die senkrechten Lichtstreifen der Türme, der Horizont und die blockigen Silhouetten scheinen durch, statt einer Platte aus Mattglas
  • „Bild sehen" und „Text lesen" widerstreiten sich, also werden sie getrennt behandelt: Die Statistik-Kacheln (die kleinschriftigen Bereiche wie „Spielzeit" und „Anmeldungen") behalten einen eigenen, dichteren Untergrund (76 % → 60 %), während die großen Karten sehr klar bleiben. Klein ist satter, groß ist durchsichtiger —— die Umkehrung der üblichen Apple-Hierarchie, und das mit Absicht
  • Der Text hat einen sehr dezenten Halo in derselben Richtung bekommen (text-shadow) —— unsichtbar bei hellem Untergrund, zeigt er sich nur bei dunklem. Die Schrift trägt damit ihren eigenen lokalen Untergrund. Erst das macht 34 % vertretbar
  • Das dunkle Theme hat passendes dunkles Glas und einen dunklen Halo erhalten. Und all das passiert weiterhin nur auf Seiten, deren Besitzer ein Banner hochgeladen hat —— Seiten ohne Banner haben sich um keinen Pixel bewegt
v1.9.25 Website 2026-10-01

Durchscheinenderes Glas, und näher an Apple

  • Profile: Schluss mit dem gleichmäßigen „68 % Weiß" —— jetzt ein vertikaler Verlauf, oben hell und unten durchlässiger (62 % → 40 %), die Gauß-Unschärfe von 22 px auf 32 px, dazu saturate(180%) und brightness(1.12). Glas nach Apple-Art nimmt die Farbe dahinter auf und hebt sie leicht an; bloßes Weichzeichnen sieht nur nach Mattglas aus
  • Das Glas hat jetzt rundum eine Refraktionskante —— ein 1 px breiter Streiflicht-Highlight oben und eine sehr dezente Innenkontur. Der Schatten ist in zwei Ebenen geteilt (ein enger Kontaktschatten und ein weit auslaufender Umgebungsschatten), damit die Scheibe über dem Bild zu schweben scheint statt darauf zu kleben
  • Behoben, was erst mit dem durchscheinenderen Glas auffiel: Sekundärbeschriftungen wie „Spielzeit" und „Anmeldungen" waren kaum noch zu sehen —— ihr Grau erreicht auf durchscheinendem Weiß nur 2,5:1. Im Glasinneren ist es jetzt eine Stufe dunkler, während die kleine Schrift direkt auf dem Banner unverändert bleibt
  • Das dunkle Theme hat passende Werte für dunkles Glas bekommen. Und all das passiert weiterhin nur auf Seiten, deren Besitzer ein Banner hochgeladen hat —— Seiten ohne Banner haben sich um keinen Pixel bewegt
v1.9.24 Website 2026-10-01

Profile gibt es jetzt in „flüssigem Glas"

  • Karten, das Skin-Panel, die sechs Statistik-Kacheln und der gesamte Footer sind jetzt durchscheinendes Glas (68 % Weiß + 22 px Gauß-Unschärfe), durch das das Banner verwischt hindurchscheint. Die Schrift bleibt dunkel und damit auf dem Bild lesbar; im dunklen Theme wird daraus dunkles Glas
  • In der Kopfzeile der Erfolgs-Karte gibt es jetzt Alle einklappen / Alle ausklappen —— alle 8 Kategorien auf einmal, kein Scrollen mehr bis unter die 98 Abzeichen
  • Die Verwaltungs-Schublade unten rechts hat einen vierten Reiter, Avatare / Hintergründe, wo wartende Uploads freigegeben oder abgelehnt werden können. Es sind dieselben Daten wie unter „Spieler & Daten → Avatare / Hintergründe" —— wo geprüft wird, ist egal
  • Das alles passiert nur auf Seiten, deren Besitzer ein Banner hochgeladen hat —— Charakterseiten ohne Banner haben sich um keinen Pixel bewegt (ich habe die Screenshots vorher/nachher Pixel für Pixel verglichen)
  • Wo Glas nicht geht (ältere Browser), greifen wieder die alten deckenden Karten. Die Systemeinstellung „Transparenz reduzieren" wird jedoch bewusst nicht befolgt —— auf dem Windows des Betreibers sind die Transparenzeffekte aus; würde man sie befolgen, sähe er selbst nie das Glas
v1.9.23 Website 2026-10-01

Die Profilseite kann jetzt den Bildschirm füllen

  • Hintergrund —— wer ein Banner hochgeladen hat, dessen Charakterseite nutzt dieses Bild, um das ganze Browserfenster zu füllen; Avatar, Name, Level und Ort liegen darüber. Seiten ohne Banner ändern sich um keinen Pixel
  • Ort —— unter Ich → Individualisierung lässt sich ein Land wählen (bei China zusätzlich eine Provinz); er erscheint im Profil neben „Offline / Rang #8". Ohne Auswahl wird nichts angezeigt
  • Avatare in der Spielerliste bevorzugen jetzt das selbst hochgeladene Bild. Früher wurde immer der offizielle Skin-Avatar von einem ausländischen Host geladen, was hier meist scheitert —— daher die bunten Buchstabenkacheln
  • Hochgeladene Avatare und Hintergründe werden vor der Veröffentlichung geprüft. Währenddessen bleibt das alte Bild sichtbar, es gibt also nie eine „halb neue" Seite; das Entfernen wirkt dagegen sofort
  • Das Upload-Limit ist großzügiger: Banner bis 3840×2160 (statt 1920×1080), und SVG wird akzeptiert —— SVGs werden bereinigt: Skripte, externe Verweise und eingebettetes HTML fliegen raus
v1.9.22 Website 2026-10-01

Neue Fenster · und alte Sperren sind zurück

  • Alle 16 Fenster der Website nutzen jetzt den eigenen Dialog. Früher waren das die Browser-Fenster mit „cloudridge.cn meldet" in der Kopfzeile —— auf dem Handy besonders störend und völlig losgelöst vom Stil der Website. Titel, Text und Schaltflächen kommen nun von uns; gefährliche Aktionen haben einen roten Knopf, Esc bricht ab, Enter bestätigt, und der Fokus kehrt zur angeklickten Schaltfläche zurück
  • Die 8 Spieler und 3 IPs, die beim Abschalten des alten Servers noch gesperrt waren, stehen wieder auf der Sperrliste —— die öffentliche Seite zeigt nun 12 Spieler und 7 IPs. Namen, IPs, Sperrzeiten und ausführende Personen sind wortgetreu aus den Archiven übernommen, nichts davon ist erfunden. Eine Einschränkung: Das Mod liest die Sperrdateien des Servers nur und meldet sie —— wer im Spiel wirklich blockiert wird, entscheidet weiterhin die Liste des Servers; dafür muss er sie neu einlesen
v1.9.21 Website 2026-10-01

Dieser „unbekannte Spieler" war dieselbe Person

  • In der Spielerliste stand schon immer eine Zeile „未知玩家 · 000000" (unbekannter Spieler), als wäre da eine vierte, nie gezählte Person. Die Erklärung: Das floodgate des alten Servers vergab an Bedrock-Spieler eine UUID aus dem Platzhalterbereich 00000000-0000-0000-0009-…, und das Mod konnte nur einen *Namen* melden —— der in diesem Moment genau diese UUID war. In Wahrheit war es birdzhonghuifei auf Bedrock; die Zeile wurde mit ihrem eigentlichen Besitzer zusammengeführt
  • Die Regel beim Zusammenführen: Zähler (Spielzeit, Anmeldungen, Tode, Ab- und Aufbau, Distanz) werden addiert, Fortschritte vereinigt, und erster Beitritt nimmt den früheren der beiden Werte, letzter Besuch den späteren —— Zeitstempel darf man niemals addieren. Die neun Abzeichen der Zeile besaß der Eigentümer längst, die Doppelten wurden verworfen. Die Rangliste ist eine Zeile kürzer, und birdzhonghuifeis Zahlen sind jetzt vollständiger
v1.9.20 Website 2026-10-01

Im Kalender direkt Jahr und Monat anspringen

  • Das Kalenderfenster hat jetzt oben links zwei Auswahlfelder für Jahr und Monat: Jahr wählen, Monat wählen, und schon ist man mit zwei Klicks in jedem Monat —— kein monatweises Blättern mit ‹ mehr. Die Vor-/Zurück-Schaltflächen und „Heute" bleiben, und die Auswahlfelder ziehen beim Blättern mit
  • Nebenbei eine Sortierschwäche behoben: Beim Sortieren nach „Erster Beitritt" landeten Zeilen mit unbekanntem Datum auf den Plätzen 1–4, was die ganze Rangliste kaputt aussehen ließ —— „kein Wert" ist nicht dasselbe wie „der früheste". Solche Zeilen rutschen jetzt in beiden Richtungen ans Listenende
v1.9.19 Website 2026-10-01

229 weitere Chat-Zeilen wiederhergestellt

  • Das Log des TrChat-Plugins beginnt erst am 2023-09-01, daher fehlten Teile des späten Jahres 2024. Drei nie importierte CoreProtect-Datenbanken alter Server enthielten 34,417 Chat-Zeilen von 2024-07 bis 2024-12; nach der Entdopplung sind das netto 229 Nachrichten verteilt auf 37 Tage, die älteste vom 2024-07-11
  • Entdoppelt wird nach „dieser Spieler hat dasselbe schon innerhalb von ±5 Sekunden gesagt“ —— dieselbe Nachricht wird einmal von TrChat und einmal von CoreProtect erfasst, ihre Zeitstempel weichen meist eine Sekunde ab und überschreiten gelegentlich die Minutengrenze; ein Vergleich je Minute würde diese paar Dutzend als Duplikate wieder hereinlassen
  • Diese 37 Tage waren nicht von Anfang an leer —— TrChat hatte den Großteil aufgezeichnet; zurückgekommen sind die vereinzelten Zeilen, die es verpasst hatte. Beim Durchblättern dieser Tage von Juli bis Dezember 2024 ist das Gespräch nun vollständiger
v1.9.18 Website 2026-10-01

Nebencharaktere lassen sich in ihrer Zeile ausklappen

  • Zeilen der Spielerliste mit mehr als einem Charakter beginnen jetzt mit einem Pfeil: standardmäßig eingeklappt, ein Klick klappt jeden Charakter in eine eigene Zeile aus – mit eigener Spielzeit, Anzahl der Logins, letztem Online und Status (die Hauptzeile ist die Summe, die Unterzeilen die Einzelwerte). Ein weiterer Klick klappt wieder ein
  • Sucht man den Namen eines Nebencharakters, klappt die Zeile automatisch auf —— eine Suche nach Winter zeigt dessen Werte direkt neben denen von Fruity_oxygen, statt raten zu müssen, unter welchem Namen er steckt. Nebenbei ein alter Fehler behoben: Beim Sortieren nach Spielername hatte die Kopfzeile eine Spalte weniger als der Inhalt, wodurch die ganze Tabelle verrutschte
v1.9.17 Website 2026-10-01

Rangliste nach Konten · drei Jahre Chat wiederhergestellt

  • Die Spielerliste zeigt jetzt eine Zeile pro Website-Konto: Figuren unter demselben Konto werden zusammengerechnet (Fruity_oxygen und Winter verschmelzen zu einer Zeile, ElfinLettuc und Faithe ebenso), während Spieler ohne verknüpftes Konto je eine eigene Zeile behalten. Das Abzeichen „N Figuren" neben dem Namen zeigt, wer mit wem zusammengelegt wurde — die alte Liste trennte einen Zweitaccount von seinem Hauptaccount und ließ den Zweitaccount wie verschwendete Zeit aussehen
  • Eine neue Kontoseite (/accounts/<id>): jede Figur des Kontos wird einzeln mit eigener Spielzeit und Anmeldezahl aufgeführt, und die Summen darüber sind deren Addition. Die Seite ist vollständig öffentlich, ohne Anmeldung. Nebenbei wurde ein fehlerhafter Datensatz bereinigt: eine Figur verwies auf eine nicht mehr existierende Konto-ID
  • Drei Felder, die auf Platzhalterwerten festhingen, sind nun gefüllt: zuletzt online (929 Figuren behaupteten alle 2026-09-13), erstmals beigetreten (936 ebenso falsche 2026-09-13) und Anmeldezahl (websiteweit nur 291, 928 Spieler zeigten „—"). „Zuletzt online" stammt aus der Änderungszeit der Server-Speicherdateien, „erstmals beigetreten" und die Anmeldezahl aus den Protokollen aller Servergenerationen. wwwsum zeigt jetzt ehrlich 2024-08-22 und 7Strawberry 2024-03-07, und die Anmeldesumme stieg von 291 auf 21.766
  • Das Chatfenster hat alles seit der Servereröffnung zurückgeholt: von der allerersten Zeile am 2022-12-16 bis zur Übernahme durch die Live-Meldung des Mods am 2026-09-25 sind es 174.457 Nachrichten und Beitritts-/Austrittsereignisse (124.024 Nachrichten, 25.424 Beitritte, 25.009 Austritte). Früher gab es nur für die wenigen Tage mit installiertem Mod Verlauf; jetzt zeigt jeder auf der Webkarte angeklickte Tag das damalige Gespräch
  • Der Kalender markierte nur die letzten 400 Tage als anklickbar, sodass 492 der 729 wiederhergestellten Tage nicht zu öffnen waren — wiederhergestellt, aber unsichtbar. Jetzt ist jeder Tag mit Einträgen anklickbar. Außerdem wich die Zahl der „registrierten Spieler" zwischen Startseite und Liste um 2 ab (791 zu 789); beide nutzen nun die Kontozählung

Die Daten sind das Veröffentlichungsdatum der jeweiligen Version. Du hast ein neues Problem gefunden? Melde es im Forum oder wende dich direkt an den Serverinhaber.