0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ハマクラAdvent Calendar 2024

Day 7

【Minecraft】Discord認証で身内だけサーバに入れたい

Last updated at Posted at 2024-12-06

メンバー認証の必要性

ハマクラでは、新規メンバーがログインできるようになるまでの所要時間という観点からホワイトリストを導入していなかった。そのため、IPが分かりさえすればと全世界のクラフターがログインできてしまう。それに起因する思わぬ出会いもあったわけだが、入ってくるのが必ずしもいい人とは限らない。

Discordと連携したい

ハマクラではDiscordを用いてコミュニティの運営を行っている。Discordサーバーに入り所属などが確認でき次第ロールが付与される。その仕組みを利用してメンバーであることを認識し、Minecraftのアカウントと紐付けできれば都合が良い。
それが可能になりそうなプラグインを見つけた。DiscordSRVだ。導入するとゲーム内チャットとDiscordのチャットを連携したり、MinecraftのアカウントとDiscordアカウントを連携させたりできる。

導入

他のプラグインと同様にpluginsディレクトリにjarファイルを入れて起動するとplugins/DiscordSRVに設定ファイルなどが生成される。
botの設定はこのサイトを参考にした。
主要な設定はconfig.ymlに記述されている。チャット連携機能などは必要無いため無効にした。必要に応じてtrue falseを書き換えることで有効/無効を切り替えられる。
今回必要なアカウント連携機能はlinking.ymlに記述されている。

linking.yml
Require linked account to play:
  Enabled: true

冒頭のEnabledtrueにすると有効化される。

linking.yml
# 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に送れ」という指示が読み取れる。

送ってみると、認証された。これでログインできるようになった。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?