Discordのマイクラ用ヘルプBotを作りたい

今更なんですが、最近友人とマインクラフトをやり始めました。

ゲームの性質上、簡単そうなことでも意外と分からないことが多くて頻繁に調べないといけないんですよね。それで検索すると、流行っているだけあって情報がたくさん出てくるんですが、逆に情報がありすぎて玉石混交だし逆に見るのが面倒くさいという問題が。

つらい。極端に言うと三行ぐらいで、分かりやすくサクッと教えて欲しい。

そんなわけで、マインクラフトについて質問できるDiscordのBotを作ってみることにしました。

友達とはDiscordのテキストチャットでいつも会話しているので相性が良いでしょう。質問内容も共有できるし、いいんじゃないかな。

というわけで、さっそく作ってみよう。

Botを新規作成する

開発者用のディスコードのサイトを開いたら、右上にあるボタン「NewApplication」をクリックします。

dev-top

アプリケーションの名前を入力するためのテキストボックスが表示されるのでアプリの名前を入力します。できたら「Create」をクリックします。
new-app

General Informationの画面が開きます。今はとりあえずこのままで。

app-general-info

BotをインストールするためのURLを生成する

次に左のペインから、Installationを選択します。Install Linkのプルダウンメニューから「None」を選択します。今回はBotをプライベート設定にしたいので、リンクは作成しません。

install-link-none

左のペインから、Botを選択します。PUBLIC BOTのチェックをオフにして保存します。
ok-private

ちなみに、前の手順でInstall Linkで「None」を選択しないと、PIBLIC BOTのチェックオフにしたときに、このようなエラー表示が出ます。
private-bot-error

次に左のペインから、OAuth2を選択します。SCOPEではbotを選びます。

install-bot-by-oauth2

一番下までスクロールすると、GENERATED URLでディスコードBotをインストールするためのURLが生成されているのでこれをコピーします。

generated-url

BotをDiscordサーバにインストールする

コピーしたURLをブラウザで開きます。このアプリを追加するサーバーを選択したら認証ボタンを押します。

install-top

アプリが追加されるとこのような画面が表示されます。

installed

実際にディスコードを確認してみるとアプリが追加されています。

Botのトークンを取得する

Botのプログラムを動かすときに必要になるトークンを取得します。

開発者用のサイトにもどって左のペインからBotを選択し、「Reset Token」をクリックしてトークンを生成します。

bot-token

「Multi-Factor Authentication」というポップアップが開いて6桁の数字を入力するように促されるので、自分の使っているAuthenticatorアプリで生成されたDiscord用の6桁の数字を入力します。これは私がDiscordの認証方法を二要素認証するように設定しているので、このような手順でトークンを生成するようになっているのだと思います。

トークンが生成されたらそれを控えておきます。

Intentsをオンにする

最後に「Privileged Gateway Intents」の設定をします。ここはプログラムから参照できる情報を制御する項目のようです。プログラムから参照できる情報、例えば、メンバーのオンライン状態やメッセージの内容などです。

プライバシーなどの観点から状況に合うようにオンオフを考えて設定するようですが、ここを全てオンにしておかないとBotのプログラムがエラーとなり立ち上がらないので、全てオンにしてセーブします。

intents

これでとりあえずガワの準備が完了しました☆
次回はpythonとchat-gptを使ってBotのプログラムを作成してみます。

まとめ

そもそもマイクラを始めたきっかけは、狩野英孝さんのマイクラ実況です。

英孝さんは、効率良く進めたり予め予習しておいて卒なく攻略するといったようなことはしないんですね。視聴者にチャットでアドバイスを貰いながら初見のプレイを楽しんでいました。そのプレイの仕方って、情報をある程度自分で取ってくる必要があるゲームでネタバレせずに楽しむには、とっても良い方法だと思います。こういったプレイスタイルをBotで擬似的に再現できたら良いんだけど…。

今回の話とは全然関係ないんですが、英孝さんがネザーゲートの作り方を視聴者に聴いて、ゲート(仮組みの枠)を試行錯誤して作っていくうちに段々と小さくなっていって最終的になくなる回はめちゃくちゃ笑いました。

参考

📕Discord Developer Portal — Documentation — Gateway

📕What are Privileged Intents? – Developers