ホワイトリスト、BAN、OP:予想と異なる挙動をするサーバーコマンド
ホワイトリストは既にオンラインのプレイヤーをキックせず、/banは理由がないと役に立たず、OPレベルはOPリストよりも重要です。サーバーオーナーを悩ませる詳細を解説します。
管理者コマンドはシンプルに見え、ほとんどはその通りです。しかし、構文からは明らかでない3つの挙動が、失敗の原因となります。
ホワイトリストは既にいるプレイヤーを排除しない
/whitelist on はその時点からリストの適用を開始します。既に接続しているプレイヤーは、リストに載っていなくても接続を維持します。このギャップを埋めるコマンドは次の通りです。
/whitelist reload
reload は whitelist.json を再読み込みし、さらにリストに載っていない接続中のプレイヤーをキックします。ホワイトリストをオンにして放置するのは典型的な間違いです。
さらに2つの詳細があります。
/whitelist add <name>はMojangのAPIに対して名前を解決するため、サーバーがオンラインモードで接続されている必要があります。オフラインサーバーでは、正しいUUIDでwhitelist.jsonを手動で編集する必要があります。- オペレーターはデフォルトでホワイトリストをバイパスします。そのため、自分のアカウントではホワイトリストが機能していることを証明できません。2つ目のアカウントでテストしてください。
/banは理由を求め、/ban-ipは別のリスト
/ban <player> [reason]
/ban-ip <address|player> [reason]
理由は任意ですが、省略するのは間違いです。それはBANされたプレイヤーが見るものであり、将来のあなたが /banlist を読んで理由を思い出そうとするときに読むものです。理由がない場合、エントリには「オペレーターによってBANされました」とだけ表示されます。
/ban と /ban-ip は別々のファイル (banned-players.json, banned-ips.json) に書き込みます。一方を解除してももう一方はクリアされないため、「解除された」プレイヤーがまだ接続できないという事態がよく発生します。/pardon と /pardon-ip の両方を使用してください。
OPリストだけでなく、OPレベルも重要
/op はデフォルトでレベル4を付与します。これは /stop を含む完全なアクセス権です。4つのレベルは実際に存在し、server.properties で op-permission-level を介して設定できます。
| レベル | 権限 |
|---|---|
| 1 | スポーン保護をバイパス |
| 2 | ほとんどのチートコマンド、コマンドブロック |
| 3 | プレイヤー管理 — キック、BAN、OP |
| 4 | /stop を含むすべて |
/kick と /ban が必要なモデレーターは、レベル4ではなくレベル3を求めます。モデレーションを手伝うすべての人にレベル4を付与すると、アカウントが侵害された場合にサーバーがワイプされる可能性があります。
function-permission-level は別個のもので、データパック関数が実行できる内容を制御します。OPレベルが4であるにもかかわらず、これを2のままにしておくと、「関数が何も機能しない」という一般的な問題の原因となります。
リストコマンド
/banlist players、/banlist ips、そして単なる /banlist はすべて存在し、サーバーターミナルから実行するとチャットではなくコンソールに出力されます。/whitelist list は名前のみを表示し、UUIDは表示しません。IDを確認する必要がある場合は whitelist.json を読んでください。
サーバー管理者コマンドビルダーでは、BAN、IP BAN、解除、キック、OP、OP解除、ホワイトリストを1つのフォームでカバーしており、これらの引数を正しい順序で構築できます。