Discordでbotを自作する

software Discord

必要な知識と道具

プログラミング言語としてJavaScriptを利用します。独自のbotを作りたい場合(ほとんどそうだと思いますが・・・)にはこの知識が必要です。最近では、知識がなくともChatGPTに作成をお願いすればある程度のものは作ってくれます。

Discordのアカウントももちろん必要になります。

道具としてはパソコンが必須です。Macでもできますが、本記事ではWindowsを利用して解説を行います。スマホは・・・できるのかなぁ・・・って感じ。

環境構築

Node.jsのインストール

こちらをクリックして、インストールページに行きましょう。

左側の推奨版を選択してインストールします。その後、ダウンロードも行います。

ダウンロードしたら、念のためにちゃんとできてるか確認しましょう。

画面左下の検索窓からコマンドプロンプトを検索して開きます。

コマンドプロンプトに下記を入力してEnter、バージョンが表示されればOKです。

node -v
C:\Users\username>node -v
v20.11.1

VSCodeのインストール(任意)

こちらをクリックして、VSCodeもインストールしておきましょう。プログラミングを行うためのツールです。Windowsに常設されているメモ帳でもできますが、見づらいためVSCodeを利用します。

これからプログラミングを始めようと思っている人であれば必ずと言っていいほど使う機会があるでしょう。

Botアカウントを作成する

こちらをクリックして、Discord Developer Portalにアクセスします。ログインを求められたら自分のアカウントでログインしましょう。

下記のような画面になるので、右上のNew Applicationをクリック

Botの名前を決める画面になるので名前を決めて、利用規約のチェックを入れて、Create

左側からBotを選び、中央あたりにあるResetTokenをクリック

確認のポップアップが出るのでYes, do it!をクリック

私の場合にはこの後にパスワードの入力を求められたので、自身のアカウントで設定しているパスワードを入力します。

すると、下記画像の赤ラインで隠しているところに特有のコードが表示されますのでどこかにコピペして保存しておきましょう。このコードはほかの人に知られてはいけません。Botを識別するための特有のコードであるため、下手すると乗っ取られます。
もし知られてしまった恐れがある場合には「Reset Token」をクリックしてコードを更新しましょう。

そのまま下にスクロールしたところにあるMESSAGE CONTENT INTENTをONに変更します。

次に、OAuth2を選択して、下の画像のようにを選択します。

この下にあるURLをコピーしてブラウザで開くことで、自身のDiscordにBotを追加するのですが、この際にテスト用のサーバーを用意しておきましょう。ぶっつけ本番で開発するのはあまりよろしくないので・・・

先ほどのURLを踏んでサーバーに導入します。このURLを共有することで、他の人でも該当のBotをサーバに追加することができます。一応、今回のBotのURLを下に貼っておきます。

プログラムの記述とその前準備

discord.jsの導入

以前に利用したコマンドプロンプトに下記を順番に記述します。

npm init

続けて、下記を記述します。

npm install discord.js dotenv

これによって、discord.jsをインストールしています。

プログラムファイルを保存する場所(フォルダ)を用意

自分が管理しやすい場所にプログラムファイルを保存するためのフォルダを作成しましょう。
名前は何でもいいです。私の場合は「bot_talkkeeper」という名前のフォルダにしました。

プログラムの記述

作成したフォルダの中にVSCodeかメモ帳などを使って、下記プログラムを記述して、「index.js」という名前で保存します。

const { Client, GatewayIntentBits, Events } = require('discord.js');
const client = new Client({
    intents: [GatewayIntentBits.MessageContent, GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages] 
});
require('dotenv').config();
client.on(Events.ClientReady, async () => {
    console.log(`Logged in as ${client.user.tag}`);
});
client.on(Events.MessageCreate, async message => {
    if (message.author.bot) return;
    if (message.content === ('はじめまして')) {
        message.channel.send('はじめまして、よろしくお願いします。');
    }
});
client.login(process.env.DISCORD_TOKEN);

これを複製して、ファイル名を「.env」に変更し、中身も下記のように書き換えます。
イコールの後に、最初の方に保存しておいたトークンIDをコピペしましょう。

DISCORD_TOKEN=

ファイル窓に下記画像のように「cmd」と入力してEnter、コマンドプロンプトが起動します。
先ほどのコマンドプロンプトとは別物ですので、この方法で開いてください。

下記をコピペして、順番にコマンドプロンプトで実行してください。

npm install discord.js
npm install
npm install dotenv
npm install
node index.js

最後のコマンド実行時に1行「Logged in as Botの名前」が表示されれば成功です。
上手くいかない場合にはエラーメッセージが出ますので、翻訳したり、ChatGPTで質問したりしてみてください。

Discordで実際に動作確認

Discordのメッセージで「はじめまして」と送ってみてください。Botが返信してくれるはずです。

何も返ってこない場合には入力する文字が完全一致しているか、プログラムの入力ミスなどがないか、「node index.js」のコマンドを入力して、しっかりとエラーなくコマンドプロンプトが反応しているかなどを確認しましょう。

プログラムを変更したい場合には

index.jsのプログラムを修正したい場合には、プログラムの修正後にコマンドプロンプトを開きなおして、再度下記コマンドを入力することで更新を適用することができます。

node index.js

コマンドプロンプトの画面は、先ほどと同様に「cmd」と入力して開いてください。

まとめ

後は、index.jsの中身を書き換えて、自分だけのBotを作りましょう!

コメント

タイトルとURLをコピーしました