discordのbotをrubyで作るときに任意個の引数を受け取る
最近友人や後輩とdiscordで通話をしながらスプラトゥーン2のリーグマッチをやっている. いつもは2人や4人で集まることが多いので問題にならなかったが,3人で集まったときに「誰がやるよ?」というのが問題になった.
そこで「人数と名前を入れるとランダムに選んでくれる」discordのbotを作成した.
「discord bot」で検索するとpythonでの例が多く出たため最初pythonで作ろうと思ったが,pythonでのライブラリ管理手法などがよく分からなかったので,結局慣れているrubyを用いることにした.
そこでrubyでの作成法を軽く検索したところ,
などが引っかかったので大いに参考にさせていただいた.
ただし,任意個の引数を受け取る方法が書いてなかったので,一応メモに残しておく. まともにrubyを扱える人なら調べるまでもないものだと思う.
bot.command :args do |event, *args| event.send_message("argc: #{args.size}, args: #{args}") end
って感じで,ブロックの第二引数に *args
を取ればいい.
普通に可変長引数を取ればいいだけなんだけど,そもそも可変長引数の取り方を知らなかったという……