この連載が書籍になりました! 『マインクラフトでマルチサーバーを立てよう!』好評発売中です。

続・マルチサーバーの運用管理に必須のプラグインを導入する

2016年6月16日(木)
ecolight

前回はプラグインを導入する際の注意事項や、一部の主要なプラグインについてダウンロードからインストール、使用方法までを紹介しました。今回は前回に引き続き、いくつかプラグインを紹介したいと思います。

保護プラグインを導入し運用方法を検討する

ワールドやその他のデータを意図しない破壊から守るため、保護プラグインを導入してみましょう。保護プラグインでは非常に強力にワールドを保護できますが、権限の設定により破壊や行動を制限する場合などには必須ではありません。とは言え「何ができて何ができないか」を把握しておくためにも、一度導入してその効果を確認しておくことをお勧めします。

ワールド保護プラグインを導入する

まずは「WorldGuard」プラグインを導入してみましょう。WorldGuardプラグインはサーバー全体やワールド個別、独自に設定した領域を保護できます。また荒らしによる破壊行為だけでなく自然に発生しうる火災や爆発からもワールドを守ってくれるため、ほぼ必須のプラグインと言えるでしょう。

導入については、他のプラグインと同様に「Minecraft Japan Wiki」のプラグインページなどから辿ってください(図1)。配布元にも記載がありますが、このプラグインは第2回の最後に紹介したWorldEditが前提プラグインとなっているため、必ず一緒に導入するようにしましょう。

WorldGuardとWorldEditを導入しよう

図1:WorldGuardとWorldEditを導入しよう

あくまで一例ですが、どのような保護を行えるかを列挙してみます(図2)。

  • TNTブロックやその他の爆発物による地形の損傷を防ぐ
  • 溶岩や燃えたブロックから他のブロックへの延焼を防ぐ
  • エンダードラゴンによる地形の破壊を防ぐ
  • エンダーマンによるブロックの持ち去り設置を防ぐ
  • ゾンビによるドアの破壊を防ぐ

その他にも天候や植物など自然物の動作を制御したり、線路や回路が水流で流されないようにしたりといった様々な現象を制御可能です。最も利用頻度が高いと考えられるのは、建築可能なワールドで部分的に領域を設定し、建築を保護する機能です。

保護の例。火でブロックが焼失しない設定や回路などが水流で流れない設定等

図2:保護の例。火でブロックが焼失しない設定や回路などが水流で流れない設定等

領域保護においてはブロックの破壊や設置を防ぐだけでなく、以下のような設定も行えます。

  • 領域ごとに管理者や利用者を設定する
  • 領域ごとにチェストの開閉の許可/不許可を設定する
  • 領域ごとにエンダーパールの使用許可/不許可を設定する
  • 領域ごとにPvP(Player versus Player)の許可/不許可を設定する
  • 領域ごとに使用可能コマンドを制限する
  • 領域ごとに侵入または退出したプレイヤーに表示するメッセージを設定する

領域保護の設定は多岐に渡るため、サーバー利用者に「どのコマンドを許可するか」で大きくゲーム性が変わってきます。権限を与えると危険なコマンドも存在するので、権限の設定時には悪戯が可能な抜け道がないかを注意して動作確認を行いましょう。領域の管理に相当な手間がかかりますが、管理者や一部のユーザーしか使えないようにしてしまう手もあります。ここでは詳細な設定方法やその効果について説明しきれませんので、配布元の説明やインターネット上のチュートリアル動画などを探してみてください。

チェストの保護プラグインを導入する

Minecraftには「プレイヤーがアイテムを所持する」という概念があり、持ちきれなくなった手荷物をしまうための「チェスト(箱)」があります。マルチサーバーにおいては他人の手荷物と混合しないようにする目的や、盗難を防ぐといった目的でチェストの保護が非常に重宝されており、これも殆どのサーバーにおいて必須と言って良いでしょう。プラグインによって保護の方法は様々で、各々のサーバーの目的や方針に沿ったものを導入できます。

Minecraft Japan Wikiでは代表的な「LWC」と「Lockette」の2つのプラグインが紹介されています(図3)。それぞれ保護の仕方が異なるので、両方とも順番に試してみた上で導入を検討すると良いでしょう。導入方法は他のプラグインと同様です。

保護プラグインはチェスト以外も含め様々なものがある。Curseなどで「Protect」等をキーワードに探してみよう

図3:保護プラグインはチェスト以外も含め様々なものがある。Curseなどで「Protect」等をキーワードに探してみよう

Locketteプラグインは看板を貼り付けて非常に簡単にチェストやドア、その他のブロックを保護できます。さらに看板自体に文字列として権限の詳細が表記されるため、自分の権限の有無が一目瞭然である点も大きな特徴と言えるでしょう。デメリットを挙げるとすれば、看板分だけ周りの空間を使用してしまうことや、見た目が看板だらけになってしまうことなどがあります。

LWCプラグインはコマンドとクリック操作で権限を設定します。保護対象は大よそLocketteと同じですが、一見しただけでは対象がどのような権限で保護されているか分かりません(図4)。コマンドを使用して調査する必要があるため、コマンドに不慣れな場合には面倒に感じられるでしょう。

チェスト保護の例。見た目では分からないが、右クリックしてもチェストを開けない

図4:チェスト保護の例。見た目では分からないが、右クリックしてもチェストを開けない

ただし、見た目は通常のチェストやドアそのものであり、余分なスペースも必要なくスマートな保護が行なえる点は魅力的と言えるでしょう。またコマンド使用を制限することで保護権限の調査等から情報を隠蔽できるため、使い方によっては新たなゲーム性を生み出すことも可能だと考えられます。

チェストやその他のブロックの保護は、単に資産を他人に奪われない/使用されないためだけでなく、許可した相手に使用させるといった使い方もできるため、例えばセキュアなアイテムの受け渡しであったり、許可した人だけ通過できるドアであったりなど様々に応用できます。過去にこういった保護を活用しているケースを見たことがあるので、いくつか紹介したいと思います。

・サーバー接続後、初期スポーン位置から外に出る箇所にパスワード付きドアを設置する

サーバー内で自由に行動させるにあたり、一定の手順を踏ませることができます。これを専用のコマンドで実装しているプラグインもありますが、チェストやドアを保護するためのプラグインでも実現可能です。

例えば、該当するドアに至るまでの通路に注意書きとしてパスワードを忍ばせたり、外部サイトの新規ユーザー向けページに忍ばせたりすることで、予めサーバールールを理解して貰う効果が期待できるでしょう。

・ユーザー主導イベントで景品や賞品の受け渡しに保護チェストを利用する

自分と相手だけに権限を追加したチェストを用意することで、他人に邪魔されることなくアイテムを受け渡しできます。更にチェストを撤去したり権限を解除したりしない限りは保護が有効であることから、相手とログイン時間が一致しない状況でも非同期にアイテムのやり取りが可能です。

これを応用して釣り大会を開催し、釣った魚を参加者ごとに権限が設定されたチェストに格納することで不正を防ぐと言った試みも見たことがあります。単純にアドベンチャーモードのワールドで、特定のパスワードを手に入れないと開かないチェスト等も作成できるでしょう。

・看板の保護効果を利用して局所的にブロックを保護する

LWCプラグインなどの場合、看板を保護すると看板を設置したブロックも一緒に保護される機能があります。これを利用して看板の保護と言いつつ、隣接したある1ブロックだけを局所的に保護するといったことも可能です。領域保護しない状況下での保護や、領域設定するほどではない場所の保護に役立つ場合もあるでしょう。

・チェストやホッパーの保護を駆使して自動販売機を設置する

他者がアイテムを取り出すことができない特性を利用し、無人で物々交換することもできます。ホッパーを適当なアイテムで埋めておくことで一定のアイテムだけを通過させるようにできるため、この仕組みを利用して保護されたホッパーに対価が一定量投入された場合のみ、商品となるアイテムを排出する仕組みを作成できます(図5)。

保護を活用した自動販売機の例

図5:保護を活用した自動販売機の例

チート対策プラグインを導入する

保護とは少し違うかもしれませんが、荒らし行為のチートを未然に防ぐためのプラグインも存在します。メジャーなものに「NoCheatPlus」(図6)などがあり、他にも主要なプラグインがチート対策機能を持っていることもあります。Spigotはバージョンによってサーバー自体がX-Ray(ブロックの透視)不正対策機能を持っていたりするので、プラグインやサーバーの機能を駆使してしっかりチート対策することも意識していきましょう。

Wikiで紹介されているチート対策プラグイン。Curseの「Anti-Griefing Tools」で他のプラグインも探してみよう

図6:Wikiで紹介されているチート対策プラグイン。Curseの「Anti-Griefing Tools」で他のプラグインも探してみよう

プラグインでチート行為を防ぐこともそうですが、権限レベルで問題となる行為を防ぐことや、そもそもサーバーに入らせないといった方法も非常に有用です。サーバーで活動してもらうに当たっての手順を工夫することもチートや荒らし行為への対策になるので、堅牢性を考える場合はゲーム内外全体の対策を検討されることをお勧めします。

サーバーの堅牢性維持で最も重要なのは、「いかにサーバーの脆弱性を他者に知られないようにするか」です。筆者は、これが「Minecraftのサーバー運営に関するまとまった情報があまり存在しない」最たる理由であると考えていますが、逆に言えば「管理者は自分のサーバーにどのような脆弱性があるかを把握した上でコントロールしなくてはならない」とも言えます。そのためデリケートな話題ではありますが、簡単に仕組みを紹介しておきたいと思います。

Minecraftにおけるチート行為は多岐に渡りますが、サーバーとクライアントで処理が分かれている部分のクライアント側の処理は全て不正行為が可能であると言っても過言ではありません。あまり多くは記載しませんが、例えばプレイヤーの移動やブロックの設置破壊、武器を振るう攻撃などの操作はクライアントから送られるため、不正に加速させたりプログラムにより自動化したりできます。前述のX-Rayに関してもサーバーからクライアントに全てのワールドデータが送信されてしまっているため、クライアント側で容易に解析できてしまうというのが問題の発端です。

各種対策プラグインは、こういったチートの特性を把握した上で、例えばX-Rayにおいては特定条件を満たすまでダミーのワールドデータをクライアントに送信したり、その他の不正に関しても通常クライアントでは起こりえない操作を検出記録したりすることでチート対策を行なっています。こうしたチート対策はデータ解析や操作に多量のCPUリソースを割くことになるため、サーバーのパフォーマンスと相談の上、各々サーバー管理者がその責任で対策していきましょう。

また、現状プラグインで全てのチートを検出するのは難しいため、チートが致命的な問題となるサーバーではサーバー内における目視での対応(参加ユーザーによる通報など)が要になると考えられます。

BANプラグインを導入し運用する

荒らし行為などを行う特定プレイヤーを出入り禁止にする「BAN」という機能があります。これは公式サーバーやSpigotに標準で搭載されており、/banコマンドや/pardonコマンド等で設定できます。通常はサーバーの機能だけでも十分ですが、更に堅牢性を高めるための「共有BANプラグイン」があります。

本稿執筆時点で最も使用されている共有BANプラグインは「MCBans」(図7)です。このプラグインは「グローバルBANシステム」とも呼ばれ、インターネットを介して世界中のMCBans導入サーバーとBAN情報が共有されます。

WikiにMCBansやMinecraft非公式フォーラムの記事へのリンクがある

図7:WikiにMCBansやMinecraft非公式フォーラムの記事へのリンクがある

MCBansは通常のプラグインと異なり、MCBansへのユーザー登録(図8)やサーバー認証を行う必要があるため注意してください。その手順やMCBansの仕組みなど、日本人スタッフによる手順書がMinecraft非公式フォーラムにあります。参考にすると良いでしょう。

MCBansのWEBサイト。プラグインダウンロードやユーザー登録などの各種機能を備えている。

図8:MCBansのWEBサイト。プラグインダウンロードやユーザー登録などの各種機能を備えている。

なお、現在は当の日本人スタッフが活動休止状態のようなので、掲載されている情報は最新の状態に保たれていません。したがって、導入する際は各自でMCBansの配布元から最新情報を収集の上行うようにしましょう。

MCBansを導入するメリットとデメリットについても、少し説明したいと思います。

まず、メリットです。

  • 荒らしユーザーによる行為を未然に防ぐことができる
  • rban(ロールバック+BAN)や期限付きBANといったspigotサーバーの標準機能にない方法でBANが可能になる
  • グローバルBANとローカルBANを使い分けることができる
  • グローバルBANに関してはMCBansチームが異議申し立てに関する仲介を行ってくれる
  • MCBans連携機能を持ったプラグインと連携し、自動的にBANを行える

続いて、デメリットです。

  • グローバルBANを行う場合、証拠の保持が必須となる
    ⇒本来はどういった形のBANでも後からその妥当性を証明できるようにしておくことが望ましい
  • グローバルBANに登録されたプレイヤーの評価値は荒らしユーザーであると言う確証はない
    ⇒グローバルBANにおけるBANの正当性評価は異議申し立てが発生して初めて行われることから、悪意あるグローバルBANの可能性は排除できない。またMCBans評価値の閾値設定によって他サーバーのBANユーザーを排除するようにしている場合には、自らの判断ではない基準でユーザーを排除することになるため、参加者へBAN基準について十分に説明しておく必要がある
  • 他者が作成したプラグインであること
    ⇒どのプラグインでも同じことが言えるが、自分で作成したプラグインではないため意図しない問題が発生しうる可能性がある。特にバージョンアップ時における移行に支障をきたす可能性があり、導入や問題発生の対応については個々の自己責任で行う必要がある

MCBansの利用に関わらず、BAN作業においてはほぼ異議申し立てへの対応が発生します。このとき、どういった基準でBANを行っているかがはっきりしていないと困ることになるので、必ず一定の基準を取り決めてからサーバー運用を開始するようにしましょう。

併せて、BAN解除の考え方も方針を取り決めておきましょう。例えば、悪事を働いたことが事実であったとして、BANされた当人から謝罪があった場合に、その内容から妥当性を判断して解除するというのも方針の1つです。昨今のMinecraftは低年齢化が進んでおり、インターネットリテラシー教育が進まない中でマルチプレイに触れている層も多くいます。そういった情勢を鑑みて、教育的な対応を行うのもMinecraftプレイヤー全体のマナー向上に繋がる活動であると考えられます。

なお、そのような対応を行う場合の参考として、BAN解除における判断材料の例を紹介します。

  • BANされた原因について当人が正確に認識していること
  • BAN解除した場合に、同じ問題を起こさないと確約していること
  • 謝罪およびBAN解除の意思表示が明確であること

上記はあくまで一例であり、管理者によって考え方は異なるでしょう。またこれらの判断材料を得るにあたり、こちらから質疑を行いYes/Noで答えて貰う方法では意味がないので、聞き方を工夫してオープンクエスチョン形式で話を聞けるように工夫する必要があります。

今回は前回に引き続き、メジャーなプラグインを紹介しました。前回紹介したプラグインも含めて、これらはユーザーのデータを守るために必須のプラグインです。Minecraftのマルチサーバーは殆どの場合、時間をかけて膨大なデータが蓄積されていくため、サーバー管理者は、それらのデータを守れるように万全を尽くすようにしましょう。

次回からはPvPサーバーや生活サーバーなど、サーバーの構築例を元に導入するプラグインなどの関連情報を紹介したいと思います。

本連載について

Minecraftの公式記事ではありません。本連載の内容はMojangから承認されているわけではなく、Mojangとは関係ありません。

Minecraftの非公式日本ユーザーフォーラム管理人

同フォーラムに付帯する生活系マルチサーバーもMinecraft製品版発売以降個人運営を続けている。ご相談などありましたらフォーラム(http://forum.minecraftuser.jp/)やTwitter@ecolightまで。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています