Property | Type | Description |
currentBattleInfo | Current PK information. | |
battleUsers | PK user list. | |
battleScore | ValueListenable<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. |
void addBattleListener(BattleListener listener);
Parameter | Type | Required | Description |
listener | Required | Listener. |
void removeBattleListener(BattleListener listener);
Parameter | Type | Required | Description |
listener | Required | Listener. |
Future<BattleRequestCompletionHandler> requestBattle({required BattleConfig config,required List<String> userIDList,required int timeout,});
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. |
Future<CompletionHandler> cancelBattleRequest({required String battleID,required List<String> userIDList,});
Parameter | Type | Required | Description |
battleID | String | Required | PK ID. |
userIDList | List<String> | Required | User ID list. |
Future<CompletionHandler> acceptBattle(String battleID);
Parameter | Type | Required | Description |
battleID | String | Required | PK ID. |
Future<CompletionHandler> rejectBattle(String battleID);
Parameter | Type | Required | Description |
battleID | String | Required | PK ID. |
Future<CompletionHandler> exitBattle(String battleID);
Parameter | Type | Required | Description |
battleID | String | Required | PK ID. |
Enum Value | Value | Description |
timeOver | 0 | PK countdown ended. |
allMemberExit | 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 | bool | 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 | int | PK start marker timestamp (unit: seconds). |
endTime | int | PK end marker timestamp (unit: seconds). |
Property | Type | Description |
currentBattleInfo | Current PK information. | |
battleUsers | PK user list. | |
battleScore | ValueListenable<Map<String, int>> | PK score mapping. |
Property | Type | Description |
battleInfo | PK information returned on success. | |
resultMap | Map<String, int>? | Response result mapping for PK request. |
// Create store instancefinal store = BattleStore.create('live_room_123');// Define listenerslate final VoidCallback battleInfoListener = _onBattleInfoChanged;late final VoidCallback battleUsersListener = _onBattleUsersChanged;void _onBattleInfoChanged() {final battleInfo = store.battleState.currentBattleInfo.value;if (battleInfo != null) {print('Current PK ID: ${battleInfo.battleID}');}}void _onBattleUsersChanged() {print('PK user count: ${store.battleState.battleUsers.value.length}');}// Subscribe to state changesstore.battleState.currentBattleInfo.addListener(battleInfoListener);store.battleState.battleUsers.addListener(battleUsersListener);// Add PK event listenerfinal battleListener = BattleListener(onBattleStarted: (battleInfo, inviter, invitees) {print('PK started, initiator: ${inviter.userName}');},onBattleEnded: (battleInfo, reason) {print('PK ended, reason: $reason');},);store.addBattleListener(battleListener);// Initiate PK requestfinal config = BattleConfig(duration: 300, needResponse: true);final result = await store.requestBattle(config: config,userIDList: ['user_456'],timeout: 30,);if (result.code == 0) {print('PK request successful: ${result.battleInfo?.battleID}');} else {print('PK request failed: ${result.message}');}// Unsubscribe when donestore.battleState.currentBattleInfo.removeListener(battleInfoListener);store.battleState.battleUsers.removeListener(battleUsersListener);store.removeBattleListener(battleListener);
Feedback