マイクラの入口をOracle Cloudに移して、自宅のIPを隠した
Oracle CloudのAlways Free(大阪)に中継サーバーを立て、Tailscale経由で自宅のマイクラにつないだ。Java版はHAProxyのPROXY protocolで本当のIPを渡せたが、統合版だけ入れなくなってハマった。
マイクラのテスト鯖を作って、公共事業を「人が建てる」流れにした(DebtCraft)
人が入っている本番を落とさずにプラグインを試せるよう、VLAN50にテスト鯖を作った。そのうえで、公共事業を「建材集め → 施工者が建てる → 運営が確認」の流れに変え、/pay が使えない不具合も直した。
家の中からは入れるのに、外からマイクラに入れなくなった
DebtCraftのアップデート後、外のプレイヤーだけサーバーに入れなくなった。サーバーもポートも正常だったが、グローバルIPが変わったのにDDNSのCloudflare APIトークンが無効になっていて、ドメインが古いIPを向いたままだった。
国営カジノと、鉱石ブロックでの納税を足した
DebtCraftに、ブラックジャック・ハイロー・スロットの国営カジノを足した。ゲーム内でもWebでも遊べるが、乱数とお金はプラグインだけが扱う。あわせて、鉱石ブロックで納税・売却できるようにし、Discordの雑談で朝に「おはよう」と言うとお金がもらえる機能も足した。スマホのメニューも見直した。
オークションとWebからの売買、Discordとの連携を足した
DebtCraftの取引所にオークションを足し、ブラウザからも買う・入札できるようにした。お金を動かすのはプラグインだけで、Webは依頼をDBに入れるだけ、という国営ショップと同じ作りにした。Discordには、ランクのロールの自動付与、スラッシュコマンド、上回られたときのDM通知を足した。
マイクラの経済を一気に広げた(相場・景気・国債・取引所・税務調査)
DebtCraftに、相場の変動・景気イベント・実績と称号・全員目標・国債・公共事業・取引所・税務調査の8つを足した。仕様書を書いてClaude Codeに1つずつ作ってもらい、新しく作ったテスト鯖で確かめてから本番に入れた。途中で、設定の書き足し・初回起動・デプロイスクリプトで1つずつハマった。
統合版の人だけホワイトリストに登録できなかった話(Floodgate と UUID)
DebtCraftで、統合版の参加者がDiscordのボットからホワイトリスト登録できない問題が起きた。原因は「名前の空白」かと思ったら違って、Floodgateが名前からXboxのIDを引けないこと、ロビーで飛行キックされること、UUIDで登録すると名前がunknownになること、の3つが重なっていた。
RTX1200を足して、ゲートウェイを2台にした(VRRP)
中古のYAMAHA RTX1200をIX2215の予備にした。コンソールケーブルなしで設定し、PPPoEが1本しか張れない回線でどう切り替えるかを考えた話。
ロビーを浮島にして、統合版はフレンド一覧から入れるようにした
配布ワールドの浮島ロビーを入れて、ゲートからサバイバルに飛べるようにした。MCXboxBroadcastで、Xbox・Switchの統合版もフレンド一覧から参加できる。
マイクラの「国営ショップ」をWebに作った(Discordログイン+注文キュー)
DebtCraftの借金時計サイトに、称号・特権・くじを買えるショップを足した。Webは注文をDBに入れるだけにして、お金を引いて商品を渡すのはMinecraftのプラグインに任せる設計にした。あわせて、Discordの財務省チャンネルに毎日の借金や速報を自動投稿するようにした。
開国初日、Discordとゲーム内チャットをつなぐまでにハマったこと(DiscordSRV+LunaChat)
DebtCraftのオープン当日、DiscordSRVでゲーム内チャットをDiscordに流し、LunaChatでローマ字を日本語に変換するようにした。チャットが流れない原因が3つ重なっていて、1つずつ潰した。
pushしたらサイトが勝手に更新されるようにした(Forgejo Actions)
CI用のVM「runner01」を作り、このサイトのリポジトリにpushするとdocker01に自動で反映されるようにした。Runner v13で登録方法が変わっていてハマった。
夜中にノードが勝手に再起動した(e1000eとHAのフェンシング)
0時49分、Discordに「pbs01 went down」。調べるとノード③ごと再起動していた。原因はIntel NICの固まりと、それを受けたHAの自己再起動。
マイクラのホワイトリストをDiscordのbotで登録できるようにした(DebtCraft)
新サーバー「DebtCraft」のサバイバルをホワイトリスト制にして、登録はDiscordのボタンから、Discordを抜けたら自動でBANされるようにした。RCONを外に出さないために、botはマイクラと同じVMで動かしている。
バックアップを3本に分けて、Discordに通知させた
全体・Minecraft・バックアップサーバー自身の3本に分けた。マイクラは直前にワールドを保存し、結果はDiscordに届くようにした。
このサイトを自宅のDockerで動かし始めた
パッチパネル風のリンク集+ブログを、nginxのコンテナに置いてCloudflare Tunnel経由で公開した。
マイクラ鯖をVelocityとGeyserで建て直した
ロビーとサバイバルをVelocityでつなぎ、Geyserで統合版からも入れるようにした。出たエラーと直し方のメモ。
IX2215にフィルタを入れたら家のネットが落ちた
WAN側に「全部拒否」を入れた瞬間、家中のインターネットが止まった。原因は戻りの通信まで止めていたこと。
静音PC3台でProxmoxクラスタを組み直した
うるさいサーバーをやめて、静かなPC3台で自宅ラボを作り直した。役割の分け方と、やってよかったこと。