Closed37

Discord用ダイスbot作る

まなさすまなさす

概要

Discord用のダイスbotを作る

must

  1. 『1d100』など『ndm』が自動で返ってくる

want

  1. 『ndm + ndm』や『ndm + a』が返ってくる

備考

  • 既存のDiscord用ダイスbotはあるのだが最近調子が悪いのか動いてくれないので自前で作って自前で管理してみることにする
  • 自前で作って自前でメンテしてオレオレ拡張したい
    • 身内はキャラシをスプシ管理してるので、スプシからステ読み込んでアイデアロールとか/r ideaとかで転がしたら1d100 : 20 < 70 : 成功とかで自動で成功失敗判定できるようなものを作りたい
まなさすまなさす

publicじゃないbotでも管理者にURL渡せば招待してもらうことができるのね
TRPGやってる鯖は友人管理だったからそこらへんどうしよかなって思ったけどURL渡すだけなら楽でいいな

まなさすまなさす

アカウント名がthetalemonなのでZennのアイコンがtになるんだけどZennアイコンフォントのtめちゃくちゃTwitterのtににてて今更気になったからいつものあざらしに変化。
ついでにgithubとTwitterアカウントも入力したけど、特に連携じゃないから誤字りそうで怖いな〜〜と思ったけど無駄権限与えない付与しないという意味ではこの方法が正しいのかも

まなさすまなさす

glitchのprivateボタンないぞって思ったら2020/12くらいにprivateは有料のみになったのか…どうするかな

まなさすまなさす

さすがにトークン使うようなプログラム公開したらいかんし

LINEBotはどうやってたんだと思ったらLINEBotはwebhookのURLを使ってGASのスクリプトをキックできるとかになってるっぽい?同じことをdiscordでやる方法ないかな

まなさすまなさす

@わたし
ローカルにTILが3つあったりcommitしてないのがある状況をいい加減どうにかしてください

まなさすまなさす

というかseal-diceはseal-diceだから別リポジトリにしよ
いつもめんどくさくてTILにいれちゃうけどいい加減TILもきちゃないし、なんかもっと違う形にしたいな

まなさすまなさす

これはもしかして噂のgithub二要素認証に追加するとpushできなくなるやつ!!!!

まなさすまなさす

あざらしは さいころを おぼえた!
あとは文字列パースしてころころする処理かいてくだけだぞ〜〜

まなさすまなさす

正規表現苦手すぎて40回くらい試すのが目に見えてるのでこんな感じでごりごり試していく

まなさすまなさす

マスト達成したし一旦寝ようかな
ndm認識できてるし、ndm + ndmもsplitして1個ずつndmにいれてあげればいいだけだから楽だろう、nだけだったら普通に数字として結果に足すとかしておけばいいかな

まなさすまなさす

今の返却方法だと2d6 + 2d6した時に
2 + 3 + 1 + 5 = 11みたいになっちゃうなあと思ったけど、まあ別にいいか…どう見ても前から順番にダイス足していくよね
1d3 + 12 + 1 = 3で、1d3 + 1でも1d3+1でもどっちでもOKで動くようにしよう
/dice 1d100/diceは必須で

まなさすまなさす

/diceってなんかのbotとかぶりそうだから/sdとかにしようかな…sdの方がかぶりそうかな
既存ダイスbot/diceじゃないのはすでに/diceがあるからなのかなあと思ってるんだけど、ビルトインにないなら使って大丈夫かな…あるいはいっそcraigみたいに別の接頭辞にするとかそういう方がいいのかしら

まなさすまなさす

顔パック待機時間にコーディングはじめたらできてもた
2d6+2d62d6 + 2d6でふった時の返却、間違ってないんだけど差分が気持ち悪いからフォーマットしたいな

この後こっそり試してるけど2d6 + 2は計算式の出力に入力そのまま使ったら無駄な空白できちゃったから最初に空白抜くのが良さそう
式は演算子の前後は空白派なので、↑の差分の気持ち悪いフォーマットは演算子前後は空白(2d6 + 2d6に整形)にしよう。

フォーマットってどうやってかくのが正解なんだろ、
このくらいの規模なら1回全部抜いて++に置き換えでいいと思うんだけど、
エディタのフォーマッタなんかは正規表現で+の前後に空白がない場合に加えるみたいになってんのかな

まなさすまなさす

そういえば誰のdiceに関しての結果なのかわかんないと困っちゃうよねと思ってリプライいれたら元使ってたダイスぼっとより黄色い感じになっちゃったけどまあいいだろう(っていうかdiscordにこんなリプライ機能あったんだ

まなさすまなさす

ちなみに最後の最後で地味にフォーマットもしてあることが試されてるぞいえーい

まなさすまなさす

herokuにデプロイまでやろうかなと思ったけど一旦試運転はローカルでいいかな、デプロイしてあるよりもすぐにfixして再起動できていいだろうし
何かログ仕込んでおくべきかしらと思ったけどまあローカルで動いてるならエラーったらなんかログでるだろう

まなさすまなさす

pushしたので今回の開発は終わり!
https://github.com/thetalemon/seal-dice

一旦身内卓で試運転して、良い感じだったらHerokuデプロイする
Herokuで寝てる時起きるまで何分かかるかちょっと気になるからはやめにデプロイするかも。も。

このスクラップは2021/02/14にクローズされました