差分

ページの作成:「BCDice-APIからのBCDiceの呼び出し方。[https://github.com/ysakasin/bcdice-api/releases/tag/0.6.2 v0.6.2]のソースコードを参考にしている。…」
[[BCDice-API]]からの[[BCDice]]の呼び出し方。[https://github.com/ysakasin/bcdice-api/releases/tag/0.6.2 v0.6.2]のソースコードを参考にしている。

== server.rb L74-L78 ==

https://github.com/ysakasin/bcdice-api/blob/0dfd095a4c7befed58ffbb7eb880a9d729badf2a/server.rb#L74-L78

パス `/v1/diceroll` にリクエストが来たときの処理。ダイスロールを行う。

<syntaxhighlight lang="ruby">
get "/v1/diceroll" do
result, secret, dices = diceroll(params[:system], params[:command])

jsonp ok: true, result: result, secret: secret, dices: dices
end
</syntaxhighlight>

== server.rb L20-L42 ==

https://github.com/ysakasin/bcdice-api/blob/0dfd095a4c7befed58ffbb7eb880a9d729badf2a/server.rb#L20-L42

ダイスロールを行うメソッド。

<syntaxhighlight lang="ruby">
def diceroll(system, command)
dicebot = BCDice::DICEBOTS[system]
if dicebot.nil?
raise UnsupportedDicebot
end
if command.nil? || command.empty?
raise CommandError
end

bcdice = BCDiceMaker.new.newBcDice
bcdice.setDiceBot(dicebot)
bcdice.setMessage(command)
bcdice.setCollectRandResult(true)

result, secret = bcdice.dice_command
dices = bcdice.getRandResults.map {|dice| {faces: dice[1], value: dice[0]}}

if result.nil?
raise CommandError
end

return result, secret, dices
end
</syntaxhighlight>

[[Category:BCDice/TRPGツールからの呼び出し方]]