こんにちは。彩です。この記事ではDiscordで使うbotについて、スマブラのキャラ窓で使えるような自作botを作ってみたいという方がいるのではと思ったので、作り方の説明をします。基本的には「このサイト見てやってね」って内容ですが、その上で補足点とか説明しながら進めます。
すみません、botの作り方〜サーバーで動かすまではもろもろこちらの記事がめちゃくちゃ参考になるので、こちらを見ていただくのが早いです。↓
Pythonで実用Discord Bot(discordpy解説)
その上で、ネス窓botの方のコードを公開します。Discordのbotを動かすためのコードって探しても案外無い気がするので、参考までに眺めて見てもらえたらという感じです。こう書くとこれができるのね〜みたいな感じで。
- キャラ窓の機能を自作したい方
- Discordのbotを作ってみたい方
- Pythonが使えるけどDiscordのbotいじるのはどうやるのかよくわからんて方(読んでる方が使えなくとも、グループ内にPythonが使える方がいれば大丈夫だと思います)
Discordで色んなbotを導入することで音楽を流したり有害ユーザーをブロックしたりと様々な機能が使えるようになることはご存知と思います。そんな便利なbotを自分たちの手で作って、好きな機能を付けれたら素晴らしいですよね。そういうことができるよと言うのが今回の話です。
実際にネス窓ではこれに取り組んでいて、こんな感じの機能が使えます。
- “質問 [キャラ名]”と打つと対象のキャラ対策チャンネルに内容をコピペし、質問が来ている旨を雑談チャンネルに書き込む
- “対策 [キャラ名]”と打つとそのキャラの対策内容が書き込まれる
- 対戦募集チャンネルで”対戦募集”と打つと対戦したいユーザーに通知をし、雑談チャンネルにもその周知メッセージを飛ばす
- ネス奥義と打つとランダムでネス奥義の技名を返してくれる
具体的な話は以下の動画でも説明してます。用途をイメージしたい人は見てください。
Botの作成は以下の手順を踏みます。
- bot用アカウント新規作成
- botの設定
- botのサーバー登録
- (Python入れてない人は)開発環境作成。Anacondaをインストールするのが早い。
- Discord.py(Disdcord開発用のAPI)のインストール
- botの開発(プログラミングする)
- GitHubに作ったプログラムを登録(GitHub無い人は登録しましょう)
- Herokuのアカウント登録をする
- HerokuとGitHubを連携させて、Herokuのサーバーでプログラムを起動
以上!!!
でですね。ここまで書いたのですが改めて伝えさせていただくと、これが以下のサイトでまとめて説明してくれていますので、私からの説明は省きます。
本当すみません。
Pythonで実用Discord Bot(discordpy解説)
- まずは自分で作ったテキトーなサーバーで動かすのをおすすめします。初っ端からキャラ窓で試してBotが暴走したら後始末が面倒なので。それで問題無いよってのが確認できたらキャラ窓のサーバーで動かしましょう。
- 解説サイトには色んな機能のサンプルコードが記載されてますが、メッセージを削除するとかは消したら元に戻せないので、慎重に扱うことをおすすめします。例えば事前に事前にバックアップを取っておくなどしておくのが良いと思います。ネス窓botでは削除系の機能は入れて無いです。
- 解説サイトにも書いてありますが、トークンなどの値は外部に漏れるとサーバーを荒らされる可能性があります。それこそサーバーのデータを削除されたりする可能性もあるので、外部に漏れないよう十分注意して取り扱ってください。GitHubのリポジトリは絶対にPrivateにしておきましょう。
ネス窓botのソースコードが以下GitHubのページに記載されています。
ネス窓botのソースコードを使ってみたい場合の説明をします。
ネス窓botのソースコードを使うメリットは以下です。
- 最小の構成だと「keyword(読み取るメッセージ)」と「reply(botが返すメッセージ)」を記載しさえすれば使える。
- ネス窓で使っている機能が使える(めちゃいじる必要はある)。
まず使ってみたいという方はNMconfig.iniのファイルに必要な値を入れます
NMconfig.iniの中身がこちら。これと書かれているところに必要な値を入れてください。TOKENはbotのトークンです。
ここまでできたらあとは自分のPCでbot.pyをビルドしてみてください。ビルドが成功したらness_mado_message_maker.pyに記載のクラスの各keywordの値を、自分のアカウントからDiscordのメッセージで打ってみてください。replyに記載の内容がbotから返ってきます。
ただ新しいメッセージを書いてみたいだけの場合は、ness_mado_message_maker.pyの既存のクラスに書いてある内容(keyword、reply)を書き換えれば使えます。試してみてください。
自分でクラスを作って実装したい場合はnessmado_basic.pyの「新機能実装方法」のコメントを読んでください。
がっつり作りたい場合は基本的には以下の箇所をいじってみてください。
ネス窓の既存のクラスはいじってみてもいいですが、ささっといじれるのは対戦募集のクラスくらいです。
質問、キャラ対策のクラスはチラ見してもらった上で自分で作っちゃったほうが早いです。
- MyMessageClassフォルダ内:ここで好きに機能クラスを作ります。その際はMessageMakerクラスを継承させることで動かします。
- NMconfig.ini:必要な変数(チャンネルIDやスタンプID、役職IDなどその他もろもろ)が発生した場合は逐一ここに定義します。
- nessmado_basic.pyファイル:新規クラス作ったらこのファイルにimportなどする。
本当に拙くて申し訳ないのですが、以上です。
あれですね。Python使ったことあるけどDiscordのbot作るにはどうするのかよくわからんしAPIの使い方調べるの面倒、って人用の記事になりましたね。
少しでもキャラ窓bot作る参考になればと思います。
読んでいただきありがとうございました。
コメントを残す