38行目: |
38行目: |
| | | |
| return message | | return message |
| + | end |
| + | </syntaxhighlight> |
| + | |
| + | == setMessage == |
| + | |
| + | https://github.com/torgtaitai/BCDice/blob/86b8dd03ae00f8ea6a8787f9f514a5d83b2e3d41/src/bcdiceCore.rb#L146-L163 |
| + | |
| + | ダイスボットに実行させるメッセージを設定する。 |
| + | |
| + | # メッセージのパターンに合わせて指定されたメッセージを加工する。 |
| + | #* `Open Dice!` や `Open Plot!`、`Set` 系は指定されたメッセージそのまま。 |
| + | #* それ以外の場合、空白の前まで。 |
| + | # 括弧内前処理を行う。「[[#parren_killer]]」を参照。結果を `@messageOriginal` に記録する。 |
| + | # 括弧内前処理の結果に対して、アルファベットを大文字にする。これを次に実行させるメッセージとして `@message` に記録する。 |
| + | |
| + | <syntaxhighlight lang="ruby"> |
| + | def setMessage(message) |
| + | # 設定で変化し得るためopen系はここで正規表現を作る |
| + | openPattern = /\A\s*(?:#{$OPEN_DICE}|#{$OPEN_PLOT})\s*\z/i |
| + | |
| + | messageToSet = |
| + | case message |
| + | when openPattern, SET_COMMAND_PATTERN |
| + | message |
| + | else |
| + | # 空白が含まれる場合、最初の部分だけを取り出す |
| + | message.split(/\s/, 2).first |
| + | end |
| + | debug("setMessage messageToSet", messageToSet) |
| + | |
| + | @messageOriginal = parren_killer(messageToSet) |
| + | @message = @messageOriginal.upcase |
| + | debug("@message", @message) |
| end | | end |
| </syntaxhighlight> | | </syntaxhighlight> |