MC Toolkit

ガイド / サーバーとパフォーマンス

server-icon.png:厳密な要件と、誰も使っていない管理API

64x64、PNG、サーバールート直下 — この3つのうちどれか1つでも間違えると、アイコンはエラーも出さずに表示されません。さらに、コンソールの画面スクレイピングに取って代わったJSON-RPC管理APIについて。

サーバーアイコンは、Minecraftの中で最も寛容でない小さな機能です。なぜなら、失敗の仕方がどれも同じに見えるからです。アイコンが出ない、エラーも出ない。

3つの要件、すべて必須

  1. ちょうど64×64ピクセル。 63でも128でもダメ。サーバーはリサイズしません。
  2. PNG形式。 実際にPNGであること。JPGの拡張子を変えただけではダメ。
  3. ファイル名はserver-icon.png、サーバールート直下 — server.propertiesの隣に置くこと。ワールドフォルダの中ではいけません。

どれか1つでも間違えると、サーバーは正常に起動し、デフォルトのアイコンを表示します。サイズが違う場合や、実はPNGでないファイルの場合は、起動時に1行だけログが出ます — Couldn't load server icon — しかし、名前や置き場所が間違っている場合は何もログに出ません。(server-icon.pngがまったくない場合、サーバーはワールド自身のicon.pngがあればそれにフォールバックします。)

他にも壊れる原因

  • インターレースPNG。 一部のエディタはデフォルトでインターレースで保存しますが、Minecraftのリーダーはこれを拒否します。非インターレースで再エクスポートしてください。
  • 16ビット色深度。 チャンネルあたり8ビットで保存してください。
  • カラープロファイル。 埋め込まれたICCプロファイルがパーサーを稀に引っかけることがあります。エクスポート時にメタデータを削除してください。
  • 透過は問題ありません。サーバーリストで正しく描画されます。

サーバーは一度しか読み込まない

サーバーは起動時にserver-icon.pngを読み込み、それ以降は読み込みません。稼働中のサーバーでファイルを差し替えても、再起動するまで何も変わりません — だからこそ、再起動せずにアイコン変更をテストすると、「効かなかった」と確信してしまうのです。再起動後、クライアントは次回のサーバーリスト更新時に新しいアイコンを取得します。

管理API

最近のサーバーバージョンはJSON-RPC管理インターフェースを公開しており、これがコンソール出力のパースやプラグインの追加に代わる公認の手段です。

server.propertiesで有効化します:

management-server-enabled=true
management-server-host=localhost
management-server-port=25585
management-server-tls-enabled=false

TLSはデフォルトでオンで、キーストア(management-server-tls-keystore)が必要です。なので、キーストアを指定するか — localhost限定で — 上記のようにオフにするかです。TLSがオンでキーストアがない場合、管理サーバーは起動しません。ポートにもデフォルトはありません(25585はあくまで一例です)。

次に、そのポートへWebSocketを開き、server.propertiesのmanagement-server-secretをAuthorization: Bearer <secret>として送信し、JSON-RPCで通信します:

{ "jsonrpc": "2.0", "id": 1, "method": "minecraft:players" }

メソッドはプレイヤーリスト、サーバーステータス、許可リストとBANリスト、ゲームルール、設定、そして保存/停止のペアをカバーします。それぞれが、正規表現をかける必要のあるテキスト1行ではなく、構造化されたJSONを返します。

localhostにバインドする

デフォルトはlocalhostで、そのままにしておくべきです。このインターフェースはインターネットに公開することを想定していません — シークレットを知って到達できる人は誰でもあなたのサーバーを停止できますし、シークレットの安全性はserver.propertiesの安全性と同じでしかありません。リモートアクセスが必要な場合は、SSHトンネルか認証付きリバースプロキシ経由で公開してください。ホストを0.0.0.0に変更するのは絶対に避けてください。

なぜ重要か

ダッシュボード、Discordボット、稼働監視はこれまで、コンソールログを読むかRCONを使うことで動いてきましたが、どちらも脆いものです。型付きのAPIがあれば、ログ行のフォーマットが変わってもプレイヤー数ウィジェットが壊れることはありません。

どんな画像でも準拠したserver-icon.pngに変換し、Server Icon & API ToolsでJSON-RPCメソッドを閲覧できます。

サーバーアイコン & API ツール →

その他のガイド

すべて見る →