皆さん初めまして。Morichanと申します。
下記の※の記述を理解したうえで、記事を読んでください。
※DiscordBot開発初心者の書いた記事です。
(また、プログラミング自体、2年ほどのブランクあり)
目次
開発環境
OS (Windows11)
discord.js (14.7.1)
node.js (18.13.0)
npm (8.19.3)
環境構築もろもろ
-
nvm-windowsでNodejsをインストール
今回インストールしたバージョンは(18.13.0)です。 -
VSCodeに開発の際、必須な拡張機能を追加。
今回は、npm Intellisense、ESLint、Prettier – Code formatter、GitHub Repositoriesを追加。
BOTを作成してみる
-
DEVELOPER PORTALにアクセス。
-
Nameに作成するBOTの名前を入力。
-
APP ICONをクリックし、画像を登録。
-
BOTをサーバーへ招待する
下記のリンクのclient_id=
の後にCLIENT IDを当てはめて、リンクを開く。
https://discord.com/oauth2/authorize?client_id=ここにCLIENT IDを入れる&scope=bot+applications.commands
-
BOTをサーバーに招待、CLIENT IDとTOKENをコピーしてメモ帳などに控えることができたら、OK。
-
最後に、BOTを招待したサーバーへ行き、左上のサーバー名を右クリックし、IDをコピー、保管する。
※ IDがコピーできない場合、左下のユーザー設定→詳細設定→開発者モードをON
BOTを動かしてみる
-
作業用のフォルダを作成しVSCodeで開く。
-
VSCodeでターミナルを開き、必要なものをnpmを使用してインストール
npm init -y
npm i discord.js --save
npm install -g eslint
- 一番上の階層にconfig.jsonを作成し、中身を記述。
※LISTENERの部分は、各自のBOTの名前など好きなものに変えることをお勧めします。
{
"LISTENER": {
"CLIENT_ID": "ここにBOTのCLIENT_IDを記述",
"TOKEN": "ここにBOTのTOKENを記述"
},
"GUILD_ID": "ここにBOTを追加したサーバーのIDを記述"
}
- 同じ階層にindex.jsを作成し、中身を記述。
公式ガイドの通りに記述。
const { Client, Events, GatewayIntentBits } = require('discord.js');
const { LISTENER } = require('./config.json');
const client = new Client({ intents: [GatewayIntentBits.Guilds] });
client.once(Events.ClientReady, c => {
console.log(`Ready! Logged in as ${c.user.tag}`);
});
client.login(LISTENER.TOKEN);
-
VSCodeでターミナルを開き、
node index.js
を実行。
無事に動けば、ターミナルにReady! Logged...(以下略)
と出力される。
※写真は2つのBOTを動かした時のものであるため、1行出力されていれば問題なし。
-
DiscordのBOTを招待したサーバーへ行くと、右側のBOTのステータスがオンラインになっている。
※今回作成したBOTがオンラインに表示されていれば問題なし。
関連記事
- 【Windows11】Discord BOTを開発するための開発環境を整える。
- 【Discord.js V14】Discord BOTにスラッシュコマンドを実装してみる
- 【Discord.js V14】Discord BOTをVCに参加させてみる
- 【Discord.js V14】2つのBOTを別々のVCに参加させてみる
- 【Discord.js V14】スラッシュコマンドのオプションで、既に選択済みの選択肢を2つ目の引数のリストから消す。
- 【Discord.js V14】Discord BOTにVCに音楽を流す機能を実装してみる
- 【Discord.js V14】Discord BOTにVCから1人分の音声を取得して、録音する機能を実装してみる
- 【Discord.js V14】VC1からVC2に音声をStreaming(中継)するBOTを作成する。
- 【Discord.js V14】取得するVCの音声をロールによって判別する