「BCDice/TRPGツールからの呼び出し方/BCDice-API」の版間の差分

提供: TRPGツール開発・運用Wiki
ナビゲーションに移動 検索に移動
タグ: モバイルウェブ編集 モバイル編集
(0ヴ (トーク) による版 184 を取り消し)
タグ: 取り消し
1行目: 1行目:
[[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 ==
 
== server.rb L74-L78 ==

2020年8月27日 (木) 07:43時点における版

BCDice-APIからのBCDiceの呼び出し方。v0.6.2のソースコードを参考にしている。

server.rb L74-L78

https://github.com/ysakasin/bcdice-api/blob/0dfd095a4c7befed58ffbb7eb880a9d729badf2a/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

https://github.com/ysakasin/bcdice-api/blob/0dfd095a4c7befed58ffbb7eb880a9d729badf2a/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