この記事は,SYSKEN Advent Calendar 2018 の15日目の記事です.
こんにちはこばです。
ほぼ一年ぶりの記事投稿になりますが、書いていこうと思います。
最近は部屋にこもってゲームばかりしていました。
思い返すと今年は何もしてないなと思ったので何かやろうと。
そうだ、Botでも作るかと。
隙あらば自分語り&ダイマ
僕はオンラインFPSなんかをよくプレイするので、
友人と喋りながら一緒にやることも多いです。
昔は通話しながらゲームというとSKYPEが主流だったと思いますが、
最近はdiscordを利用している人がほとんどなのではないでしょうか。
僕はdiscordはゲーム用のイメージが強いですが、
機能はかなり充実しておりログが無制限だったりと強い点も多くあります。
コミュニケーションツールとしてdiscordを利用するのもありかもしれませんね。
その機能の1つとしてbotを自分で作ることができます。
開発言語はPythonやRubyがあります。(まだあるかも)
今回はPythonを使ってbotを作成したいと思います。
1.いったい何をつくるんだ
初めにどんなbotを作成するかですが
今回はチーム分けをするbotを作ろうと思います。
今までだと集まった人の名前をいちいち
別サイトに書き込んでチーム分けをしていたのですが、
それが面倒なのでbotで楽しようと。そういう魂胆です。
2.すべての道はHello Worldに通ず
Hello Worldをするわけではありませんが初歩は大事。
ということで基本から進めていきます。
細かいことは以下のリンクを参考にしてください。
Pythonで実用Discord bot
とりあえず外身はこんな感じ。
まずこいつににゃーんと言わせようと。そういうことです。
やったぜ。
まあPython3.7では動かないのを知らずに(リンク先記事の初めに書いてある)
四苦八苦したわけですがなんとかHello Worldを完遂しました。
3.本体を作ろう
さて初歩を終えた※要出典ところで、本機能を作っていきます。
今回は人がボイスチャンネルに集まっているとして作ります。
動作フローは以下のようにします。
- コマンドが入力される(今回は/team)
- その人が参加しているボイスチャンネル(VC)を取得
- そのVCにいる人のリストを取得
- 2つのチームにランダムに分ける
- チャットチャンネルに出力
動作は決まったのでひとつづつ機能を実装していきます。
まずはVCを取得しましょう。
続いてリストを取得します。
あとはこれを2つに分けるだけです。
できました。
行ごとに別のメッセージなのですがまあいいでしょう。
ソースコードは下記リンクに置いておきます
ソースコードはこちら
4.まとめ
ということで今回はdiscordBotを作成しました。
今回の教訓として大したことではないですが、
- エラーメッセージが読める
- リファレンスが読める
ができれば開発するとき困ることはないと思われます。
大して書くこともないのでこのあたりで終わろうと思います。
明日もお楽しみに。
ソースコードはもう公開停止したのですか?
よければ/teamの部分のコードを教えていただけないでしょうか。
ソースコード拝見したいです
再公開していただくことはできないでしょうか?