cre-ne-jp / rgrb

irc.cre.jp 系 IRC サーバ群で用いられている汎用チャットボット
http://www.cre.ne.jp/services/irc/bots/rgrb
MIT License
4 stars 0 forks source link

日本語ダイスの有効・無効を切り替えられるようにする #88

Closed koi-chan closed 7 years ago

koi-chan commented 7 years ago

DiceRoll / Trpg::Detatoko にある日本語ダイス機能の有効・無効を切り替えられるようにする。 これは、ダイス機能自体は有効にしつつ、SW2_DLL など、他の日本語ダイス機能を持つボットプログラムとの干渉を防ぐために搭載したい。

koi-chan commented 7 years ago

DiceRoll プラグインはこれで完成です。 単純に、日本語ダイス機能を使ったときに呼び出されるメソッドの頭に return を追加して処理を止めました。

Trpg::Detatoko プラグインの実装を悩んでいます。 与えられたコマンドが日本語かそうでないかを特に区別せずに実行する物ばかりなので、DiceRoll ほど単純に実装できないからです。 日本語ダイス機能が無効なときには match の部分を実行しないというのがいいのではないかと思うのですが、それだとメソッドの中に match を書くことになるため、メソッドがないというエラーを発生させてしまいます。

koi-chan commented 7 years ago

元々この機能が必要となった SW2_DLL の AsciiCalc 機能には、何の日本語ダイスが含まれているのかが分からないのも、どこまで RGRB に日本語ダイス機能の有効・無効を設定で変えられるようにするかを悩ませる原因です。 どうやらでたとこサーガ用のダイスには、SW2_DLL は日本語ダイス機能を搭載していないようにも思えるのですが……。

ochaochaocha3 commented 7 years ago

DiceRollの変更ありがとうございます! 確かに match の有無を変えようとすると大変そうなので、ハンドラの中で設定を調べて分岐させる方法が簡明だと思います。

ochaochaocha3 commented 7 years ago

でたとこのは、確かに難しいですね。SW2_DLLやBCDiceのようにそのゲームのダイスを使うかどうかと、その上で日本語の機能を使うかというように条件を分けて考えるべきところなのかな、と思いました。ただ、コマンドを見るとSW2_DLLのものと重複しなさそうな感じがします(「何の日本語ダイスが含まれているのかが分からない」のは事実なので推測ではありますが)。

一番ぶつかりやすいDiceRollの日本語コマンドについて解決したということで、一旦ここで止めて様子を見るのはいかがでしょうか?

koi-chan commented 7 years ago

ではそうさせてもらうとします。

ochaochaocha3 commented 7 years ago

91 をマージしましたので、一旦こちらは閉じます。