更新履歴

ウェブサイトとサーバーMODの更新履歴です。新しいものから順に並んでいます

CloudRidge のウェブサイトとサーバーMODの更新を、新しい順にまとめました。あの機能がいつ追加されたのか、あの不具合がいつ直ったのかを振り返りたいときにどうぞ。

バージョンで絞る 解除

絞り込み中: 109 / 127 件

v1.9.90 ウェブサイト 2026-11-01

v1.9.90 · トップの配置を刷新、3D がまたドラッグできるように

  • トップを作り直しました。タイトルは一行を独占し、3D 投影は左、サーバー参加と現在オンラインのカードは右に並びます。スマートフォンでは一列に積み重なります。
  • 3D がドラッグできない不具合を修正しました。透明なプレースホルダーが二枚キャンバスに重なり、ポインターイベントをすべて奪っていました。今はボタンとリンクだけがクリックを受け取り、それ以外はドラッグできます。
  • トップのモデルを、あなたがくれたブラックホールの投影図をそのまま焼き込んだものに差し替えました(手作りのものは廃止)。ガラス板・壁・ハーフブロックを実際の厚みで描画するので、透かし構造が見えるようになりました。
v1.9.89 ウェブサイト 2026-11-01

v1.9.89 · ブラックホールを作り直しました

  • トップのブラックホールを作り直しました。円盤は二層に薄く、すり鉢はより深く大きく、中心には本当の穴、内側に事象の地平線の光輪、外側に四本の螺旋アーム。上から見ると渦に見え、もうケーキのようには見えません。
  • カメラの俯角を 0.62 から 0.78 に上げ、穴の中をのぞき込む構図にしました。モデル全体も上へ移動し、タイトルやボタンに重なりません。
  • トップの重なりを修正しました。下部の雲の帯がサーバーアドレスの枠に重なっていたため、専用の余白を確保しました。
v1.9.88 ウェブサイト 2026-11-01

ファーストビューを中央寄せに、ブラックホールは手作りに

  • タイトルが上、モデルが中央、ボタンが下に。オンラインカードはファーストビューの下へ移動しました。
  • ブラックホールの投影は 1380 万ブロック・565×565 で、ファーストビューでは色のノイズにしかなりません。そこで手作りで再構成しました(同心円リング・暗い瞳・機械の縁、5700 ブロック・33 KB)。
  • スマートフォンは従来どおり静止ポスター(新しいブラックホール画像・54 KB)で、「3D に入る」を押したときだけレンダラーを読み込みます。
v1.9.87 ウェブサイト 2026-11-01

アカウントの補完と、変更時の本人確認

  • QQ で作成したアカウントは、初回ログイン時にパスワードの設定とメールアドレスまたは電話番号の確認が必要です。
  • メールアドレスや電話番号の変更には、現在の宛先に届く確認コードが必要になりました。
  • 連携する QQ を変えるには、現在のパスワードの入力が必要になりました。
  • これまでに使ったことのない端末からログインすると、確認済みのメールアドレスに通知が届きます。
v1.9.86 ウェブサイト 2026-10-31

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

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

ヘッダーは「ログイン」1 つに、3D ヒーローの大きさを調整

  • ヘッダーから QQ の入口を外しました。未ログイン時は 2 つのボタンが並んでいましたが、今は「ログイン」だけです。QQ はログイン画面と登録画面にのみ表示されます。
  • 3D のカメラ距離をモデルの高さから計算するようにしました。画面が高くてもシーンが画面を埋め尽くさず、低くても小さく潰れません。
  • ブロックの配色を桜の色にまとめました。真紅の木材・ネザーウォート・サンゴを桜の木材・花びら・葉に対応づけ、色のノイズに見えなくしています(ブロックの配置は一切変えていません)。
v1.9.84 ウェブサイト 2026-10-31

ファーストビューがドラッグで回せる3Dシーンになりました

  • ファーストビューが丸ごと3Dの庭園シーンになりました。ドラッグで回転、ホイールで拡大、クリックでブロックを壊せます(10秒で元に戻ります)。
  • スマートフォンやWebGL2非対応ブラウザでは3Dを強制読み込みしません。同じ角度の静止ポスターを表示し、隅の「3Dで見る」を押したときだけ読み込みます。
  • ページ遷移も滑らかに:現在のページがフェードアウトし、次のページがフェードインしながら各ブロックが順にせり上がります。「視差効果を減らす」が有効なら従来どおりの即時遷移です。
  • 目立ちすぎたQQの青いタイルをやめ、テンセント公式の最小16×16アイコンにしました。他のアイコンと同じ重さです。
v1.9.83 ウェブサイト 2026-10-31

QQ ログインボタンを全サイトで一つに統一

  • ログインページ、登録ページ、ヘッダー、マイページが同じ QQ ボタンを使うようになりました。テンセント公式の小アイコンを、当サイト自前の枠線付きピルに載せています。公式規格が認める「小アイコン + 文字」の形で、アイコンは公式原図のままです。
  • マイページの「アカウントとセキュリティ」に「QQ 連携」を追加しました。連携・再連携・解除ができます。ログインパスワード未設定のアカウントは解除できません。QQ のみで登録したアカウントにはパスワードがなく、解除すると二度とログインできなくなるためです。
  • 組版と質感:見出しはより詰めて力強く、セクションの余白は広く、カードにポインターを追う柔らかな光が灯ります。
  • モーション:ファーストビューが一行ずつ浮かび上がり、数値がカウントし、上部に読了バー、ホームのカードがわずかに視差で動きます。OS の「視差効果を減らす」を有効にするとすべて止まり、ホバーのない端末では光も出ません。
v1.9.82 ウェブサイト 2026-10-31

QQ ログインをテンセント公式ボタンに変更 — ログインページ・登録ページ・上部ナビの 3 か所

  • ログインページと登録ページは、自作のペンギンアイコンに「QQ ワンクリックログイン」という文言を添えたものでした。テンセントの「ウェブサイト フロントエンド ページ規範」は公式の「QQ登录」マークの使用を必須とし、改変を禁じています。そのため両ページとも、テンセント公式の 230×48 長方形アイコンの原本を原寸で表示する形にしました(引き伸ばしも縮小もしません)。
  • 上部ナビにも 1 つ追加しました。広い画面では公式 76×24 の「QQ登录」ボタン、375px 以下では公式 24×24 アイコンに切り替え、ヘッダーが横スクロールにならないようにしています。
  • ついでに 2 点修正。公式ボタンはいかなる状態でも灰色にしません。利用規約のチェックが入っていない状態で押すと、チェックボックスまでスクロールして赤く強調します(グレーアウトしたボタンは、まさに「ボタンの置き場所が違う」ように見えるためです)。また「当サイトはメールアドレス + パスワードでログインします」という一文は古くなっていたので、10 言語すべてで登録に関する後半だけを残しました。
v1.9.81 ウェブサイト 2026-10-18

スマホの「サーバーガイド」で本文が目次に隠れていたのを直しました

  • ガイドのサイドバーは PC では左上に固定される細い列です。1 列に切り替わったスマホでは横幅いっぱい・高さは画面 1 つ分を超える大きな塊になるのに、画面上部に固定されたままでした。そのため本文がその下を流れ、文字が重なったように見え、白い箱が浮いて、内容が出ていないように見えていました。幅 900px 以下ではページと一緒に流れるようにし、PC は従来どおり固定です。この不具合は今回の変更より前からあり、スマホで気づかれていなかっただけです。
v1.9.80 ウェブサイト 2026-10-18

小ツールを直しました:タブバーがちゃんと動き、グラデーションは自由に、計算機はそのまま埋めて起動できる一覧を返します

  • 十個のツールが一枚のページに全部並んでいて、上のカプセルを押してもアンカーへ飛ぶだけで、反応が無いように見えていました。今は本当のタブバーで、一度に一つだけ表示します。アドレスバーに #t-xxx を入れればそのツールを直接開けますし、スマホではタブバーを横にスクロールできます。グラデーション文字は固定二色から 2~6 個のカラーストップに変わりました:バーを押すと追加、ドラッグで位置の調整、ストップを選んで「この色を削除」を押せば消えます。色は位置に沿って一文字ずつ補間されるので、§ コード / MiniMessage / tellraw / MOTD の四種類がまとめて変わります。MOTD が長すぎる場合は注意が出ます
  • サーバー構成の計算機が三つの予算帯から九項目の入力に拡大しました。MOD 数、視界距離、シミュレーション距離、レッドストーンを使うか、目標 TPS、バージョンを入力できます。出力も数行の数字だけではありません:メモリはなぜ増えるのかを説明し、そのままコピーできる起動コマンドと Aikar’s flags、server.properties と spigot.yml の行単位の提案、プレイ方針別の MOD / プラグイン一覧も出します。よく変わる三つの係数(一人あたりのメモリ、MOD 係数、レッドストーン係数)は管理画面の「ツール」に入り、変更後に再読み込みすれば反映されます
  • ラグ健診は項目ごとの帰属計算になり、当サイトのリアルタイムデータとも比較します。入力に常駐エンティティ、チャンクローダー、レッドストーンワイヤ、自動農場の四項目が増えました。出力は MSPT を七項目に分解して割合とミリ秒を示し、本当に大きな割合(45% 以上)を占めるときだけ「これが引っ張っている」と名指します。そうでなければ「最大はこれだが全体は高くない」と正直に書きます。どの項目にも実行できる改善案が付き、さらに当サイトのリアルタイムデータを取得して「入力した規模が理論上どれだけ食い、当サイトの残りがどれだけか」を示します。データが取れないときはローカル推定だけで、エラーは出しません
v1.9.79 ウェブサイト 2026-10-18

液体ガラスを Apple 流に作り直し:屈折し、ハイライトが乗り、白の上でも成立する

  • ① 前の版のガラスはほぼ白い一枚だけで、白いカードの上に置くと見えなくなっていました。今回は iOS 26 の流儀で素材から作り直しています。上端に明るい線、下端に暗い線、外周に 1px のヘアラインリング、内側に淡い光、さらにごく軽い影。デスクトップでは今も本物の屈折で(背景がわずかに曲がり、ホバーで全体が 1 ピクセル浮き上がり、押すと戻ります)。主ボタンと危険ボタンはこれまでガラスから丸ごと外れていましたが、今回から入ります。ブランド色のグラデーションはボタン自身に残し、白文字のコントラストは変えず、ガラス層はハイライトと縁取りだけを担当して屈折は重ねません。同じ素材を入力欄、セレクト、タグ、ゲーム・ツール・プレイヤーのバッジ、上部ナビゲーションにも広げました。
  • ② スマホでは屈折をやめ(ここが一番高くつく工程です)、ぼかしとハイライトの縁取りへの自動的な降格にしました。見た目はガラスのまま、GPU はほとんど使いません。ついでに本当の不具合も直しています。スマホ側の分岐がそのまま抜けてしまい、降格処理さえ実行していなかったため、スマホではガラスが存在しない状態でした。デスクトップ側も二つ。同じ大きさのガラスは変位マップを一枚だけ生成し(ホームの 7 枚は 4 枚で足りています)、画面外に出たものは計算しません。さらに一枚の面積が 30 万ピクセルを超える場合、または 1 ページに 80 枚を超える場合は生成しません。一枚減るほうが、スクロールが重くなるよりましです。
  • ③ 管理画面の「外観」にあるスイッチはそのままで、既定がオンになりました。backdrop-filter に対応しないブラウザ(Safari、Firefox)は自動でつや消しに戻るので、壊れているわけではありません。今回は配色も組版も触っておらず、テーマは引き続き Cloudridge Blue です。前の版の Apple 風の白背景はサイト全体で巻き戻し(管理画面、フォーラム、ギャラリー、マップはすべて元通り)、残したのは本物の不具合二件の修正だけです。管理画面の危険な操作の確認ダイアログは元々スタイルが一切なく(43 か所の「削除の確認」がオーバーレイもない裸の箱として出ていました)、ギャラリーの狭い画面でのタイトルはマウスを重ねたときだけ表示されていました。
v1.9.78 ウェブサイト 2026-10-17

サイト全体を Apple 風に:白背景・ヘアライン・ピルボタン、ついでに数字の誤りも一掃

  • 見た目をサイト全体で作り直し、Apple の流儀に揃えました。白背景、ほぼ黒の文字、影の代わりに 1px のヘアラインを一本、ボタンと絞り込みチップは高さ 44 のピル形に統一、トップバーはスクロールで半透明から不透明へ切り替わります。すりガラスは全面撤去 —— データカード、タイムライン、ステータスカードにあったぼかし層はすべて無くなり、残るのはトップバー一枚のごく淡い半透明だけです。中国語の見出しには負のトラッキングをかけなくなりました。中国語の字面はもともと枠いっぱいなので、詰めると団子になって太字に見えてしまいます。詰める必要があるのは数字だけです。あわせて管理画面も組み直し、実際のバグも一つ修正しました。危険な操作の確認ダイアログが管理画面ではまったくスタイルを持たず、オーバーレイも位置指定もない裸の箱として出ていて、サイト全体の 51 か所の「削除の確認」が影響を受けていました。いまはオーバーレイ付きで、タイトルを赤くした中央寄せのカードです。一式は Apple という配色テーマに載っています(管理画面 → 外観で選択)。Cloudridge Blue に戻せばコードを触らずに全部巻き戻ります。
  • 今回はモバイルの「使い心地がいまひとつ」に的を絞りました。データページの大きな数字 4 つは、以前は一つで一行を占めていましたが、いまは 2×2 で一画面に収まります。プレイヤー検索欄と検索ボタンは重なっていて(ボタンがプレースホルダーの文字を 70 ピクセル近く覆っていました)、いまは一行に並びます。ランキングは各行の上下のグレー線が重なって太い棒になっていたのを、1px のヘアライン一本に。タイムラインの「カードの中にカード」の二重枠、あちこちの破線枠、Windows の濃いグレーの太いスクロールバーもまとめて片付けました。ガイドページのサイドバーにあるサーバー状況のラベルと値はくっついていて(バージョン1.21.1 のように表示)、左右に振り分けて区切り線を入れました。
  • 監査で見つかったデータの問題を 10 件直しました。最も重要な二つ。トップページの累計オンライン時間が秒を時間として表示していました(35.7M h と出ていましたが、実際は 9907 時間で、3600 倍の差)。そしてバン一覧の 4 人が「解除済み」と出ながら実際は有効なままでした —— ハートビートが「既に存在する」と報告したとき、状態だけをひっそり有効に戻し、履歴も書かずプレイヤーの BAN フラグも戻していなかったためです。その他。ステータスページの「導入済み MOD」が三か所で 0 / 12 / 160 とばらばら(実際は 160)、OS はダッシュ表示。どちらも原因は同じで、下の層の問い合わせがホワイトリスト方式で、この 2 フィールドが含まれていませんでした。ランキングでは UUID の羅列が名前として上位を占めていて、いまは「不明なプレイヤー · 87274f」と表示します。稼働率の上限は 99.2 パーセントに直書き(30 秒固定間隔で計算、実測のハートビートは 31 秒)。K/D は死亡記録が無いときに天文学的な数字を出していたので、いまはダッシュ表示です。残る二つはランキングのポリシー(ロール基準とアカウント基準の二つの統合方針、キル数だけを持つ影のアカウント)に関するもので、強引には直さず、差異と代償をコードのコメントに書いてオーナーの判断待ちにしました。
v1.9.77 ウェブサイト 2026-10-11

偽の実 IP を通す道は、nginx からアプリ層まで塞ぎました

  • ① まず計測してから変更:本番の探針で二つの事実が分かりました —— 宝塔の nginx は PROXY プロトコルを使っており、本当のクライアントアドレスはもともと REMOTE_ADDR に入っています(実測は 222.212.76.94 で、127.0.0.1 ではありません)。そしてクライアントが自分で入れた X-Real-IP / X-Forwarded-For / CF-Connecting-IP は nginx がそのまま PHP に透過し、偽装した3つのヘッダーはすべてそのまま届き、nginx はどれも上書きしません。② 両端をまとめて固める:nginx に自前のプロキシだけが知る鍵を注入し(クライアントがこのヘッダーを偽装しても nginx が上書きします)、アプリ層にもう一枚「REMOTE_ADDR がグローバルアドレスならそれをそのまま採用し、プロキシヘッダーは見ない」という関門を足しました —— 万一 trust_proxy を誤って有効にしても、レート制限・ロック・監査に載る IP が訪問者の指定した値になることはありません。
  • ついでに三つ。site/config/config.php の誤解を招くコメント(「CDN / リバースプロキシの背後なら true にする」)を実測結果と警告に差し替えました —— 当サイトでそのまま従うと、偽装できるヘッダーを権威ある値に格上げしてしまうだけです。今回の変更には自動テストを追加しました(trust_proxy 有効 + グローバルな REMOTE_ADDR + 偽装ヘッダー ⇒ それでも実アドレスを返す)。テストは 81 項目から 83 項目に増え、すべてグリーンです。本番調査用の一時的な探針は取り決めどおり削除し、いまリクエストすると 404 になります。
v1.9.76 ウェブサイト 2026-10-11

スマホのスクロールが滑らかに、いくつかのセキュリティ穴を封鎖、チャット履歴が途中を落とさなくなりました

  • スマホの滑らかさに関する4か所です。スクロール時のヘッダーのすりガラス、狭い画面ですべてのカードに掛かっていたすりガラス、入場アニメーションが要素ごとに常駐させていた合成レイヤー、そして1ピクセルスクロールするたびに再レイアウトを起こしていた読書プログレスバー —— いずれも等価で安いやり方に置き換えました(スクロール状態のヘッダーはもともと不透明なので、あのぼかしは完全に無駄な計算でした。アニメーションが実際に始まれば、レイヤーの昇格はブラウザが自分で行います)。幅390のスマホビューポート + CPU 20倍スロットルでの実測では、最大フレームが364ミリ秒から57ミリ秒に下がりました。全体のフレーム数の差はこのマシンのノイズに埋もれてしまい、安定した結論は出せません —— なので上の各項目は、仕組みの上で説明がつくものだけに手を入れています。
  • セキュリティ3件(高/中リスク、そのまま修正しました)。① ローカルデバッグ用の _admlogin.php は本番では必ず404に(訪問者をそのまま管理者にできてしまうため)。?to= もサイト外へは飛べなくなりました。② 速度テストページの ping / dns は、ドメイン名を渡してポートを探る作りだったため、DNS リバインディングで内部ネットワークを探らされる可能性がありました。いまは検証済みの IP にだけ接続します。③ 偽装した X-Real-IP / CF-Connecting-IP で IP 単位のレート制限を回避できていました。いまはリクエスト元が本当にループバックのときだけ、こうしたヘッダーを信用します。③ を完全に塞ぐには、nginx で X-CDR-Proxy-Secret を注入し、site/config/config.php に security.proxy_secret を記入する必要があります —— これはサーバー設定に触るので、ご了解を待ってから行います。
  • チャット履歴の本当のバグ3件。① 1日のメッセージが200件を超えると、真ん中の大きなかたまりがページ上で永久に見えませんでした(一番忙しい日は2796件、旧経路では500件までしか遡れず、間の2296件は誰にも見えません)。② 並び順が主キーの id だけを見ていたため、日付の境界をまたぐ日に深夜以降のメッセージがウィンドウから押し出されていました(実測で53件の新しいメッセージが恒久的に飛ばされていました)。③ 送信に失敗したとき、画面は送信済みのように装っていました。いまは時刻で取得し、「もっと前を読み込む」ボタンで遡れます。失敗時ははっきり知らせて再試行できます。
  • ついでに。訪問者向けのページは一律でキャッシュ禁止ではなくなりました(戻る・進むが少し速くなります)。ログイン状態はこれまでどおり一切キャッシュしません。サイト全体の PHP ファイル218個は構文エラーゼロ、自前テストスクリプト59個も一通り実行しました —— 今回の変更に関わる15スイートの結果は変更前と完全に一致しています(もともとあるローカル環境の失敗が1つも増えていません)。
v1.9.75 ウェブサイト 2026-10-10

サーバー側Modのスリム化:人数に比例して膨らむ処理をメインスレッドから追い出しました

  • Modのレポートで一番大きいのはマップです。3枚のマップがそれぞれ256×256で、点はおよそ19.7万個あります。以前はこの点をサーバーのそのtickの中でそのままJSONに組み立てていて、組み立て終わるまでサーバーは先に進めませんでした —— 30分に1回の頻度で、まさに「たまに一瞬固まる」あのスパイクと一致します。いまは取得したtickはデータを渡すだけで、組み立てはバックグラウンドスレッドへ移しました。データはもともと揃っているので、JSONの組み立てがメインスレッドを占有する必要はありません。
  • ついでに、オンライン人数に比例して膨らむいくつかの処理も整理しました。TABリストの数字(プレイ時間やオンライン人数など)は、30秒に1回しか変わらないのにプレイヤーごと・行ごとに計算し直していました。名前からプレイヤーを探す際のフォールバックは全表の行単位スキャンでした(10人なら100回の検索)。実績リストは10分ごとに1000件を超えるレシピ項目まで走査していました。30秒ごとにエンティティを数えるためだけに全ワールドのエンティティを走査し、しかもその間メインスレッドで設定ファイルとBANリストを読んでいました。いまはそれぞれキャッシュ、索引、1回だけの計算、バックグラウンド読み込みに変更しています —— サイトへ送る内容は1バイトも変わっていません。ページの表示もこれまでとまったく同じです。
v1.9.74 ウェブサイト 2026-10-05

管理画面とプロフィールの公開設定を改善しました

  • サイドバーの未承認バッジはフォーラムとギャラリーの2つしか数えていませんでしたが、管理パネルは5つ数えていました。いまはすべて1つの関数にまとまり、メニュー項目ごとに自分の件数が付きます。破壊的な操作(ユーザーグループの削除、ナビ項目の削除、チャットログの整理、キャッシュの消去)は確認なしで実行されていましたが、確認するようになりました。スキン・アイコン背景・チャットログの一覧は200件と60件で頭打ちでしたが、ページ送りできるようになりました。
  • 「他の人にプロフィールを見せる」はチームページにしか効いておらず、プロフィール自体は誰でも見られました。いまは本人以外に本当に効きます。パスワード変更と他端末のログアウトも監査ログに残ります。
v1.9.73 ウェブサイト 2026-10-05

赤い確認・削除ボタンが見えるようになりました

  • メッセージ取り消しの確認ボタンが真っ白でした。液体ガラスが有効だと、ガラスのルールがボタンの背景だけを消して白い文字を残すため、赤いボタンが白地に白文字になっていました。赤い塗りつぶしボタンは、青いメインボタンと同じくガラスの対象外になりました。
  • 同じ問題はサイト中の赤いボタン(取り消し・削除・連携解除など)すべてに起きていたため、まとめて直しました。
v1.9.72 ウェブサイト 2026-10-05

ページ送りで一番上に飛ばなくなりました

  • ページ下部で「次のページ」を押すと一番上まで戻されていました。今はページャーの上にある一覧を基準に合わせ、その一覧がすでに見えているときは何もしません。戻る/進むは元のスクロール位置に戻ります。
  • ついでの小さな変更:ナビの「サーバー」にシードマップを追加、ページ内アンカーが固定ヘッダーに隠れなくなり、ギャラリーのカードに作者を表示、トップページのオンラインプレイヤーからプロフィールへ移動できます。
v1.9.71 ウェブサイト 2026-10-05

管理画面の権限を厳格化し、細かな不具合を修正

  • 設定・鍵の再生成・バックアップ・システムツールは運営者限定になりました。サーバー管理者はコンテンツ・通報・ホワイトリストを引き続き扱えます。
  • ページ送り時の細かな不具合を修正しました。ダークモードが維持され、フォームが二重送信されなくなり、カウントダウンが通常速度で進み、並べ替えでページ全体が再読み込みされなくなります。
v1.9.70 ウェブサイト 2026-10-05

ページ送りで全体を再読み込みしない

  • ページ送り・絞り込み・検索・並べ替えは中身だけを差し替えます。アドレスは今までどおり変わり、戻るボタンも使えます。
  • 保存・審査・削除はこれまでどおりページを移動します。
v1.9.69 ウェブサイト 2026-10-05

プレイヤー一覧の検索候補がカードに隠れる不具合を修正

  • アニメーション対象の要素は will-change を持ち、will-change はスタッキングコンテキストを作るため、候補リストの z-index は自分のカード内でしか効かず、DOM 順で後ろの統計カードに負けていました
  • 検索カード全体を前面に上げ、候補が完全に上に表示されます
v1.9.68 ウェブサイト 2026-10-04

スマホ版プロフィールがスクロールできない不具合を修正

  • 3Dスキンモデルが touch-action:none を固定指定し、touchstart/touchmove で無条件に preventDefault していたため、指が触れている間ページが動きませんでした。縦はブラウザのスクロール、横だけモデル回転に割り当て直しました
  • ヘッダーの背景ドラッグもマウス専用に絞りました
v1.9.67 ウェブサイト 2026-10-04

サーバーガイドを全面的に書き直しました。内容は約2倍、コマンドもプレイヤー向けが分かるように

  • 「はじめかた」「ルール」「よくある質問」「CloudRidgeについて」の4ページをすべて書き直し、なぜその手順が必要なのか、失敗したらどうするのかまで書きました
  • コマンドページの上部に「プレイヤー向けコマンド」を追加し、最初に必要なもの/移動/チャット/確認に分類。435行の一覧はそのまま下に残しています
v1.9.66 ウェブサイト 2026-10-04

スマホの横スクロール案内が表に貼り付かなくなりました

  • 表の上にあった案内が上枠に密着していて重なって見えていました。余白を空けました
  • スクロール後のヘッダーを完全不透明にしました(以前は半透明で大きな文字が透けていました)
v1.9.65 ウェブサイト 2026-10-04

アップロードされた SVG の脆弱性を修正しました

  • 細工された SVG のアイコンや背景をアップロードするだけで、それを見た人の IP アドレスとブラウザ情報が漏れる状態でした。現在は外部参照が自動的に取り除かれ、絵そのものの見た目は変わりません。
  • あわせて HSTS と、いくつかの控えめなコンテンツセキュリティポリシーを追加しました。
v1.9.64 ウェブサイト 2026-10-04

審査バッジが「点きっぱなし」にならない + 状態ページが内部アドレスを出さない

  • 管理画面の「審査」バッジは 5 つのキューを数えていましたが、「サーバー管理」パネルで対応できるのは 2 つだけ —— バッジは点いたままなのに審査するものが無い状態でした。両者の基準を揃え、パネル上部に「その他の保留」欄(アルバム / スキン / フォーラム)を追加し、各管理ページへ直接飛べるようにしました。
  • サーバー状態ページの「ウェブマップ」行は 127.0.0.1:8100(内部アドレス、疎通確認用)と表示されていました。公開されているウェブマップのアドレスを表示するようにしました。
v1.9.63 ウェブサイト 2026-10-04

管理画面で動画をそのまま確認できます

  • 動的背景の動画が付いた背景は、審査カードにその動画をそのまま表示します。再生ボタンで確認でき、既定では先頭だけを読み込みます(通信量を無駄にしません)。「動画あり」のタグも付きます。
  • 以前はカードにプレイヤーが別に選んだカバー画像しか出ておらず、動画の内容と無関係なこともありました。もう見間違えません。
  • 「アップロード日時が 1970-01-01 になる」問題も修正しました。素材を代理アップするツールの日時形式の誤りで、データとツールの両方を直しています。
v1.9.62 ウェブサイト 2026-10-04

ログインの 500 を修正 + 表示の調整 2 点

  • 500 を修正しました:前の版で「ログイン成功後」の監査ログの引数位置を間違えており、ログインに成功すると必ず内部エラーが出ていました。現在は正常に遷移します。
  • 「私は以下を読み、同意します:利用規約 および プライバシーポリシー」の行をフォームの最下部(ログインボタンの下)へ移動しました。一般的なログイン画面と同じ位置です。チェックしないとログインできない点は変わりません。
  • プレイヤーページ上部の暗幕を滑らかなグラデーションに変更し、はっきり見えていた水平線を消しました。上から下へ自然に消えていきます。
v1.9.61 ウェブサイト 2026-10-04

ログインに規約への同意が必要になりました

  • ログイン画面にチェックボックスが増えました:「私は以下を読み、同意します:利用規約 および プライバシーポリシー」——チェックしないとログインできません。QQ ワンクリックとメール+パスワードの両方が対象で、サーバー側でも検証します(ボタンを無効にするだけでは防げないため)。
  • 「利用規約」と「プライバシーポリシー」のページを新しく書きました。QQ から受け取るニックネームと openid、メールアドレスとパスワードのハッシュ、連携したキャラクター、ゲームの統計、アップロードした画像、ログイン時の IP と時刻など、項目ごとに記載しています。
  • 共有先も明記しています —— QQ 互聯(ログイン)、mc-heads.net(未アップロード時のスキン頭像)、126 メール(認証コード)の 3 つだけ。広告ネットワークはなく、データを販売することもありません。
  • 保存期間、削除・エクスポートの請求方法、未成年者の扱いも書いています。フッターの「リンク」からも両方に移動できます。
v1.9.60 ウェブサイト 2026-10-04

明るいフレームでもヘッダーの文字が読めるようになりました

  • 動画が写真に置き換わると、ヘッダーの白い文字は明るい空と雲の上で最悪 1.16:1 となり、ほとんど読めませんでした。原因は描画順です。動画は実子要素である一方、暗くするグラデーションは body.cdr-body::before(生成内容)にあり、生成内容は必ず実子要素より先に描かれるため、動画がグラデーションを完全に覆い、まったく効いていませんでした
  • 修正は暗さをヘッダー自身の背景にすることです。上から下へのグラデーション(上部 62%、350px で消える)がヘッダーの帯だけを覆い、人物・地面・水面には 1 ピクセルも触れません。固定配置のレイヤーは追加しておらず、ページ高は 6816px のままです
  • 最も明るいフレームで、ヘッダーのコントラストは 1.16〜2.63:1 から 4.85〜6.91:1 に向上しました(白文字の基準は 4.5:1)。ついでにオンラインだけに出ていた回帰も修正しました。液体ガラス越しの「戻る」ボタンは半透明のため、暗幕に一緒に暗くされ(5.19:1 が 2.14:1 に低下)、現在はラベルも白くなり最悪 6.04:1 です
  • 効果があるのはバナーを設定したページだけです。未設定のページは 1 バイトも変わりません。ホイール、ボタン、動画再生は再検証済みです
v1.9.59 ウェブサイト 2026-10-04

動く背景:ホイールとクリックが効かない真因が判明

  • 原因はクラス名の衝突でした。.pub-bg-video は動画要素のクラスでありながら、<html> に付けるスイッチ用クラスでもあったため、画面全体を覆う固定動画レイヤーの規則がそのままルート要素に適用され、ルートが position: fixed になってページの高さが1画面分に潰れ、ホイールで動かす余地が消えていました
  • さらに厄介なのが pointer-events: none は継承すること。文書ツリー全体がマウスを受け取れなくなり、<html> だけが反応するため「戻る」ボタンは押せませんでした
  • 修正は状態クラスを pub-bg-on に改名し、要素側の規則を video.pub-bg-video に絞るだけ。二度と同じ名前はぶつかりません
  • 背景素材は第一版に戻し(4.50 MB → 4.41 MB)、暗さを映像に焼き込まないので色は正常に戻りました。あわせてローカル検証台3つを修正 —— 動画レイヤーを測っているつもりが実際は <html> を測っていました
v1.9.58 ウェブサイト 2026-10-04

動く背景:余計な高さを1画面分削除、ドラッグが分かりやすく

  • 新しい動画(15.98 MB → 4.50 MB)。暗さは映像に直接焼き込み、スマホで見える静止画も同じ一枚
  • 見えないのに1画面分以上の高さを足していた余分なオーバーレイ層を撤去
  • ページ上部でカーソルが「つかむ」形になり、押したままドラッグできる。タッチ画面付きノートPCでも動くよう判定を緩和
  • ホイールの問題は調査中。今回は上の3点を修正
v1.9.57 ウェブサイト 2026-10-04

プロフィールに動く背景を設定できるようになりました

  • 5 秒〜1 分の無音クリップをアップロードすると PC ではループ再生。スマホは静止画のままで、通信量は一切増えません
  • 動画を載せられるのは「バナー」の枠だけで、画像と同じ審査を通ります。上限は 6 MB、超えると明確に拒否され、黙って失敗することはありません
  • スマホに見える静止画はバナーそのものなので、動画と雰囲気の合う一枚を選んでください
  • この機能は初期状態でオフです。管理画面のスイッチを入れるとアップロード欄が現れます
v1.9.56 ウェブサイト 2026-10-03

「画像を選んで保存したのに何も起きない」を修正しました

  • あるプレイヤーがアイコンとバナーをアップロードし、動画まで送ってくれたのに、管理側には審査待ちが一件も出ませんでした —— その画像はサーバーに届いていません。$_FILES は最初から最後まで空でした
  • 原因は iPhone の HEIC です。ブラウザがデコードできず、トリミング画面がそれを「キャンセル」と扱い、キャンセルはファイルをフォームから消してしまいます。ファイルが無いのでサーバーは「今回は画像を変更しない」と解釈し、緑の成功メッセージを返すしかありませんでした
  • デコードできない画像はもう捨てません —— 元のまま(トリミングなしで)アップロードし、理由も表示します
  • サーバー側の保険も追加しました。ブラウザが「選んだ」と言ったのにファイルが届かない場合はエラーを出し、成功したふりをしません。本当にキャンセルした場合もその旨を明示します
v1.9.55 ウェブサイト 2026-10-03

「不明なプレイヤー」の名前修正を管理画面へ

  • コマンドラインの .tools/_backfill-names.php が、管理画面「システムツール」のボタンになりました
  • 過去のバックアップの usercache.json を読み、「名前が UUID のまま」の行を本名に戻し、セッション記録 / 実績 / スキンも一緒に移します
  • 先にどの行が何になるかを一覧で確認でき、実行前にデータベースのスナップショットを自動で取ります
  • 名前が UUID 全体の行だけが対象。本名が使用済みなら統合し、通常のプレイヤー名は一切触りません
v1.9.54 ウェブサイト 2026-10-03

ランキング:9項目のトップ10を1画面で

  • ご要望の「細分化されたランキング」です。プレイヤーリストの並べ替えは一度に1項目しか見られないため、「誰が一番掘ったか」と「誰が一番死んだか」を比べるには切り替えが必要でした。/ranking は9項目のトップ10を1画面にまとめます
  • 1項目につき1枚のカードで、順位・アバター・名前・その項目の数値を表示します。
  • 数値はプレイヤーリストと一字一句同じです(同じ整形処理を共用)。名前をクリックすると個人ページへ移動します
  • カード右上の「すべて見る」はその項目で並べ替えた完全なリストを開きます(?sort=)。入口はプレイヤーリストのタイトル下にある「ランキング」ボタンです。データのない項目は空のカードを作らず、偽プレイヤーも従来どおり除外されます
v1.9.53 ウェブサイト 2026-10-03

プロフィール背景がドラッグできるようになりました

  • バナーを設定したページでは、背景写真をマウスで押したまま動かせます。まるで風景写真をずらす感覚で、ヘッダー・アイコン・名前はその上にしっかり乗ったままです
  • 動かせるのは一番上のヘッダー部分だけです。下のカードや表、ボタンはこれまでどおり操作でき、文字の選択も妨げません。ボタンを押してもドラッグは始まりません
  • 離すと元の位置に戻ります。端まで動かすとそこで止まり(上下左右に少し余白を残す)、写真が画面外へ出て背景色が見えてしまうことはありません
  • マウス/トラックパッドのみ。タッチ画面や「視差効果を減らす」を有効にしている場合は対象外で、これまでと同じ動作です
v1.9.52 ウェブサイト 2026-10-03

「不明なプレイヤー」が自動で本名に戻ります

  • リストに「不明なプレイヤー · 87274f」と表示される行があります。この文字列は実際にはその人の UUID です。サーバーの名前キャッシュは約1か月しか保持されないため、長期メンバーがしばらくプレイしないと MOD が名前を解決できず UUID を報告してしまいます
  • 問題は、こうした行がこれまで永久に直らなかったことです。本人が戻ってサーバーが名前を認識しても、改名は「名前は重複不可」の制約に衝突し(本名の行は別の報告で既に作られていることが多い)、例外は握り潰され UUID のまま残っていました
  • 現在は両方の経路が通ります。本名が空いていれば改名し、その期間のセッション記録・実績・スキンも一緒に移します。本名が使用済みならその行に統合します(プレイ時間は加算、進捗は和集合、初回・最終は境界を採用)
  • あなたが何かする必要はありません。次にログインした時点で自動的に直ります。同期ログに「adopted=N」が記録され、管理画面の「システムツール」で確認できます
v1.9.51 ウェブサイト 2026-10-03

アバターが全ページで反映されるようになりました/ログイン履歴のページ送り/淡色ボタンの色が薄れる問題を修正

  • アップロードしたアバターはこれまでプロフィールページでしか表示されませんでした。他のページのアバターは別の経路を通っており、アップロードしたことを知らなかったためです。プレイヤー一覧・コメント・ナビゲーションでも表示されるようになりました。アップロードしていない人はこれまでどおりです
  • 「最近のログイン履歴」は 1 ページ 30 件でしたが、10 件になりました。ページャーはサイト内の他の一覧と同じものです(1 ページだけのときは表示されません)
  • 「すべてのバッジを展開」ボタンが灰色で無効に見えていたのは詳細度の問題でした。淡色ボタンの青い下地が基本の白い層に負け、自身の背景も消えていました。修正済みです
  • プロフィール左カラム下の余白:左カラムが右カラムと同じ高さまで伸び、末尾のランキングカードが埋めるようになりました。バッジの開閉に関わらず隙間はできません。レーダーの説明も既定で折りたたまれます
v1.9.50 ウェブサイト 2026-10-03

液体ガラスを参考どおりに書き直しました:今度は本物のガラスです

  • 前の版は「グラデーションのマップ+変位」だけでした。参考と一行ずつ見比べて、足りないものが三つあると分かり、今回すべて入れました
  • ① 屈折を実際の光学で計算:ガラスの厚み・縁の面取り・屈折率(1.0~3.0)・丸みのある曲面がすべて計算に入り、縁に「厚いガラス」の拡大感が出ます
  • ② ハイライト層を追加 —— 縁に沿って一方向に光る反射です。液体ガラスで最も目立つ特徴で、前の版には全く無く、だから物足りなかったのです
  • ③ 変位のあとに彩度を戻し(屈折は色を灰色にします)、わずかなギザつきも取りました。ぼかしは 0.3px のまま:これ以上だと隣の画素との差が消え、屈折が完全に失われます
v1.9.49 ウェブサイト 2026-10-03

アイコンを自分で切り抜けるようになりました。ドラッグして、枠の中がそのまま仕上がりです

  • これまでは画像を丸ごと送るだけで、サイトが中央基準で縮小していました —— 顔が端に寄っているとそれまでです。今は画像を選ぶと切り抜き枠が出ます:ドラッグで位置を調整、ホイールかスライダーで拡大縮小。枠の中がそのまま最終的なアイコンになります
  • 書き出しは 512×512(サーバー側の上限と同じ)で WebP です。小さい画像は拡大しません —— 拡大してもぼけるだけなので、元の大きさのまま切り抜きます。枠は狭い画面では自動的に小さくなるので、スマホでも使えます
  • 意図的に切り抜かない画像が 2 種類あります:GIF アニメーション(切り抜くと 1 コマだけになり動きが消えます)と SVG で、これらは今までどおりの流れです。切り抜きの途中で問題が起きた場合(ブラウザ非対応・メモリ不足)は元の画像をそのまま送ります —— 「選んだのに何も起きない」で詰まることはありません
  • バナーは切り抜きません —— もともと横長で、正方形にしても意味がありません。この機能は「マイページ → プロフィール」でアイコンをアップロードするときだけ出ます。
v1.9.48 ウェブサイト 2026-10-03

狭い画面ではすりガラスを一段軽くしました。スマホのカクつきが改善します

  • スマホ版プロフィールのカクつきは、アニメーションの書き方ではなくぼかし自体が重すぎたのが原因でした。すべてのカードに blur(32px) saturate(180%) が付いており、このページでは同時に 7〜8 枚のガラス面が見えているため、スクロールのたびにその背後すべてを再サンプリングしていました
  • 32px と 14px の違いはほぼ目に見えません — カードはもともと .70〜.78 の白の上にあり、ぼかしは背後の写真をやわらかくするだけです。一方サンプリング費用は半径のほぼ二乗で増えます。彩度も 180% から 150% に下げました。このページで色を鮮やかにする必要はどこにもありません
  • 狭い画面だけ一段軽くしています。デスクトップは 1 ピクセルも変わっていません。純粋な性能改善なので見た目はほとんど変わりませんが、スマホのスクロールはかなり滑らかになります
  • 見た目はほとんど変わらない純粋な性能改善です —— それでもスマホで重いと感じたら、どの画面か教えてください。引き続き調べます。
v1.9.47 ウェブサイト 2026-10-03

モバイルのステータスページが大幅に短くなりました。BAN リストの各行に「QQ 未連携」が並ぶこともなくなりました

  • スマートフォンでは、各サービスの行が 2〜3 行に折り返されていました。原因は明確で、その行は 3 列グリッドで最小幅の合計が 504 px、一方スマートフォンのビューポートは 492 px — わずかに収まらず、折り返しが強制されていました。狭い画面では 2 列にし、注記を独立した行にしたことで、ページ全体が 500 px 以上短くなりました
  • パネルの余白、可用性バー、ノードカードの寸法も狭い画面向けに一段引き締めました。これらの変更はステータスページ内のスタイルブロックだけにあり、他のページは 1 ピクセルも変わりません
  • BAN リストでは、どの行にも同じ「QQ 未連携」がプレイヤー名の下に並んでおり、表が壊れているように見えていました。調べると、管理画面の「BAN ページで QQ を隠す」スイッチは計算されたまま一度も使われておらず、設定はずっと死んでいました
  • 現在は 3 か所すべてがこのスイッチに従います — リスト行、アバターの QQ バッジとツールチップ、展開後の詳細です。BAN 理由は依然として中国語が直書きされており(10 言語すべてで中国語表示)、これは別途対応します
v1.9.46 ウェブサイト 2026-10-03

背景画像が動くようになり、マウスからそっと離れます

  • 背景画像が GIF アニメーションに対応しました。 これまでは「未対応」ではなく「対応していたが動きが潰れていた」のです —— すべてのアップロードは WebP に再エンコードされ、GIF のデコードでは最初のフレームしか得られないため、アニメーションは静止画になっていました
  • 対策は、複数フレームの GIF を再エンコードせずそのまま保存すること。動きが完全に残ります。代償としてアニメーションは 1920x1080 に縮小されません(再エンコードは動きを殺すため、これは意図的な選択です)
  • 背景がマウスに追従するようになりました。 ポインタが動くと、背景レイヤーが逆方向に最大 10 ピクセルずれ、写真に奥行きがあるように見えます
  • 毎フレーム変えるのは CSS 変数ひとつだけで、写真そのものは一度も再描画されません。ポインタが止まれば収束してフレーム要求も止まり、静止時の負荷は以前とまったく同じです。マウスとトラックパッドのみで有効、視差効果を減らす設定では完全に無効になります
v1.9.45 ウェブサイト 2026-10-03

「戻る」ボタンの「十」の字:四回調べて、原因はコメントの中にありました

  • あの「十」の字は消えました。正体は小さな箱で背景をサンプリングするとき、ブラウザが上辺の中央に残す明るい斑点です —— このボタンは 58x35 しかないので斑点の占める割合が目立ちます。カードは面積が大きいので同じ斑点が薄まって見えません
  • 対策は、この小さなボタンでは背景サンプリングを行わないこと。着色を 8% から 14% に上げて透け感を補いました。コストはゼロです —— 屈折の有無でこのボタンの差は 0 / 1766688 ピクセル(最大チャンネル差 1)
  • 本当に厄介だったのは次の層です。ルールは正しいのに効いていない。コメント内で参考 CSS をそのまま引用した際に /* 6% */ と書いてしまい —— CSS のコメントは入れ子にできません —— その */ が外側のコメントを早く閉じ、続く } がルールを早く閉じ、パーサーが後続のルールをすべて飲み込んでいました
  • この壊れたコメントは 1.9.42 からずっとあり、三つものバージョンでボタンガラスの内側の光と外側の影が失われていました —— 今回まとめて戻りました。教訓はテストにしました:コメントを早く終わらせるものをコメントに書かない(同じ罠に PHP で二度かかっています)
v1.9.44 ウェブサイト 2026-10-03

マウスを動かすと閃くあの横線:8 版かけて、原因はホバー時の 2px の浮き上がりでした

  • 原因はハイライトでもすりガラスの面積でもなく、サイト全体のホバー指定でした。ポインタがカードを横切るたびにカードが 2px 浮き上がり、カードにはすりガラスが載っているため、動いた瞬間にブラウザが背後の映像を再サンプリングします。そのサンプリングはタイル状に分割され、タイルの継ぎ目があの線でした
  • 途中で 5 つの回り道をしました(ハイライトを背景から疑似要素へ、transform へ、実子要素へ、ガラスの外へ、そして全削除)。どれも「効くはず」に見えて、原因には触れていませんでした
  • 修正内容:ガラス面はホバーで動かさず、枠線と影で応答します。あわせて幅いっぱいのすりガラスを 2 か所(ナビゲーションバーと固定された名前の行)から外しました。広面積のサンプリングが最も高コストだからです
  • 同じ回で見える変更が 2 つ:マウス追従のハイライトは完全に削除(揺れすぎ)、ボタンの液体ガラスは参考どおり 3 層に書き直しました(屈折と着色を分離)
v1.9.43 ウェブサイト 2026-10-03

管理画面のログインボタンが消えた:前のバージョンで私が作った詳細度のバグ

  • v1.9.42 で入れたボタンのガラスに詳細度のミスがありました:基本となる 8% の白い着色層は「5 クラス + 2 要素」、一方プライマリボタンの紺のグラデーションは「3 クラス」だけ —— つまり基本層が常に勝ち、グラデーションは描かれませんでした。さらに同じブロックの background: none がプライマリボタン自身のグラデーションを消していました。紺地に白文字が白地に白文字になり、ボタンが丸ごと消えていました
  • 対策:塗りつぶしのブランドボタン(プライマリ)はガラスに参加させないことにしました。紺地に白文字のボタンであり、このガラスは淡い色のボタンにしか合いません。プライマリは元の塗りつぶし表示に戻しました
  • 同じバグはホバー時の明るさも密かに打ち消していました(これも「4 クラス」で 5 クラスに負けていました)—— 前のバージョンの「乗せると違いが出ます」は実際には一度も効いていませんでした。今は効きます
  • もう一つ:background: none は読み込み中のボタンまで消しており、ガラス層はそれらを除外しているため、読み込み中の数秒間ボタンが完全に透明になっていました。今は読み込み中のボタンにも背景が戻ります
v1.9.41 ウェブサイト 2026-10-02

マウスに追従していた光を削除しました

  • 削除したもの:カード上でポインタを追いかけていた冷たい青い柔らかい光。変数・スイッチ・その層・スクリプトまで、断片ひとつ残さず丸ごと除去しました
  • 理由:同じ症状を 4 回報告いただきました(「マウスを動かすとその塊がちらつく」「横に一本線が出る」)。私は 4 通りに書き直しました(カードの背景に描く → 擬似要素へ移す → 実子要素にする → ページ全体の独立した層へ移す)が、いずれも直りませんでした。最後のご指示は「マウス追従のハイライトは削除して。揺れすぎる」でしたので、削除しました
  • 副次的な効果:削除により、ポインタを動かしても一切再描画されなくなりました。これは例の横線の最後のピースでもありました —— すりガラス要素の内部で毎フレーム何かが変わると、ブラウザはその背後の映像を計算し直し続けます。その計算はタイル単位で行われるため、タイルの継ぎ目があなたの見ていた線でした
  • 他は何も変わっていません:ガラスの透過率、写真だけのファーストビュー、貼り付く名前の行、ボタンのリキッドグラスはすべてそのままです。マウスのない訪問者とタッチ操作の方には元々この光は見えていませんので、その方々にとって今回の更新は変化なしです
v1.9.36 ウェブサイト 2026-10-02

マウスが要素をまたいでも光が飛ばなくなり、ボタンの液体ガラスを強化しました

  • マウス追従の光が「飛ばなく」なりました:以前はポインタがあるカードから別のカードへ移ると光は瞬間移動していました —— 古いものが消え、新しいものがいきなり現れる形です。今は古い光がその場でフェードアウトし、新しい光がポインタの位置でフェードインし、中心点もなめらかに移動します(全体で約 180ms)
  • CSS の transition を使わなかった理由:transition は宣言を丸ごと差し替える仕組みで、「1 つのプロパティだけにトランジションを足す」書き方がありません。そう書くにはカードの入場アニメーションとホバーアニメーションまで上書きするセレクタが必要になり、スクロール入場が「フェード+せり上がり」から唐突な切り替えになります。そこでスクリプトが 1 つの数値(光の強さ)を毎フレーム緩めていく方式にし、落ち着いたら止まるようにしました
  • ボタンの液体ガラスを強化しました:屈折の変位を 14 → 50 に、面取り帯を広げ、さらに「ガラスらしさ」を作っている要素 —— 上辺の鏡面ハイライト、左右の暖色・寒色の分散フリンジ、内側の艶 —— を追加しました。同時にぼかしを 1.5px から 0.8px に絞っています(ぼかしは変位が拾いたい細部をちょうど消してしまうため)
  • 正直な但し書きは変わりません:描画されるのは Chrome / Edge だけです。しかも屈折は屈折させるものが無いと見えません —— 白いカードの上ではほぼゼロ、明暗のあるバナー写真の上でようやく分かります。スイッチは管理画面の「システム設定 → 外観効果」にあり、既定はオフです
v1.9.35 ウェブサイト 2026-10-02

最初の画面は写真だけになり、下にスクロールすると内容がせり上がり、ボタンに液体ガラスが入りました

  • 最初の画面を「ヒーロー」に:バナーを登録したプレイヤーページでは、開いた直後はページヘッドと背景写真だけで画面が埋まり、内容エリアはまったく表示されません。ホイールを 1 回下に回すと内容ブロック全体がフェードしながらせり上がり(透過率は 28% のまま)、一番上まで戻すとまた収まります。何度でも見られます
  • なぜラッパーではなく内容ブロック自体を動かすのか:祖先に「不透明度 1 未満」があると新しいバックドロップルートができ、その中の backdrop-filter は空の背景をサンプリングしてしまい、すりガラスが完全に壊れます。ブロックごとに淡入淡出させればその祖先はできません。本文中で position: fixed なのは背景レイヤーと貼り付く名前の行の 2 つだけで、どちらもこの集合の外にあるため移動しても安全です
  • ボタンの液体ガラス屈折(管理画面「システム設定 → 外観効果」にスイッチを追加、既定はオフ):ボタンの縁が厚いガラスのように背後の模様を少し曲げます。SVG の変位マップ + backdrop-filter を使い、マップはページを開くときに canvas で一度だけ描画します。毎フレームのスクリプトはありません
  • 描画されるのは Chrome / Edge だけ:Safari と Firefox はこの CSS 機能に対応しておらず、しかも静かに失敗します(エラーも出ず、描画もされない)。その場合は今までのすりガラスに自動的に戻ります。そして屈折は屈折するものがあって初めて見えます —— 白いカードのような平坦な面の上ではほぼゼロで、バナー写真のように明暗のある場所でだけ分かります
v1.9.34 ウェブサイト 2026-10-02

カードが少し透け、マウス光が小さくなり、貼り付き時に滑り込むようになりました

  • 変更点:バナーを登録したページでは、大きなカードの透過率が 5~10% から約 28% に上がり(写真が分かるようになりました)、統計の小ブロックとレーダーカードも同じだけ薄くしました
  • 統計の小ブロックが 2 色に見えていた理由:マウス追従の光は半径 320px・alpha .22 の冷たい青の斑点でした。カードの左半分を覆うと、1 つ目は rgb(189,193,197)、覆われない 4 つ目は rgb(245,246,247) を実測 —— 同じ行で 56 段の差です。現在は半径 200px・alpha .10 に縮め、さらに小ブロックは単独で光らなくなりました(光るのは常に最外周のカード)。同じ行の実測差は 3 段です
  • 「ちらつき」の残り半分:カードの余白から小ブロックへポインタを移すと、スクリプトの対象が「カード全体」と「その小ブロック」の間で飛び、光が大きな面から小さな点へ一瞬で切り替わっていました。小ブロックを光の対象から外したことで、この飛びはなくなりました
  • 貼り付きにスライドを追加:名前の行がナビの下から 10px 滑りながら 180ms でフェードインします。「視差効果を減らす」が有効なときは、このアニメーションとボタンのバネは無効になります(マウス追従の光は残ります)
v1.9.33 ウェブサイト 2026-10-02

下にスクロールすると名前の行がナビの下に貼り付きます

  • 変更点:バナーを登録したプレイヤーページでは、下にスクロールすると「アイコン + 名前 + レベル + バッジ」の行がサイト内ナビのすぐ下に貼り付き、カードがその下を滑っていきます。署名はこの行には含まれず今までどおり流れ去り、「戻る」は名前と一緒に貼り付きます
  • `position: sticky` が使えない理由:この行の親は .cdr-container で、高さはページヘッド分しかありません。そのため sticky の可動範囲がそこに閉じ込められ、ヘッドを越えると一緒に流れ去ってしまいます。そこで position: fixed にし、スクリプトで元の位置に同じ高さのプレースホルダを差し込みました(fixed は文書フローから外れるため、差し込まないと貼り付いた瞬間にページ全体が 86px 跳ね上がります)
  • 貼り付いたら文字色を反転させる必要があります:この行は普段バナー画像の上に載る白文字ですが、貼り付くと下地が明るいガラスになります。白地に白文字は見えません(実測版ではアイコンと「オンライン」は見えているのに名前の欄だけ空でした)。そのため貼り付き状態では名前・レベル・バッジをガラス面用のインク色に切り替えます
  • 影響するのはバナーを登録したプレイヤーページだけです —— 登録していないページ(例:/players/zlc)は 1 バイトも変わっていません
v1.9.32 ウェブサイト 2026-10-02

ポインタハイライトは光るべき一枚だけを光らせるようになりました

  • 原因はカスタムプロパティが継承されることでした。 スクリプトはポインタの下にあるカードに .is-lit を付けるので、--glass-spot が継承チェーンを伝ってそのカード内のすべての .stat-mini に渡ってしまいます —— 一つのスイッチが七、八枚の光る面になっていました。站長が見た「マウスは別の場所にあるのに、なぜ全部光るのか」はこれです。証拠:プローブの黄色いバーに spot= カウンタを追加しました。これは .is-lit の数ではなく、計算された --glass-spot が透明でない要素の数を数えます —— 修正前、ポインタをカードのタイトル余白に置くと lit=1 spot=8/27 でした
  • 修正内容:各ガラス面が自分で --glass-spot を transparent にリセットし、継承チェーンをそこで断ちます。ポインタが実際に載っている面だけがスクリプトから .is-lit を受け取ります。修正後は spot=1/27
  • ついでに直した二つ目の罠:そのリセットは .is-lit の規則と同じ詳細度で、しかも後に書かれています —— 「後勝ち」により、素の body.cdr-body .is-lit はまるごと上書きされ、ハイライトが完全に消えます(実測 lit=1 spot=0/27)。したがって .is-lit の規則は四つのセレクタをすべて列挙して詳細度を上げる必要があります。この手順を飛ばすと、「光りすぎ」から一気に「まったく光らない」になります
  • また座標は requestAnimationFrame を待つだけでなく、新しい要素に入った時点で同期的に一度書き込むようにしました。そうしないと最初のフレームに座標がなく、光がカード中央に一瞬現れてからポインタへ飛びます。今は一つの .is-lit が一枚の光る面です —— ポインタがある場所がそのまま光ります
v1.9.31 ウェブサイト 2026-10-02

リキッドグラスに操作感を二つ追加:ポインタ追従ハイライトとボタンのバネ

  • ポインタ追従ハイライト:ポインタがガラス面の上を動くと、冷たい青白い柔らかな光がポインタを追いかけます —— 光るのはポインタの下にある一枚だけで、ほかはそのままです。カード背景に描いた radial-gradient の一層で、スクリプトがリアルタイムに書き込む --glass-mx / --glass-my を読みます。ノードを増やさず、スタッキングコンテキストにも触れず、カードのぼかしも邪魔しません。ライトテーマで使うのは白ではなく冷たい青白です:白いカード(rgb 229~245)に白を重ねても最大 6 段階しか上がらず、目には見えません
  • ページヘッドの写真帯を高く:.page-head の下パディングを 30px から 160px にしました(全体で約 317px)。白いカードの列がまるごと下がり、アバター・名前・レベルバッジがバナー画像の上に載ります —— これが「背景を見せる」です。高さだけを変え、内容は増やしていません。小さい画面では 72px に縮みます。内容をまとめて下げなかったのは、上部の最も暗いマスクが無駄になり、白くした行が読みにくくなるからです
  • ボタンのバネ:押すと .955 まで縮み、離すと cubic-bezier(.34, 1.56, .64, 1) で戻ります —— 第二制御点の y = 1.56 > 1 なので、曲線は終点を通り越してから戻ります。あの「跳ね」がこれです。純粋な CSS で、JS も物理エンジンも使いません
  • prefers-reduced-motion のフォールバックは「自律的な動き」だけを抑える形に変えました:ボタンのバネ(離したあとに勝手に跳ねる=自律的な動き)は普通の短いトランジションになり、押した感触は残ります。一方でポインタのハイライトは残します —— ポインタ追従は直接操作であり、動くのはポインタ自身でページではありません。站長のリキッドグラス資料にも「displacement を外し、blur + ハイライトは残す」と書かれています。そもそもこの機械で唯一ハイライトを見られる方法でもあります:Windows のアニメーション効果はオフで(MinAnimate = 0 / DragFullWindows = 0 / VisualFXSetting = 2)、ブラウザはそれを正直に reduce として報告します —— 一緒に切ってしまうと永久に見えません
  • 以上はすべてバナーを設定したプロフィールのみに適用されます(ブロックは今も $pubBgCss !== '' の中です)。それ以外のページ —— バナーのないプロフィールを含む —— は1 バイトも変わっていません。テストスイートにはこれを守る assertion が 4 本あります
  • 正直な補足:どちらも「手触り」の効果で、静止画では分かりません —— 実際にポインタを滑らせ、実際にボタンを押してみてください。ついでに Windows のアニメーションをオンに戻すのもおすすめです(設定 → アクセシビリティ → 視覚効果 → アニメーション効果)。そうしないと、ブラウザはすべてのサイトに「ユーザーは動きを減らす設定」と伝え続けます
v1.9.30 ウェブサイト 2026-10-02

リキッドグラスを作り直しました:スクロールしてもカードの色が変わりません

  • 原因は描画エンジンではありません。プロフィールページは背景画像を body に background-attachment: fixed で載せていました。この指定は「画像をビューポートに固定する」という意味で、独立したコンポジットレイヤーではありません —— ブラウザはカードの backdrop-filter のために毎フレームそれを再サンプリングする必要があり、サンプリング範囲とスクロール位置がずれると色が飛びます。さらにカードは動き画像は動かないため、半透明のカードは写真全体をなぞってしまいます。この二つが重なって「濃いときもあれば薄いときもあり、正常なときもある」になっていました
  • スクロール中のチラつき対策:背景を body から専用の position: fixed レイヤー(body::before、z-index: -1、pointer-events: none、will-change: transform)へ移しました。専用レイヤーはコンポジットレイヤーに昇格でき、スクロール中ずっとサンプリング元がすでに合成済みの一枚のビットマップになります
  • 静止時の濃淡差の対策:カードが自分で色を決めるようにしました。根拠は実測からの線形外挿です —— 変動 ≈ (1−alpha)×53 なので、4 段階以内に抑えるには alpha ≥ .925 が必要です。大カードは上端 72% → 95%、下端 60% → 90%、統計チップは 80%/70% → 97%/94%、レーダーカードは 76%/66% → 96%/92%。写真は 5~10% 透けたままで、そこがガラスの色味の源です
  • ガラスは多層マテリアルになりました:ノイズ層 + 縦グラデーション + エッジの掠れハイライト + 内側の屈折面取り。パラメータはすべて変数化(--glass-blur --glass-sat --glass-highlight --glass-displacement --glass-noise)。正直な補足:本来の SVG feDisplacementMap による屈折は実現できません —— Chromium と Safari の backdrop-filter はフィルタ関数のみを受け付け、url(#svgfilter) は受け付けないため、内側の屈折面取りでその見た目を近似しています
  • 結果:同じ位置でのスクロールによる差は 3~6 段階(前版 18 段階、当初 100 段階)、全体の明度は 229~245、ダークテーマはわずか 1~3 段階です。あわせてガラス面の text-shadow 白ハローを外しました —— カードが安定した今は役に立たず、12px の文字の字画を食べるだけです
  • 「能力レーダーの文字が見づらい」も修正:透明度は一切触っていません。「全服」の副ラベルを .76rem から主行と同じ .84rem にし、淡いグレーから本文色へ、字重を少し足しただけです。真因は 12px と 13px の CJK が Windows で別のアンチエイリアス段になることです。以上はバナーを設定したプロフィールのみに影響し、バナーのないページは 1 バイトも変わっていません
v1.9.29 ウェブサイト 2026-10-02

スクロール中にカードの明暗が変わる問題を修正しました

  • 原因は描画バグではありません。プロフィールページの背景画像に background-attachment: fixed を使っており、画像がビューポートに固定されてカードだけがスクロールします —— そのため半透明のカードは写真全体を「なぞって」しまい、暗い空の上では暗く、明るい建物の上では白く飛びます。同じカードがスクロール位置によって rgb(99,107,125) から rgb(201,197,200) まで、100 段階も変動していました
  • 修正はガラス自体を一段濃くすることです —— 「透明さ」と「安定」を両立できる唯一のつまみは alpha です:大きなカードは上端 56% → 72%、下端 34% → 60%、統計チップは 76%/60% → 80%/70%、レーダーカードは 70%/52% → 76%/66%。密度の序列(大カードが最も薄く、チップが最も濃い)は変わりません
  • 結果:同じ位置でのスクロールによる差は 14 段階(以前は 47 段階)に減り、明度は 163~206 に収まりました —— 「灰色にくすむ」から明確な明るいすりガラスへ。ダークテーマも同様に濃くし(82%/72% の段)、残る変動は 4~8 段階です
  • 影響するのはバナー画像を設定したプロフィールのみです。バナーのないページ(例:/players/zlc)はこのガラス用スタイルをそもそも出力しないため、1 バイトも変わっていません
v1.9.28 ウェブサイト 2026-10-02

「1 日あたり 86 時間」を修正しました

  • 以前の計算式は「累計プレイ時間 ÷ セッション記録のある日数」でした —— 分子は 10 年分、分母は 2026-09-12 以降の 11 日だけ。異なる時代を割った結果が「1 日 86 時間」です。分子が間違いではなく、分母が大半欠けていました
  • 分母を生涯のアクティブ日数に変更しました:チャット記録・実績解除・参加セッションの 3 つの表を日付単位で重複除去して合算します —— このアカウントは 423 日。941 時間 ÷ 423 日 = 1 日 2 時間で、ようやく桁が合いました
  • ついでに 2 か所修正:ログイン回数を生涯累計に(1,655 回。以前は 929 人の古参プレイヤーが 0 と表示されていました)、最長 1 回のプレイ時間に「平均 21 分なのに最長 0 時間」という不可能な組み合わせが出なくなりました
  • さらに実績を 3 つ解放しました:アクティブ 7 / 30 / 100 日 は同じ分母のせいで永久に解除できませんでした —— サーバー全体のセッション記録は最大 16 日しかなく、しきい値に届かなかったのです
  • セキュリティ監査(1):実際に悪用できる箇所を修正 —— アップロードした SVG 内でエスケープを使って外部リンクを隠せた(アバターで訪問者の IP を抜けました)、管理画面から uploads の外のファイルを削除できた、ログインにオープンリダイレクトがあった、バックアップ書庫内のスクリプトがウェブシェルとして設置できた、2 つのローカル用デバッグスクリプトが本番で到達可能でした
  • セキュリティ監査(2):API と管理画面の強化 —— 空のリストで全サーバーの BAN を一括解除できなくなりました、報告の行数に上限、ホワイトリスト名の検証、チャット 1 件の失敗でバッチ全体が落ちない、データベースのエラー詳細を訪問者に返さない
v1.9.27 ウェブサイト 2026-10-02

レーダー欄の小さい文字が読めるようになりました

  • 「能力レーダー」欄の小さい文字(軸の名前、右側の数値、「全服」の行、下の説明)は 34% のガラスの上にあり、最も暗い場所のコントラストは 3.3 : 1 しかありませんでした —— 小さい文字に必要な 4.5 : 1 を下回っています。これがご指摘の「読みにくい」で、前回のリリースで私が取りこぼしていました
  • 修正は二点です:補助文字を一段濃くし、同時に「能力レーダー」カード全体に専用の下地を与えました —— このカードはほぼ全部が小さい文字なので、大きなカードと同じ透明度を共有すべきではありません
  • 大きなカードには影響していません:スキンカード、実績カード、フッターは 34% のままで、背後の画像はこれまで通り透けて見えます。統計の小さいマスの濃い下地もそのままです
  • ダークテーマにも同じ対応を入れました。そしてこれもバナーをアップロード済みのページでのみ起こります —— バナーのないページは 1 ピクセルも動いていません
v1.9.26 ウェブサイト 2026-10-02

さらに一段透けて、文字はそのまま読める

  • プロフィール:上辺を 62% → 56%、下辺を 40% → 34% に。背後の画像が本当に見えるようになりました —— 塔の灯りの縦線、地平線、遠景のブロックの輪郭が透けて見えます。すりガラスの板ではなくなりました
  • 「画像が見える」と「文字が読める」は本来ぶつかります。そこで分けて対処しました。統計の小さいマス(「累計プレイ時間」「ログイン回数」のような小さい文字が密集する場所)だけ、より濃い専用の下地(76% → 60%)にし、大きなカードはとても透けるままにしています。小さいものは濃く、大きいものは透ける —— アップルの階層とは逆に、意図してそうしています
  • 文字にはごく淡い同方向のハロー(text-shadow)を足しました —— 下地が明るいときは見えず、暗いときだけ浮かび上がるので、文字が自分の局所的な下地を持っているのと同じです。これがあるから 34% まで踏み込めます
  • ダークテーマには対応する濃いガラスと暗いハローを用意しました。そしてこれもバナーをアップロード済みのページでのみ起こります —— バナーのないページは 1 ピクセルも動いていません
v1.9.25 ウェブサイト 2026-10-01

ガラスがさらに透けて、よりアップルらしく

  • プロフィール:均一な「白 68%」をやめ、上は明るく下は透ける縦グラデーション(62% → 40%)に。ガウスぼかしは 22px → 32px、さらに saturate(180%) と brightness(1.12) を追加しました。アップル風のガラスは背後の色を拾って少し持ち上げます。ぼかすだけではただのすりガラスです
  • ガラスの縁に屈折エッジが付きました —— 上辺の 1px の斜光ハイライトと、内側を一周するごく淡い線。影も 2 層(接地するコンタクトシャドウ + 広がるアンビエントシャドウ)に分け、紙のように貼り付くのではなく画像の上に浮いて見えるようにしました
  • 透かしたことで初めて見えた問題も直しました。「累計プレイ時間」「ログイン回数」といった副ラベルがほぼ見えなくなっていたのです —— 使っているグレーは半透明の白の上でコントラスト 2.5:1 しかありません。ガラス面の内側だけ濃い色に変え、バナーの上に直接載っている小さい文字はそのままにしています
  • ダークテーマにも対応する濃いガラスの値を入れました。そしてこれらはバナーをアップロード済みのページでのみ起こります —— バナーのないキャラクターページは 1 ピクセルも動いていません
v1.9.24 ウェブサイト 2026-10-01

プロフィールが「リキッドグラス」に

  • カード、スキンパネル、6 つの統計タイル、そしてフッター全体が半透明のガラス(白 68% + 22px のガウスぼかし)になり、背後のバナーがぼかされて透けます。文字は濃いままなので画像の上でも読めます。ダークテーマでは濃いガラスに切り替わります
  • 実績カードの見出しに「すべて折りたたむ / すべて展開」が付きました。8 分類をまとめて畳めるので、98 個のバッジの一番下までスクロールする必要はもうありません
  • 右下の管理ドロワーに 4 つ目のタブ「アバター / 背景」が増えました。審査待ちの画像をそこで承認・却下できます。管理画面の「プレイヤーとデータ → アバター / 背景」と同じデータなので、どちらで審査しても同じです
  • これらはバナーをアップロード済みのページでのみ起こります —— バナーのないキャラクターページは 1 ピクセルも動いていません(変更前後のスクリーンショットをピクセル単位で比較しました)
  • ガラスが使えない場合(古いブラウザ)は従来の不透明カードに戻ります。ただしシステムの「透明度を下げる」設定にはあえて従っていません —— サイト管理者自身の Windows で透明効果がオフになっており、従うと本人がガラスを一切見られなくなるためです
v1.9.23 ウェブサイト 2026-10-01

プロフィールページが全画面に

  • 背景 —— バナーをアップロード済みの場合、キャラクターページはその画像でブラウザウィンドウ全体を覆い、アバター・名前・レベル・位置がその上に載ります。バナー未設定のページは 1 ピクセルも変わりません
  • 位置 —— 個人センター「個性化」で国(中国を選ぶと省も)を選べます。設定するとプロフィールの「オフライン / ランキング #8」の並びに表示され、未設定なら何も出ません
  • プレイヤー一覧の先頭アイコンは、あなたがアップロードした画像を優先するようになりました。以前は常に海外ホストから公式スキンのアバターを取得しており、ここではほぼ読み込めず、いつもカラフルな文字タイルしか見えていませんでした
  • アップロードしたアバターと背景は、審査を通ってからページに反映されます。審査待ちの間も以前の画像が表示され続けるので「半分だけ新しい」状態にはなりません。取り消したいときの「削除」は即時反映です
  • アップロード上限を拡大しました:バナーは最大 3840×2160(従来 1920×1080)、さらに SVG に対応 —— SVG は安全のためサニタイズし、スクリプト・外部参照・埋め込み HTML はすべて除去します
v1.9.22 ウェブサイト 2026-10-01

ポップアップの見た目を統一 · 昔の BAN を復元

  • サイト全体の 16 か所のポップアップを、サイト自前のダイアログに統一しました。以前はブラウザ自身の枠で、上部に「cloudridge.cn の表示」と出るうえ、モバイルでは特に浮いてしまい、サイトの見た目も反映されませんでした。現在はタイトル・本文・ボタンすべてをサイト側で制御し、危険な操作は赤いボタン、Esc で取消、Enter で確定、閉じたあとは直前のボタンにフォーカスが戻ります
  • 旧サーバー閉鎖時にまだ BAN されていた 8 人 + 3 IP を BAN リストに復元しました。公開ページはこれで 12 人 + 7 IP です。名前・IP・BAN 日時・実行者はいずれも当時の記録のまま転記しており、捏造は一切ありません。ひとつ補足:MOD はサーバー上の BAN ファイルを読んで報告するだけで、ゲーム内で実際に弾くのはサーバー側のリストです —— 反映にはサーバーの再読み込みが必要です
v1.9.21 ウェブサイト 2026-10-01

あの「未知のプレイヤー」は同一人物でした

  • プレイヤー一覧にはずっと「未知玩家 · 000000」という行があり、数えられていない 4 人目のように見えていました。原因が判明:旧サーバーの floodgate が統合版プレイヤーに配る UUID は 00000000-0000-0000-0009-… というプレースホルダー領域で、MOD が報告できるのは「名前」だけ —— その瞬間の名前がたまたまその UUID だったのです。実体は birdzhonghuifei が統合版で遊んでいた期間で、本人の行に統合しました
  • 統合のルール:カウント系(プレイ時間、ログイン回数、死亡、採掘、設置、移動距離)は加算、進捗は和集合、そして初参加はより早い方、最終オンラインはより遅い方を採用 —— 時刻は足し算してはいけません。行に付いていた 9 個のバッジは本人がすでに同じものを持っていたため、重複分は破棄しました。ランキングは 1 行減り、birdzhonghuifei の数字はより完全になりました
v1.9.20 ウェブサイト 2026-10-01

カレンダーで年月を直接選べるように

  • カレンダーの左上に「年」「月」のドロップダウンが付きました。年を選んで月を選ぶ、2 回でどの月へでも飛べます —— ‹ を押して 1 か月ずつめくる必要はもうありません。前後ボタンと「今日」もそのままで、めくるとドロップダウンも一緒に動きます
  • ついでに並べ替えの不具合も修正:「初参加」で並べ替えると、日付が不明な行が 1〜4 位に押し上げられ、順位表全体が壊れたように見えていました —— 「値がない」は「最も早い」とは違います。こうした行は昇順・降順どちらでも最下位に沈みます
v1.9.19 ウェブサイト 2026-10-01

チャット記録をさらに 229 件復元

  • TrChat プラグインのログは 2023-09-01 からしか記録されておらず、2024 年後半には欠けている期間がありました。未取り込みだった旧サーバーの CoreProtect データベース 3 つに 2024-07〜2024-12 のチャットが 34,417 件残っており、重複を除いた結果 229 件の発言 を復元しました(37 日分、最も古いものは 2024-07-11)
  • 重複判定は「同じプレイヤーが ±5 秒以内に同じ発言をしている」で行っています —— 同じ発言は TrChat と CoreProtect の両方に記録され、タイムスタンプは通常 1 秒ずれ、時には分をまたぎます。分単位で比較するとその数十件を新規発言として二重に取り込んでしまいます
  • この 37 日間が真っ白だったわけではありません —— 当時 TrChat がほとんどの会話を記録しており、戻ってきたのは取りこぼされたぽつぽつとした数行です。2024 年 7〜12 月のこれらの日を開くと、当時の会話がより完全に見られます
v1.9.18 ウェブサイト 2026-10-01

アカウント内のサブキャラを展開できるように

  • 「プレイヤーリスト」で複数のキャラクターを持つ行の先頭に矢印が付きました。既定は折りたたみで、クリックすると各キャラクターが個別の行に展開され、それぞれの累計プレイ時間・ログイン回数・最終オンライン・状態が並びます(親行は合計、子行は個々の値)。もう一度クリックで元に戻ります
  • サブキャラの名前で検索すると、その行が自動的に展開されます —— Winter で検索すれば、Fruity_oxygen と並んで自分の数値がすぐ見えます。誰の行に隠れているかを推測する必要はありません。ついでに古い不具合も修正しました:プレイヤー名で並べ替えるとヘッダーが本文より 1 列少なくなり、表全体がずれていました
v1.9.17 ウェブサイト 2026-10-01

プレイヤー榜をアカウント単位に · 3 年分のチャットを復元

  • 「プレイヤー一覧」は1 行 = 1 サイトアカウントになりました。同じアカウント名義のキャラクターはデータを合算します(Fruity_oxygen と Winter が 1 行、ElfinLettuc と Faithe が 1 行)。アカウントを連携していない人は各自 1 行のままです。名前の横の「N キャラ」バッジで、誰がどこにまとまったかを確認できます — 以前はメインとサブが別の行に分かれ、サブのプレイ時間が無駄に見えていました
  • アカウントページ(/accounts/番号)を新設しました。名下の各キャラクターを個別に並べ、それぞれのプレイ時間とログイン回数が分かります。上部の集計値はそれらの合計です。このページは完全公開で、ログインなしで閲覧できます。あわせて、存在しないアカウント番号を指していた 1 件の不整合データも掃除しました
  • ずっとプレースホルダーのままだった 3 つの項目を埋めました:最終オンライン(929 キャラすべてが 2026-09-13 になっていました)、初参加(936 件が同じく偽の 2026-09-13)、ログイン回数(サイト全体で 291 しかなく、928 人が「—」表示)。最終オンラインはサーバーのセーブファイルの更新時刻から、初参加とログイン回数は歴代サーバーのログから取得しています。wwwsum は 2024-08-22、7Strawberry は 2024-03-07 と正しく表示され、ログイン回数の合計は 291 から 21,766 になりました
  • チャット欄が開設以来の記録をすべて取り戻しました。2022-12-16 の最初の 1 行から、2026-09-25 に MOD のリアルタイム報告へ引き継ぐまで、174,457 件の発言と入退室記録(発言 124,024、入室 25,424、退室 25,009)。以前は MOD を入れてからの数日分しかなく、今はウェブマップでどの日をクリックしてもその日の会話が読めます
  • カレンダーは直近 400 日しかクリックできない仕様だったため、復元した 729 日のうち 492 日は開けませんでした — 復元したのに見られない状態です。今は記録のある日はすべてクリックできます。また「登録プレイヤー」の数字がトップページと一覧で 2 ずれていました(791 と 789)。アカウント基準に統一しました
v1.9.16 ウェブサイト 2026-09-30

外部へのリクエストが TLS 証明書を検証するようになりました

  • サイトが外部へ送る HTTPS リクエスト(スキン配信元、IP の所在地、SMS ゲートウェイ、メールサーバー、QQ ログイン、管理画面のテストボタン)は、これまで証明書の検証を切ったまま送られていました。経路上の誰でも自己署名証明書で相手になりすまし、リクエストを丸ごと横取りできたということです。現在はすべて適切に検証され、サイトに同梱したルート証明書バンドル(Mozilla のもの、121 個のルート証明書)と照合されます。
  • 最も重要だったのはメール接続です。検証を切っていると、経路上の誰かがメールボックスのパスワードとすべてのメッセージ本文をまとめて手に入れられました。126 メールボックスの証明書は正常なので、送信は影響を受けません。
  • 代償もあります。相手の証明書が本当に壊れている場合、リクエストは黙って接続するのではなく、エラーで失敗するようになりました。管理画面のテストボタンは、このケースを「証明書の検証に失敗」として個別に表示します。ルート証明書バンドルが万一見つからなくなっても、検証なしへ戻ることはなく、より明確に失敗するだけです。
  • ついでに古い不具合も直しました。更新履歴の v1.9.6 と mod 1.6.0 の見出しがずっと「title」と表示されていました —— 本文しか用意しておらず、ページは見出しを無条件に描画するため、キーが無いとキー名の最後の部分にフォールバックしていたためです。見出しを追加しました
v1.9.15 ウェブサイト 2026-09-30

セキュリティ点検:6 件を修正

  • 管理画面の扉が一つ、半分開いたままでした:オーナー / 管理者 / サーバー管理者の 3 グループの人は、自分のサイトのアカウントとパスワードでフロントにログインするだけで /admin/** をそのまま開けました —— メール認証コードの手順が丸ごと飛ばされていたのです(元々は管理画面のログインページでしか塞いでいませんでした)。現在は「このセッションは本当にコード入力を通った」という証明書を持たせており、フロントのログインが管理画面のログインになることはもうありません。サイト内には以前から「管理画面は admins テーブルのアカウントしか認めない」と書いてあり、ようやく実装と説明が一致しました
  • Mod が BANリストを読めなかったときは空のリストを報告し、サイトは「リストが空だ」を「BAN はすべて解除された」と受け取っていました —— その結果、データベースの BAN 記録をテーブルごと上書きし、解除履歴を捏造し、players.is_banned まで消していました。現在は Mod が実際に読み取れたときだけ「このリストは正しい」と宣言し、サイトもその宣言(または空でないリスト)を受け取ったときだけ解除の突き合わせを行います。これが完全に効くには Mod 1.6.6 が必要ですが、サイト側はすでに先に受け止めています
  • 個人ページのバナー URL はプレイヤー自身が入力するもので、それが style="…url(URL)" にそのまま埋め込まれていました。URL に ) を 1 つ入れるだけで任意の CSS 宣言を追加できます —— 個人ページは他人が見るものなので、訪れた全員が引っかかります(position:fixed で全画面フィッシング、あるいは追跡画像で訪れた人の IP とブラウザを漏らす)。これはエスケープでは防げません:HTML が &quot; を引用符に戻してから CSS に渡すためです。現在は URL をホワイトリストで検証し、通らないものはバナーを表示しません
  • /whitelist にある「自分の申請」というカードは、実際にはサイト全体の直近 5 件を問い合わせていました —— ログインしていれば誰でも他人のゲーム ID、QQ 番号、審査メモを読めていました。現在は所有者で絞り込んでおり、管理画面とサーバー管理のページはこれまで通りサイト全体の表示です
  • ツールページの DNS 検索は、内部アドレスの遮断を唯一すり抜けられる入口でした:127.0.0.1 や内部ホスト名でも普通に解決でき、SRV レコード(宛先は他人の DNS が決めます)で回り込む道もありました。host:port のポート検査も、コロンを切り分ける前に実行されていたため、8.8.8.8:53 で任意のポートを探れてしまいました。3 つとも修正し、::1 を指す AAAA レコードも遮断の対象に含めました
  • さらにもう 3 件:① ログイン後のリダイレクト next= に javascript:… を入れると一行で XSS が成立しました(Url::ensure() は文字列に index.php が含まれていればスキームを一切見ずにそのまま通していました);② パスワード復元スクリプトを実行した後、管理画面のログインページが新しい平文パスワードをそのページを開いた全員に表示していました —— パスワードはもともとサーバーコンソールにも出力されるので、ページ上の分は削除しました;③ CDR_DEBUG_CSRF を有効にすると、ログにログインリクエストの先頭 160 バイト、つまり平文パスワードが記録されていました —— 現在はフィールド名と長さだけを記録します
v1.9.14 ウェブサイト 2026-09-26

「達成数の増減」を修正

  • ゲーム内でオンラインの間は実績が点灯し、オフラインになった途端に全部灰色になる不具合を修正しました。Mod が進行状況ファイルを読めないときは空のリストを送りますが、サイト側はそれを「このプレイヤーは実績なし」と解釈してデータベースに書き込み、保存済みの進行状況を消していました。空のリストは一切書き込まないようにしました —— 古いデータを残すほうが、0 にリセットするよりましです(adv_done も同様で、0 より大きい値のみ受け付けます)
  • 同じカテゴリ内で「1 つの系列が真っ二つに割れる」並び順も修正しました。「達成済みを最優先」にしていたため、探索の 跳跃 10,000 / 100,000(達成済み)と 跳跃 500,000(未達成)がグループの両端に離れ、間にエンドやネザーの実績が挟まっていました。現在はまず系列ごとにまとめ(1 km / 10 km …、1 万回 / 10 万回 …)、系列内で達成済みを先に並べます —— 折りたたみは未達成をその場で隠すだけなので、達成済みはこれまで通りすぐ見えます
v1.9.13 ウェブサイト 2026-09-26

名前の埋め戻し先の決定ルールを修正

  • 同じ名前が埋め戻し表に複数回現れることがあります —— 同じ人物が古いオフライン UUID(00000000-0000-...)と正規の UUID の両方を持つ場合で、どちらもその人を指します。元のコードはファイル順の早い者勝ちでした:このサイトでは birdzhonghuifei が 106.4 時間の行と 1.9 時間の行の両方に対応しており、たまたま長いほうが先に来たから正しく付いただけです。順序が違えば別人に名前が付いていました。現在はプレイ時間が最も長い行に付与され、順序に依存しません
v1.9.12 ウェブサイト 2026-09-26

「不明なプレイヤー」863 人全員の名前が戻りました

  • サーバーの usercache.json は約 1 か月しか保持しないため、1.21 サバイバルサーバーから 1.21.11 まで引き継いだワールドでは、古参プレイヤーの名前はとっくに失効していました —— サイトは UUID を識別子にするしかなく「不明なプレイヤー · xxxxxx」と表示していました。そこでバックアップ保管庫を探しました:歴代サーバーの usercache / whitelist / ops / banned-players を時系列で旧→新に統合したところ、863 件すべて(欠けなし)復元できました(ランキングの 395 時間の人は iRXC)。v13 へのアップグレード時に一度だけ自動で埋め戻します:名前がまだ UUID の行だけを対象にし、既に本名がある行は 1 バイトも変更しません
  • 境界条件も塞ぎました:players.name は一意インデックスなので、埋め戻す名前が別の行に既に使われていた場合はその行を飛ばして記録します —— 一意制約の衝突でアップグレード全体が失敗することはありません。1 人が「不明」のまま残るほうが、移行が止まるよりましです
v1.9.11 ウェブサイト 2026-09-26

管理画面のプレイヤー名を修正 · 本名が上書きされなくなりました

  • 管理画面のプレイヤー一覧 / ダッシュボード / BAN / ホワイトリスト / スキン / ユーザーの各ページで、名前を解決できなかったプレイヤーが生の UUID のまま表示されていました。公開側はずっと「不明なプレイヤー · xxxxxx」と出しており、管理画面で数か所漏れていたのを揃えました。該当は 863 人います —— サーバーの usercache.json は約 1 か月しか保持しないため、この古いワールドが引き継いだ名前はとっくに失効しており、サイトは完全な UUID を識別子にするしかありません(表示不具合ではなく、本当に表示できる名前が残っていません)
  • あわせてデータ消失の危険も修正しました。Mod は名前を解決できないとき空の名前を送りますが、旧コードはそのまま UUID を上書きしていました。1 か月以上プレイしていない古参プレイヤーは、次の同期で保存済みの本名が永久に消えてしまいます。今後は既に本名があればそれを維持し、本当に名前が無いときだけ UUID に退避します
v1.9.10 ウェブサイト 2026-09-26

プレイヤーページの「1 日で 225 時間」を修正

  • プレイヤーページの「直近 30 日のオンライン時間」に出ていた異常な数字を修正しました。サーバーが落ちたり退出イベントを取りこぼしたりすると閉じられないままの接続記録が残り、その確定処理が「最後に確認できた時刻」を終了時刻にしていたため、09-13 に始まった記録が 09-23 まで計算され、その 225 時間が丸ごと参加した日に載っていました。確定処理には 3 つの上限を設けています —— 6 時間の上限、そのプレイヤーの次セッションの開始時刻、そして推定を縮めることしかできない「最終確認時刻」です
  • すでにデータベースに入っている数件の不正な行も、データベースを触らずに正しく表示されます(読み出し時に同じ規則で頭打ちにします)。「最近のログイン記録」「累計オンライン時間」「今週のオンライン」「サーバー別の時間」も同じ規則に揃えました —— 以前はそれぞれが生の秒数を合計していたため、同じ数字がページ内で食い違っていました
v1.9.9 ウェブサイト 2026-09-26

スマホ版カレンダーのはみ出しを修正 · 年間のオンライン人数を「その日の最高」に

  • スマホ版チャットで日付を選ぶときカレンダーがパネルの枠からはみ出していた問題を修正しました(狭い画面ではパネルに重ねず、1 行として並べるので、幅はそのままコンテナの幅になります)
  • 「1 年」のオンライン人数を6 日平均からその日の最高に変更しました — 夜だけ賑わうサーバーは平均 2 人でも、その時間帯に十数人が同時にいたかもしれません。平均で描くと 1 年が何も語らない一本の線になります。24 時間 / 7 日 / 30 日はこれまで通り平均です(そこの 1 点は数十分ぶんにすぎないため)
v1.9.8 ウェブサイト 2026-09-26

チャット:サーバーの起動と停止がリアルタイムチャットに記録されます

  • サーバーの起動と停止(時刻つき)がチャット欄に 1 行で表示されるようになりました。アバターの代わりに小さな縦線を使い、色もプレイヤーの発言と区別しています
  • 更新履歴の本文が コード と 太字 の 2 種類の記法に対応しました(以前はバッククォートのみで、太字はアスタリスクがそのまま表示されていました)
v1.9.7 ウェブサイト 2026-09-25

チャット欄:日付ごとの表示、発言権限の緩和、ダイアログ部品

  • チャット履歴を日付ごとに見られるようになりました。カレンダーで日をクリックするとその日のチャットが読め、記録のある日は太字で表示されます。日付を切り替えてもページ全体を再読み込みしません。
  • 発言の権限を緩めました。ログインしていれば発言でき、先にゲームキャラクターを連携する必要はありません。連携済みならそのキャラクター名を表示し、未連携ならサイトのニックネームを使い、ゲーム内では実在のキャラクターと区別できるよう [Web · 未連携] と表示します。
  • サイトのニックネームは 15 日に一度しか変更できません(最初の設定は制限なし)。マイページに残り日数が表示されます。ニックネームは既存のゲームキャラクターや管理者と重複させられないので、名前を変えて他人になりすますことはできません。
  • 通報は正式なダイアログに変わりました。文字数カウンター付きの理由入力欄が、ブラウザ標準の小さなボックスに取って代わります。取り消しの確認と管理画面のいくつかの確認も同じ方式に置き換えました — ブラウザ標準のダイアログはページ全体を止めてしまうためです。
  • 管理画面のチャット管理では未連携の送信者に印が付きます。削除、通報の処理、ミュートはこれまでどおりです。
v1.9.6 ウェブサイト 2026-09-25

ウェブチャット欄が登場:ゲーム内チャットと双方向

  • ウェブマップの下にチャット欄を追加しました。ゲーム内の全体チャットの発言、入退室、死亡、進捗の達成がリアルタイムでサイトに表示され、それぞれに送信時刻が付きます
  • 双方向に対応しました — サイトのチャット欄に書いた内容は [网页] の接頭辞付きでゲームの全体チャットに表示されます。ゲーム内外で表示される名前は同じ(連携したキャラクター名)なので、なりすましはできません
  • 未ログインではチャットの内容が見えません(画面で隠しているのではなく、サーバーが 1 バイトも送信しません)。ログインしてゲームキャラクターを連携すると発言できます
  • チャットは「サーバー稼働ラウンド」ごとにまとまっており、過去のラウンドの記録に切り替えて見られます。サーバーを再起動しても消えません
  • 各メッセージにはアイコンと送信時刻が付きます。自分の発言は取り消せて、ほかの人の発言は通報できます
  • 管理画面に「チャット管理」を追加しました。メッセージの削除(サイトとゲーム内に同時に反映)、通報の処理、ミュート、操作の記録(削除したときも原文を残して追跡できるようにします)
v1.9.5 ウェブサイト 2026-09-25

更新履歴を種類・月・バージョンで絞り込み

  • 更新履歴を絞り込めるようになりました。上部の 3 つの数字(サイト / MOD / サーバー)がクリックできるチップになり、もう一度押すと解除されます
  • 月での絞り込みとバージョン検索を追加しました。「1.9」と入力すると 1.9.0〜1.9.4 が出て、両方の条件を重ねられます
  • 絞り込み状態は URL に入るので、リンクをそのまま渡せば相手も同じ結果を見られます
  • 数字は全体の件数のまま(絞り込んでも減りません)。「この条件に合う更新はありません」という空表示も追加しました
v1.9.4 ウェブサイト 2026-09-25

ログイン不具合の修正、バックアップの安全網、API ドキュメント整備

  • 管理画面の二段階認証を通れない問題を修正しました。原因はサーバーの PHP バージョンで書き込みトランザクションのコミットが黙って飛ばされ、確認コードがデータベースに残らないことでした。メールは届くのにコードを入れても「先にコードを取得してください」と出て、再送の制限も効いていませんでした
  • 同じ原因の潜在的な箇所をさらに 3 つ修正しました(プレイヤー検索、ハートビート指標、セッション記録)
  • バックアップ整理をカテゴリ別の枠に変更しました。アップグレード前・復元前の安全なスナップショットが通常のバックアップに押し出されることはなくなり、手動で書き出したバックアップは自動削除されません
  • 公開プレイヤー API の検索パラメータが効いていませんでした。全 500 人を超えるとプレイ時間 500 位以下のプレイヤーを検索できません。部分一致に変更し、ワイルドカードの穴も塞ぎました
  • 送信内容が上限を超えたときは真っ白な画面ではなく、はっきりしたメッセージを表示します
  • API 契約ドキュメントに公開読み取り専用の 5 エンドポイントを記載しました
  • 管理画面ログインの「ユーザー名とパスワードに戻る」リンクが誤った手順に飛ぶ問題を修正しました
v1.9.3 ウェブサイト 2026-09-23

バッジ壁の折りたたみ、グラフの説明、24 時間推移の修正

  • 実績システムを 28 個から 98 個に拡張し、生存 / 建築 / 探索 / レッドストーン / 農業 / 戦闘 / 交流 / 収集の 8 分類に整理しました。各分類には「達成数 / 総数」が付きます。うち 35 個はゲーム内の実際の進捗をそのまま判定し、日付はゲームで達成が表示された瞬間です
  • 五角形レーダーチャートの各軸に説明を追加しました。何を測り、どう計算し、いくつで満点なのかが分かるので、形から推測する必要はありません。凡例も追加し、塗りつぶしがあなた、灰色の破線がサーバー平均です
  • 24 時間推移グラフが実際と合わない問題を修正しました。原因は、履歴に保存していたのが MOD の生の人数(常時接続のボットを含む)で、ページが表示していたのは除外後の人数だったことです。いまはハートビートの記録と表示が同じ数字を使い、線にマウスを乗せると時刻と人数が出ます
  • グラフの期間を切り替えられるようになりました。24 時間 / 7 日 / 30 日 / 1 年で、サーバーの最近の様子が一目で分かります。サーバーが停止していた時間帯は線が途切れ、開いていない日を 0 人として描くことはありません
  • プレイヤーページのバッジ壁を折りたためるようにしました。達成済みのバッジは常に表示され(あなたの戦績です)、未達成のものは各分類の見出しや下部の「すべて表示」ボタンの後ろに隠れます。折りたたみ状態は記憶され、再読み込みしても同じ表示です。JavaScript が無効でも 98 個すべて表示されます
  • セッション記録の修正:「オンライン中」は以前、セッションに終了時刻があるかどうかだけで判定していたため、サーバーのクラッシュや退出イベントの取りこぼしがあると「オンライン中」のまま残り、同じ人が 2 つのセッションで同時にオンラインと表示されることもありました。いまはサーバーがリアルタイムに報告する名簿を基準にし、一致しないものは「異常終了」と表示して自動で締めます。退出イベントが重複して届いても 2 つ目のセッションは作られません
  • 「ゲーム進行」バッジが一つも点灯しない問題を修正しました。判定に使う進捗 ID に余分な接頭辞が付いており、ゲームが報告する進捗名と一致していなかったため、35 個の実際の実績がすべて未達成として表示され続けていました(画面上は灰色なだけで、まだ取っていないように見えるため、見た目では気づけません)。ID を揃えたので、達成済みは正しく点灯し、ゲームで実際に達成が表示された日付が出ます
v1.9.2 ウェブサイト 2026-09-22

セキュリティとプライバシーの強化、アップロードと使い勝手の仕上げ

  • QQ ログインを接続しました。AppID・AppKey・コールバック URL は設定済みで、Tencent の審査が通り管理画面のスイッチを入れれば使えるようになります。それまではログインページにボタンを出しません(押しても何も起きない入口を作らないためです)
  • セキュリティ強化:/storage/ ディレクトリに直接アクセスできなくなりました(データベースのバックアップやスキンのキャッシュなど、公開すべきでないファイルが入っています)
  • データベースに残っていた管理者パスワードの平文をすべて削除し、暗号化されたダイジェストだけを残しました
  • キャラクター紐付けの確認 API に失敗回数の制限を追加しました。短いコードを何度も間違えるとしばらくブロックされ、総当たりを防げます
  • プレイヤーの絞り込み、SVG の検査、項目の検証を許可リストとパラメータバインドに変更しました。明示的に許可した値だけを通し、外部から来た文字列をそのままクエリに組み込むことはもうありません
  • サイト全体 74 か所の JSON 出力に安全なエスケープ指定を追加しました。ページに埋め込まれたデータがタグとして解釈されることはありません
  • プライバシー:プロフィールの公開スイッチには、まだ 5 か所すり抜けて見られる場所がありました(鍵が不要な公開プレイヤー API も含みます)。すべて塞いだので、オフにした項目は公開 API からも分かりません
  • WebP に対応:アイコン、バナー、画像ライブラリ、フォーラムなど 8 か所すべてで WebP をそのままアップロードできます
  • 管理画面の「許可する形式」が文字列 "array" に壊れて保存される問題を修正しました。アップロード形式の一覧が効かなくなっていた根本原因で、保存しても壊れなくなりました
  • プレイ時間の表示をサイト全体で時間制に統一しました(主な数字は時間、日数は小さな副題)。ランキングは「並べ替えた項目の列だけ」を表示します
  • 古いブラウザ向けのフォールバック:アクティビティのヒートマップ、成長バー、アップロード欄の淡い背景とフォーカスリングが、color-mix() 非対応のブラウザでも透明になりません
  • 公開プレイヤーページの名前の横にレベルバッジ(Lv.N)を追加しました。スマホの狭い画面でもはみ出しません
  • ブランド画像:テスト画像に上書きされていたロゴとアイコンを復元し、ブランド画像のオフライン保管と brand-restore.php を用意しました。今後また上書きされてもすぐ戻せます
v1.9.0 ウェブサイト 2026-09-19

プレイヤーセンターと画像アップロードの刷新

  • マイページを刷新しました。成長の進み具合、今週のアクティビティ、実績バッジ、コミュニティでの足跡、最近のアクティビティのタイムラインが 1 ページにまとまります
  • ゲームレベルを追加しました。累計プレイ時間から換算し、10 時間ごとに 1 レベル(Lv.1 から)です。マイページでも公開プレイヤーページでも確認できます
  • 公開範囲のスイッチを追加しました。累計プレイ時間、最終ログイン、初参加の日、オンラインプレイヤー一覧の 4 項目を自分で公開するか決められ、オフにすると他のページからも分からなくなります
  • アイコンとバナーは画像を直接アップロードでき、自動で WebP として保存されます(サイズが小さく、読み込みも速くなります)。アイコンは中央で正方形に切り取り、バナーは 1920×1080 以内に比例縮小します
  • 対応する画像形式は PNG / JPG / WebP / GIF です。AVIF の場合は、先に PNG か WebP で保存してからアップロードするよう案内が出ます
  • 画像ライブラリを追加しました。アップロードされた画像を管理画面でまとめて管理でき、サイズ、容量、使われている場所が分かります
  • アップロードの安全性を強化しました。ファイルの実際の中身で種類を判定し(拡張子を変えて偽装したものはすべて拒否)、アップロード先の外へ出ようとする細工を遮断し、SVG は許可リストにあるものだけ通し、参照されていない孤立ファイルは整理します
  • ゲームキャラクターの紐付けは「サイトで申請 → ゲーム内で /cdr claim と短いコードで確認」に変わりました。確認できるのはそのキャラクター本人だけです
  • マイページにスキンの 3D プレビューを追加しました。シードマップとマップはどちらも HTTPS になりました
v1.9.1 ウェブサイト 2026-09-19

権限表を作り直しました(このサーバーに実際に入っている Mod に合わせて)

  • 権限のチェック表を、このサーバーに実際にインストールされている Mod に合わせて作り直しました。本物の権限ノードがある項目だけを残し、チェックすればそのまま効きます
  • Mod が入っていない能力(領地管理、/hat、/back、チャット色など)はチェック表から外し、代わりに下のセクションで何が足りないか、将来どのノードを入れればよいかを正直に説明します
  • 各権限には「チェックするとゲーム内で実際に何ができるか」を明記しました。たとえば「スペクテイター」でクリエイティブまで開いてしまうことは絶対にありません
  • 「クリエイティブモード」は独立した項目です。サーバーオーナーと管理チームがチェックしたときだけ再確認なしで保存され、それ以外のグループは先に確認ダイアログが出ます。サイトの通常アカウントでも、サーバーオーナーと管理チームなら管理画面に直接ログインできるようになりました
v1.8.2 ウェブサイト 2026-09-18

CloudRidge ブルーと新しい配色、より安定したログイン

  • サイト全体の配色を「CloudRidge ブルー」に変更しました。色の値はサーバーロゴから直接取得しているので、サイトとロゴを並べても色が食い違いません
  • 本番環境でロボット認証が「全員通らない」問題を修正しました(リバースプロキシ環境では実際の IP が取れず、レート制限がすべての訪問者を同一人物として扱っていました)
  • 認証は通ったのにページが遷移しないとき、送信ボタンが固まったままにならず、8 秒後に自動で復帰します
  • ホームのファーストビューのボタンが、スマホで画面からはみ出さなくなりました
v1.8.1 ウェブサイト 2026-09-18

ロボット認証のアップグレード

  • ロボット認証を ALTCHA 2.x にアップグレードし、代替手段として画像認証コードを追加しました。ブラウザが計算できないときは、画像の文字をそのまま入力できます
  • 登録、ホワイトリスト申請、認証コードの再送といった処理もロボット認証の対象にし、他人のメールアドレスで認証コードを大量に要求するリクエストを防げます
  • ホームに「ワンクリックで QQ グループに参加」を追加しました。パソコンでもスマホでも QQ が直接起動します
  • サイトアイコンを各種サイズに揃え、スマホの「ホーム画面に追加」でもアイコンが出るようになりました
v1.8.0 ウェブサイト 2026-09-18

実績、端末のログイン記憶、新しい見た目

  • プレイヤー詳細ページに実績バッジと能力レーダーを追加し、そのプレイヤーが何を得意としているかひと目でわかります
  • 「この端末を記憶する」を追加しました。チェックすると 30 日間は再ログインが不要です(パスワード変更や全端末からのログアウトで即座に無効になります)
  • 管理画面のログインに 2 段階目のメール認証コードを追加し、オフライン復旧キーも発行します。メールが届かないときも管理画面に入れます
  • ホワイトリスト申請ページは、自分の状況に応じて内容が変わるようになりました。審査中、承認済み、または前回却下された理由と再提出フォームです
  • サイト全体の配色を、サーバーロゴと同じ色の青緑と墨色に変更し、見出しはセリフ体にしました。余白のある山水画のような雰囲気になっています
  • フォーラムのカテゴリのアイコンは emoji を使うのをやめ(一部の環境では空の四角に表示されるため)、サイト独自のアイコンに変更しました
v1.7.0 ウェブサイト 2026-09-18

ガイドの検索とリアルタイム情報

  • サーバーガイドに検索を追加しました。見出しか本文のキーワードで直接探せます
  • ガイドのサイドバーに「サーバーのライブ情報」を追加しました。バージョン、ローダー、MOD バージョンといったリアルタイム情報を、ページを移動せずに確認できます
  • ガイドのコマンド一覧と MOD 一覧はアドレスから直接開けるので、新しいプレイヤーに共有しやすくなりました
  • スマホではガイドのサイドバーが本文の上に並び、ライブ情報のブロックが画面 1 つ分を占めることはなくなりました
v1.6.0 ウェブサイト 2026-09-18

スキンサイトの同期

  • スキンサイトとの同期に対応しました。スキンサイトで同じ名前で登録してスキンをアップロードすると、ウェブサイトが自動で取り込みます
  • プレイヤー詳細ページで初めて見る名前に出会ったときは、自動でスキンサイトに一度問い合わせ、見つかればそのまま表示します
  • マイページに「スキンを再同期」を追加しました。スキンサイトでスキンを変えたらワンクリックで更新できます
  • 管理画面でスキンサイトのアドレスを自分で入力できます(既定は LittleSkin)。今後サイトを変えてもコードの修正は不要です
v1.4.0 ウェブサイト 2026-09-18

アカウントとセキュリティ

  • マイページを刷新し、「アカウントとセキュリティ」と「カスタマイズ」の 2 つのセクションを追加しました。ログイン履歴、連携の変更、パスワード変更はここで行います
  • 「すべての端末からログアウト」に対応しました。パスワードを変更したときや別の場所でログアウトしたときは、他の端末のログインがすぐに無効になります
  • 認証コードに端末ロックを付けました。同じ端末では 1 日に最大 5 通までで、スクリプトで SMS やメールを大量に送る行為を防ぎます
  • メールアドレスか携帯番号の認証が済んでいないときは、ページ上部で 1 回お知らせします。認証を済ませると、ホワイトリストの申請、投稿、キャラクターの連携ができます
  • マイページで、各サーバーでの自分の活動まとめを確認できます
v1.5.0 ウェブサイト 2026-09-18

再パッケージリリース

  • v1.4.0 と内容はまったく同じで、リリースパッケージを作り直しただけです。機能の変更はありません
v1.3.8 ウェブサイト 2026-09-17

ログイン方法の説明を補完

  • パスワードログインのページに、使える 3 種類のアカウント(メールアドレス、携帯番号、連携済みのゲーム名)をはっきり書き、実際の対応内容と一致させました
  • 多言語のテキストも合わせて補完しました
v1.3.7 ウェブサイト 2026-09-17

ログインページの背景画像

  • ログイン、登録、パスワード再設定のページで背景画像を自由に設定できるようになりました(管理画面からアップロード)。カードはすりガラス風になりました
  • 管理画面の「外観」から、ホームのメインビジュアル、サイトロゴ、ブラウザアイコン、ログインページの背景画像をアップロードできます
  • ログインはメールアドレスと携帯番号のほか、連携済みのゲーム名でもできるようになりました
v1.3.6 ウェブサイト 2026-09-17

SMS キーのチェックを再追加

  • SMS キーのチェックを復活させましたが、本当に問題になる場合だけ警告します。32 文字の 16 進数になっているときです(それは MD5 で、平文の KEY ではありません)
  • 警告には KEY をどこでコピーし直せばよいかが明記され、「キーが違います」で悩む必要はありません
v1.3.5 ウェブサイト 2026-09-17

SMS キーのヒントを修正

  • 誤って警告を出す SMS キーの長さヒントを削除しました(以前は 32 文字を要求していましたが、プラットフォームの実際のキーは 16 文字です)
  • キーが正しいかどうかは SMS プラットフォーム自身が答えるようになり、長さから推測することはなくなりました
v1.3.4 ウェブサイト 2026-09-17

ログインの修正とセキュリティ強化

  • メールアドレスと携帯番号のパスワードログインが必ずエラーになって開けない問題を修正しました(以前は 500 になっていました)
  • ログインの失敗が多すぎると一時的に制限されるようにし、スクリプトによるパスワード総当たりを防ぎます
  • ナビゲーションのグループ内に現在のページがあるときは、グループのボタンも一緒にハイライトされ、今どこにいるか一目でわかります
  • ログインページで「QQ ログイン」と「メールログイン」を区切り線で分け、見間違えにくくしました
v1.3.3 ウェブサイト 2026-09-16

SMS 設定のセルフチェック

  • 管理画面の SMS 設定に「ゼロコストのセルフチェック」を追加しました。実際に SMS を送らずに、ユーザー名、キー、テンプレートが正しいか検証できます
  • 「アカウントかキーが違う」のか「テンプレートがまだ審査を通っていない」のかをはっきり示すので、当て推量は不要です
  • 定期タスクが SMS テンプレートの審査状況を定期的に確認し、承認されたら有効化を自動で知らせます
v1.3.2 ウェブサイト 2026-09-16

複数サーバーへの対応

  • 複数サーバーに対応しました。それぞれに種類(サバイバル、クリエイティブ、ミニゲーム)を設定でき、フロント側は種類ごとに違う内容を表示します
  • クリエイティブサーバーでは建築パネルの説明、ミニゲームサーバーでは対戦の説明と PvP ランキングを表示します
  • ホワイトリストや BAN などの変更は、サーバーごとに本当に実行されたかを確認するようになり、「あのサーバーだけ同期されていない」ということが起きなくなりました
  • 管理画面で、1 件の変更を特定のサーバーにだけ送るように指定できます
v1.3.1 ウェブサイト 2026-09-16

管理画面のログとメッセージセンター

  • 管理画面に「操作ログ」を追加しました。誰がいつ何を変えたかをすべて確認できるので、問題が起きたときにデータベースを探し回る必要がありません
  • 管理画面に「メッセージセンター」を追加しました。メールと SMS の送信記録を確認できるので、プレイヤーが「認証コードが届かない」と言ったときもその場で確かめられます
  • 管理画面にホワイトリストの一括ツールを追加しました。追加、削除、無効なリストの整理を一度にできます
  • ユーザーグループの権限判定が効かない問題を修正し、グループ権限の設定が本当に反映されるようになりました
  • 管理ダッシュボードのトップに直近 14 日間の推移グラフを追加しました。新規ユーザー、ホワイトリスト申請、アクセス数、新規プレイヤー
v1.3.0 ウェブサイト 2026-09-16

プレイヤースキンとナビゲーションのグループ化

  • プレイヤースキンを追加しました。64×64 のスキンをアップロードすると、マイページとプレイヤー詳細ページで 3D モデルとして表示されます(外部ライブラリは一切読み込みません)
  • マイページに「マイスキン」欄を追加し、いつでもアップロードまたは削除できます
  • ヘッダーのナビゲーションをグループ別のドロップダウン(サーバー、コミュニティ)に変更し、スマホでも 2 行に詰まらなくなりました
  • サーバーガイド内の [[mods]] や [[server-facts]] のようなリアルタイムブロックが、一部のページで角括弧のまま表示される問題を修正しました
  • フッターに ICP 登録番号と公安登録のアイコンを追加しました
v1.2.3 ウェブサイト 2026-09-13

SMS チャンネルと一連の不具合修正

  • SMS 認証コードに対応し、携帯番号での登録とパスワード再設定が使えるようになりました(管理画面でプラットフォームの設定を入れれば有効になります)
  • 「管理画面で設定を変えてもフロント側が反応しない」問題を修正しました。メール、SMS、ボット、ホワイトリストの設定が正しく反映されます
  • サーバー状況ページのノード詳細が開けない(500 が出る)問題を修正し、不明なノードは普通のメッセージを表示するようにしました
  • BAN 理由が英語の「Banned by an operator.」と表示される問題を修正しました。今は中国語で表示されます
  • 未ログインでホワイトリスト申請をクリックすると、まずログインへ案内し、ログイン後に申請ページへ自動で戻ります
v1.2.2 ウェブサイト 2026-09-13

アカウント機能とホワイトリストのオンライン申請

  • アカウント機能を追加しました。メールアドレスか携帯番号で認証コードを受け取って登録し、パスワードでログイン、忘れたときは再設定できます
  • ホワイトリストのオンライン申請を追加しました。ゲーム ID と連絡先を 1 つ以上入力すれば申請でき、管理者が承認すると自動でサーバーに反映されます
  • QQ 番号を入力していて、グループに参加済みで QQ レベルが基準を満たしていれば、QQ ボットがそのまま自動承認します。人の手を待つ必要はありません
  • サーバーオーナーと管理チームは、ウェブ右下のフローティングボタンから申請の承認、ホワイトリストの追加や削除、サーバー設定の直接変更ができます
  • 管理画面に「ワンクリックで更新記事を公開」を追加しました。これからは更新のたびに自動で 1 件記録されます
v1.2.1 ウェブサイト 2026-09-13

便利ツールとステータスページの刷新

  • 「便利ツール」ページを追加しました。グラデーション文字ジェネレーター、サーバー状況検索、サーバーアドレス診断、tick 換算、プレイヤー検索
  • サーバー状況ページを刷新しました。24 時間の稼働率、サービス一覧、マシンの稼働状況を追加し、クリックするとノードの詳細も見られます
  • 1 つのアカウントで複数のゲームキャラクターを連携でき、メインキャラクターを指定できます(ゲーム内の /cdr main でも切り替えできます)
  • 建築アルバムを大きな画像で見る形式に変更し、見やすくしました
  • サーバーガイドのコマンド一覧と MOD 一覧はサーバーの実際の状況に自動で追従するようになり、手で写す必要がなくなりました
v1.2.0 ウェブサイト 2026-09-13

開設から今までのプレイヤーデータ

  • サーバーワールドの統計を取り込みました。開設から今までのプレイ時間、死亡、キル、採掘、設置、移動距離がすべて見られます
  • プレイヤー一覧を累計プレイ時間で並べ替えできるようにしました。クリックすると詳しいデータが見られます
  • 放置用のダミーや bot を自動で判別して除外し、ランキングの枠を占めないようにしました
  • BAN 公示に「BAN された IP」欄を追加し、IP の所在地も表示します
  • MSPT が表示されない問題を修正しました。TPS と MSPT がそれぞれ独立した目盛りになりました
v1.1.1 ウェブサイト 2026-09-13

アイコンの代替表示と管理画面の刷新

  • アイコンの読み込みに失敗して画面が「壊れた画像」だらけになる問題を修正しました。外部アイコンを取得できないときは、プレイヤー名の頭文字アイコンに自動で切り替わります
  • 管理画面を刷新しました。上部の管理バーにサイドバーメニューの検索を追加し、変えたい項目をキーワードで探せます
  • 一部のサーバーでロボット認証がエラーになり、ページが開けなくなる問題を修正しました
  • MOD の API アドレスがリダイレクトされると「API は正常なのにサイトにデータが一切来ない」という罠にはまる問題を修正しました。管理画面のセルフチェックでも直接知らせます
  • ウェブマップに接続できないときは、真っ白ではなく明確なメッセージを表示します
v1.1.0 ウェブサイト 2026-09-13

アカウント機能と建築アルバム

  • 「建築アルバム」を追加しました。自分で建てた建物のスクリーンショットを投稿すると、みんながいいねを付けたり、拡大して見たりできます
  • プレイヤー一覧とプレイヤー詳細ページを追加しました。プレイ時間、死亡回数、採掘数、移動距離がひと目でわかります
  • 管理パネルを公開しました。ニュース、ページ、アルバム、ユーザー、システム設定をウェブ上で管理できます
  • 多言語と配色の切り替えに対応しました。ライトとダークも自分で切り替えられます
  • BAN 記録の処理結果を公開し、対応を透明にしています
v1.0.0 ウェブサイト 2026-09-12

ウェブサイト公開

  • ウェブサイトを公開しました:ホーム、サーバー状況、プレイヤーガイド、BAN公示、ニュース、掲示板
  • ホームではオンライン人数、TPS、マシン負荷をリアルタイムで表示します。データはサーバーMODが30秒ごとに送信します
  • QQ のワンクリックログインに対応しました。ログインするとゲームキャラクターの連携や掲示板への投稿ができます
  • サイト全体で外部 CDN を使わず、ロボット認証も自前でホストしているので、国内でも素早く開けます
  • スマホでもパソコンでも問題なく閲覧できます。画面が狭いとナビゲーションメニューが自動で折りたたまれます

日付はそれぞれのバージョンの公開日です。新しい問題を見つけたら、掲示板で知らせるか、サーバー管理者に直接ご連絡ください。