\r\n\r\n
Discordにはカスタムボットを書くための優れたAPIがあり、非常に活発なボットコミュニティーがあります。今日は、自分でできることから始めて見ましょう。
ボットを書くにはプログラミングの知識が必要なので、誰にでもできるわけではありませんが、幸いなことに、いくつかの有名な言語にはモジュールがあり、非常に簡単に実装することができます。最もポピュラーなものであるnotと.jsを使用することにします。
関連:Discordサーバーの作成、設定、管理方法について
Discord のボットポータルに移動し、新しいアプリケーションを作成します。
クライアントIDとシークレット(もちろん秘密にしておく)をメモしておく必要があります。ただし、これはボットではなく、あくまで「アプリケーション」です。ボット」タブでボットを追加する必要があります。
このトークンもメモして、秘密にしておきましょう。この鍵はいかなる場合でもGithubに提出しないでください。あなたのボットは直ちにハッキングされます。
ウェブページの外でJavascriptのコードを実行するには、ノードが必要です。ダウンロードしてインストールし、ターミナル(またはコマンドプロンプトで、Windowsではすべて動作するはずです)で動作することを確認してください。デフォルトのコマンドは "node "です。
また、nodemonツールのインストールをお勧めします。これは、ボットのコードを監視し、変更があった場合に自動的に再起動するコマンドラインアプリケーションです。以下のコマンドを実行することで、インストールすることができます。
npm i -g nodemonテキストエディタが必要です。メモ帳でも良いのですが、AtomやVSCをお勧めします。
私たちの「Hello Worlds」を紹介します。
c***t Discord = require('discord.js'); c***t client = new Discord.Client(); client.on('ready', () => { c***ole.log(`Logged in as ${client.user.tag}!`); }); client.on('message', msg => { if (msg.content === 'ping') { msg.reply('pong'); } }); client.login('token');このコードはdiscord.jsの例から引用しています。少し分解してみましょう。
このコードをコピーし、下部にトークンを貼り付けて、index.jsとして専用フォルダに保存してください。
ターミナルに移動して、以下のコマンドを実行します。
nodemon --inspect index.jsこれでスクリプトが起動し、Chromeのデバッガが起動します。Chrome/check/goと入力してChromeのOmnibarに移動し、 "Node-specific development tools" を開くと実行できます。
さて、「Logged in as」と表示されるだけですが、ここに、受信したすべてのメッセージオブジェクトをコンソールに記録する行を追加しています。
では、このメッセージオブジェクトはどのような内容になっているかというと、実はいろいろあるんです。
最も注目すべきは、メールの作者やメッセージのチャンネルにアクセスするために使用できる作者情報とチャンネル情報です。この方法は、Chrome node devtoolsにオブジェクトを記録し、何が原因で動作するのかを調べまくることをお勧めします。面白いものが見つかるかもしれません。例えば、ここではボットが返信をコンソールに記録しているので、ボットの返信がclient.on("message")のトリガーとなります。ということで、スパンボットを作ってみました。
注意:再帰を扱うのはあまり好ましくないので、この点に注意してください。
この部分は、必要以上に難しいです。
https://discordapp.com/oauth2/authorize?client_id=CLIENTID&scope=botをクリックし、CLIENTIDをアプリケーションページの「一般情報」タブにあるボットのクライアントIDに置き換えてください。これが完了したら、友達にリンクを渡して、自分のサーバーにもボットを追加してもらうことができます。
基本的な設定以外は、すべてお客様次第です。しかし、helloworldのままでは、あまり良いチュートリアルにならないので、ドキュメントをいくつか見て、何が起こっているのか、より良く理解できるようにしましょう。よく書かれているので、できるだけ目を通すことをお勧めします。
コードの最初に console.log (client) を追加して、コンソールでクライアントオブジェクトを見ることをお勧めします:.
ここから多くのことを学ぶことができます。サーバーはGuildsマッピングオブジェクトの一部であり、一度に複数のサーバーにボットを追加することが可能です。APIは非常に奥が深く、学ぶのに時間がかかるかもしれませんが、少なくともセットアップや学習を始めるのは簡単です。