メンバー認証の必要性
ハマクラでは、新規メンバーがログインできるようになるまでの所要時間という観点からホワイトリストを導入していなかった。そのため、IPが分かりさえすればと全世界のクラフターがログインできてしまう。それに起因する思わぬ出会いもあったわけだが、入ってくるのが必ずしもいい人とは限らない。
Discordと連携したい
ハマクラではDiscordを用いてコミュニティの運営を行っている。Discordサーバーに入り所属などが確認でき次第ロールが付与される。その仕組みを利用してメンバーであることを認識し、Minecraftのアカウントと紐付けできれば都合が良い。
それが可能になりそうなプラグインを見つけた。DiscordSRVだ。導入するとゲーム内チャットとDiscordのチャットを連携したり、MinecraftのアカウントとDiscordアカウントを連携させたりできる。
導入
他のプラグインと同様にplugins
ディレクトリにjarファイルを入れて起動するとplugins/DiscordSRV
に設定ファイルなどが生成される。
botの設定はこのサイトを参考にした。
主要な設定はconfig.yml
に記述されている。チャット連携機能などは必要無いため無効にした。必要に応じてtrue
false
を書き換えることで有効/無効を切り替えられる。
今回必要なアカウント連携機能はlinking.yml
に記述されている。
Require linked account to play:
Enabled: true
冒頭のEnabled
をtrue
にすると有効化される。
# Optionally require people to not only be linked but also to have a one of or all specified roles like a Twitch sub role
Subscriber role:
Require subscriber role to join: true
Subscriber roles: ["1234567890123456789"]
Require all of the listed roles: false # when false, only one of the above roles is required
Kick message: "&cYou must be subscribed on certified to be able to play."
所属確認済みのメンバーにはロールが付与されるようにしているので、そのロールを持ったメンバーだけがbotに認証コードを送ることができるようにしたい。
それを可能にする設定がSubscriber role
だ。ロールIDを入れておくとそのロールを持ったメンバーにしか認証を通せなくなる。複数のロールを指定することもできる。複数のロールのうち全て必要なのかどれか1つだけでいいのかはRequire all of the listed roles
で指定できる。
認証
実際に認証してみる。
導入後にMinecraftサーバにログインすると以下のような表示になる。
「『8721』という番号をbotに送れ」という指示が読み取れる。
送ってみると、認証された。これでログインできるようになった。