Posted at

Discord.jsでシャットダウンコマンドを作る


概要

Botをシャットダウンするコマンドを作る方法です。

※インストール内容はCentOS7の環境での方法を紹介します。CentOS7以外のインストール方法は調べてインストールしてください。


1. Node.jsのインストール方法

下の2つのコマンドを実行するだけです。

curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -

sudo yum -y install nodejs gcc-c++ make


2. Discord.jsのインストール方法

下の1つのコマンドを実行するだけです。

npm install discord.js


3. Botアカウントの作成方法とサーバーへの追加方法


Botアカウント作成方法

ここ (https://discordapp.com/developers/applications/)からDiscordの開発者ページにアクセスして、「New App」をクリックします。

「NAME」にBotの任意の名前を入れて「Create」を押すとアプリができます。

アプリを作成したら、Botを作ります。右にある「Bot」をクリックして、「Add Bot」を押すことでBotを作ることができます。

最後にTokenの下にある「Copy」ボタンを押してメモ帳にペーストしておいてください。後で使います。このTokenは晒すとBotが乗っ取られるので注意です。


サーバーへの追加方法

右にあるOAuth2をクリックして下にある「Bot」というボタンをクリックします。すると新しい項目がでてくるのでそこで管理者を渡しておくと今後何でもできるので「管理者」をクリックします。チェックが付けばOKです。その後にBotと選択した項目の下にとURLが出てくるので、ブラウザのアドレスバーにコピーして開きます。「Botを追加します。」とでてくるのでサーバを選択して「認証」を押すと完了です。

Botの招待には招待するサーバーで管理者権限が必要です。


4. コードを書いていく

次に本題のコードを書いていきます。まず、Botを作るフォルダーにApp.jsというファイルを作ってソースコードエディタ(おすすめはVisual Studio Code)を使ってApp.jsを開きます。その中に下記のコードを入力します。


const Discord = require('discord.js');
const client = new Discord.Client();

client.login("<Token>");

client.on('message', message => {
if (message.content.startsWith('シャットダウンに使うコマンド')) {
if (!message.author.id == シャットダウンができる人のユーザーID) return;
process.exit();
}
});

シャットダウンに使うコマンドのところはシャットダウンに使うコマンドを入力してください。下記が例です。

if (message.content.startsWith('+shutdown'))

シャットダウンができる人のユーザーIDはシャットダウンができる人のユーザーIDを入力してください。下記が例です。

if (!message.author.id == 359253660221440013) return;

Tokenはさっきメモ帳にコピーしたTokenをここに貼り付ける

これで保存してください。


5. 早速Botを起動してみよう!

早速Botを起動してみましょう。起動もコマンド1つでできます。

node App.js

これで完成です。みなさんもぜひ試してみてください!

なにか間違い等あれば admin@yopon.cf までお願いいたします。


Botサンプルを用意しました。ぜひご使用ください。

https://discordapp.com/api/oauth2/authorize?client_id=560019318297853972&permissions=8&scope=bot

コマンドは +shutdown ですが、筆者の僕しかできないので意味ないですね