差分

ナビゲーションに移動 検索に移動
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>

案内メニュー