![見出し画像](https://assets.st-note.com/production/uploads/images/44270471/rectangle_large_type_2_613c07122cc73ef9f60751d7024cb615.jpeg?width=1200)
Discodのコインダイスボットを作った話
パスタを作ろうとソースと具材を作った後にパスタがないことに気付き麺抜きパスタを食べました、どうもカギピです。
今回の記事はDiscodのチャットボットを開発しHerokuでサーバを立てることを初めてやったのでその辺の話をます。開発の参考情報や最後の方に作ったボットの導入リンクや使用法を書くのでボットを開発してみたい人、サーバにコインダイスボットを導入したい人は読んでみてください。
※2021/08/30コインダイスボットの導入リンクを消しました
参考記事
ここの記事にあるように作ればとりあえずボットが動くとこまではできると思います。
やった事まとめ
簡単にやった事を書くと
・DiscodBotアカウントの作成
・Herokuアカウントの作成
・GitHubでプロジェクトのフォーク
・開発して更新
・テスト
開発で感じた事
まず感じたのは開発のハードルの低さです。今回はHerokuにサーバーをたてて行おうと調べてたのですが先述した参考記事のようにそのままフォークしてHerokuと連携とちょっとした設定だけでボットが動くようになっていて自分の実装したい機能だけに集中できるのはいいなと思いました。また僕はほとんどPythonを書いたことがありませんがそこまで困ることなく記述できてHerokuも初めて使ったのですが簡単に自動デプロイができて使いやすかったです。
作ったボットの機能
機能としては名前の通りコインを投げる機能とダイスを振る機能の2つです。それぞれコマンドと意味を書きます。
コマンド : 意味
▪️コインを投げる機能(/toss)
/toss : コインを1回投げる
/toss 100 : コインを100回投げる
/toss t : 裏が出るまで投げる
/toss h : 表が出るまで投げる
▪️ダイスを振る機能(/r)
/r : 6面ダイスを1回投げる
/r 3d5 : 5面ダイスを3回投げる
/r d5 : 5面ダイスを1回投げる
/r 4d : 6面ダイスを4回投げる
ボットを作る仕様について考えたこと
機能としてはコインやダイスの結果を返す単純な機能ですが、引数なしでのコマンド(/tossだけや/rだけ)で実行できるようにしたりポケカプレイヤーが使うようなどっちかの面が出るまでといった機能を追加しました。あとはコマンドの引数を間違えた時に使い方を返すようにしたりと細かく使いやすくしています。
最後に
あまり情報としては多くありませんがなんとなく自分もできそうかなって思って開発する方が増えると面白いかなと思います。もし機能としてこんなの欲しいよみたいのがありましたらツイッターでご連絡いただいたら追加するかもしれません。