5v5の爆破ゲーム(VALORANT)にてMAP BANの優先権獲得のためDiscordのBot機能を利用していました。
某配信者が「ダイスで0出したんだけど…」
筆者「これやりてえな。ほしい。」
Discord Bot作成したので共有します。
一応スペック
- 言語:JavaScript
- サーバー:お名前ドットコムRSプラン
- Discord bot名:app.js
「Discord Bot作成」と調べると複数記事がヒットして、わかりやすいものが多かったです。
そちらを参考にしていただいても構いません。
(最後にこちらで使用したソースを記載します。)
こちらでは主にレンタルサーバーで常時起動させる方法について記載します。
- レンタルサーバーへSSH接続
- node16のインストール
- Discord.jsのインストール
- 起動方法
- おまけ
注意!
レンタルサーバーで動かす際には、config.jsonはpublic_html上には載せないように!!
Discordのkey情報が全世界へ出てしまいます。
レンタルサーバーへSSH接続
今回はお名前ドットコムのレンタルサーバーへSSH接続します。
接続方法:https://www.onamae-server.com/guide/vps/ssh_connect/
node16のインストール
なぜnode16を利用するかというとnode18以降であるとJavaScriptの規格が変わってしまい、エラーが発生してしまうのでnode16で動かすようにしました。
レンタルサーバーにnodejsのインストールを行います。
方法はさまざまありますが、今回はnvmでやりました。
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
“nvm -v”を行ってバージョンが出ていれば問題ないです。その後以下コマンドでnode16のインストールを行います。
nvm install v16.20.0
インストールしたバージョンを利用するために以下コマンドを実行します。
nvm use v16.20.0
Discord.jsのインストール
Discord.jsとは、Discord上にてJavaScriptで作ったものを動かすことができるようになるようなモジュールになります。
npm install discord.js
上記コマンドでモジュールのインストールを行います。
これがないと動かないので確実に行うようにしましょう。
起動方法
最後にBotを起動させてみましょう。
node app.js
これでDiscordを開くとbotを利用することができるようになっていると思います。
しかし、これでは時間経過でログアウトされ、動かなくなってしまいます。
ここで使うのがforeverになります。
foreverが動かない場合はインストールを行います。
npm install -g forever
スタートするには以下のコマンドを実行します。
forever start app.js
これで動くようになっていると思います。
停止する場合は以下です。
forever stop app.js
おまけ
今回私が作成したdice botは以下になります。
完成形
discord/
├ commands/
│└ dice.js
├ config.json
├ deploy-commands.js
└ index.js
node index.js
上記でログインを行います。
node deploy-commands.js
上記でコマンドの登録を行います。
上記により、時間経過でログアウトすることなく、コマンドを動かすことができます。