Discord には、 カスタム ボットを作成するための優れた API と、非常に活発な ボット コミュニティが あります。今日は、自分で作成を始める方法を見てみましょう。
ボットをコーディングするには多少のプログラミングの知識が必要なので、誰にでも適しているわけではありませんが、幸いなことに、ボットを非常に簡単に作成できる人気のある言語用のモジュールがいくつかあります。最も人気のあるものである discord.js を使用します。
はじめる
Discord の ボット ポータル に移動し、新しいアプリケーションを作成します。
クライアント ID とシークレットをメモしておきます (もちろん、これは秘密にしておく必要があります)。ただし、これはボットではなく、単なる「アプリケーション」です。 「ボット」タブにボットを追加する必要があります。
この トークン もメモして、秘密にしておきます。いかなる状況でも、このキーを Github にコミットしないでください。あなたのボットはすぐにハッキングされてしまいます。
Node.js をインストールしてコーディングを開始する
Web ページの外部で Javascript コードを実行するには、 Node が必要です。ダウンロードしてインストールし、ターミナル (または Windows システムではすべて動作するはずなのでコマンド プロンプト) で動作することを確認します。デフォルトのコマンドは「node」です。
また、nodemon ツールをインストールすることをお勧めします。これは、ボットのコードを監視し、変更があった場合に自動的に再起動するコマンド ライン アプリです。次のコマンドを実行してインストールできます。
npm i -g ノードモン
テキストエディタが必要になります。メモ帳を使用することもできますが、 Atom または VSC の いずれかを推奨します。
これが「Hello World」です。
const Discord = require('discord.js');
const client = new Discord.Client();
client.on(‘準備完了’, () => {
console.log(`${client.user.tag} としてログインしました!`);
});
client.on(‘メッセージ’, msg => {
if (msg.content === ‘ping’) {
msg.reply(‘ポン’);
}
});
client.login(‘トークン’);
このコードは discord.js のサンプルから取得したものです。分解してみましょう。
- 最初の 2 行はクライアントを構成するためのものです。 1 行目ではモジュールを「Discord」というオブジェクトにインポートし、2 行目ではクライアント オブジェクトを初期化します。
-
client.on('ready')ブロックは、ボットの起動時に起動されます。ここでは、その名前を端末に記録するように構成されているだけです。 -
client.on('message')ブロックは、新しいメッセージがチャネルに投稿されるたびに起動されます。もちろん、メッセージの内容を確認する必要があります。それを行うのがifブロックです。メッセージに「ping」とだけ書かれている場合は、「Pong!」と応答します。 - 最後の行は、ボット ポータルからのトークンを使用してログインします。明らかに、ここのスクリーンショットのトークンは偽物です。トークンをインターネット上に投稿しないでください。
このコードをコピーし、下部にトークンを貼り付け、
index.js
として専用フォルダーに保存します。
ボットの実行方法
ターミナルに移動し、次のコマンドを実行します。
ノードモン --index.js を検査する
これにより、スクリプトが起動され、Chrome デバッガも起動されます。これには、Chrome の Omnibar に
chrome://inspect/
と入力し、「Node 専用の devtools」を開くことでアクセスできます。
ここでは、単に「<ボット名> としてログインしました」と表示されるはずですが、ここでは、受信したすべてのメッセージ オブジェクトをコンソールに記録する行を追加しました。
では、このメッセージ オブジェクトは何で構成されているのでしょうか?実際にはたくさんのことがあります:
最も注目すべき点は、msg.author と msg.channel を使用してアクセスできる作成者情報とチャンネル情報があることです。 Chrome ノードの開発ツールにオブジェクトを記録し、何が機能するのかを確認するこの方法をお勧めします。何か面白いものが見つかるかも知れません。たとえば、ここではボットがその応答をコンソールに記録するため、ボットの応答によって
client.on('message')
がトリガーされます。そこで、スパムボットを作成しました。
注: 実際には再帰を扱いたくないので、これには注意してください。
サーバーにボットを追加する方法
この部分は必要以上に難しいです。次の URL を取得する必要があります。
https://discordapp.com/oauth2/authorize?client_id=CLIENTID&scope=bot
CLIENTID を、 アプリケーション ページ の [一般情報] タブにあるボットのクライアント ID に置き換えます。ただし、これが完了したら、リンクを友達に渡して、友達のサーバーにもボットを追加してもらうことができます。
わかりました。他に何ができるでしょうか?
基本的なセットアップ以外はすべてあなた次第です。ただし、hello world で終わってしまうとあまり チュートリアル にはならないので、何ができるのかをよりよく理解できるように、ドキュメントのいくつかを見てみましょう。非常に詳しく書かれているので、できるだけ読んでみることをお勧めします。
コードの先頭に
console.log(client)
を追加し、コンソールでクライアント オブジェクトを確認することをお勧めします。
ここから、多くのことを学ぶことができます。ボットを複数のサーバーに一度に追加できるため、サーバーは
Guilds
マップ オブジェクトの一部です。そのオブジェクトには個々の
ギルド
(「サーバー」の API 名) があり、それらのギルド オブジェクトにはすべての情報とメッセージのリストを含むチャネル リストがあります。 API は非常に奥が深いため、習得するには時間がかかる場合がありますが、少なくともセットアップして学習を開始するのは簡単です。





