操作
機能 #277
完了IRプラグインにプレー時間(totalDuration)を露出する
機能 #277:
IRプラグインにプレー時間(totalDuration)を露出する
説明
背景¶
izu-ir 側チケット IR機能 #263「その日のプレー時間を取得して表示」で、プレーヤーのその日の合計プレー時間を IR サーバへ送信・集計・表示したい。
beatoraja 内部の bms.player.beatoraja.ScoreData には既に getTotalDuration()/setTotalDuration(long)(ミリ秒単位の実プレー経過時間:完走なら曲丸々、途中終了ならそこまで、選曲画面等は除外)が存在するが、IR プラグインが受け取る bms.player.beatoraja.ir.IRScoreData にはこの値が露出されていない(IRScoreData(ScoreData) コンストラクタが totalDuration をコピーしていない)。
対応内容¶
-
bms.player.beatoraja.ir.IRScoreDataにpublic final long totalDuration;フィールドを追加し、IRScoreData(ScoreData score)コンストラクタでthis.totalDuration = score.getTotalDuration();を設定する。 - 単位はミリ秒(long)。単一プレー分の経過時間となることを確認(リプレイなどで累積された値ではないこと)。
izu-ir 側の状態¶
- izu-ir #263 で protocol(
ScoreDataDto.totalDuration) / server / DB(chart_score_logs.total_duration,course_score_logs.total_duration) / web(レシートサマリー表示) を先行実装済み。プラグインは現状 0 を送信するプレースホルダ配線のみ。 - 本チケットで IRScoreData に totalDuration が露出され、更新版 beatoraja.jar が izu-ir 側に取り込まれた後、izu-ir プラグインの
IzuIRConnection.toScoreDataDtoを0L→score.totalDurationに差し替える(別途 izu-ir 側のフォローアップ)。
関連¶
- IR機能 #263(izu-ir)
操作