换页不再白屏一下、注册页的「手机号注册」能点了
- 点站内链接时,旧页面不再先淡成一片白底 —— 之前新页面要等网络往返才到,中间那一下就是白屏。现在旧页面保持原样,换页后新页面照旧淡入、内容依次上滑。
- 注册页的「手机号注册」原来点了像是没反应:它只是把单选按钮选中,页面上的提示文案与「发验证码」的去向都没变。现在切一下就整页重渲染,提示、去向、表单都跟着变。
- 如果站点没有配置短信服务,注册页不会再把你留在「手机号注册」这个空壳上,而是自动退回邮箱注册。
Toutes les mises à jour du site et du mod serveur, les plus récentes en premier
Tu trouveras ici l'historique complet du site CloudRidge et du mod serveur, du plus récent au plus ancien, pour retrouver quand une fonctionnalité est arrivée ou quand un bug a été corrigé.
#t-xxx ouvre toujours directement un outil, et sur téléphone la barre défile horizontalement. Le texte en dégradé passe de deux couleurs figées à 2~6 arrêts : un clic sur la barre en ajoute un, un glissement le déplace, on sélectionne un arrêt puis « Supprimer cette couleur » le retire, et les couleurs sont interpolées caractère par caractère selon la position, donc les codes § / MiniMessage / tellraw / MOTD changent ensemble, et un MOTD trop long déclenche un avertissement_admlogin.php de débogage local doit désormais renvoyer 404 en production (il pouvait faire d’un visiteur un administrateur), et ?to= ne peut plus sortir du site ; ② le ping / dns de la page de test de débit confiait un nom de domaine pour sonder un port, ce qu’un DNS rebinding pouvait détourner vers le réseau interne — désormais seule l’IP déjà validée est contactée ; ③ falsifier X-Real-IP / CF-Connecting-IP permettait de contourner la limitation par IP ; ces en-têtes ne sont maintenant acceptés que si la requête vient réellement du loopback. Pour fermer ③ complètement, il faut injecter X-CDR-Proxy-Secret dans nginx et renseigner security.proxy_secret dans site/config/config.php — cela touche la configuration du serveur, donc j’attends ton feu vert.127.0.0.1:8100 (une adresse interne, utilisée seulement pour le test). Elle affiche désormais l’adresse publique de la carte.body.cdr-body::before (contenu généré), et le contenu généré est toujours peint avant les vrais enfants, donc la vidéo recouvrait entièrement le dégradé qui ne servait à rien.pub-bg-video était à la fois la classe de l'élément vidéo et la classe d'activation posée sur <html>. Toute la règle de la couche vidéo fixe plein écran est donc tombée sur l'élément racine — la racine est devenue position: fixed, la hauteur de page s'est effondrée à un écran, et la molette n'avait plus rien à faire défilerpointer-events: none s'hérite : tout l'arbre du document a cessé de recevoir la souris, seul <html> la captait, et le bouton Retour était inatteignablepub-bg-on et restreindre la règle de l'élément à video.pub-bg-video, pour que les deux ne puissent plus jamais se confondre<html> en croyant mesurer la couche vidéoblur(32px) saturate(180%), et sept ou huit surfaces de verre sont visibles en même temps sur cette page — chaque image défilée devait donc rééchantillonner tous les pixels situés derrière/* 6% */ —— les commentaires CSS ne s'imbriquent pas, ce */ a ferme le commentaire exterieur trop tot, le } suivant a ferme la regle trop tot, et l'analyseur a avale toutes les regles suivantesbackground: none dans le même bloc effaçait le dégradé propre du bouton principal. Un fond bleu nuit avec texte blanc est devenu blanc sur blanc, et le bouton a totalement disparubackground: none effaçait aussi les boutons en chargement, que les couches de verre excluent —— le bouton devenait entièrement transparent pendant ces quelques secondes. Ils récupèrent désormais leur fondtransition remplace une déclaration entière et il n'existe pas de moyen d'en ajouter une à une seule propriété ; il faudrait un sélecteur qui écrase aussi les animations d'entrée et de survol des cartes, ce qui transformerait l'apparition au défilement en coupure franche. Le script fait donc glisser une seule valeur numérique (l'intensité du halo) image par image, et s'arrête dès qu'elle se stabilisebackdrop-filter à l'intérieur échantillonne alors un fond vide — le verre dépoli casse complètement. Un fondu bloc par bloc n'a pas cet ancêtre. Les deux seuls position: fixed du corps (la couche de fond et la ligne de nom épinglée) sont hors de cet ensemble, donc les déplacer est sans risquebackdrop-filter ; la carte est dessinée une seule fois en canvas à l'ouverture de la page, et il n'y a aucun script par image.cdr-container, dont la hauteur ne dépasse pas celle de l'en-tête de page ; la plage de déplacement de sticky y est donc enfermée —— au-delà de l'en-tête, la ligne s'en va avec le reste. La ligne est donc en position: fixed, et un script insère un placeholder de même hauteur là où elle se trouvait (fixed la retire du flux ; sans le placeholder, toute la page saute de 86px au moment où elle se fixe)/players/zlc) n'ont pas été touchées d'un seul octet.is-lit sur la carte sous le pointeur, et --glass-spot descend alors toute la chaîne d'héritage jusque dans chaque .stat-mini de cette carte —— un seul interrupteur devenait sept ou huit surfaces éclairées. C'est exactement ce que vous avez vu : « ma souris est ailleurs, pourquoi tout s'est allumé ? » La preuve : la barre d'état de la sonde a gagné un compteur spot= qui ne compte pas les éléments portant .is-lit mais combien de valeurs --glass-spot calculées ne sont pas transparentes —— avant correction, poser le pointeur sur la zone vide du titre d'une carte affichait lit=1 spot=8/27--glass-spot à transparent pour elle-même, ce qui coupe la chaîne d'héritage à cet endroit ; seule la surface réellement survolée reçoit .is-lit du script. Après correction : spot=1/27.is-lit et se trouve plus bas, donc par « le dernier gagne », un simple body.cdr-body .is-lit serait entièrement écrasé et le reflet disparaîtrait (mesuré lit=1 spot=0/27). La règle .is-lit doit donc énumérer les quatre sélecteurs et remonter sa spécificité. Oubliez cette étape et le bug passe de « s'allume trop » à « ne s'allume plus du tout »requestAnimationFrame : sinon la première image n'a pas de coordonnées et la lueur apparaît au centre de la carte avant de sauter vers le pointeur. Un .is-lit correspond désormais à une seule surface éclairée —— là où est le pointeur, là est la lumièreradial-gradient peinte dans le fond de la carte, qui lit --glass-mx / --glass-my écrits en direct par le script. Aucun nœud ajouté, aucun contexte d'empilement touché, aucune gêne pour le flou de la carte. Le thème clair n'utilise pas du blanc mais un bleu-blanc froid : sur une carte blanche (rgb 229~245), la lumière blanche ne peut monter que de 6 niveaux, ce que l'œil ne perçoit pas.page-head passe de 30px à 160px (environ 317px au total), ce qui pousse toute la rangée de cartes blanches vers le bas : l'avatar, le nom et le badge de niveau reposent maintenant directement sur l'image de bannière —— c'est le « montrer davantage le fond » demandé. De la hauteur uniquement, aucun contenu ajouté, et 72px sur petit écran. Le contenu n'a volontairement pas été décalé en bloc : cela gâcherait la partie la plus sombre du masque du haut et rendrait illisibles les lignes passées en blanccubic-bezier(.34, 1.56, .64, 1) —— le second point de contrôle a y = 1.56 > 1, la courbe dépasse donc sa cible avant de se stabiliser ; ce dépassement est le « ressort ». CSS pur, sans JavaScript ni moteur physiqueprefers-reduced-motion ne réduit plus que le mouvement autonome : le ressort du bouton (qui rebondit tout seul après le relâchement) devient une simple transition courte, avec toujours un retour à l'appui, tandis que le reflet du pointeur est conservé —— suivre le pointeur est une manipulation directe : c'est le pointeur qui bouge, pas la page. Votre propre référence de verre liquide dit exactement cela : retirer le déplacement, garder le flou et le reflet. C'est aussi le seul moyen pour cette machine de voir le reflet : les effets d'animation de Windows y sont désactivés (MinAnimate = 0 / DragFullWindows = 0 / VisualFXSetting = 2), ce que les navigateurs rapportent fidèlement comme reduce —— conditionner le reflet à cela le cacherait définitivement$pubBgCss !== '') ; toutes les autres pages —— y compris les profils sans bannière —— n'ont pas changé d'un octet, et quatre assertions de la suite de tests le garantissentbody avec background-attachment: fixed. Cette déclaration signifie « l'image reste fixée au viewport », et ce n'est pas une couche composite à part —— le navigateur doit la rééchantillonner à chaque image pour le backdrop-filter de chaque carte ; quand la fenêtre d'échantillonnage et la position de défilement divergent, la couleur saute. En parallèle, les cartes bougent pendant que l'image reste immobile : chaque carte translucide balaie donc toute la photo. Les deux ensemble produisaient « tantôt sombre, tantôt clair, tantôt normal »body pour une couche dédiée position: fixed (body::before, z-index: -1, pointer-events: none, will-change: transform). Une couche dédiée peut être promue en couche composite : la source d'échantillonnage devient une seule bitmap déjà composée pour tout le défilement--glass-blur --glass-sat --glass-highlight --glass-displacement --glass-noise). Une précision honnête : la vraie réfraction SVG feDisplacementMap n'est pas réalisable —— Chromium et Safari n'acceptent que des fonctions de filtre dans backdrop-filter, jamais url(#svgfilter) ; un chanfrein intérieur en approche donc l'effet au lieu de faire semblanttext-shadow des surfaces vitrées a aussi été retiré —— sur une carte stable il n'aide plus et ne fait que manger les fûts des textes de 12 pxbackground-attachment: fixed pour la bannière : l'image reste fixée au viewport pendant que les cartes défilent —— chaque carte translucide balaie donc toute la photo : ciel sombre, elle s'assombrit ; bâtiments clairs, elle se délaie. La même carte mesurait de rgb(99,107,125) à rgb(201,197,200) selon la position, soit 100 niveaux d'écart/players/zlc) n'émettent pas du tout cette feuille de style : pas un seul octet n'a changé pour ellestext-shadow) —— invisible quand le fond est clair, il n'apparaît que lorsqu'il est sombre : la typographie porte ainsi son propre fond local. C'est ce qui permet de descendre à 34 %saturate(180%) et brightness(1.12). Le verre façon Apple capte la couleur située derrière et l'éclaircit légèrement ; un simple flou ne donne que du dépoli00000000-0000-0000-0009-…, et le mod ne pouvait signaler qu'un *nom* —— lequel, à cet instant, était précisément cet UUID. Il s'agissait en réalité de birdzhonghuifei jouant sur Bedrock ; la ligne a été fusionnée avec son propriétairebirdzhonghuifei sont plus complets‹ mois par mois. Les boutons précédent/suivant et « Aujourd'hui » sont toujours là, et les listes suivent quand vous naviguezTrChat ne commence que le 2023-09-01, ce qui laissait des trous dans la fin 2024. Trois bases CoreProtect d'anciens serveurs, jamais importées, contenaient 34,417 messages de 2024-07 à 2024-12 ; après déduplication, cela fait 229 messages nets répartis sur 37 jours, le plus ancien du 2024-07-11TrChat et une fois par CoreProtect, leurs horodatages diffèrent souvent d'une seconde et franchissent parfois la minute ; une comparaison à la minute laisserait ces quelques dizaines de doublons repasserTrChat en avait enregistré la majeure partie ; ce qui revient, ce sont les quelques lignes qu'il avait manquées. Parcourir ces journées de juillet à décembre 2024 montre désormais une conversation plus complèteWinter affiche ses chiffres juste à côté de ceux de Fruity_oxygen, sans avoir à deviner sous quel nom il se cache. Correction au passage d'un ancien défaut : le tri par nom de joueur laissait l'en-tête avec une colonne de moins que le corps, ce qui décalait tout le tableauFruity_oxygen et Winter fusionnent en une ligne, ElfinLettuc et Faithe de même), tandis que les joueurs sans compte lié gardent chacun leur ligne. Le badge « N personnages » à côté du nom indique qui a été regroupé avec qui — l'ancien classement séparait un alt de son main et donnait l'impression que l'alt avait joué pour rien/accounts/<id>) : chaque personnage du compte est listé avec son temps de jeu et son nombre de connexions, et les chiffres récapitulatifs au-dessus sont leur somme. La page est entièrement publique, sans connexion. Une donnée erronée a été nettoyée au passage : un personnage pointait vers un identifiant de compte inexistantwwwsum affiche désormais honnêtement 2024-08-22 et 7Strawberry 2024-03-07, et le total des connexions est passé de 291 à 21 766Les dates correspondent à la sortie de chaque version. Si tu trouves un nouveau problème, signale-le sur le forum ou contacte directement le propriétaire du serveur.