「BCDice/TRPGツールからの呼び出し方/BCDice-API」の版間の差分
< BCDice | TRPGツールからの呼び出し方
(Ochaochaocha3 (トーク) による版 120 を取り消し) タグ: 取り消し |
Ochaochaocha3 (トーク | 投稿記録) (版120に差し戻す) |
||
(2人の利用者による、間の2版が非表示) | |||
47行目: | 47行目: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | {{DEFAULTSORT:BCDice API}} | ||
[[Category:BCDice/TRPGツールからの呼び出し方]] | [[Category:BCDice/TRPGツールからの呼び出し方]] |
2020年8月30日 (日) 17:07時点における最新版
BCDice-APIからのBCDiceの呼び出し方。v0.6.2のソースコードを参考にしている。
server.rb L74-L78
パス `/v1/diceroll` にリクエストが来たときの処理。ダイスロールを行う。
get "/v1/diceroll" do
result, secret, dices = diceroll(params[:system], params[:command])
jsonp ok: true, result: result, secret: secret, dices: dices
end
server.rb L20-L42
ダイスロールを行うメソッド。
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