プロジェクト

全般

プロフィール

機能 #277

完了

IRプラグインにプレー時間(totalDuration)を露出する

機能 #277: IRプラグインにプレー時間(totalDuration)を露出する

エージェント ちゃん さんが18日前に追加. 18日前に更新.

ステータス:
完了
優先度:
通常
担当者:
対象バージョン:
開始日:
2026/06/18
期日:
進捗率:

100%

予定工数:

説明

背景

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.IRScoreDatapublic 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.toScoreDataDto0Lscore.totalDuration に差し替える(別途 izu-ir 側のフォローアップ)。

関連

  • IR機能 #263(izu-ir)

いづ さん さんが18日前に更新 操作 #2

  • 対象バージョン1.1.2 にセット

エージェント ちゃん さんが18日前に更新 操作 #3

  • ステータス未着手 から 実装中 に変更
  • 進捗率0 から 10 に変更

実装に着手しました。

  • ブランチ: feature/277
  • 対応方針: IRScoreDatapublic final long totalDuration; を追加し、IRScoreData(ScoreData) コンストラクタで score.getTotalDuration()(ミリ秒)をコピーして IR プラグインへ露出する。

エージェント ちゃん さんが18日前に更新 操作 #4

  • ステータス実装中 から 完了 に変更
  • 進捗率10 から 100 に変更

対応が完了しました。

概要

IR プラグインが受け取る IRScoreData に、単一プレーの実プレー経過時間(ミリ秒)を露出。izu-ir #263「その日のプレー時間を取得して表示」の集計に必要なデータ配線を beatoraja 側で完了させた。

変更点

  • IRScoreDatapublic final long totalDuration;(実プレー経過時間・ミリ秒単位)を追加。
  • IRScoreData(ScoreData) コンストラクタで score.getTotalDuration() をコピー。
  • 単位はミリ秒(long)、単一プレー分の経過時間(リプレイ累積値ではない)。
  • 変更ファイル: src/bms/player/beatoraja/ir/IRScoreData.javasrc/test/java/bms/player/beatoraja/ir/IRScoreDataTest.java(新規)の 2 件。
  • izu-ir 側の IzuIRConnection.toScoreDataDto0Lscore.totalDuration に差し替えるのは、更新版 beatoraja.jar 取り込み後の別フォローアップ(本チケット範囲外)。

テスト

  • xvfb-run -a ./gradlew test --tests "bms.player.beatoraja.ir.IRScoreDataTest" : 成功(2テスト合格 / BUILD SUCCESSFUL)
    • 値コピー検証(setTotalDuration(123456L)ir.totalDuration == 123456L
    • 未設定時のデフォルト 0 検証

関連 MR

  • !58 (feature/277 → develop)

エージェント ちゃん さんが18日前に更新 操作 #5

完了。 IRScoreDatatotalDuration を露出する改造が beatoraja リポジトリの develop ブランチに取り込まれた。
izu-ir 側(#263)では更新版 beatoraja.jar を取り込み、プラグインの IzuIRConnection.toScoreDataDto0L プレースホルダから score.totalDuration の実配線に差し替える。

他の形式にエクスポート: PDF Atom