Rhythm4 Key を担当するclassです。

100Fields
1Constructors
124Methods
3661Lines
Package
com.example.rankingplugin.minigame.games
Source
minigame/games/Rhythm4Key.java
Kind
class
Roles
イベント駆動非同期 / スケジューラ初期化 / ブートストラップ
このクラスにも章立て解説を追加しています。 自動抽出の一覧だけでなく、下の『重点クラスの詳細解説』で読む順番・内部サブシステム・変更時の注意点まで追えます。 全クラス章立てガイドを見る
サブシステム横断ガイドもあります。 このクラスを含む上位の流れは こちらの処理遷移図ページ から読むと把握しやすいです。

クラス説明

クラス直前の Javadoc は見つかりませんでした。ソースとメソッド構成から責務を補完しています。

責務と見どころ

重点クラスの詳細解説

入力バッファ、譜面生成、落下ノーツ描画、ジャッジ、音声/OSU 取り込み、移動抑制までが一体化しており、同期描画と非同期判定が最も複雑に交差するミニゲームです。

最初に追う読む順番

  1. join
    参加時にセッションをどう確保し、アリーナ設定をどう読むかを掴みます。
  2. loadOrCreate
    譜面・設定・ハイスコア・アリーナ状態のロード境界です。
  3. startLobby
    ロビー開始からモード選択までの全体制御です。
  4. prepThenStart
    本番開始前の準備段階で UI と参加者状態が揃います。
  5. startGame
    実際の盤面生成・音再生・落下物開始の中心です。
  6. queueInputPulse
    入力はまずバッファに積まれ、ここから判定系へ流れます。
  7. processBufferedInputs
    まとめ取りした入力をノーツ候補へ対応付ける中核です。
  8. scheduleAsyncJudge
    重い判定をワーカへ逃がす地点です。
  9. applyPendingJudgments
    非同期判定結果をメインスレッドへ戻して演出・得点へ反映します。
  10. judgeAndReport
    判定結果がスコアや演出へどう落ちるかを追えます。
  11. finishSession
    セッション終了、演出停止、移動抑制解除、残骸掃除の出口です。

内部サブシステムの地図

セッションとアリーナライフサイクル

参加・退出・ロビー・本番・終了というミニゲーム全体の骨格です。プレイヤーがはまる不具合はまずここから見ます。

主なメソッド
join leave startLobby decideModeAndStart prepThenStart startGame finishSession shutdownAllSessions
主なフィールド

入力バッファと非同期ジャッジ

移動入力・スプリント・ホットバー変更など複数ソースの入力を pulse として統一し、ズレ吸収と同時押し補助を行います。

譜面・音源・OSU 連携

存在しない譜面をその場で生成し、必要に応じて sidecar や osu! データから素材を持ってきます。ローカルファイル管理も大きい理由です。

主なフィールド

移動抑制と入力補助

リズムゲーム中の暴走を防ぐため、移動・スプリント・同一レーン連打補助を細かく持っています。体感調整の入口です。

代表フロー詳解

参加から開幕まで

  1. join
  2. loadOrCreate
  3. startLobby
  4. decideModeAndStart
  5. prepThenStart
  6. countdownThenStart
  7. startGame

プレイヤーをセッションへ紐付け、アリーナ設定をロードし、ロビー演出とカウントダウンを経て本番へ移ります。アリーナ構成不良や開始しない不具合はこの順序を追うと切り分けやすいです。

変更時の注意点

外部接点

外部ルート

このクラス内で直接見つかる主な Web ルート/項目名です。

GET worldGET xGET yGET zGET dataGET dataGET materialPUT worldPUT xPUT yPUT zPUT material

フィールド

VisibilityTypeName役割
privateJavaPluginpluginプラグイン本体参照です。
privateMinigameDaodaodao の状態を保持します。
privatebooleanprotocolInputHookActiveprotocolInputHookActive の状態を保持します。
privateObjectprotocolInputHookprotocolInputHook の状態を保持します。
privateConcurrentLinkedQueue<ProtocolInputSample>protocolInputQueueprotocolInputQueue の状態を保持します。
privateSet<Rhythm4Key>LIVE_INSTANCESLIVE_INSTANCES の状態を保持します。
privateThreadPoolExecutorR4K_EXECR4K_EXEC の状態を保持します。
privateSet<String>arenaIdsarenaIds の状態を保持します。
privateNamespacedKeyKEY_FS_ACTIVEKEY_FS_ACTIVE の状態を保持します。
privateNamespacedKeyKEY_FS_GAMEKEY_FS_GAME の状態を保持します。
privateNamespacedKeyKEY_FS_BESTKEY_FS_BEST の状態を保持します。
privateNamespacedKeyKEY_R4K_FBKEY_R4K_FB の状態を保持します。
privateNamespacedKeyKEY_R4K_MOVE_SUPPRESSEDKEY_R4K_MOVE_SUPPRESSED の状態を保持します。
privateNamespacedKeyKEY_R4K_MOVE_WALK_SPEEDKEY_R4K_MOVE_WALK_SPEED の状態を保持します。
privatejava.util.Set<String>GEN_IN_PROGRESSGEN_IN_PROGRESS の状態を保持します。
privatedoubleWASD_INTENT_THRESHOLDWASD_INTENT_THRESHOLD の状態を保持します。
privatedoubleWASD_AXIS_DOMINANCEWASD_AXIS_DOMINANCE の状態を保持します。
privatedoubleWASD_KEEPALIVE_THRESHOLDWASD_KEEPALIVE_THRESHOLD の状態を保持します。
privatelongWASD_REARM_GAP_MSWASD_REARM_GAP_MS の状態を保持します。
privatelongWASD_SWITCH_DEBOUNCE_MSWASD_SWITCH_DEBOUNCE_MS の状態を保持します。
privatelongWASD_DUP_PULSE_SUPPRESS_MSWASD_DUP_PULSE_SUPPRESS_MS の状態を保持します。
privatelongWASD_SAME_LANE_REPEAT_MSWASD_SAME_LANE_REPEAT_MS の状態を保持します。
privatelongWASD_PROTOCOL_DUP_LANE_MSWASD_PROTOCOL_DUP_LANE_MS の状態を保持します。
privatelongWASD_PROTOCOL_MOVE_FALLBACK_STALE_MSWASD_PROTOCOL_MOVE_FALLBACK_STALE_MS の状態を保持します。
privateintINPUT_BUFFER_MSINPUT_BUFFER_MS の状態を保持します。
privateintINPUT_DEGLITCH_MSINPUT_DEGLITCH_MS の状態を保持します。
privateintGROUP_EPS_MSGROUP_EPS_MS の状態を保持します。
privatelongSAME_LANE_RETRIGGER_MIN_MSSAME_LANE_RETRIGGER_MIN_MS の状態を保持します。
privateintSAME_LANE_RETRIGGER_PRE_MSSAME_LANE_RETRIGGER_PRE_MS の状態を保持します。
privateintSAME_LANE_RETRIGGER_POST_MSSAME_LANE_RETRIGGER_POST_MS の状態を保持します。
privateintSAME_LANE_ASSIST_MAX_INTERVAL_MSSAME_LANE_ASSIST_MAX_INTERVAL_MS の状態を保持します。
privateintSAME_LANE_ASSIST_REQUIRE_RECENT_PRESS_MSSAME_LANE_ASSIST_REQUIRE_RECENT_PRESS_MS の状態を保持します。
privateintFUTURE_NOTE_STEAL_PENALTY_MS非同期処理やスケジューラ制御に使うハンドルです。
privateintSAME_LANE_ASSIST_REFIRE_MSSAME_LANE_ASSIST_REFIRE_MS の状態を保持します。
privateintCHORD_CLUSTER_WINDOW_MSCHORD_CLUSTER_WINDOW_MS の状態を保持します。
privateintCHORD_REPEAT_FOLLOW_MSCHORD_REPEAT_FOLLOW_MS の状態を保持します。
privateintCHORD_REPEAT_WINDOW_BONUS_MSCHORD_REPEAT_WINDOW_BONUS_MS の状態を保持します。
privateintFUTURE_NOTE_PREFER_PAST_MARGIN_MS非同期処理やスケジューラ制御に使うハンドルです。
privateintASSIST_FUTURE_NOTE_MAX_MS非同期処理やスケジューラ制御に使うハンドルです。
privateintASSIST_FUTURE_NOTE_MAX_MS_CHORD_HELD非同期処理やスケジューラ制御に使うハンドルです。
privateintSAME_LANE_ASSIST_MIN_MS_CHORD_HELDSAME_LANE_ASSIST_MIN_MS_CHORD_HELD の状態を保持します。
privateMap<UUID, Long>wasdLastFiredMswasdLastFiredMs の状態を保持します。
privateMap<UUID, Long>wasdLastAnyMoveMswasdLastAnyMoveMs の状態を保持します。
privateMap<UUID, Integer>wasdHoldLanewasdHoldLane の状態を保持します。
privateMap<UUID, Boolean>wasdArmedwasdArmed の状態を保持します。
privateMap<UUID, boolean[]>wasdHeldLaneswasdHeldLanes の状態を保持します。
privateMap<UUID, long[]>wasdLaneReleaseMswasdLaneReleaseMs の状態を保持します。
privateMap<UUID, Integer>wasdPendingLanewasdPendingLane の状態を保持します。
privateMap<UUID, Long>wasdPendingSinceMswasdPendingSinceMs の状態を保持します。
privateMap<UUID, Integer>wasdLastPulseLanewasdLastPulseLane の状態を保持します。
privateMap<UUID, Long>wasdLastPulseMswasdLastPulseMs の状態を保持します。
privateMap<UUID, long[]>wasdDirectLanePulseMswasdDirectLanePulseMs の状態を保持します。
privateConcurrentMap<UUID, Long>wasdLastProtocolPacketMswasdLastProtocolPacketMs の状態を保持します。
privateMap<UUID, Integer>protocolHeldMaskprotocolHeldMask の状態を保持します。
privateMap<UUID, long[]>protocolLanePulseMsprotocolLanePulseMs の状態を保持します。
privateMap<UUID, long[]>protocolLaneReleaseMsprotocolLaneReleaseMs の状態を保持します。
privateMap<UUID, long[]>protocolLaneLastPhysicalRiseMsprotocolLaneLastPhysicalRiseMs の状態を保持します。
privateMap<UUID, int[]>protocolLaneAssistNoteIdxprotocolLaneAssistNoteIdx の状態を保持します。
privateMap<UUID, Integer>inputLaneRoundRobininputLaneRoundRobin の状態を保持します。
privateMap<UUID, Float>suppressedWalkSpeedsuppressedWalkSpeed の状態を保持します。
privateintJ_PERFJ_PERF の状態を保持します。
privateintJ_GRTJ_GRT の状態を保持します。
privateintJ_GDJ_GD の状態を保持します。
privateintMUSIC_START_DELAY_MSMUSIC_START_DELAY_MS の状態を保持します。
privateintDEFAULT_JUDGE_OFFSET_MSDEFAULT_JUDGE_OFFSET_MS の状態を保持します。
privateintDEFAULT_VISUAL_OFFSET_MSDEFAULT_VISUAL_OFFSET_MS の状態を保持します。
privateintPOSTLINE_GRACE_MSPOSTLINE_GRACE_MS の状態を保持します。
privateintAD_SIGNAD_SIGN の状態を保持します。
privatebooleanTIME_SYNC_VISUALSTIME_SYNC_VISUALS の状態を保持します。
privateintINPUT_RETRY_SPANINPUT_RETRY_SPAN の状態を保持します。
privateintHOTBAR_COOLDOWN_MSHOTBAR_COOLDOWN_MS の状態を保持します。
privateintHOTKEY_MIN_INTERVAL_MSHOTKEY_MIN_INTERVAL_MS の状態を保持します。
privateintHOTBAR_DEGLITCH_MSHOTBAR_DEGLITCH_MS の状態を保持します。
privateMap<UUID, Long>lastHotbarEnqMslastHotbarEnqMs の状態を保持します。
privateintINPUT_COALESCE_MSINPUT_COALESCE_MS の状態を保持します。
privateMap<UUID, Long>lastInputEnqMslastInputEnqMs の状態を保持します。
privateMap<UUID, Integer>lastInputEnqMasklastInputEnqMask の状態を保持します。
privateintDEF_MIN_MSDEF_MIN_MS の状態を保持します。
privatedoubleDEF_SENSDEF_SENS の状態を保持します。
privateintDEF_MAX_NPSDEF_MAX_NPS の状態を保持します。
privateint[]DEF_DIVSDEF_DIVS の状態を保持します。
privatelongMISS_PENALTYMISS_PENALTY の状態を保持します。
privatebooleanCLAMP_SCORE_NONNEGATIVECLAMP_SCORE_NONNEGATIVE の状態を保持します。
privatelongTICK_BUDGET_NSTICK_BUDGET_NS の状態を保持します。
privateintMAX_SPAWN_PER_TICKMAX_SPAWN_PER_TICK の状態を保持します。
privateintMAX_ACTIVE_UPDATES_PER_TICKMAX_ACTIVE_UPDATES_PER_TICK の状態を保持します。
privateintMAX_MISS_STEPS_PER_TICKMAX_MISS_STEPS_PER_TICK の状態を保持します。
privateintMISS_CUTOFF_SLACK_MSMISS_CUTOFF_SLACK_MS の状態を保持します。
privatebooleanENABLE_ASYNC_JUDGEENABLE_ASYNC_JUDGE の状態を保持します。
privatebooleanENABLE_JUDGE_PARTICLESENABLE_JUDGE_PARTICLES の状態を保持します。
privatedoubleFB_HARD_RESYNC_ERRFB_HARD_RESYNC_ERR の状態を保持します。
privatelongNOTE_VISUAL_TAIL_MSNOTE_VISUAL_TAIL_MS の状態を保持します。
privateintNOTE_PERIODIC_RESYNC_TICKSNOTE_PERIODIC_RESYNC_TICKS の状態を保持します。
privatedoubleNOTE_SPEED_MULTIPLIERNOTE_SPEED_MULTIPLIER の状態を保持します。
privatedoubleNOTE_VISIBLE_HEIGHTNOTE_VISIBLE_HEIGHT の状態を保持します。
privateintPLAYER_PAD_DISTANCEPLAYER_PAD_DISTANCE の状態を保持します。
privateintJUDGE_RUNWAY_LENGTHJUDGE_RUNWAY_LENGTH の状態を保持します。
privatebooleanDEBUG_GENERAL_LOGDEBUG_GENERAL_LOG の状態を保持します。
privatebooleanDEBUG_JUDGE_LOGDEBUG_JUDGE_LOG の状態を保持します。
privateMap<String, Session>sessionssessions の状態を保持します。

コンストラクタ / 初期化

Signature説明主要呼び出し
public Rhythm4Key(JavaPlugin plugin, MinigameDao dao)依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。主要呼び出しなし

メソッド索引

NameVisibilityKind説明
ThreadPoolExecutor.DiscardOldestPolicypackageメソッドThreadPoolExecutor.DiscardOldestPolicy の主要処理を担当します。
Rhythm4Keypublicコンストラクタ依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。
idpublicメソッドid の主要処理を担当します。
idpublicメソッドid の主要処理を担当します。
idpublicメソッドid の主要処理を担当します。
restoreStaleJudgeVisualSnapshotspublicメソッドrestoreStaleJudgeVisualSnapshots の主要処理を担当します。
onRegisteredpublicメソッドonRegistered の主要処理を担当します。
laneQueuesprivateメソッドlaneQueues の主要処理を担当します。
laneQueueprivateメソッドlaneQueue の主要処理を担当します。
totalBufferedPulsesprivateメソッドtotalBufferedPulses の主要処理を担当します。
flattenLaneQueuesprivateメソッドflattenLaneQueues の主要処理を担当します。
pruneExpiredAndMaybeRemoveprivateメソッドpruneExpiredAndMaybeRemove の主要処理を担当します。
queueInputPulseprivateメソッドqueueInputPulse の主要処理を担当します。
queueInputPulseprivateメソッドqueueInputPulse の主要処理を担当します。
queueInputPulseprivateメソッドqueueInputPulse の主要処理を担当します。
arenaIdspublicメソッドarenaIds の主要処理を担当します。
arenaIdspublicメソッドarenaIds の主要処理を担当します。
onInteractpublicイベント処理イベント発生時の分岐と後続処理を担当します。
handleArenaSetupCmdpublicメソッド入力やリクエストを受けて、検証・処理・応答までをまとめて担当します。
tryAutoImportOsuIfNeededprivateメソッドmaps/<songId>.
tryCopyAudioFromOsuSidecarprivateメソッドtryCopyAudioFromOsuSidecar の主要処理を担当します。
sameLaneHoldAssistEnabledprivateメソッドsameLaneHoldAssistEnabled の主要処理を担当します。
wasdIntentThresholdprivateメソッドwasdIntentThreshold の主要処理を担当します。
wasdKeepaliveThresholdprivateメソッドwasdKeepaliveThreshold の主要処理を担当します。
debugLogprivateメソッドdebugLog の主要処理を担当します。
laneNoteMaterialprivateメソッドlaneNoteMaterial の主要処理を担当します。
laneJudgeGlowMaterialprivateメソッドlaneJudgeGlowMaterial の主要処理を担当します。
trackprivateメソッドtrack の主要処理を担当します。
removeTrackEntitiesprivateメソッド対象データや登録状態を削除・解除します。
spawnFallingprivateメソッドspawnFalling の主要処理を担当します。
shutdownAllSessionsprivateメソッド動作中の処理やリソースを安全に停止・解放します。
snapshotsDirprivateメソッドsnapshotsDir の主要処理を担当します。
snapshotFileStemprivateメソッドsnapshotFileStem の主要処理を担当します。
frameSnapshotFileprivateメソッドframeSnapshotFile の主要処理を担当します。
saveFrameSnapshotprivateメソッド状態を永続化または更新し、最新状態へ反映します。
deleteFrameSnapshotprivateメソッド対象データや登録状態を削除・解除します。
ensureDirsprivateメソッド必要なテーブル・状態・前提条件が揃っているかを確認し、不足分を補います。
osuDirprivateメソッドosuDir の主要処理を担当します。
baseDirprivateメソッドbaseDir の主要処理を担当します。
audioDirprivateメソッドaudioDir の主要処理を担当します。
mapsDirprivateメソッドmapsDir の主要処理を担当します。
audioFileprivateメソッドaudioFile の主要処理を担当します。
chartFileprivateメソッドchartFile の主要処理を担当します。
generateChartAsyncIfNeededprivateメソッドOGG→譜面:必要なら一度だけ非同期生成
analyzeAudioprivateメソッドanalyzeAudio の主要処理を担当します。
applyHannprivateメソッドapplyHann の主要処理を担当します。
sendABprivateメソッドsendAB の主要処理を担当します。
hitLaneprivateメソッドhitLane の主要処理を担当します。
onToggleSprintpublicイベント処理イベント発生時の分岐と後続処理を担当します。
onPlayerInputpublicイベント処理イベント発生時の分岐と後続処理を担当します。
inputToLaneMaskprivateメソッドinputToLaneMask の主要処理を担当します。
syncNativeInputprivateメソッドsyncNativeInput の主要処理を担当します。
restoreSuppressedMovementForOnlinepublicメソッドrestoreSuppressedMovementForOnline の主要処理を担当します。
restoreSuppressedMovementpublicメソッドrestoreSuppressedMovement の主要処理を担当します。
applySprintSuppressionprivateメソッドapplySprintSuppression の主要処理を担当します。
maintainSprintSuppressionprivateメソッドmaintainSprintSuppression の主要処理を担当します。
clearSprintSuppressionprivateメソッドclearSprintSuppression の主要処理を担当します。
hasNearbyChordSiblingprivateメソッド条件判定を行い、後続処理の分岐に使える真偽値を返します。
isChordLinkedRepeatprivateメソッド条件判定を行い、後続処理の分岐に使える真偽値を返します。
effectiveGoodWindowprivateメソッドeffectiveGoodWindow の主要処理を担当します。
chooseBufferedCandidateprivateメソッドchooseBufferedCandidate の主要処理を担当します。
tryJudgeBufferedprivateメソッドtryJudgeBuffered の主要処理を担当します。
estimatePulsePriorityprivateメソッドestimatePulsePriority の主要処理を担当します。
removeBufferedPulseAndCoalescedprivateメソッド対象データや登録状態を削除・解除します。
processBufferedInputsprivateメソッドprocessBufferedInputs の主要処理を担当します。
writeSimpleGridChartprivateメソッドwriteSimpleGridChart の主要処理を担当します。
autoGenerateChartFromAudiopublicメソッドautoGenerateChartFromAudio の主要処理を担当します。
autoGenerateChartFromAudioQuantizedpublicメソッドautoGenerateChartFromAudioQuantized の主要処理を担当します。
estimateBpmFromOnsetsprivateメソッドestimateBpmFromOnsets の主要処理を担当します。
scoreForOffsetprivateメソッドscoreForOffset の主要処理を担当します。
scoreForprivateメソッドscoreFor の主要処理を担当します。
quantizeOnsetsSmartprivateメソッドquantizeOnsetsSmart の主要処理を担当します。
joinpublicメソッドjoin の主要処理を担当します。
leavepublicメソッドleave の主要処理を担当します。
toppublicメソッドtop の主要処理を担当します。
findSouthEdgeZprivateメソッド必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
blankToNullprivateメソッドblankToNull の主要処理を担当します。
resolvePlaybackSoundKeyprivateメソッドresolvePlaybackSoundKey の主要処理を担当します。
normalizeSoundKeyprivateメソッドnormalizeSoundKey の主要処理を担当します。
normalizeSoundTokenprivateメソッドnormalizeSoundToken の主要処理を担当します。
normalizeSoundPathprivateメソッドnormalizeSoundPath の主要処理を担当します。
rememberFrameBlockprivateメソッドrememberFrameBlock の主要処理を担当します。
visualSongTimeMsprivateメソッドvisualSongTimeMs の主要処理を担当します。
judgeSongTimeMsprivateメソッドjudgeSongTimeMs の主要処理を担当します。
loadOrCreateprivateメソッド必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
rebuildNoteCacheprivateメソッドrebuildNoteCache の主要処理を担当します。
effGoodWindowApproxprivateメソッドeffGoodWindowApprox の主要処理を担当します。
scheduleAsyncJudgeprivateメソッドscheduleAsyncJudge の主要処理を担当します。
applyPendingJudgmentsprivateメソッドapplyPendingJudgments の主要処理を担当します。
computeTargetYprivateメソッドcomputeTargetY の主要処理を担当します。
ensureVisibleFallingprivateメソッド必要なテーブル・状態・前提条件が揃っているかを確認し、不足分を補います。
countdownThenStartprivateメソッドcountdownThenStart の主要処理を担当します。
startGameprivateメソッド初期化と各種登録を行い、機能を有効化します。
spawnFallingprivateメソッドspawnFalling の主要処理を担当します。
onFallingMakeBlockpublicイベント処理イベント発生時の分岐と後続処理を担当します。
buildJudgeVisualsprivateメソッド表示用または出力用のデータを組み立てます。
emitJudgeLaneParticlesprivateメソッドemitJudgeLaneParticles の主要処理を担当します。
removeJudgeVisualsprivateメソッド対象データや登録状態を削除・解除します。
onFallingBlockLandpublicイベント処理イベント発生時の分岐と後続処理を担当します。
onHotbarpublicイベント処理イベント発生時の分岐と後続処理を担当します。
judgeAndReportprivateメソッドjudgeAndReport の主要処理を担当します。
missBlinkprivateメソッドmissBlink の主要処理を担当します。
addScoreprivateメソッドaddScore の主要処理を担当します。
onDamagepublicイベント処理イベント発生時の分岐と後続処理を担当します。
handleProtocolInputMaskpackageメソッド入力やリクエストを受けて、検証・処理・応答までをまとめて担当します。
drainProtocolInputQueueprivateメソッドdrainProtocolInputQueue の主要処理を担当します。
handleDirectInputMaskprivateメソッドProtocolLib から来た直接入力マスク処理。
prevSameLaneIntervalMsprivateメソッドprevSameLaneIntervalMs の主要処理を担当します。
findNearestLaneRepeatNoteIdxprivateメソッド必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
maybeAssistSameLaneRetriggerprivateメソッドmaybeAssistSameLaneRetrigger の主要処理を担当します。
maybeAssistProtocolHeldOnTickprivateメソッドmaybeAssistProtocolHeldOnTick の主要処理を担当します。
setupOptionalProtocolInputHookprivateメソッド初期化と各種登録を行い、機能を有効化します。
onMoveCapturepublicイベント処理イベント発生時の分岐と後続処理を担当します。
onMoveLockpublicイベント処理イベント発生時の分岐と後続処理を担当します。
onQuitpublicイベント処理イベント発生時の分岐と後続処理を担当します。
onQuitpublicイベント処理イベント発生時の分岐と後続処理を担当します。
finishSessionprivateメソッドfinishSession の主要処理を担当します。
findSessionByMemberprivateメソッド必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
findSessionByPlayerprivateメソッド必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
broadcastprivateメソッドbroadcast の主要処理を担当します。
loadChartOrGenerateprivateメソッド必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
autoGenerateChartprivateメソッドautoGenerateChart の主要処理を担当します。
findStageYprivateメソッド必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
importOsuToChartYmlprivateメソッドimportOsuToChartYml の主要処理を担当します。

メソッド詳細

ThreadPoolExecutor.DiscardOldestPolicy

メソッドpackage
, new ThreadPoolExecutor.DiscardOldestPolicy() )

ThreadPoolExecutor.DiscardOldestPolicy の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

目立つ内部呼び出しは抽出されませんでした。

Rhythm4Key

コンストラクタpublic
public Rhythm4Key(JavaPlugin plugin, MinigameDao dao)

依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。

引数

throws

なし

主要な呼び出し順

目立つ内部呼び出しは抽出されませんでした。

id

メソッドpublic
public String id()

id の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

目立つ内部呼び出しは抽出されませんでした。

id

メソッドpublic
public String id() { return "arena_rhythm4k"; } public String displayName()

id の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

目立つ内部呼び出しは抽出されませんでした。

id

メソッドpublic
public String id() { return "arena_rhythm4k"; } public String displayName() { return "Rhythm 4-Key"; } public static void shutdownRegisteredSessions(String reason)

id の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

shutdownAllSessions

restoreStaleJudgeVisualSnapshots

メソッドpublicstatic
public static void restoreStaleJudgeVisualSnapshots(JavaPlugin plugin)

restoreStaleJudgeVisualSnapshots の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

getDataFolderexistsisDirectorylistFilestoLowerCaseendsWithloadConfigurationgetList

onRegistered

メソッドpublic
public void onRegistered(Plugin pl)

onRegistered の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

getServergetPluginManagerregisterEventsensureDirsrestoreSuppressedMovementForOnlinerestoreStaleJudgeVisualSnapshotssetupOptionalProtocolInputHookdebugLog

laneQueues

メソッドprivate
private java.util.List<Deque<InputPulse>> laneQueues(Session s, UUID uid)

laneQueues の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

computeIfAbsent

laneQueue

メソッドprivate
private Deque<InputPulse> laneQueue(Session s, UUID uid, int lane)

laneQueue の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

laneQueuesmaxmin

totalBufferedPulses

メソッドprivate
private int totalBufferedPulses(java.util.List<Deque<InputPulse>> laneQs)

totalBufferedPulses の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

size

flattenLaneQueues

メソッドprivate
private java.util.List<InputPulse> flattenLaneQueues(java.util.List<Deque<InputPulse>> laneQs)

flattenLaneQueues の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

addAllsortcomparingLongthenComparingInt

pruneExpiredAndMaybeRemove

メソッドprivate
private boolean pruneExpiredAndMaybeRemove(Session s, UUID uid, java.util.List<Deque<InputPulse>> laneQs, long now)

pruneExpiredAndMaybeRemove の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

isEmptypeekFirstpollFirstremove

queueInputPulse

メソッドprivate
private void queueInputPulse(Player p, int lane)

queueInputPulse の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

currentTimeMillis

queueInputPulse

メソッドprivate
private void queueInputPulse(Player p, int lane, long sourceTs, boolean bypassDeglitch)

queueInputPulse の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

目立つ内部呼び出しは抽出されませんでした。

queueInputPulse

メソッドprivate
private void queueInputPulse(Player p, int lane, long sourceTs, boolean bypassDeglitch, boolean assisted)

queueInputPulse の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

findSessionByMembergetUniqueIdmaxtrackgetOrDefaultlaneQueuesisEmptypeekFirst

arenaIds

メソッドpublic
public List<String> arenaIds()

arenaIds の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

目立つ内部呼び出しは抽出されませんでした。

arenaIds

メソッドpublic
public List<String> arenaIds() { return new ArrayList<>(arenaIds); } public void reloadArenas()

arenaIds の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

cleargetDataFolderexistslistFilesendsWithgetNamesubstringlength

onInteract

イベント処理public
public void onInteract(org.bukkit.event.player.PlayerInteractEvent e)

イベント発生時の分岐と後続処理を担当します。

引数

throws

なし

主要な呼び出し順

getPlayerfindSessionByMembergetUniqueIdgetActiongetInventorygetHeldItemSlotqueueInputPulsesetCancelled

handleArenaSetupCmd

メソッドpublic
public boolean handleArenaSetupCmd(Plugin pl, org.bukkit.command.CommandSender sender, String arenaId, String subCmd)

入力やリクエストを受けて、検証・処理・応答までをまとめて担当します。

引数

throws

なし

主要な呼び出し順

splitequalsIgnoreCasereloadArenassendMessageparseIntparseDoublegetSchedulerrunTaskAsynchronously

tryAutoImportOsuIfNeeded

メソッドprivate
private boolean tryAutoImportOsuIfNeeded(String songId)

maps/<songId>.

引数

throws

なし

主要な呼び出し順

chartFileexistsloadConfigurationgetListgetDoublegetLongisEmptyosuDir

tryCopyAudioFromOsuSidecar

メソッドprivate
private void tryCopyAudioFromOsuSidecar(String songId, File osuFile)

tryCopyAudioFromOsuSidecar の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

readAllLinestoPathtrimstartsWithsubstringlengthisEmptygetParentFile

sameLaneHoldAssistEnabled

メソッドprivate
private boolean sameLaneHoldAssistEnabled()

sameLaneHoldAssistEnabled の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

getConfiggetBoolean

wasdIntentThreshold

メソッドprivatestatic
private static double wasdIntentThreshold(Player p)

wasdIntentThreshold の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

getAttributegetValue

wasdKeepaliveThreshold

メソッドprivatestatic
private static double wasdKeepaliveThreshold(Player p)

wasdKeepaliveThreshold の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

wasdIntentThreshold

debugLog

メソッドprivate
private void debugLog(String msg)

debugLog の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

getLoggerinfo

laneNoteMaterial

メソッドprivatestatic
private static Material laneNoteMaterial(int lane)

laneNoteMaterial の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

maxmin

laneJudgeGlowMaterial

メソッドprivatestatic
private static Material laneJudgeGlowMaterial(int lane)

laneJudgeGlowMaterial の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

maxmin

track

メソッドprivate
private PlayerTrackState track(Session s, UUID uid)

track の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

computeIfAbsentsizeensureCapacity

removeTrackEntities

メソッドprivate
private void removeTrackEntities(Session s, PlayerTrackState st)

対象データや登録状態を削除・解除します。

引数

throws

なし

主要な呼び出し順

removeclear

spawnFalling

メソッドprivate
private FallingBlock spawnFalling(Session s, UUID owner, int lane, double x, double yFrom)

spawnFalling の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

getWorldspawnFallingBlocklaneNoteMaterialcreateBlockDatasetDropItemsetHurtEntitiessetGravitysetTicksLived

shutdownAllSessions

メソッドprivate
private void shutdownAllSessions(String reason)

動作中の処理やリソースを安全に停止・解放します。

引数

throws

なし

主要な呼び出し順

valuesfinishSession

snapshotsDir

メソッドprivate
private File snapshotsDir()

snapshotsDir の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

baseDirexistsmkdirs

snapshotFileStem

メソッドprivate
private String snapshotFileStem(String arenaName)

snapshotFileStem の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

isEmptyreplaceAll

frameSnapshotFile

メソッドprivate
private File frameSnapshotFile(String arenaName)

frameSnapshotFile の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

snapshotsDirsnapshotFileStem

saveFrameSnapshot

メソッドprivate
private void saveFrameSnapshot(Session s)

状態を永続化または更新し、最新状態へ反映します。

引数

throws

なし

主要な呼び出し順

isEmptyentrySetgetKeygetValuegetWorldgetNamegetXgetY

deleteFrameSnapshot

メソッドprivate
private void deleteFrameSnapshot(Session s)

対象データや登録状態を削除・解除します。

引数

throws

なし

主要な呼び出し順

frameSnapshotFileexistsdelete

ensureDirs

メソッドprivate
private void ensureDirs()

必要なテーブル・状態・前提条件が揃っているかを確認し、不足分を補います。

引数

throws

なし

主要な呼び出し順

getDataFolderexistsmkdirs

osuDir

メソッドprivate
private File osuDir()

osuDir の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

baseDirexistsmkdirs

baseDir

メソッドprivate
private File baseDir()

baseDir の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

getDataFolder

audioDir

メソッドprivate
private File audioDir()

audioDir の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

baseDirexistsmkdirs

mapsDir

メソッドprivate
private File mapsDir()

mapsDir の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

baseDirexistsmkdirs

audioFile

メソッドprivate
private File audioFile(String songId)

audioFile の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

audioDirexists

chartFile

メソッドprivate
private File chartFile(String songId)

chartFile の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

mapsDir

generateChartAsyncIfNeeded

メソッドprivate
private boolean generateChartAsyncIfNeeded(String songId, Runnable onReady)

OGG→譜面:必要なら一度だけ非同期生成

引数

throws

なし

主要な呼び出し順

audioFilechartFileexistslastModifiedloadConfigurationgetStringequalsIgnoreCasegetList

analyzeAudio

メソッドprivate
private AudioAnalysis analyzeAudio(File ogg, int bufferSize, int overlap) throws IOException

analyzeAudio の主要処理を担当します。

引数

throws

IOException

主要な呼び出し順

fromFileformatgetAbsolutePathgetFormatgetSampleRateaddAudioProcessorprocessgetFloatBuffer

applyHann

メソッドprivatestatic
private static void applyHann(float[] buf)

applyHann の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

cos

sendAB

メソッドprivatestatic
private static void sendAB(Player p, String msg)

sendAB の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

spigotsendMessagesendTitle

hitLane

メソッドprivate
private void hitLane(Player p, int lane)

hitLane の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

findSessionByMembergetUniqueIdtrackcurrentTimeMillisjudgeSongTimeMsmaxminsize

onToggleSprint

イベント処理public
public void onToggleSprint(org.bukkit.event.player.PlayerToggleSprintEvent e)

イベント発生時の分岐と後続処理を担当します。

引数

throws

なし

主要な呼び出し順

findSessionByMembergetPlayergetUniqueIdsetCancelledsetSprinting

onPlayerInput

イベント処理public
public void onPlayerInput(org.bukkit.event.player.PlayerInputEvent e)

イベント発生時の分岐と後続処理を担当します。

引数

throws

なし

主要な呼び出し順

getPlayerfindSessionByMembergetUniqueIdinputToLaneMaskgetInputcurrentTimeMillishandleDirectInputMaskisSprint

inputToLaneMask

メソッドprivate
private int inputToLaneMask(org.bukkit.Input input)

inputToLaneMask の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

isLeftisForwardisBackwardisRight

syncNativeInput

メソッドprivate
private void syncNativeInput(Player p, long now)

syncNativeInput の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

getCurrentInputinputToLaneMaskgetUniqueIdhandleDirectInputMaskisSprintisSprintingsetSprinting

restoreSuppressedMovementForOnline

メソッドpublicstatic
public static void restoreSuppressedMovementForOnline(JavaPlugin plugin)

restoreSuppressedMovementForOnline の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

getOnlinePlayersrestoreSuppressedMovement

restoreSuppressedMovement

メソッドpublicstatic
public static void restoreSuppressedMovement(JavaPlugin plugin, Player p)

restoreSuppressedMovement の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

getPersistentDataContainergetWalkSpeedabssetWalkSpeedsetSprintingremove

applySprintSuppression

メソッドprivate
private void applySprintSuppression(Player p)

applySprintSuppression の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

getUniqueIdgetWalkSpeedputIfAbsentgetPersistentDataContainerhassetWalkSpeedsetSprinting

maintainSprintSuppression

メソッドprivate
private void maintainSprintSuppression(Player p)

maintainSprintSuppression の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

currentTimeMillissyncNativeInputisSprintingsetSprintingabsgetWalkSpeedsetWalkSpeed

clearSprintSuppression

メソッドprivate
private void clearSprintSuppression(Player p)

clearSprintSuppression の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

getUniqueIdsetSprintingremovegetPersistentDataContainersetWalkSpeed

hasNearbyChordSibling

メソッドprivate
private boolean hasNearbyChordSibling(Session s, int noteIndex, long noteTimeMs)

条件判定を行い、後続処理の分岐に使える真偽値を返します。

引数

throws

なし

主要な呼び出し順

abssize

isChordLinkedRepeat

メソッドprivate
private boolean isChordLinkedRepeat(Session s, int noteIndex, int lane, long noteTimeMs)

条件判定を行い、後続処理の分岐に使える真偽値を返します。

引数

throws

なし

主要な呼び出し順

prevSameLaneIntervalMshasNearbyChordSibling

effectiveGoodWindow

メソッドprivate
private int effectiveGoodWindow(Session s, int noteIndex, long noteTimeMs)

effectiveGoodWindow の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

maxroundisChordLinkedRepeatmin

chooseBufferedCandidate

メソッドprivate
private BufferedCandidate chooseBufferedCandidate(Session s, PlayerTrackState st, int lane, long pulseBaseT, boolean assisted)

chooseBufferedCandidate の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

minsizeeffectiveGoodWindowabshasNearbyChordSibling

tryJudgeBuffered

メソッドprivate
private boolean tryJudgeBuffered(Session s, UUID uid, InputPulse pulse)

tryJudgeBuffered の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

trackjudgeSongTimeMschooseBufferedCandidatejudgeAndReportisDeadremovesize

estimatePulsePriority

メソッドprivate
private double estimatePulsePriority(Session s, UUID uid, InputPulse pulse)

estimatePulsePriority の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

trackjudgeSongTimeMschooseBufferedCandidate

removeBufferedPulseAndCoalesced

メソッドprivate
private void removeBufferedPulseAndCoalesced(Deque<InputPulse> q, InputPulse consumed)

対象データや登録状態を削除・解除します。

引数

throws

なし

主要な呼び出し順

iteratorhasNextnextremoveabs

processBufferedInputs

メソッドprivate
private void processBufferedInputs(Session s, UUID uid, long nowMs)

processBufferedInputs の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

pruneExpiredAndMaybeRemoveisEmptyiteratorhasNextnextremoveestimatePulsePrioritygetOrDefault

writeSimpleGridChart

メソッドprivate
private void writeSimpleGridChart(String songId, long lengthMs, double bpm)

writeSimpleGridChart の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

maxroundhashCodenextIntsavechartFile

autoGenerateChartFromAudio

メソッドpublic
public void autoGenerateChartFromAudio(String songId, int minIntervalMs, double sensitivity) throws Exception

autoGenerateChartFromAudio の主要処理を担当します。

引数

throws

Exception

主要な呼び出し順

audioFileexistsgetAbsolutePathanalyzeAudiosizeminmaxround

autoGenerateChartFromAudioQuantized

メソッドpublic
public void autoGenerateChartFromAudioQuantized( String songId, int minIntervalMs, double sensitivity, int maxNps, int[] allowedDivisions ) throws Exception

autoGenerateChartFromAudioQuantized の主要処理を担当します。

引数

throws

Exception

主要な呼び出し順

audioFileexistsgetAbsolutePathanalyzeAudiosizeminmaxsort

estimateBpmFromOnsets

メソッドprivate
private double estimateBpmFromOnsets(java.util.List<Long> onsets)

estimateBpmFromOnsets の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

sizeminisEmptyroundcomputeIfAbsententrySetstreammax

scoreForOffset

メソッドprivatestatic
private static double scoreForOffset(List<Long> onsets, double grid, double off)

scoreForOffset の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

roundabsexp

scoreFor

メソッドprivatestatic
private static double scoreFor(List<Long> onsets, double grid, double off)

scoreFor の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

roundabsexp

quantizeOnsetsSmart

メソッドprivate
private QuantizeResult quantizeOnsetsSmart( java.util.List<Long> onsets, java.util.List<double[]> frameBands, float sr, int bufferSize, int overlap, double beatMs, int[] allowedDivisions )

quantizeOnsetsSmart の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

isEmptyemptyListmaxminroundabsexpscoreForOffset

join

メソッドpublic
public void join(Player p, String arenaId)

join の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

computeIfAbsentloadOrCreatesendMessagegenerateChartAsyncIfNeededloadChartOrGeneratebroadcastisEmptywriteSimpleGridChart

leave

メソッドpublic
public void leave(Player player)

leave の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

findSessionByPlayergetUniqueIdclearSprintSuppressionremoveremoveTrackEntitiesisEmptyfinishSession

top

メソッドpublic
public List<String> top(String arenaId, String season, int limit)

top の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

equalsIgnoreCasecurrentSeasontopLinesDescid

findSouthEdgeZ

メソッドprivate
private int findSouthEdgeZ(World w, int cx, int y, int cz)

必要な状態を取得し、呼び出し側で利用しやすい形へ返します。

引数

throws

なし

主要な呼び出し順

getBlockAtgetType

blankToNull

メソッドprivatestatic
private static String blankToNull(String s)

blankToNull の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

trimisEmpty

resolvePlaybackSoundKey

メソッドprivate
private String resolvePlaybackSoundKey(String songId, String arenaSoundKey, String chartSoundKey)

resolvePlaybackSoundKey の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

blankToNullnormalizeSoundKeycontainsnormalizeSoundTokenstartsWithreplaceFirst

normalizeSoundKey

メソッドprivate
private String normalizeSoundKey(String raw)

normalizeSoundKey の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

blankToNullcontainssplitnormalizeSoundTokennormalizeSoundPathisEmpty

normalizeSoundToken

メソッドprivate
private String normalizeSoundToken(String raw)

normalizeSoundToken の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

blankToNulltrimtoLowerCasereplacereplaceAll

normalizeSoundPath

メソッドprivate
private String normalizeSoundPath(String raw)

normalizeSoundPath の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

normalizeSoundTokenstartsWithsubstring

rememberFrameBlock

メソッドprivate
private void rememberFrameBlock(Session s, Block b)

rememberFrameBlock の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

putIfAbsentgetBlockDataclone

visualSongTimeMs

メソッドprivate
private long visualSongTimeMs(Session s, long epochMs)

visualSongTimeMs の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

目立つ内部呼び出しは抽出されませんでした。

judgeSongTimeMs

メソッドprivate
private long judgeSongTimeMs(Session s, long epochMs)

judgeSongTimeMs の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

目立つ内部呼び出しは抽出されませんでした。

loadOrCreate

メソッドprivate
private Session loadOrCreate(String arena, Player ctx)

必要な状態を取得し、呼び出し側で利用しやすい形へ返します。

引数

throws

なし

主要な呼び出し順

getDataFolderexistsloadConfigurationgetWorldrequireNonNullgetStringblankToNullgetDouble

rebuildNoteCache

メソッドprivatestatic
private static void rebuildNoteCache(Session s)

rebuildNoteCache の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

sizevaluesensureCapacity

effGoodWindowApprox

メソッドprivatestatic
private static int effGoodWindowApprox(long[] noteTimesAbs, int[] noteLanes, int j)

effGoodWindowApprox の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

maxround

scheduleAsyncJudge

メソッドprivate
private void scheduleAsyncJudge(Session s, long nowMs)

scheduleAsyncJudge の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

trackcopyOfflattenLaneQueuesisEmptyexecuteentrySetgetKeygetValue

applyPendingJudgments

メソッドprivate
private void applyPendingJudgments(Session s)

applyPendingJudgments の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

pollsizeisDeadremovejudgeAndReportremoveBufferedPulseAndCoalescedpruneExpiredAndMaybeRemovecurrentTimeMillis

computeTargetY

メソッドprivate
private double computeTargetY(Session s, long visualBaseT, Note n)

computeTargetY の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

目立つ内部呼び出しは抽出されませんでした。

ensureVisibleFalling

メソッドprivate
private FallingBlock ensureVisibleFalling(Session s, UUID owner, PlayerTrackState st, int noteIdx, long visualBaseT)

必要なテーブル・状態・前提条件が揃っているかを確認し、不足分を補います。

引数

throws

なし

主要な呼び出し順

sizeisDeadisValidcomputeTargetYspawnFalling

countdownThenStart

メソッドprivate
private void countdownThenStart(Session s)

countdownThenStart の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

runcancelstartGamebroadcastgetWorldplaySoundrunTaskTimer

startGame

メソッドprivate
private void startGame(Session s)

初期化と各種登録を行い、機能を有効化します。

引数

throws

なし

主要な呼び出し順

buildJudgeVisualscurrentTimeMillistrackensureCapacitysizefillremoveTrackEntitiesblankToNull

spawnFalling

メソッドprivate
private FallingBlock spawnFalling(Session s, int lane, double x, double yFrom)

spawnFalling の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

getWorldspawnFallingBlocklaneNoteMaterialcreateBlockDatasetDropItemsetHurtEntitiessetGravitysetTicksLived

onFallingMakeBlock

イベント処理public
public void onFallingMakeBlock(org.bukkit.event.entity.EntityChangeBlockEvent e)

イベント発生時の分岐と後続処理を担当します。

引数

throws

なし

主要な呼び出し順

getEntitygetPersistentDataContainerhassetCancelledremove

buildJudgeVisuals

メソッドprivate
private void buildJudgeVisuals(Session s)

表示用または出力用のデータを組み立てます。

引数

throws

なし

主要な呼び出し順

getWorldremoveJudgeVisualsmaxgetMinHeightfloorroundgetBlockAtrememberFrameBlock

emitJudgeLaneParticles

メソッドprivate
private void emitJudgeLaneParticles(Session s, long nowMs)

emitJudgeLaneParticles の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

getWorldfromRGBroundmaxgetMinHeightfloorspawnParticle

removeJudgeVisuals

メソッドprivate
private void removeJudgeVisuals(Session s)

対象データや登録状態を削除・解除します。

引数

throws

なし

主要な呼び出し順

removeclearentrySetgetKeysetBlockDatagetValuedeleteFrameSnapshot

onFallingBlockLand

イベント処理public
public void onFallingBlockLand(org.bukkit.event.entity.EntityChangeBlockEvent e)

イベント発生時の分岐と後続処理を担当します。

引数

throws

なし

主要な呼び出し順

getEntitygetPersistentDataContainerhassetCancelledremove

onHotbar

イベント処理public
public void onHotbar(PlayerItemHeldEvent e)

イベント発生時の分岐と後続処理を担当します。

引数

throws

なし

主要な呼び出し順

getPlayerfindSessionByMembergetUniqueIdgetNewSlotsetCancelledqueueInputPulse

judgeAndReport

メソッドprivate
private void judgeAndReport(Session s, UUID uid, int noteIndex, String rank, long adt)

judgeAndReport の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

sizedebugLoggetPlayeraddScoremergegetOrDefaultplaySoundround

addScore

メソッドprivate
private void addScore(Session s, UUID uid, long add)

addScore の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

mergegetOrDefaultgetPlayergetPersistentDataContainerdisplayName

onDamage

イベント処理public
public void onDamage(org.bukkit.event.entity.EntityDamageEvent e)

イベント発生時の分岐と後続処理を担当します。

引数

throws

なし

主要な呼び出し順

getEntityfindSessionByMembergetUniqueIdsetCancelledsetFallDistance

handleProtocolInputMask

メソッドpackage
void handleProtocolInputMask(Player p, int candMask, long now)

入力やリクエストを受けて、検証・処理・応答までをまとめて担当します。

引数

throws

なし

主要な呼び出し順

getUniqueIdoffersizepoll

drainProtocolInputQueue

メソッドprivate
private void drainProtocolInputQueue()

drainProtocolInputQueue の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

pollgetPlayerhandleDirectInputMask

handleDirectInputMask

メソッドprivate
private void handleDirectInputMask(Player p, int candMask, long now)

ProtocolLib から来た直接入力マスク処理。

引数

throws

なし

主要な呼び出し順

findSessionByMembergetUniqueIdgetOrDefaultcomputeIfAbsentsameLaneHoldAssistEnabledmaybeAssistSameLaneRetriggerremovequeueInputPulse

prevSameLaneIntervalMs

メソッドprivate
private long prevSameLaneIntervalMs(Session s, int noteIdx, int lane)

prevSameLaneIntervalMs の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

max

findNearestLaneRepeatNoteIdx

メソッドprivate
private int findNearestLaneRepeatNoteIdx(Session s, PlayerTrackState st, int lane, long judgeBaseT)

必要な状態を取得し、呼び出し側で利用しやすい形へ返します。

引数

throws

なし

主要な呼び出し順

minsizeisChordLinkedRepeatabs

maybeAssistSameLaneRetrigger

メソッドprivate
private void maybeAssistSameLaneRetrigger(Player p, int heldMask, long now)

maybeAssistSameLaneRetrigger の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

sameLaneHoldAssistEnabledfindSessionByMembergetUniqueIdtrackjudgeSongTimeMscomputeIfAbsentbitCountfindNearestLaneRepeatNoteIdx

maybeAssistProtocolHeldOnTick

メソッドprivate
private void maybeAssistProtocolHeldOnTick(Session s, UUID uid, long now)

maybeAssistProtocolHeldOnTick の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

sameLaneHoldAssistEnabledgetPlayerisOnlinemaybeAssistSameLaneRetrigger

setupOptionalProtocolInputHook

メソッドprivate
private void setupOptionalProtocolInputHook()

初期化と各種登録を行い、機能を有効化します。

引数

throws

なし

主要な呼び出し順

getServergetPluginManagergetPluginisEnabledforNamegetConstructornewInstancegetMethod

onMoveCapture

イベント処理public
public void onMoveCapture(PlayerMoveEvent e)

イベント発生時の分岐と後続処理を担当します。

引数

throws

なし

主要な呼び出し順

getPlayerfindSessionByMembergetUniqueIdmaintainSprintSuppressiongetTocurrentTimeMillisgetOrDefaultgetFrom

onMoveLock

イベント処理public
public void onMoveLock(PlayerMoveEvent e)

イベント発生時の分岐と後続処理を担当します。

引数

throws

なし

主要な呼び出し順

getPlayerfindSessionByMembergetUniqueIdmaintainSprintSuppressiongetTogetFromclonesetYaw

onQuit

イベント処理public
public void onQuit(PlayerQuitEvent e)

イベント発生時の分岐と後続処理を担当します。

引数

throws

なし

主要な呼び出し順

leavegetPlayer

onQuit

イベント処理public
public void onQuit(PlayerQuitEvent e){ leave(e.getPlayer()); } public void onJoin(PlayerJoinEvent e)

イベント発生時の分岐と後続処理を担当します。

引数

throws

なし

主要な呼び出し順

getPlayerfindSessionByMembergetUniqueIdrestoreSuppressedMovementgetSchedulerrunTaskisOnlinerunTaskLater

finishSession

メソッドprivate
private void finishSession(Session s, String reason)

finishSession の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

cancelremoveJudgeVisualscurrentSeasongetPlayerclearSprintSuppressiongetOrDefaultsendMessageformat

findSessionByMember

メソッドprivate
private Session findSessionByMember(UUID uid)

必要な状態を取得し、呼び出し側で利用しやすい形へ返します。

引数

throws

なし

主要な呼び出し順

valuescontains

findSessionByPlayer

メソッドprivate
private Session findSessionByPlayer(UUID uid)

必要な状態を取得し、呼び出し側で利用しやすい形へ返します。

引数

throws

なし

主要な呼び出し順

getPlayerisOnlinevaluesgetWorldequalsgetLocationdistanceSquared

broadcast

メソッドprivate
private void broadcast(Session s, String msg)

broadcast の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

getPlayersendMessage

loadChartOrGenerate

メソッドprivate
private Chart loadChartOrGenerate(String songId)

必要な状態を取得し、呼び出し側で利用しやすい形へ返します。

引数

throws

なし

主要な呼び出し順

chartFileexistssaveloadConfigurationgetDoublegetIntgetLongblankToNull

autoGenerateChart

メソッドprivate
private void autoGenerateChart(String songId, double bpm, int lengthSec, int offsetMs, double density) throws IOException

autoGenerateChart の主要処理を担当します。

引数

throws

IOException

主要な呼び出し順

maxroundhashCodenextDoublenextIntstreammapcollect

findStageY

メソッドprivate
private int findStageY(World w, int cx, int cz)

必要な状態を取得し、呼び出し側で利用しやすい形へ返します。

引数

throws

なし

主要な呼び出し順

getMaxHeightmaxgetMinHeightisAirisSolidtoStringcontainsendsWith

importOsuToChartYml

メソッドprivate
private void importOsuToChartYml(String songId, File osuFile, int globalOffsetMs) throws Exception

importOsuToChartYml の主要処理を担当します。

引数

throws

Exception

主要な呼び出し順

readAllLinestoPathtrimisEmptystartsWithequalsIgnoreCasemaxround

代表的な処理フロー

  1. onInteract フロー
    onInteract → getPlayer → findSessionByMember → getUniqueId → getAction → getInventory
    イベント発生時の分岐と後続処理を担当します。
  2. onMoveCapture フロー
    onMoveCapture → getPlayer → findSessionByMember → getUniqueId → maintainSprintSuppression → getTo
    イベント発生時の分岐と後続処理を担当します。
  3. onMoveLock フロー
    onMoveLock → getPlayer → findSessionByMember → getUniqueId → maintainSprintSuppression → getTo
    イベント発生時の分岐と後続処理を担当します。
  4. onPlayerInput フロー
    onPlayerInput → getPlayer → findSessionByMember → getUniqueId → inputToLaneMask → getInput
    イベント発生時の分岐と後続処理を担当します。
  5. onQuit フロー
    onQuit → getPlayer → findSessionByMember → getUniqueId → restoreSuppressedMovement → getScheduler
    イベント発生時の分岐と後続処理を担当します。
  6. onHotbar フロー
    onHotbar → getPlayer → findSessionByMember → getUniqueId → getNewSlot → setCancelled
    イベント発生時の分岐と後続処理を担当します。

外部との接点

Web ルート

GET worldGET xGET yGET zGET dataGET dataGET materialPUT worldPUT xPUT yPUT zPUT materialPUT dataPUT lanePUT tPUT lanePUT tPUT lanePUT tGET laneGET tPUT lanePUT tPUT lanePUT tGET t

SQL / テーブル

テーブル名の抽出はありませんでした。

関連クラス

補足