Property | Type | Description |
currentBattleInfo | Current PK information. | |
battleUsers | PK user list. | |
battleScore | StateFlow<Map<String, Int>> | PK score mapping. |
Function | Description |
Create BattleStore instance. | |
PK event callbacks. | |
PK event callbacks. | |
Initiate PK request. | |
Cancel PK request. | |
Accept PK request. | |
Reject PK request. | |
Exit PK. |
abstract fun addBattleListener(listener: BattleListener?)
Parameter | Type | Required | Description |
listener | Required | Listener. |
abstract fun removeBattleListener(listener: BattleListener?)
Parameter | Type | Required | Description |
listener | Required | Listener. |
abstract fun requestBattle(config: BattleConfig,userIDList: List<String>,timeout: Int,completion: BattleRequestCallback?)
Parameter | Type | Required | Description |
config | Required | PK configuration. | |
userIDList | List<String> | Required | List of user IDs to join PK. |
timeout | Int | Required | Request timeout duration. |
completion | Required | Callback for successful request initiation. |
abstract fun cancelBattleRequest(battleID: String?,userIDList: List<String>,completion: CompletionHandler?)
Parameter | Type | Required | Description |
battleID | String? | Required | PK ID. |
userIDList | List<String> | Required | User ID list. |
completion | Required | Callback for successful cancellation. |
abstract fun acceptBattle(battleID: String?,completion: CompletionHandler?)
Parameter | Type | Required | Description |
battleID | String? | Required | PK ID. |
completion | Required | Callback for successful acceptance. |
abstract fun rejectBattle(battleID: String?,completion: CompletionHandler?)
Parameter | Type | Required | Description |
battleID | String? | Required | PK ID. |
completion | Required | Callback for successful rejection. |
abstract fun exitBattle(battleID: String?,completion: CompletionHandler?)
Parameter | Type | Required | Description |
battleID | String? | Required | PK ID. |
completion | Required | Callback for successful exit. |
Enum Value | Value | Description |
TIME_OVER | 0 | PK countdown ended. |
ALL_MEMBER_EXIT | 1 | All PK members exited. |
Method | Description |
onBattleStarted | This callback is triggered when PK officially starts, notifying all participants that PK has begun. |
onBattleEnded | This callback is triggered when PK ends. |
onUserJoinBattle | This callback is triggered when a user joins PK. |
onUserExitBattle | This callback is triggered when a user exits PK. |
onBattleRequestReceived | This callback is triggered when a PK request is received. |
onBattleRequestCancelled | This callback is triggered when a PK request is cancelled. |
onBattleRequestTimeout | This callback is triggered when a PK request times out. |
onBattleRequestAccept | This callback is triggered when a PK request is accepted. |
onBattleRequestReject | This callback is triggered when a PK request is rejected. |
Property | Type | Description |
duration | Int | PK duration (unit: seconds). |
needResponse | Boolean | Whether the invitee needs to reply with accept/reject. |
extensionInfo | String | Extension information. |
Property | Type | Description |
battleID | String | PK ID. |
config | PK configuration information set when sending a PK request. | |
startTime | Long | PK start marker timestamp (unit: seconds). |
endTime | Long | PK end marker timestamp (unit: seconds). |
Property | Type | Description |
currentBattleInfo | Current PK information. | |
battleUsers | PK user list. | |
battleScore | StateFlow<Map<String, Int>> | PK score mapping. |
fun onSuccess(battleInfo: BattleInfo, resultMap: Map<String, Int>)
Parameter | Type | Description |
battleInfo | PK information, containing detailed configuration and status of the PK. | |
resultMap | Map<String, Int> | Response result callback for PK request. |
fun onError(code: Int, desc: String)
Parameter | Type | Description |
code | Int | Error code. |
desc | String | Error description. |
// Create store instanceval store = BattleStore.create("live_room_123")// Subscribe to state changeslifecycleScope.launch {store.battleState.currentBattleInfo.collect { battleInfo ->battleInfo?.let {println("Current PK ID: ${it.battleID}")}}}// Add PK event listenerstore.addBattleListener(object : BattleListener() {override fun onBattleStarted(battleInfo: BattleInfo, inviter: SeatUserInfo, invitees: List<SeatUserInfo>) {println("PK started, initiator: ${inviter.userName}")}override fun onBattleEnded(battleInfo: BattleInfo, reason: BattleEndedReason?) {println("PK ended, reason: $reason")}})// Initiate PK requestval config = BattleConfig(duration = 300, needResponse = true)store.requestBattle(config, listOf("user_456"), 30, object : BattleRequestCallback {override fun onSuccess(battleInfo: BattleInfo, resultMap: Map<String, Int>) {println("PK request successful: ${battleInfo.battleID}")}override fun onError(code: Int, desc: String) {println("PK request failed: $desc")}})
Feedback