@xmobitea/gn-typescript-client 2.6.13 → 2.6.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +37 -0
- package/README.MD +420 -1
- package/dist/gearn.js.client.js +25056 -1056
- package/dist/gearn.js.client.min.js +1 -1
- package/dist/index.d.ts +30 -0
- package/dist/index.js +24236 -212
- package/dist/runtime/GNNetwork.d.ts +687 -3
- package/dist/runtime/GNNetworkAuthenticateApi.d.ts +327 -0
- package/dist/runtime/GNNetworkCharacterPlayerApi.d.ts +1026 -0
- package/dist/runtime/GNNetworkCloudScriptApi.d.ts +141 -0
- package/dist/runtime/GNNetworkContentApi.d.ts +243 -0
- package/dist/runtime/GNNetworkDashboardApi.d.ts +221 -0
- package/dist/runtime/GNNetworkGamePlayerApi.d.ts +1033 -0
- package/dist/runtime/GNNetworkGroupApi.d.ts +783 -0
- package/dist/runtime/GNNetworkInventoryApi.d.ts +673 -0
- package/dist/runtime/GNNetworkMasterPlayerApi.d.ts +1614 -6
- package/dist/runtime/GNNetworkMultiplayerApi.d.ts +234 -0
- package/dist/runtime/GNNetworkStoreInventoryApi.d.ts +309 -0
- package/dist/runtime/common/Action0.d.ts +30 -0
- package/dist/runtime/common/Action1.d.ts +32 -0
- package/dist/runtime/common/Action2.d.ts +21 -0
- package/dist/runtime/common/Action3.d.ts +16 -0
- package/dist/runtime/common/Action4.d.ts +17 -0
- package/dist/runtime/common/GNData.d.ts +368 -0
- package/dist/runtime/config/GNServerSettings.d.ts +442 -12
- package/dist/runtime/constant/Commands.d.ts +80 -0
- package/dist/runtime/constant/EventCode.d.ts +48 -0
- package/dist/runtime/constant/OperationCode.d.ts +74 -1
- package/dist/runtime/constant/ReturnCode.d.ts +72 -0
- package/dist/runtime/constant/enumType/ExecuteResponseStatus.d.ts +31 -0
- package/dist/runtime/constant/enumType/FriendStatus.d.ts +39 -0
- package/dist/runtime/constant/enumType/GoogleLoginType.d.ts +23 -0
- package/dist/runtime/constant/enumType/GroupStatus.d.ts +32 -0
- package/dist/runtime/constant/enumType/InvalidMemberType.d.ts +75 -0
- package/dist/runtime/constant/enumType/ItemType.d.ts +23 -0
- package/dist/runtime/constant/enumType/MatchStatus.d.ts +30 -0
- package/dist/runtime/constant/enumType/MatchmakingMemberStatus.d.ts +24 -0
- package/dist/runtime/constant/enumType/MatchmakingTicketStatus.d.ts +34 -0
- package/dist/runtime/constant/enumType/OwnerType.d.ts +40 -0
- package/dist/runtime/constant/enumType/PermissionDataItem.d.ts +22 -0
- package/dist/runtime/constant/enumType/PushPlatformType.d.ts +18 -0
- package/dist/runtime/constant/enumType/RequestRole.d.ts +32 -0
- package/dist/runtime/constant/enumType/RequestType.d.ts +70 -0
- package/dist/runtime/constant/enumType/StoreItemType.d.ts +21 -0
- package/dist/runtime/constant/enumType/StoreReceiveType.d.ts +30 -0
- package/dist/runtime/constant/errorCode/ErrorCode.d.ts +190 -8
- package/dist/runtime/constant/parameterCode/ParameterCode.d.ts +35 -5
- package/dist/runtime/entity/DataMember.d.ts +338 -0
- package/dist/runtime/entity/GNMetadata.d.ts +101 -0
- package/dist/runtime/entity/InvalidMember.d.ts +28 -0
- package/dist/runtime/entity/OperationEvent.d.ts +49 -0
- package/dist/runtime/entity/OperationRequest.d.ts +108 -0
- package/dist/runtime/entity/OperationResponse.d.ts +110 -0
- package/dist/runtime/entity/models/AuthenticateModels.d.ts +115 -0
- package/dist/runtime/entity/models/AuthenticateRequestModels.d.ts +131 -0
- package/dist/runtime/entity/models/AuthenticateResponseModels.d.ts +131 -0
- package/dist/runtime/entity/models/CharacterPlayerModels.d.ts +625 -1
- package/dist/runtime/entity/models/CharacterPlayerRequestModels.d.ts +972 -0
- package/dist/runtime/entity/models/CharacterPlayerResponseModels.d.ts +332 -0
- package/dist/runtime/entity/models/CloudScriptModels.d.ts +109 -0
- package/dist/runtime/entity/models/CloudScriptRequestModels.d.ts +107 -0
- package/dist/runtime/entity/models/CloudScriptResponseModels.d.ts +46 -0
- package/dist/runtime/entity/models/ContentModels.d.ts +124 -0
- package/dist/runtime/entity/models/ContentRequestModels.d.ts +152 -0
- package/dist/runtime/entity/models/ContentResponseModels.d.ts +58 -0
- package/dist/runtime/entity/models/DashboardModels.d.ts +371 -8
- package/dist/runtime/entity/models/DashboardRequestModels.d.ts +172 -0
- package/dist/runtime/entity/models/DashboardResponseModels.d.ts +170 -0
- package/dist/runtime/entity/models/GamePlayerModels.d.ts +644 -1
- package/dist/runtime/entity/models/GamePlayerRequestModels.d.ts +959 -0
- package/dist/runtime/entity/models/GamePlayerResponseModels.d.ts +333 -1
- package/dist/runtime/entity/models/GenericModels.d.ts +94 -0
- package/dist/runtime/entity/models/GroupModels.d.ts +484 -2
- package/dist/runtime/entity/models/GroupRequestModels.d.ts +737 -0
- package/dist/runtime/entity/models/GroupResponseModels.d.ts +254 -0
- package/dist/runtime/entity/models/InventoryModels.d.ts +415 -0
- package/dist/runtime/entity/models/InventoryRequestModels.d.ts +629 -0
- package/dist/runtime/entity/models/InventoryResponseModels.d.ts +218 -0
- package/dist/runtime/entity/models/MasterPlayerModels.d.ts +1065 -3
- package/dist/runtime/entity/models/MasterPlayerRequestModels.d.ts +1560 -6
- package/dist/runtime/entity/models/MasterPlayerResponseModels.d.ts +532 -1
- package/dist/runtime/entity/models/MultiplayerModels.d.ts +199 -0
- package/dist/runtime/entity/models/MultiplayerRequestModels.d.ts +196 -0
- package/dist/runtime/entity/models/MultiplayerResponseModels.d.ts +74 -0
- package/dist/runtime/entity/models/StoreInventoryModels.d.ts +262 -0
- package/dist/runtime/entity/models/StoreInventoryRequestModels.d.ts +268 -0
- package/dist/runtime/entity/models/StoreInventoryResponseModels.d.ts +98 -0
- package/dist/runtime/entity/request/CustomOperationRequest.d.ts +99 -0
- package/dist/runtime/entity/response/CustomOperationResponse.d.ts +118 -0
- package/dist/runtime/entity/response/GetAuthInfoResponse.d.ts +53 -0
- package/dist/runtime/entity/response/HealthCheckResponse.d.ts +56 -0
- package/dist/runtime/entity/response/UploadFileResponse.d.ts +19 -0
- package/dist/runtime/helper/CodeHelper.d.ts +122 -0
- package/dist/runtime/helper/ConverterService.d.ts +74 -0
- package/dist/runtime/helper/EnumUtility.d.ts +63 -0
- package/dist/runtime/helper/GNSupport.d.ts +64 -4
- package/dist/runtime/helper/GNUtils.d.ts +54 -0
- package/dist/runtime/helper/MessagePackConverterService.d.ts +48 -0
- package/dist/runtime/helper/OperationHelper.d.ts +51 -0
- package/dist/runtime/helper/StorageService.d.ts +48 -8
- package/dist/runtime/logger/GNDebug.d.ts +117 -0
- package/dist/runtime/networking/AuthenticateStatus.d.ts +64 -0
- package/dist/runtime/networking/IPeer.d.ts +83 -0
- package/dist/runtime/networking/NetworkingPeer.d.ts +256 -1
- package/dist/runtime/networking/OperationPending.d.ts +112 -0
- package/dist/runtime/networking/PeerBase.d.ts +231 -0
- package/dist/runtime/networking/handler/IServerEventHandler.d.ts +84 -0
- package/dist/runtime/networking/handler/OnCharacterPlayerFriendUpdateEventHandler.d.ts +69 -0
- package/dist/runtime/networking/handler/OnCharacterPlayerGroupUpdateEventHandler.d.ts +49 -0
- package/dist/runtime/networking/handler/OnGamePlayerFriendUpdateEventHandler.d.ts +50 -0
- package/dist/runtime/networking/handler/OnGamePlayerGroupUpdateEventHandler.d.ts +41 -0
- package/dist/runtime/networking/handler/OnGroupMemberUpdateEventHandler.d.ts +47 -0
- package/dist/runtime/networking/handler/OnGroupMessageUpdateEventHandler.d.ts +46 -0
- package/dist/runtime/networking/http/HttpPeer.d.ts +173 -0
- package/dist/runtime/networking/http/NetworkingHttpPeerBase.d.ts +87 -0
- package/dist/runtime/networking/http/NetworkingPeerAxiosRequest.d.ts +113 -0
- package/dist/runtime/networking/socket/NetworkingPeerSocketIOClient.d.ts +145 -0
- package/dist/runtime/networking/socket/NetworkingSocketPeerBase.d.ts +198 -0
- package/dist/runtime/networking/socket/SocketPeer.d.ts +155 -0
- package/dist/runtime/typescript/ServiceUpdate.d.ts +46 -0
- package/docs/AI_CHEATSHEET.md +211 -0
- package/docs/COOKBOOK.md +912 -0
- package/docs/RULES.md +307 -0
- package/docs/ai-manifest.json +725 -0
- package/docs/guides/AUTHENTICATE.md +246 -0
- package/docs/guides/CHARACTER_PLAYER.md +439 -0
- package/docs/guides/CLOUDSCRIPT.md +335 -0
- package/docs/guides/COCOS_CREATOR_INTEGRATION.md +150 -0
- package/docs/guides/CONTENT.md +291 -0
- package/docs/guides/DASHBOARD.md +262 -0
- package/docs/guides/GAME_PLAYER.md +473 -0
- package/docs/guides/GROUP.md +412 -0
- package/docs/guides/INVENTORY.md +375 -0
- package/docs/guides/MASTER_PLAYER.md +458 -0
- package/docs/guides/MULTIPLAYER.md +303 -0
- package/docs/guides/STORE_INVENTORY.md +313 -0
- package/docs/llms-full.txt +43 -0
- package/docs/reference/API_AUTHENTICATE.md +75 -0
- package/docs/reference/API_CHARACTER_PLAYER.md +226 -0
- package/docs/reference/API_CLOUDSCRIPT.md +82 -0
- package/docs/reference/API_CONTENT.md +88 -0
- package/docs/reference/API_DASHBOARD.md +82 -0
- package/docs/reference/API_GAME_PLAYER.md +223 -0
- package/docs/reference/API_GROUP.md +187 -0
- package/docs/reference/API_INDEX.md +57 -0
- package/docs/reference/API_INVENTORY.md +169 -0
- package/docs/reference/API_MASTER_PLAYER.md +323 -0
- package/docs/reference/API_MULTIPLAYER.md +97 -0
- package/docs/reference/API_STORE_INVENTORY.md +109 -0
- package/docs/reference/CONFIG.md +107 -0
- package/docs/reference/DTO_INDEX.md +2543 -0
- package/docs/reference/ENUMS.md +433 -0
- package/docs/reference/ERROR_HANDLING.md +159 -0
- package/docs/reference/EVENTS.md +188 -0
- package/docs/reference/PERMISSION_RULES.md +55 -0
- package/docs/reference/dto/AUTHENTICATE.md +619 -0
- package/docs/reference/dto/CHARACTER_PLAYER.md +3686 -0
- package/docs/reference/dto/CLOUDSCRIPT.md +400 -0
- package/docs/reference/dto/CONTENT.md +548 -0
- package/docs/reference/dto/DASHBOARD.md +1980 -0
- package/docs/reference/dto/GAME_PLAYER.md +3631 -0
- package/docs/reference/dto/GENERIC.md +151 -0
- package/docs/reference/dto/GROUP.md +2842 -0
- package/docs/reference/dto/INVENTORY.md +2385 -0
- package/docs/reference/dto/MASTER_PLAYER.md +6024 -0
- package/docs/reference/dto/MULTIPLAYER.md +850 -0
- package/docs/reference/dto/STORE_INVENTORY.md +1262 -0
- package/llms.txt +47 -0
- package/package.json +12 -3
- package/GNServerSettings.debug.json +0 -21
- package/docs/COCOS_CREATOR_INTEGRATION.md +0 -116
- package/examples/cocos-creator/GearNExample.ts.txt +0 -176
- package/srcSwift/Package.swift +0 -32
- package/srcSwift/Sources/GearN/runtime/GNNetwork.swift +0 -530
- package/srcSwift/Sources/GearN/runtime/GNNetworkAuthenticateApi.swift +0 -178
- package/srcSwift/Sources/GearN/runtime/GNNetworkCharacterPlayerApi.swift +0 -1162
- package/srcSwift/Sources/GearN/runtime/GNNetworkCloudScriptApi.swift +0 -154
- package/srcSwift/Sources/GearN/runtime/GNNetworkContentApi.swift +0 -208
- package/srcSwift/Sources/GearN/runtime/GNNetworkDashboardApi.swift +0 -240
- package/srcSwift/Sources/GearN/runtime/GNNetworkGamePlayerApi.swift +0 -1369
- package/srcSwift/Sources/GearN/runtime/GNNetworkGroupApi.swift +0 -1100
- package/srcSwift/Sources/GearN/runtime/GNNetworkInventoryApi.swift +0 -937
- package/srcSwift/Sources/GearN/runtime/GNNetworkMasterPlayerApi.swift +0 -2323
- package/srcSwift/Sources/GearN/runtime/GNNetworkMultiplayerApi.swift +0 -298
- package/srcSwift/Sources/GearN/runtime/GNNetworkStoreInventoryApi.swift +0 -397
- package/srcSwift/Sources/GearN/runtime/common/Action0.swift +0 -3
- package/srcSwift/Sources/GearN/runtime/common/Action1.swift +0 -3
- package/srcSwift/Sources/GearN/runtime/common/Action2.swift +0 -3
- package/srcSwift/Sources/GearN/runtime/common/Action3.swift +0 -3
- package/srcSwift/Sources/GearN/runtime/common/Action4.swift +0 -3
- package/srcSwift/Sources/GearN/runtime/common/GNArray.swift +0 -204
- package/srcSwift/Sources/GearN/runtime/common/GNData.swift +0 -108
- package/srcSwift/Sources/GearN/runtime/common/GNHashtable.swift +0 -200
- package/srcSwift/Sources/GearN/runtime/config/GNServerSettings.swift +0 -95
- package/srcSwift/Sources/GearN/runtime/constant/Commands.swift +0 -28
- package/srcSwift/Sources/GearN/runtime/constant/EventCode.swift +0 -10
- package/srcSwift/Sources/GearN/runtime/constant/OperationCode.swift +0 -252
- package/srcSwift/Sources/GearN/runtime/constant/ReturnCode.swift +0 -19
- package/srcSwift/Sources/GearN/runtime/constant/enumType/ExecuteResponseStatus.swift +0 -9
- package/srcSwift/Sources/GearN/runtime/constant/enumType/FriendStatus.swift +0 -8
- package/srcSwift/Sources/GearN/runtime/constant/enumType/GoogleLoginType.swift +0 -6
- package/srcSwift/Sources/GearN/runtime/constant/enumType/GroupStatus.swift +0 -8
- package/srcSwift/Sources/GearN/runtime/constant/enumType/InvalidMemberType.swift +0 -19
- package/srcSwift/Sources/GearN/runtime/constant/enumType/ItemType.swift +0 -6
- package/srcSwift/Sources/GearN/runtime/constant/enumType/MatchmakingMemberStatus.swift +0 -7
- package/srcSwift/Sources/GearN/runtime/constant/enumType/MatchmakingTicketStatus.swift +0 -9
- package/srcSwift/Sources/GearN/runtime/constant/enumType/OwnerType.swift +0 -10
- package/srcSwift/Sources/GearN/runtime/constant/enumType/PermissionDataItem.swift +0 -6
- package/srcSwift/Sources/GearN/runtime/constant/enumType/PushPlatformType.swift +0 -6
- package/srcSwift/Sources/GearN/runtime/constant/enumType/RequestRole.swift +0 -7
- package/srcSwift/Sources/GearN/runtime/constant/enumType/RequestType.swift +0 -16
- package/srcSwift/Sources/GearN/runtime/constant/enumType/StoreItemType.swift +0 -6
- package/srcSwift/Sources/GearN/runtime/constant/enumType/StoreReceiveType.swift +0 -9
- package/srcSwift/Sources/GearN/runtime/constant/errorCode/ErrorCode.swift +0 -58
- package/srcSwift/Sources/GearN/runtime/constant/parameterCode/ParameterCode.swift +0 -672
- package/srcSwift/Sources/GearN/runtime/entity/DataMember.swift +0 -196
- package/srcSwift/Sources/GearN/runtime/entity/GNMetadata.swift +0 -9
- package/srcSwift/Sources/GearN/runtime/entity/InvalidMember.swift +0 -11
- package/srcSwift/Sources/GearN/runtime/entity/OperationEvent.swift +0 -38
- package/srcSwift/Sources/GearN/runtime/entity/OperationHelper.swift +0 -28
- package/srcSwift/Sources/GearN/runtime/entity/OperationRequest.swift +0 -62
- package/srcSwift/Sources/GearN/runtime/entity/OperationResponse.swift +0 -98
- package/srcSwift/Sources/GearN/runtime/entity/models/AuthenticateModels.swift +0 -351
- package/srcSwift/Sources/GearN/runtime/entity/models/AuthenticateRequestModels.swift +0 -81
- package/srcSwift/Sources/GearN/runtime/entity/models/AuthenticateResponseModels.swift +0 -108
- package/srcSwift/Sources/GearN/runtime/entity/models/CharacterPlayerModels.swift +0 -1045
- package/srcSwift/Sources/GearN/runtime/entity/models/CharacterPlayerRequestModels.swift +0 -821
- package/srcSwift/Sources/GearN/runtime/entity/models/CharacterPlayerResponseModels.swift +0 -588
- package/srcSwift/Sources/GearN/runtime/entity/models/CloudScriptModels.swift +0 -187
- package/srcSwift/Sources/GearN/runtime/entity/models/CloudScriptRequestModels.swift +0 -84
- package/srcSwift/Sources/GearN/runtime/entity/models/CloudScriptResponseModels.swift +0 -59
- package/srcSwift/Sources/GearN/runtime/entity/models/ContentModels.swift +0 -195
- package/srcSwift/Sources/GearN/runtime/entity/models/ContentRequestModels.swift +0 -116
- package/srcSwift/Sources/GearN/runtime/entity/models/ContentResponseModels.swift +0 -81
- package/srcSwift/Sources/GearN/runtime/entity/models/DashboardModels.swift +0 -426
- package/srcSwift/Sources/GearN/runtime/entity/models/DashboardRequestModels.swift +0 -160
- package/srcSwift/Sources/GearN/runtime/entity/models/DashboardResponseModels.swift +0 -82
- package/srcSwift/Sources/GearN/runtime/entity/models/GamePlayerModels.swift +0 -1334
- package/srcSwift/Sources/GearN/runtime/entity/models/GamePlayerRequestModels.swift +0 -643
- package/srcSwift/Sources/GearN/runtime/entity/models/GamePlayerResponseModels.swift +0 -213
- package/srcSwift/Sources/GearN/runtime/entity/models/GenericModels.swift +0 -171
- package/srcSwift/Sources/GearN/runtime/entity/models/GroupModels.swift +0 -850
- package/srcSwift/Sources/GearN/runtime/entity/models/GroupRequestModels.swift +0 -485
- package/srcSwift/Sources/GearN/runtime/entity/models/GroupResponseModels.swift +0 -165
- package/srcSwift/Sources/GearN/runtime/entity/models/InventoryModels.swift +0 -679
- package/srcSwift/Sources/GearN/runtime/entity/models/InventoryRequestModels.swift +0 -413
- package/srcSwift/Sources/GearN/runtime/entity/models/InventoryResponseModels.swift +0 -141
- package/srcSwift/Sources/GearN/runtime/entity/models/MasterPlayerModels.swift +0 -378
- package/srcSwift/Sources/GearN/runtime/entity/models/MasterPlayerRequestModels.swift +0 -147
- package/srcSwift/Sources/GearN/runtime/entity/models/MasterPlayerResponseModels.swift +0 -318
- package/srcSwift/Sources/GearN/runtime/entity/models/MultiplayerModels.swift +0 -319
- package/srcSwift/Sources/GearN/runtime/entity/models/MultiplayerRequestModels.swift +0 -125
- package/srcSwift/Sources/GearN/runtime/entity/models/MultiplayerResponseModels.swift +0 -45
- package/srcSwift/Sources/GearN/runtime/entity/models/StoreInventoryModels.swift +0 -633
- package/srcSwift/Sources/GearN/runtime/entity/models/StoreInventoryRequestModels.swift +0 -173
- package/srcSwift/Sources/GearN/runtime/entity/models/StoreInventoryResponseModels.swift +0 -61
- package/srcSwift/Sources/GearN/runtime/entity/request/CustomOperationRequest.swift +0 -42
- package/srcSwift/Sources/GearN/runtime/entity/response/CustomOperationResponse.swift +0 -49
- package/srcSwift/Sources/GearN/runtime/entity/response/GetAuthInfoResponse.swift +0 -43
- package/srcSwift/Sources/GearN/runtime/entity/response/HealthCheckResponse.swift +0 -86
- package/srcSwift/Sources/GearN/runtime/entity/response/UploadFileResponse.swift +0 -15
- package/srcSwift/Sources/GearN/runtime/helper/CodeHelper.swift +0 -107
- package/srcSwift/Sources/GearN/runtime/helper/ConverterService.swift +0 -98
- package/srcSwift/Sources/GearN/runtime/helper/EnumUtility.swift +0 -34
- package/srcSwift/Sources/GearN/runtime/helper/GNSupport.swift +0 -41
- package/srcSwift/Sources/GearN/runtime/helper/GNUtils.swift +0 -66
- package/srcSwift/Sources/GearN/runtime/helper/MessagePackConverterService.swift +0 -21
- package/srcSwift/Sources/GearN/runtime/helper/StorageService.swift +0 -29
- package/srcSwift/Sources/GearN/runtime/logger/GNDebug.swift +0 -33
- package/srcSwift/Sources/GearN/runtime/networking/AuthenticateStatus.swift +0 -24
- package/srcSwift/Sources/GearN/runtime/networking/IPeer.swift +0 -8
- package/srcSwift/Sources/GearN/runtime/networking/NetworkingPeer.swift +0 -368
- package/srcSwift/Sources/GearN/runtime/networking/OperationPending.swift +0 -81
- package/srcSwift/Sources/GearN/runtime/networking/PeerBase.swift +0 -228
- package/srcSwift/Sources/GearN/runtime/networking/handler/IServerEventHandler.swift +0 -20
- package/srcSwift/Sources/GearN/runtime/networking/http/HttpPeer.swift +0 -226
- package/srcSwift/Sources/GearN/runtime/networking/http/HttpTypes.swift +0 -24
- package/srcSwift/Sources/GearN/runtime/networking/http/NetworkingHttpPeerBase.swift +0 -13
- package/srcSwift/Sources/GearN/runtime/networking/http/NetworkingPeerUrlSession.swift +0 -125
- package/srcSwift/Sources/GearN/runtime/networking/request/NetRequest.swift +0 -19
- package/srcSwift/Sources/GearN/runtime/networking/response/NetResponse.swift +0 -13
- package/srcSwift/Sources/GearN/runtime/networking/socket/NetworkingPeerSocketIOClient.swift +0 -244
- package/srcSwift/Sources/GearN/runtime/networking/socket/NetworkingSocketPeerBase.swift +0 -59
- package/srcSwift/Sources/GearN/runtime/networking/socket/SocketPeer.swift +0 -136
- package/tsconfig-build.cocos.json +0 -31
- package/webpack.config.cocos.mjs +0 -78
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
# API Reference: GamePlayerApi
|
|
2
|
+
|
|
3
|
+
Game-player profile, friend/group relation, currency, statistics, segment, tag, social identity.
|
|
4
|
+
|
|
5
|
+
Domain guide: [guides/GAME_PLAYER.md](../guides/GAME_PLAYER.md). DTO shapes: [dto/GAME_PLAYER.md](dto/GAME_PLAYER.md) hoặc grep [DTO_INDEX.md](DTO_INDEX.md).
|
|
6
|
+
|
|
7
|
+
## Namespaces
|
|
8
|
+
|
|
9
|
+
- `GNNetwork.gamePlayer` — `RequestRole.Client`
|
|
10
|
+
- `GNNetwork.gamePlayer.server` — `RequestRole.Server`
|
|
11
|
+
- `GNNetwork.gamePlayer.admin` — `RequestRole.Admin`
|
|
12
|
+
|
|
13
|
+
## Convention
|
|
14
|
+
|
|
15
|
+
Mỗi method dưới đây có 2 form — callback và `*Async()` Promise. Ưu tiên `*Async()`.
|
|
16
|
+
|
|
17
|
+
```ts
|
|
18
|
+
// Callback
|
|
19
|
+
GNNetwork.gamePlayer.<method>(requestData, onResponse?, overrideAuthToken?, overrideSecretKey?, customTags?, timeout?);
|
|
20
|
+
|
|
21
|
+
// Async
|
|
22
|
+
const res = await GNNetwork.gamePlayer.<method>Async(requestData, overrideAuthToken?, overrideSecretKey?, customTags?, timeout?);
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Param chung:
|
|
26
|
+
|
|
27
|
+
| Param | Type | Optional | Notes |
|
|
28
|
+
|-------|------|----------|-------|
|
|
29
|
+
| `requestData` | domain-specific (xem bảng dưới) | no | Payload chính |
|
|
30
|
+
| `onResponse` | `Action1<TResponse>` | yes | Chỉ có ở callback form |
|
|
31
|
+
| `overrideAuthToken` | `string` | yes | Override `authToken` cache cho request này |
|
|
32
|
+
| `overrideSecretKey` | `string` | yes | Override secret key mặc định của route |
|
|
33
|
+
| `customTags` | `GNHashtable` | yes | Tags gắn vào request, backend có thể log/route |
|
|
34
|
+
| `timeout` | `number` | yes | Timeout giây; default = `OperationRequest.defaultTimeOut` |
|
|
35
|
+
|
|
36
|
+
Response class expose field: `returnCode`, `errorCode`, `invalidMembers`, `debugMessage`, `responseData`. Xem [ERROR_HANDLING.md](ERROR_HANDLING.md).
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
## Client methods (`GNNetwork.gamePlayer.*`)
|
|
40
|
+
|
|
41
|
+
| Method | Request DTO | Async form | Response class | Default Permission Rules | Permission Rules khi truyền `userId` khác với `gamePlayer` đang authenticated |
|
|
42
|
+
|--------|-------------|------------|----------------|--------------------------|-------------------------------------------------------------------------------|
|
|
43
|
+
| `addPlayerFriend` | `GamePlayerModels.AddPlayerFriendRequestData` | `addPlayerFriendAsync(...)` | `GamePlayerResponseModels.AddPlayerFriendOperationResponse` | `gamePlayer.addPlayerFriend.selfEnable` | `gamePlayer.addPlayerFriend.otherSelfEnable` |
|
|
44
|
+
| `addSegment` | `GamePlayerModels.AddSegmentRequestData` | `addSegmentAsync(...)` | `GamePlayerResponseModels.AddSegmentOperationResponse` | `gamePlayer.addSegment.selfEnable` | `gamePlayer.addSegment.otherSelfEnable` |
|
|
45
|
+
| `getAvatar` | `GamePlayerModels.GetAvatarRequestData` | `getAvatarAsync(...)` | `GamePlayerResponseModels.GetAvatarOperationResponse` | `gamePlayer.getAvatar.selfEnable` | `gamePlayer.getAvatar.otherSelfEnable` |
|
|
46
|
+
| `getCountryCode` | `GamePlayerModels.GetCountryCodeRequestData` | `getCountryCodeAsync(...)` | `GamePlayerResponseModels.GetCountryCodeOperationResponse` | `gamePlayer.getCountryCode.selfEnable` | `gamePlayer.getCountryCode.otherSelfEnable` |
|
|
47
|
+
| `getCustomData` | `GamePlayerModels.GetCustomDataRequestData` | `getCustomDataAsync(...)` | `GamePlayerResponseModels.GetCustomDataOperationResponse` | `gamePlayer.getCustomData.selfEnable` | `gamePlayer.getCustomData.otherSelfEnable` |
|
|
48
|
+
| `getDisplayName` | `GamePlayerModels.GetDisplayNameRequestData` | `getDisplayNameAsync(...)` | `GamePlayerResponseModels.GetDisplayNameOperationResponse` | `gamePlayer.getDisplayName.selfEnable` | `gamePlayer.getDisplayName.otherSelfEnable` |
|
|
49
|
+
| `getFriendStatisticsLeaderboardAroundPlayer` | `GamePlayerModels.GetFriendStatisticsLeaderboardAroundPlayerRequestData` | `getFriendStatisticsLeaderboardAroundPlayerAsync(...)` | `GamePlayerResponseModels.GetFriendStatisticsLeaderboardAroundPlayerOperationResponse` | `gamePlayer.getFriendStatisticsLeaderboardAroundPlayer.selfEnable` | `gamePlayer.getFriendStatisticsLeaderboardAroundPlayer.otherSelfEnable` |
|
|
50
|
+
| `getFriendStatisticsLeaderboard` | `GamePlayerModels.GetFriendStatisticsLeaderboardRequestData` | `getFriendStatisticsLeaderboardAsync(...)` | `GamePlayerResponseModels.GetFriendStatisticsLeaderboardOperationResponse` | `gamePlayer.getFriendStatisticsLeaderboard.selfEnable` | `gamePlayer.getFriendStatisticsLeaderboard.otherSelfEnable` |
|
|
51
|
+
| `getIpAddressCreate` | `GamePlayerModels.GetIpAddressCreateRequestData` | `getIpAddressCreateAsync(...)` | `GamePlayerResponseModels.GetIpAddressCreateOperationResponse` | `gamePlayer.getIpAddressCreate.selfEnable` | `gamePlayer.getIpAddressCreate.otherSelfEnable` |
|
|
52
|
+
| `getOnlineStatus` | `GamePlayerModels.GetOnlineStatusRequestData` | `getOnlineStatusAsync(...)` | `GamePlayerResponseModels.GetOnlineStatusOperationResponse` | `gamePlayer.getOnlineStatus.selfEnable` | `gamePlayer.getOnlineStatus.otherSelfEnable` |
|
|
53
|
+
| `getPlayerBan` | `GamePlayerModels.GetPlayerBanRequestData` | `getPlayerBanAsync(...)` | `GamePlayerResponseModels.GetPlayerBanOperationResponse` | `gamePlayer.getPlayerBan.selfEnable` | `gamePlayer.getPlayerBan.otherSelfEnable` |
|
|
54
|
+
| `getPlayerCharacter` | `GamePlayerModels.GetPlayerCharacterRequestData` | `getPlayerCharacterAsync(...)` | `GamePlayerResponseModels.GetPlayerCharacterOperationResponse` | `gamePlayer.getPlayerCharacter.selfEnable` | `gamePlayer.getPlayerCharacter.otherSelfEnable` |
|
|
55
|
+
| `getPlayerCurrency` | `GamePlayerModels.GetPlayerCurrencyRequestData` | `getPlayerCurrencyAsync(...)` | `GamePlayerResponseModels.GetPlayerCurrencyOperationResponse` | `gamePlayer.getPlayerCurrency.selfEnable` | `gamePlayer.getPlayerCurrency.otherSelfEnable` |
|
|
56
|
+
| `getPlayerData` | `GamePlayerModels.GetPlayerDataRequestData` | `getPlayerDataAsync(...)` | `GamePlayerResponseModels.GetPlayerDataOperationResponse` | `gamePlayer.getPlayerData.selfEnable` | `gamePlayer.getPlayerData.otherSelfEnable` |
|
|
57
|
+
| `getPlayerFriend` | `GamePlayerModels.GetPlayerFriendRequestData` | `getPlayerFriendAsync(...)` | `GamePlayerResponseModels.GetPlayerFriendOperationResponse` | `gamePlayer.getPlayerFriend.selfEnable` | `gamePlayer.getPlayerFriend.otherSelfEnable` |
|
|
58
|
+
| `getPlayerGroup` | `GamePlayerModels.GetPlayerGroupRequestData` | `getPlayerGroupAsync(...)` | `GamePlayerResponseModels.GetPlayerGroupOperationResponse` | `gamePlayer.getPlayerGroup.selfEnable` | `gamePlayer.getPlayerGroup.otherSelfEnable` |
|
|
59
|
+
| `getPlayerInformation` | `GamePlayerModels.GetPlayerInformationRequestData` | `getPlayerInformationAsync(...)` | `GamePlayerResponseModels.GetPlayerInformationOperationResponse` | `gamePlayer.getPlayerInformation.selfEnable` | `gamePlayer.getPlayerInformation.otherSelfEnable` |
|
|
60
|
+
| `getPlayerInventory` | `GamePlayerModels.GetPlayerInventoryRequestData` | `getPlayerInventoryAsync(...)` | `GamePlayerResponseModels.GetPlayerInventoryOperationResponse` | `gamePlayer.getPlayerInventory.selfEnable` | `gamePlayer.getPlayerInventory.otherSelfEnable` |
|
|
61
|
+
| `getPlayerStatistics` | `GamePlayerModels.GetPlayerStatisticsRequestData` | `getPlayerStatisticsAsync(...)` | `GamePlayerResponseModels.GetPlayerStatisticsOperationResponse` | `gamePlayer.getPlayerStatistics.selfEnable` | `gamePlayer.getPlayerStatistics.otherSelfEnable` |
|
|
62
|
+
| `getPlayersWithDisplayName` | `GamePlayerModels.GetPlayersWithDisplayNameRequestData` | `getPlayersWithDisplayNameAsync(...)` | `GamePlayerResponseModels.GetPlayersWithDisplayNameOperationResponse` | `gamePlayer.getPlayersWithDisplayName.otherSelfEnable` | |
|
|
63
|
+
| `getPlayersWithSegment` | `GamePlayerModels.GetPlayersWithSegmentRequestData` | `getPlayersWithSegmentAsync(...)` | `GamePlayerResponseModels.GetPlayersWithSegmentOperationResponse` | `gamePlayer.getPlayersWithSegment.otherSelfEnable` | |
|
|
64
|
+
| `getPlayersWithTag` | `GamePlayerModels.GetPlayersWithTagRequestData` | `getPlayersWithTagAsync(...)` | `GamePlayerResponseModels.GetPlayersWithTagOperationResponse` | `gamePlayer.getPlayersWithTag.otherSelfEnable` | |
|
|
65
|
+
| `getSegment` | `GamePlayerModels.GetSegmentRequestData` | `getSegmentAsync(...)` | `GamePlayerResponseModels.GetSegmentOperationResponse` | `gamePlayer.getSegment.selfEnable` | `gamePlayer.getSegment.otherSelfEnable` |
|
|
66
|
+
| `getStatisticsLeaderboardAroundPlayer` | `GamePlayerModels.GetStatisticsLeaderboardAroundPlayerRequestData` | `getStatisticsLeaderboardAroundPlayerAsync(...)` | `GamePlayerResponseModels.GetStatisticsLeaderboardAroundPlayerOperationResponse` | `gamePlayer.getStatisticsLeaderboardAroundPlayer.selfEnable` | `gamePlayer.getStatisticsLeaderboardAroundPlayer.otherSelfEnable` |
|
|
67
|
+
| `getStatisticsLeaderboard` | `GamePlayerModels.GetStatisticsLeaderboardRequestData` | `getStatisticsLeaderboardAsync(...)` | `GamePlayerResponseModels.GetStatisticsLeaderboardOperationResponse` | `gamePlayer.getStatisticsLeaderboard.otherSelfEnable` | |
|
|
68
|
+
| `getTag` | `GamePlayerModels.GetTagRequestData` | `getTagAsync(...)` | `GamePlayerResponseModels.GetTagOperationResponse` | `gamePlayer.getTag.selfEnable` | `gamePlayer.getTag.otherSelfEnable` |
|
|
69
|
+
| `getTsCreate` | `GamePlayerModels.GetTsCreateRequestData` | `getTsCreateAsync(...)` | `GamePlayerResponseModels.GetTsCreateOperationResponse` | `gamePlayer.getTsCreate.selfEnable` | `gamePlayer.getTsCreate.otherSelfEnable` |
|
|
70
|
+
| `getTsLastLogin` | `GamePlayerModels.GetTsLastLoginRequestData` | `getTsLastLoginAsync(...)` | `GamePlayerResponseModels.GetTsLastLoginOperationResponse` | `gamePlayer.getTsLastLogin.selfEnable` | `gamePlayer.getTsLastLogin.otherSelfEnable` |
|
|
71
|
+
| `createGroup` | `GamePlayerModels.CreateGroupRequestData` | `createGroupAsync(...)` | `GamePlayerResponseModels.CreateGroupOperationResponse` | `gamePlayer.createGroup.selfEnable` | `gamePlayer.createGroup.otherSelfEnable` |
|
|
72
|
+
| `createPlayerCharacter` | `GamePlayerModels.CreatePlayerCharacterRequestData` | `createPlayerCharacterAsync(...)` | `GamePlayerResponseModels.CreatePlayerCharacterOperationResponse` | `gamePlayer.createPlayerCharacter.selfEnable` | `gamePlayer.createPlayerCharacter.otherSelfEnable` |
|
|
73
|
+
| `createPlayerItem` | `GamePlayerModels.CreatePlayerItemRequestData` | `createPlayerItemAsync(...)` | `GamePlayerResponseModels.CreatePlayerItemOperationResponse` | `gamePlayer.createPlayerItem.selfEnable` | `gamePlayer.createPlayerItem.otherSelfEnable` |
|
|
74
|
+
| `joinGroup` | `GamePlayerModels.JoinGroupRequestData` | `joinGroupAsync(...)` | `GamePlayerResponseModels.JoinGroupOperationResponse` | `gamePlayer.joinGroup.selfEnable` | `gamePlayer.joinGroup.otherSelfEnable` |
|
|
75
|
+
| `leaveGroup` | `GamePlayerModels.LeaveGroupRequestData` | `leaveGroupAsync(...)` | `GamePlayerResponseModels.LeaveGroupOperationResponse` | `gamePlayer.leaveGroup.selfEnable` | `gamePlayer.leaveGroup.otherSelfEnable` |
|
|
76
|
+
| `removePlayerCharacter` | `GamePlayerModels.RemovePlayerCharacterRequestData` | `removePlayerCharacterAsync(...)` | `GamePlayerResponseModels.RemovePlayerCharacterOperationResponse` | `gamePlayer.removePlayerCharacter.selfEnable` | `gamePlayer.removePlayerCharacter.otherSelfEnable` |
|
|
77
|
+
| `removePlayerFriend` | `GamePlayerModels.RemovePlayerFriendRequestData` | `removePlayerFriendAsync(...)` | `GamePlayerResponseModels.RemovePlayerFriendOperationResponse` | `gamePlayer.removePlayerFriend.selfEnable` | `gamePlayer.removePlayerFriend.otherSelfEnable` |
|
|
78
|
+
| `removePlayerItem` | `GamePlayerModels.RemovePlayerItemRequestData` | `removePlayerItemAsync(...)` | `GamePlayerResponseModels.RemovePlayerItemOperationResponse` | `gamePlayer.removePlayerItem.selfEnable` | `gamePlayer.removePlayerItem.otherSelfEnable` |
|
|
79
|
+
| `removeSegment` | `GamePlayerModels.RemoveSegmentRequestData` | `removeSegmentAsync(...)` | `GamePlayerResponseModels.RemoveSegmentOperationResponse` | `gamePlayer.removeSegment.selfEnable` | `gamePlayer.removeSegment.otherSelfEnable` |
|
|
80
|
+
| `removeTag` | `GamePlayerModels.RemoveTagRequestData` | `removeTagAsync(...)` | `GamePlayerResponseModels.RemoveTagOperationResponse` | `gamePlayer.removeTag.selfEnable` | `gamePlayer.removeTag.otherSelfEnable` |
|
|
81
|
+
| `setAvatar` | `GamePlayerModels.SetAvatarRequestData` | `setAvatarAsync(...)` | `GamePlayerResponseModels.SetAvatarOperationResponse` | `gamePlayer.setAvatar.selfEnable` | `gamePlayer.setAvatar.otherSelfEnable` |
|
|
82
|
+
| `setCountryCode` | `GamePlayerModels.SetCountryCodeRequestData` | `setCountryCodeAsync(...)` | `GamePlayerResponseModels.SetCountryCodeOperationResponse` | `gamePlayer.setCountryCode.selfEnable` | `gamePlayer.setCountryCode.otherSelfEnable` |
|
|
83
|
+
| `setCustomData` | `GamePlayerModels.SetCustomDataRequestData` | `setCustomDataAsync(...)` | `GamePlayerResponseModels.SetCustomDataOperationResponse` | `gamePlayer.setCustomData.selfEnable` | `gamePlayer.setCustomData.otherSelfEnable` |
|
|
84
|
+
| `setDisplayName` | `GamePlayerModels.SetDisplayNameRequestData` | `setDisplayNameAsync(...)` | `GamePlayerResponseModels.SetDisplayNameOperationResponse` | `gamePlayer.setDisplayName.selfEnable` | `gamePlayer.setDisplayName.otherSelfEnable` |
|
|
85
|
+
| `setPlayerBan` | `GamePlayerModels.SetPlayerBanRequestData` | `setPlayerBanAsync(...)` | `GamePlayerResponseModels.SetPlayerBanOperationResponse` | `gamePlayer.setPlayerBan.selfEnable` | `gamePlayer.setPlayerBan.otherSelfEnable` |
|
|
86
|
+
| `changePlayerCurrency` | `GamePlayerModels.ChangePlayerCurrencyRequestData` | `changePlayerCurrencyAsync(...)` | `GamePlayerResponseModels.ChangePlayerCurrencyOperationResponse` | `gamePlayer.changePlayerCurrency.selfEnable` | `gamePlayer.changePlayerCurrency.otherSelfEnable` |
|
|
87
|
+
| `setPlayerData` | `GamePlayerModels.SetPlayerDataRequestData` | `setPlayerDataAsync(...)` | `GamePlayerResponseModels.SetPlayerDataOperationResponse` | `gamePlayer.setPlayerData.selfEnable` | `gamePlayer.setPlayerData.otherSelfEnable` |
|
|
88
|
+
| `changePlayerStatistics` | `GamePlayerModels.ChangePlayerStatisticsRequestData` | `changePlayerStatisticsAsync(...)` | `GamePlayerResponseModels.ChangePlayerStatisticsOperationResponse` | `gamePlayer.changePlayerStatistics.selfEnable` | `gamePlayer.changePlayerStatistics.otherSelfEnable` |
|
|
89
|
+
| `setTag` | `GamePlayerModels.SetTagRequestData` | `setTagAsync(...)` | `GamePlayerResponseModels.SetTagOperationResponse` | `gamePlayer.setTag.selfEnable` | `gamePlayer.setTag.otherSelfEnable` |
|
|
90
|
+
| `getCurrencyLeaderboard` | `GamePlayerModels.GetCurrencyLeaderboardRequestData` | `getCurrencyLeaderboardAsync(...)` | `GamePlayerResponseModels.GetCurrencyLeaderboardOperationResponse` | `gamePlayer.getCurrencyLeaderboard.otherSelfEnable` | |
|
|
91
|
+
| `getLastLoginLeaderboard` | `GamePlayerModels.GetLastLoginLeaderboardRequestData` | `getLastLoginLeaderboardAsync(...)` | `GamePlayerResponseModels.GetLastLoginLeaderboardOperationResponse` | `gamePlayer.getLastLoginLeaderboard.otherSelfEnable` | |
|
|
92
|
+
| `getCreateLeaderboard` | `GamePlayerModels.GetCreateLeaderboardRequestData` | `getCreateLeaderboardAsync(...)` | `GamePlayerResponseModels.GetCreateLeaderboardOperationResponse` | `gamePlayer.getCreateLeaderboard.otherSelfEnable` | |
|
|
93
|
+
| `getStatisticsLog` | `GamePlayerModels.GetStatisticsLogRequestData` | `getStatisticsLogAsync(...)` | `GamePlayerResponseModels.GetStatisticsLogOperationResponse` | `gamePlayer.getStatisticsLog.selfEnable` | `gamePlayer.getStatisticsLog.otherSelfEnable` |
|
|
94
|
+
| `getCurrencyLog` | `GamePlayerModels.GetCurrencyLogRequestData` | `getCurrencyLogAsync(...)` | `GamePlayerResponseModels.GetCurrencyLogOperationResponse` | `gamePlayer.getCurrencyLog.selfEnable` | `gamePlayer.getCurrencyLog.otherSelfEnable` |
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
## Server methods (`GNNetwork.gamePlayer.server.*`)
|
|
98
|
+
|
|
99
|
+
| Method | Request DTO | Async form | Response class | Default Permission Rules |
|
|
100
|
+
|--------|-------------|------------|----------------|--------------------------|
|
|
101
|
+
| `addPlayerFriend` | `GamePlayerModels.ServerAddPlayerFriendRequestData` | `addPlayerFriendAsync(...)` | `GamePlayerResponseModels.AddPlayerFriendOperationResponse` | `gamePlayer.addPlayerFriend.serverSelfEnable` |
|
|
102
|
+
| `addSegment` | `GamePlayerModels.ServerAddSegmentRequestData` | `addSegmentAsync(...)` | `GamePlayerResponseModels.AddSegmentOperationResponse` | `gamePlayer.addSegment.serverSelfEnable` |
|
|
103
|
+
| `getAvatar` | `GamePlayerModels.ServerGetAvatarRequestData` | `getAvatarAsync(...)` | `GamePlayerResponseModels.GetAvatarOperationResponse` | `gamePlayer.getAvatar.serverSelfEnable` |
|
|
104
|
+
| `getCountryCode` | `GamePlayerModels.ServerGetCountryCodeRequestData` | `getCountryCodeAsync(...)` | `GamePlayerResponseModels.GetCountryCodeOperationResponse` | `gamePlayer.getCountryCode.serverSelfEnable` |
|
|
105
|
+
| `getCustomData` | `GamePlayerModels.ServerGetCustomDataRequestData` | `getCustomDataAsync(...)` | `GamePlayerResponseModels.GetCustomDataOperationResponse` | `gamePlayer.getCustomData.serverSelfEnable` |
|
|
106
|
+
| `getDisplayName` | `GamePlayerModels.ServerGetDisplayNameRequestData` | `getDisplayNameAsync(...)` | `GamePlayerResponseModels.GetDisplayNameOperationResponse` | `gamePlayer.getDisplayName.serverSelfEnable` |
|
|
107
|
+
| `getFriendStatisticsLeaderboardAroundPlayer` | `GamePlayerModels.ServerGetFriendStatisticsLeaderboardAroundPlayerRequestData` | `getFriendStatisticsLeaderboardAroundPlayerAsync(...)` | `GamePlayerResponseModels.GetFriendStatisticsLeaderboardAroundPlayerOperationResponse` | `gamePlayer.getFriendStatisticsLeaderboardAroundPlayer.serverSelfEnable` |
|
|
108
|
+
| `getFriendStatisticsLeaderboard` | `GamePlayerModels.ServerGetFriendStatisticsLeaderboardRequestData` | `getFriendStatisticsLeaderboardAsync(...)` | `GamePlayerResponseModels.GetFriendStatisticsLeaderboardOperationResponse` | `gamePlayer.getFriendStatisticsLeaderboard.serverSelfEnable` |
|
|
109
|
+
| `getIpAddressCreate` | `GamePlayerModels.ServerGetIpAddressCreateRequestData` | `getIpAddressCreateAsync(...)` | `GamePlayerResponseModels.GetIpAddressCreateOperationResponse` | `gamePlayer.getIpAddressCreate.serverSelfEnable` |
|
|
110
|
+
| `getOnlineStatus` | `GamePlayerModels.ServerGetOnlineStatusRequestData` | `getOnlineStatusAsync(...)` | `GamePlayerResponseModels.GetOnlineStatusOperationResponse` | `gamePlayer.getOnlineStatus.serverSelfEnable` |
|
|
111
|
+
| `getPlayerBan` | `GamePlayerModels.ServerGetPlayerBanRequestData` | `getPlayerBanAsync(...)` | `GamePlayerResponseModels.GetPlayerBanOperationResponse` | `gamePlayer.getPlayerBan.serverSelfEnable` |
|
|
112
|
+
| `getPlayerCharacter` | `GamePlayerModels.ServerGetPlayerCharacterRequestData` | `getPlayerCharacterAsync(...)` | `GamePlayerResponseModels.GetPlayerCharacterOperationResponse` | `gamePlayer.getPlayerCharacter.serverSelfEnable` |
|
|
113
|
+
| `getPlayerCurrency` | `GamePlayerModels.ServerGetPlayerCurrencyRequestData` | `getPlayerCurrencyAsync(...)` | `GamePlayerResponseModels.GetPlayerCurrencyOperationResponse` | `gamePlayer.getPlayerCurrency.serverSelfEnable` |
|
|
114
|
+
| `getPlayerData` | `GamePlayerModels.ServerGetPlayerDataRequestData` | `getPlayerDataAsync(...)` | `GamePlayerResponseModels.GetPlayerDataOperationResponse` | `gamePlayer.getPlayerData.serverSelfEnable` |
|
|
115
|
+
| `getPlayerFriend` | `GamePlayerModels.ServerGetPlayerFriendRequestData` | `getPlayerFriendAsync(...)` | `GamePlayerResponseModels.GetPlayerFriendOperationResponse` | `gamePlayer.getPlayerFriend.serverSelfEnable` |
|
|
116
|
+
| `getPlayerGroup` | `GamePlayerModels.ServerGetPlayerGroupRequestData` | `getPlayerGroupAsync(...)` | `GamePlayerResponseModels.GetPlayerGroupOperationResponse` | `gamePlayer.getPlayerGroup.serverSelfEnable` |
|
|
117
|
+
| `getPlayerInformation` | `GamePlayerModels.ServerGetPlayerInformationRequestData` | `getPlayerInformationAsync(...)` | `GamePlayerResponseModels.GetPlayerInformationOperationResponse` | `gamePlayer.getPlayerInformation.serverSelfEnable` |
|
|
118
|
+
| `getPlayerInventory` | `GamePlayerModels.ServerGetPlayerInventoryRequestData` | `getPlayerInventoryAsync(...)` | `GamePlayerResponseModels.GetPlayerInventoryOperationResponse` | `gamePlayer.getPlayerInventory.serverSelfEnable` |
|
|
119
|
+
| `getPlayerStatistics` | `GamePlayerModels.ServerGetPlayerStatisticsRequestData` | `getPlayerStatisticsAsync(...)` | `GamePlayerResponseModels.GetPlayerStatisticsOperationResponse` | `gamePlayer.getPlayerStatistics.serverSelfEnable` |
|
|
120
|
+
| `getPlayersWithDisplayName` | `GamePlayerModels.ServerGetPlayersWithDisplayNameRequestData` | `getPlayersWithDisplayNameAsync(...)` | `GamePlayerResponseModels.GetPlayersWithDisplayNameOperationResponse` | `gamePlayer.getPlayersWithDisplayName.serverSelfEnable` |
|
|
121
|
+
| `getPlayersWithSegment` | `GamePlayerModels.ServerGetPlayersWithSegmentRequestData` | `getPlayersWithSegmentAsync(...)` | `GamePlayerResponseModels.GetPlayersWithSegmentOperationResponse` | `gamePlayer.getPlayersWithSegment.serverSelfEnable` |
|
|
122
|
+
| `getPlayersWithTag` | `GamePlayerModels.ServerGetPlayersWithTagRequestData` | `getPlayersWithTagAsync(...)` | `GamePlayerResponseModels.GetPlayersWithTagOperationResponse` | `gamePlayer.getPlayersWithTag.serverSelfEnable` |
|
|
123
|
+
| `getSegment` | `GamePlayerModels.ServerGetSegmentRequestData` | `getSegmentAsync(...)` | `GamePlayerResponseModels.GetSegmentOperationResponse` | `gamePlayer.getSegment.serverSelfEnable` |
|
|
124
|
+
| `getStatisticsLeaderboardAroundPlayer` | `GamePlayerModels.ServerGetStatisticsLeaderboardAroundPlayerRequestData` | `getStatisticsLeaderboardAroundPlayerAsync(...)` | `GamePlayerResponseModels.GetStatisticsLeaderboardAroundPlayerOperationResponse` | `gamePlayer.getStatisticsLeaderboardAroundPlayer.serverSelfEnable` |
|
|
125
|
+
| `getStatisticsLeaderboard` | `GamePlayerModels.ServerGetStatisticsLeaderboardRequestData` | `getStatisticsLeaderboardAsync(...)` | `GamePlayerResponseModels.GetStatisticsLeaderboardOperationResponse` | `gamePlayer.getStatisticsLeaderboard.serverSelfEnable` |
|
|
126
|
+
| `getTag` | `GamePlayerModels.ServerGetTagRequestData` | `getTagAsync(...)` | `GamePlayerResponseModels.GetTagOperationResponse` | `gamePlayer.getTag.serverSelfEnable` |
|
|
127
|
+
| `getTsCreate` | `GamePlayerModels.ServerGetTsCreateRequestData` | `getTsCreateAsync(...)` | `GamePlayerResponseModels.GetTsCreateOperationResponse` | `gamePlayer.getTsCreate.serverSelfEnable` |
|
|
128
|
+
| `getTsLastLogin` | `GamePlayerModels.ServerGetTsLastLoginRequestData` | `getTsLastLoginAsync(...)` | `GamePlayerResponseModels.GetTsLastLoginOperationResponse` | `gamePlayer.getTsLastLogin.serverSelfEnable` |
|
|
129
|
+
| `createGroup` | `GamePlayerModels.ServerCreateGroupRequestData` | `createGroupAsync(...)` | `GamePlayerResponseModels.CreateGroupOperationResponse` | `gamePlayer.createGroup.serverSelfEnable` |
|
|
130
|
+
| `createPlayerCharacter` | `GamePlayerModels.ServerCreatePlayerCharacterRequestData` | `createPlayerCharacterAsync(...)` | `GamePlayerResponseModels.CreatePlayerCharacterOperationResponse` | `gamePlayer.createPlayerCharacter.serverSelfEnable` |
|
|
131
|
+
| `createPlayerItem` | `GamePlayerModels.ServerCreatePlayerItemRequestData` | `createPlayerItemAsync(...)` | `GamePlayerResponseModels.CreatePlayerItemOperationResponse` | `gamePlayer.createPlayerItem.serverSelfEnable` |
|
|
132
|
+
| `joinGroup` | `GamePlayerModels.ServerJoinGroupRequestData` | `joinGroupAsync(...)` | `GamePlayerResponseModels.JoinGroupOperationResponse` | `gamePlayer.joinGroup.serverSelfEnable` |
|
|
133
|
+
| `leaveGroup` | `GamePlayerModels.ServerLeaveGroupRequestData` | `leaveGroupAsync(...)` | `GamePlayerResponseModels.LeaveGroupOperationResponse` | `gamePlayer.leaveGroup.serverSelfEnable` |
|
|
134
|
+
| `removePlayerCharacter` | `GamePlayerModels.ServerRemovePlayerCharacterRequestData` | `removePlayerCharacterAsync(...)` | `GamePlayerResponseModels.RemovePlayerCharacterOperationResponse` | `gamePlayer.removePlayerCharacter.serverSelfEnable` |
|
|
135
|
+
| `removePlayerFriend` | `GamePlayerModels.ServerRemovePlayerFriendRequestData` | `removePlayerFriendAsync(...)` | `GamePlayerResponseModels.RemovePlayerFriendOperationResponse` | `gamePlayer.removePlayerFriend.serverSelfEnable` |
|
|
136
|
+
| `removePlayerItem` | `GamePlayerModels.ServerRemovePlayerItemRequestData` | `removePlayerItemAsync(...)` | `GamePlayerResponseModels.RemovePlayerItemOperationResponse` | `gamePlayer.removePlayerItem.serverSelfEnable` |
|
|
137
|
+
| `removeSegment` | `GamePlayerModels.ServerRemoveSegmentRequestData` | `removeSegmentAsync(...)` | `GamePlayerResponseModels.RemoveSegmentOperationResponse` | `gamePlayer.removeSegment.serverSelfEnable` |
|
|
138
|
+
| `removeTag` | `GamePlayerModels.ServerRemoveTagRequestData` | `removeTagAsync(...)` | `GamePlayerResponseModels.RemoveTagOperationResponse` | `gamePlayer.removeTag.serverSelfEnable` |
|
|
139
|
+
| `setAvatar` | `GamePlayerModels.ServerSetAvatarRequestData` | `setAvatarAsync(...)` | `GamePlayerResponseModels.SetAvatarOperationResponse` | `gamePlayer.setAvatar.serverSelfEnable` |
|
|
140
|
+
| `setCountryCode` | `GamePlayerModels.ServerSetCountryCodeRequestData` | `setCountryCodeAsync(...)` | `GamePlayerResponseModels.SetCountryCodeOperationResponse` | `gamePlayer.setCountryCode.serverSelfEnable` |
|
|
141
|
+
| `setCustomData` | `GamePlayerModels.ServerSetCustomDataRequestData` | `setCustomDataAsync(...)` | `GamePlayerResponseModels.SetCustomDataOperationResponse` | `gamePlayer.setCustomData.serverSelfEnable` |
|
|
142
|
+
| `setDisplayName` | `GamePlayerModels.ServerSetDisplayNameRequestData` | `setDisplayNameAsync(...)` | `GamePlayerResponseModels.SetDisplayNameOperationResponse` | `gamePlayer.setDisplayName.serverSelfEnable` |
|
|
143
|
+
| `setPlayerBan` | `GamePlayerModels.ServerSetPlayerBanRequestData` | `setPlayerBanAsync(...)` | `GamePlayerResponseModels.SetPlayerBanOperationResponse` | `gamePlayer.setPlayerBan.serverSelfEnable` |
|
|
144
|
+
| `changePlayerCurrency` | `GamePlayerModels.ServerChangePlayerCurrencyRequestData` | `changePlayerCurrencyAsync(...)` | `GamePlayerResponseModels.ChangePlayerCurrencyOperationResponse` | `gamePlayer.changePlayerCurrency.serverSelfEnable` |
|
|
145
|
+
| `setPlayerData` | `GamePlayerModels.ServerSetPlayerDataRequestData` | `setPlayerDataAsync(...)` | `GamePlayerResponseModels.SetPlayerDataOperationResponse` | `gamePlayer.setPlayerData.serverSelfEnable` |
|
|
146
|
+
| `changePlayerStatistics` | `GamePlayerModels.ServerChangePlayerStatisticsRequestData` | `changePlayerStatisticsAsync(...)` | `GamePlayerResponseModels.ChangePlayerStatisticsOperationResponse` | `gamePlayer.changePlayerStatistics.serverSelfEnable` |
|
|
147
|
+
| `setTag` | `GamePlayerModels.ServerSetTagRequestData` | `setTagAsync(...)` | `GamePlayerResponseModels.SetTagOperationResponse` | `gamePlayer.setTag.serverSelfEnable` |
|
|
148
|
+
| `getCurrencyLeaderboard` | `GamePlayerModels.ServerGetCurrencyLeaderboardRequestData` | `getCurrencyLeaderboardAsync(...)` | `GamePlayerResponseModels.GetCurrencyLeaderboardOperationResponse` | `gamePlayer.getCurrencyLeaderboard.serverSelfEnable` |
|
|
149
|
+
| `getLastLoginLeaderboard` | `GamePlayerModels.ServerGetLastLoginLeaderboardRequestData` | `getLastLoginLeaderboardAsync(...)` | `GamePlayerResponseModels.GetLastLoginLeaderboardOperationResponse` | `gamePlayer.getLastLoginLeaderboard.serverSelfEnable` |
|
|
150
|
+
| `getCreateLeaderboard` | `GamePlayerModels.ServerGetCreateLeaderboardRequestData` | `getCreateLeaderboardAsync(...)` | `GamePlayerResponseModels.GetCreateLeaderboardOperationResponse` | `gamePlayer.getCreateLeaderboard.serverSelfEnable` |
|
|
151
|
+
| `getStatisticsLog` | `GamePlayerModels.ServerGetStatisticsLogRequestData` | `getStatisticsLogAsync(...)` | `GamePlayerResponseModels.GetStatisticsLogOperationResponse` | `gamePlayer.getStatisticsLog.serverSelfEnable` |
|
|
152
|
+
| `getCurrencyLog` | `GamePlayerModels.ServerGetCurrencyLogRequestData` | `getCurrencyLogAsync(...)` | `GamePlayerResponseModels.GetCurrencyLogOperationResponse` | `gamePlayer.getCurrencyLog.serverSelfEnable` |
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
## Admin methods (`GNNetwork.gamePlayer.admin.*`)
|
|
156
|
+
|
|
157
|
+
| Method | Request DTO | Async form | Response class | Default Permission Rules |
|
|
158
|
+
|--------|-------------|------------|----------------|--------------------------|
|
|
159
|
+
| `addPlayerFriend` | `GamePlayerModels.AdminAddPlayerFriendRequestData` | `addPlayerFriendAsync(...)` | `GamePlayerResponseModels.AddPlayerFriendOperationResponse` | `gamePlayer.addPlayerFriend.adminSelfEnable` |
|
|
160
|
+
| `addSegment` | `GamePlayerModels.AdminAddSegmentRequestData` | `addSegmentAsync(...)` | `GamePlayerResponseModels.AddSegmentOperationResponse` | `gamePlayer.addSegment.adminSelfEnable` |
|
|
161
|
+
| `getAvatar` | `GamePlayerModels.AdminGetAvatarRequestData` | `getAvatarAsync(...)` | `GamePlayerResponseModels.GetAvatarOperationResponse` | `gamePlayer.getAvatar.adminSelfEnable` |
|
|
162
|
+
| `getCountryCode` | `GamePlayerModels.AdminGetCountryCodeRequestData` | `getCountryCodeAsync(...)` | `GamePlayerResponseModels.GetCountryCodeOperationResponse` | `gamePlayer.getCountryCode.adminSelfEnable` |
|
|
163
|
+
| `getCustomData` | `GamePlayerModels.AdminGetCustomDataRequestData` | `getCustomDataAsync(...)` | `GamePlayerResponseModels.GetCustomDataOperationResponse` | `gamePlayer.getCustomData.adminSelfEnable` |
|
|
164
|
+
| `getDisplayName` | `GamePlayerModels.AdminGetDisplayNameRequestData` | `getDisplayNameAsync(...)` | `GamePlayerResponseModels.GetDisplayNameOperationResponse` | `gamePlayer.getDisplayName.adminSelfEnable` |
|
|
165
|
+
| `getFriendStatisticsLeaderboardAroundPlayer` | `GamePlayerModels.AdminGetFriendStatisticsLeaderboardAroundPlayerRequestData` | `getFriendStatisticsLeaderboardAroundPlayerAsync(...)` | `GamePlayerResponseModels.GetFriendStatisticsLeaderboardAroundPlayerOperationResponse` | `gamePlayer.getFriendStatisticsLeaderboardAroundPlayer.adminSelfEnable` |
|
|
166
|
+
| `getFriendStatisticsLeaderboard` | `GamePlayerModels.AdminGetFriendStatisticsLeaderboardRequestData` | `getFriendStatisticsLeaderboardAsync(...)` | `GamePlayerResponseModels.GetFriendStatisticsLeaderboardOperationResponse` | `gamePlayer.getFriendStatisticsLeaderboard.adminSelfEnable` |
|
|
167
|
+
| `getIpAddressCreate` | `GamePlayerModels.AdminGetIpAddressCreateRequestData` | `getIpAddressCreateAsync(...)` | `GamePlayerResponseModels.GetIpAddressCreateOperationResponse` | `gamePlayer.getIpAddressCreate.adminSelfEnable` |
|
|
168
|
+
| `getOnlineStatus` | `GamePlayerModels.AdminGetOnlineStatusRequestData` | `getOnlineStatusAsync(...)` | `GamePlayerResponseModels.GetOnlineStatusOperationResponse` | `gamePlayer.getOnlineStatus.adminSelfEnable` |
|
|
169
|
+
| `getPlayerBan` | `GamePlayerModels.AdminGetPlayerBanRequestData` | `getPlayerBanAsync(...)` | `GamePlayerResponseModels.GetPlayerBanOperationResponse` | `gamePlayer.getPlayerBan.adminSelfEnable` |
|
|
170
|
+
| `getPlayerCharacter` | `GamePlayerModels.AdminGetPlayerCharacterRequestData` | `getPlayerCharacterAsync(...)` | `GamePlayerResponseModels.GetPlayerCharacterOperationResponse` | `gamePlayer.getPlayerCharacter.adminSelfEnable` |
|
|
171
|
+
| `getPlayerCurrency` | `GamePlayerModels.AdminGetPlayerCurrencyRequestData` | `getPlayerCurrencyAsync(...)` | `GamePlayerResponseModels.GetPlayerCurrencyOperationResponse` | `gamePlayer.getPlayerCurrency.adminSelfEnable` |
|
|
172
|
+
| `getPlayerData` | `GamePlayerModels.AdminGetPlayerDataRequestData` | `getPlayerDataAsync(...)` | `GamePlayerResponseModels.GetPlayerDataOperationResponse` | `gamePlayer.getPlayerData.adminSelfEnable` |
|
|
173
|
+
| `getPlayerFriend` | `GamePlayerModels.AdminGetPlayerFriendRequestData` | `getPlayerFriendAsync(...)` | `GamePlayerResponseModels.GetPlayerFriendOperationResponse` | `gamePlayer.getPlayerFriend.adminSelfEnable` |
|
|
174
|
+
| `getPlayerGroup` | `GamePlayerModels.AdminGetPlayerGroupRequestData` | `getPlayerGroupAsync(...)` | `GamePlayerResponseModels.GetPlayerGroupOperationResponse` | `gamePlayer.getPlayerGroup.adminSelfEnable` |
|
|
175
|
+
| `getPlayerInformation` | `GamePlayerModels.AdminGetPlayerInformationRequestData` | `getPlayerInformationAsync(...)` | `GamePlayerResponseModels.GetPlayerInformationOperationResponse` | `gamePlayer.getPlayerInformation.adminSelfEnable` |
|
|
176
|
+
| `getPlayerInventory` | `GamePlayerModels.AdminGetPlayerInventoryRequestData` | `getPlayerInventoryAsync(...)` | `GamePlayerResponseModels.GetPlayerInventoryOperationResponse` | `gamePlayer.getPlayerInventory.adminSelfEnable` |
|
|
177
|
+
| `getPlayerStatistics` | `GamePlayerModels.AdminGetPlayerStatisticsRequestData` | `getPlayerStatisticsAsync(...)` | `GamePlayerResponseModels.GetPlayerStatisticsOperationResponse` | `gamePlayer.getPlayerStatistics.adminSelfEnable` |
|
|
178
|
+
| `getPlayersWithDisplayName` | `GamePlayerModels.AdminGetPlayersWithDisplayNameRequestData` | `getPlayersWithDisplayNameAsync(...)` | `GamePlayerResponseModels.GetPlayersWithDisplayNameOperationResponse` | `gamePlayer.getPlayersWithDisplayName.adminSelfEnable` |
|
|
179
|
+
| `getPlayersWithSegment` | `GamePlayerModels.AdminGetPlayersWithSegmentRequestData` | `getPlayersWithSegmentAsync(...)` | `GamePlayerResponseModels.GetPlayersWithSegmentOperationResponse` | `gamePlayer.getPlayersWithSegment.adminSelfEnable` |
|
|
180
|
+
| `getPlayersWithTag` | `GamePlayerModels.AdminGetPlayersWithTagRequestData` | `getPlayersWithTagAsync(...)` | `GamePlayerResponseModels.GetPlayersWithTagOperationResponse` | `gamePlayer.getPlayersWithTag.adminSelfEnable` |
|
|
181
|
+
| `getSegment` | `GamePlayerModels.AdminGetSegmentRequestData` | `getSegmentAsync(...)` | `GamePlayerResponseModels.GetSegmentOperationResponse` | `gamePlayer.getSegment.adminSelfEnable` |
|
|
182
|
+
| `getStatisticsLeaderboardAroundPlayer` | `GamePlayerModels.AdminGetStatisticsLeaderboardAroundPlayerRequestData` | `getStatisticsLeaderboardAroundPlayerAsync(...)` | `GamePlayerResponseModels.GetStatisticsLeaderboardAroundPlayerOperationResponse` | `gamePlayer.getStatisticsLeaderboardAroundPlayer.adminSelfEnable` |
|
|
183
|
+
| `getStatisticsLeaderboard` | `GamePlayerModels.AdminGetStatisticsLeaderboardRequestData` | `getStatisticsLeaderboardAsync(...)` | `GamePlayerResponseModels.GetStatisticsLeaderboardOperationResponse` | `gamePlayer.getStatisticsLeaderboard.adminSelfEnable` |
|
|
184
|
+
| `getTag` | `GamePlayerModels.AdminGetTagRequestData` | `getTagAsync(...)` | `GamePlayerResponseModels.GetTagOperationResponse` | `gamePlayer.getTag.adminSelfEnable` |
|
|
185
|
+
| `getTsCreate` | `GamePlayerModels.AdminGetTsCreateRequestData` | `getTsCreateAsync(...)` | `GamePlayerResponseModels.GetTsCreateOperationResponse` | `gamePlayer.getTsCreate.adminSelfEnable` |
|
|
186
|
+
| `getTsLastLogin` | `GamePlayerModels.AdminGetTsLastLoginRequestData` | `getTsLastLoginAsync(...)` | `GamePlayerResponseModels.GetTsLastLoginOperationResponse` | `gamePlayer.getTsLastLogin.adminSelfEnable` |
|
|
187
|
+
| `createGroup` | `GamePlayerModels.AdminCreateGroupRequestData` | `createGroupAsync(...)` | `GamePlayerResponseModels.CreateGroupOperationResponse` | `gamePlayer.createGroup.adminSelfEnable` |
|
|
188
|
+
| `createPlayerCharacter` | `GamePlayerModels.AdminCreatePlayerCharacterRequestData` | `createPlayerCharacterAsync(...)` | `GamePlayerResponseModels.CreatePlayerCharacterOperationResponse` | `gamePlayer.createPlayerCharacter.adminSelfEnable` |
|
|
189
|
+
| `createPlayerItem` | `GamePlayerModels.AdminCreatePlayerItemRequestData` | `createPlayerItemAsync(...)` | `GamePlayerResponseModels.CreatePlayerItemOperationResponse` | `gamePlayer.createPlayerItem.adminSelfEnable` |
|
|
190
|
+
| `joinGroup` | `GamePlayerModels.AdminJoinGroupRequestData` | `joinGroupAsync(...)` | `GamePlayerResponseModels.JoinGroupOperationResponse` | `gamePlayer.joinGroup.adminSelfEnable` |
|
|
191
|
+
| `leaveGroup` | `GamePlayerModels.AdminLeaveGroupRequestData` | `leaveGroupAsync(...)` | `GamePlayerResponseModels.LeaveGroupOperationResponse` | `gamePlayer.leaveGroup.adminSelfEnable` |
|
|
192
|
+
| `removePlayerCharacter` | `GamePlayerModels.AdminRemovePlayerCharacterRequestData` | `removePlayerCharacterAsync(...)` | `GamePlayerResponseModels.RemovePlayerCharacterOperationResponse` | `gamePlayer.removePlayerCharacter.adminSelfEnable` |
|
|
193
|
+
| `removePlayerFriend` | `GamePlayerModels.AdminRemovePlayerFriendRequestData` | `removePlayerFriendAsync(...)` | `GamePlayerResponseModels.RemovePlayerFriendOperationResponse` | `gamePlayer.removePlayerFriend.adminSelfEnable` |
|
|
194
|
+
| `removePlayerItem` | `GamePlayerModels.AdminRemovePlayerItemRequestData` | `removePlayerItemAsync(...)` | `GamePlayerResponseModels.RemovePlayerItemOperationResponse` | `gamePlayer.removePlayerItem.adminSelfEnable` |
|
|
195
|
+
| `removeSegment` | `GamePlayerModels.AdminRemoveSegmentRequestData` | `removeSegmentAsync(...)` | `GamePlayerResponseModels.RemoveSegmentOperationResponse` | `gamePlayer.removeSegment.adminSelfEnable` |
|
|
196
|
+
| `removeTag` | `GamePlayerModels.AdminRemoveTagRequestData` | `removeTagAsync(...)` | `GamePlayerResponseModels.RemoveTagOperationResponse` | `gamePlayer.removeTag.adminSelfEnable` |
|
|
197
|
+
| `setAvatar` | `GamePlayerModels.AdminSetAvatarRequestData` | `setAvatarAsync(...)` | `GamePlayerResponseModels.SetAvatarOperationResponse` | `gamePlayer.setAvatar.adminSelfEnable` |
|
|
198
|
+
| `setCountryCode` | `GamePlayerModels.AdminSetCountryCodeRequestData` | `setCountryCodeAsync(...)` | `GamePlayerResponseModels.SetCountryCodeOperationResponse` | `gamePlayer.setCountryCode.adminSelfEnable` |
|
|
199
|
+
| `setCustomData` | `GamePlayerModels.AdminSetCustomDataRequestData` | `setCustomDataAsync(...)` | `GamePlayerResponseModels.SetCustomDataOperationResponse` | `gamePlayer.setCustomData.adminSelfEnable` |
|
|
200
|
+
| `setDisplayName` | `GamePlayerModels.AdminSetDisplayNameRequestData` | `setDisplayNameAsync(...)` | `GamePlayerResponseModels.SetDisplayNameOperationResponse` | `gamePlayer.setDisplayName.adminSelfEnable` |
|
|
201
|
+
| `setPlayerBan` | `GamePlayerModels.AdminSetPlayerBanRequestData` | `setPlayerBanAsync(...)` | `GamePlayerResponseModels.SetPlayerBanOperationResponse` | `gamePlayer.setPlayerBan.adminSelfEnable` |
|
|
202
|
+
| `changePlayerCurrency` | `GamePlayerModels.AdminChangePlayerCurrencyRequestData` | `changePlayerCurrencyAsync(...)` | `GamePlayerResponseModels.ChangePlayerCurrencyOperationResponse` | `gamePlayer.changePlayerCurrency.adminSelfEnable` |
|
|
203
|
+
| `setPlayerData` | `GamePlayerModels.AdminSetPlayerDataRequestData` | `setPlayerDataAsync(...)` | `GamePlayerResponseModels.SetPlayerDataOperationResponse` | `gamePlayer.setPlayerData.adminSelfEnable` |
|
|
204
|
+
| `changePlayerStatistics` | `GamePlayerModels.AdminChangePlayerStatisticsRequestData` | `changePlayerStatisticsAsync(...)` | `GamePlayerResponseModels.ChangePlayerStatisticsOperationResponse` | `gamePlayer.changePlayerStatistics.adminSelfEnable` |
|
|
205
|
+
| `setTag` | `GamePlayerModels.AdminSetTagRequestData` | `setTagAsync(...)` | `GamePlayerResponseModels.SetTagOperationResponse` | `gamePlayer.setTag.adminSelfEnable` |
|
|
206
|
+
| `getCurrencyLeaderboard` | `GamePlayerModels.AdminGetCurrencyLeaderboardRequestData` | `getCurrencyLeaderboardAsync(...)` | `GamePlayerResponseModels.GetCurrencyLeaderboardOperationResponse` | `gamePlayer.getCurrencyLeaderboard.adminSelfEnable` |
|
|
207
|
+
| `getLastLoginLeaderboard` | `GamePlayerModels.AdminGetLastLoginLeaderboardRequestData` | `getLastLoginLeaderboardAsync(...)` | `GamePlayerResponseModels.GetLastLoginLeaderboardOperationResponse` | `gamePlayer.getLastLoginLeaderboard.adminSelfEnable` |
|
|
208
|
+
| `getCreateLeaderboard` | `GamePlayerModels.AdminGetCreateLeaderboardRequestData` | `getCreateLeaderboardAsync(...)` | `GamePlayerResponseModels.GetCreateLeaderboardOperationResponse` | `gamePlayer.getCreateLeaderboard.adminSelfEnable` |
|
|
209
|
+
| `getStatisticsLog` | `GamePlayerModels.AdminGetStatisticsLogRequestData` | `getStatisticsLogAsync(...)` | `GamePlayerResponseModels.GetStatisticsLogOperationResponse` | `gamePlayer.getStatisticsLog.adminSelfEnable` |
|
|
210
|
+
| `getCurrencyLog` | `GamePlayerModels.AdminGetCurrencyLogRequestData` | `getCurrencyLogAsync(...)` | `GamePlayerResponseModels.GetCurrencyLogOperationResponse` | `gamePlayer.getCurrencyLog.adminSelfEnable` |
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
## Ví dụ tối thiểu
|
|
214
|
+
|
|
215
|
+
```ts
|
|
216
|
+
import { GNNetwork, ReturnCode, ErrorCode } from "@xmobitea/gn-typescript-client";
|
|
217
|
+
|
|
218
|
+
// requestData: GamePlayerModels.AddPlayerFriendRequestData đã build theo dto/GAME_PLAYER.md
|
|
219
|
+
const res = await GNNetwork.gamePlayer.addPlayerFriendAsync(requestData);
|
|
220
|
+
if (res.returnCode !== ReturnCode.Ok) return;
|
|
221
|
+
if (res.errorCode !== ErrorCode.Ok) return;
|
|
222
|
+
// res.responseData có typed payload
|
|
223
|
+
```
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
# API Reference: GroupApi
|
|
2
|
+
|
|
3
|
+
Group metadata, member roster, message stream, group-level currency/inventory/statistics.
|
|
4
|
+
|
|
5
|
+
Domain guide: [guides/GROUP.md](../guides/GROUP.md). DTO shapes: [dto/GROUP.md](dto/GROUP.md) hoặc grep [DTO_INDEX.md](DTO_INDEX.md).
|
|
6
|
+
|
|
7
|
+
## Namespaces
|
|
8
|
+
|
|
9
|
+
- `GNNetwork.group` — `RequestRole.Client`
|
|
10
|
+
- `GNNetwork.group.server` — `RequestRole.Server`
|
|
11
|
+
- `GNNetwork.group.admin` — `RequestRole.Admin`
|
|
12
|
+
|
|
13
|
+
## Convention
|
|
14
|
+
|
|
15
|
+
Mỗi method dưới đây có 2 form — callback và `*Async()` Promise. Ưu tiên `*Async()`.
|
|
16
|
+
|
|
17
|
+
```ts
|
|
18
|
+
// Callback
|
|
19
|
+
GNNetwork.group.<method>(requestData, onResponse?, overrideAuthToken?, overrideSecretKey?, customTags?, timeout?);
|
|
20
|
+
|
|
21
|
+
// Async
|
|
22
|
+
const res = await GNNetwork.group.<method>Async(requestData, overrideAuthToken?, overrideSecretKey?, customTags?, timeout?);
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Param chung:
|
|
26
|
+
|
|
27
|
+
| Param | Type | Optional | Notes |
|
|
28
|
+
|-------|------|----------|-------|
|
|
29
|
+
| `requestData` | domain-specific (xem bảng dưới) | no | Payload chính |
|
|
30
|
+
| `onResponse` | `Action1<TResponse>` | yes | Chỉ có ở callback form |
|
|
31
|
+
| `overrideAuthToken` | `string` | yes | Override `authToken` cache cho request này |
|
|
32
|
+
| `overrideSecretKey` | `string` | yes | Override secret key mặc định của route |
|
|
33
|
+
| `customTags` | `GNHashtable` | yes | Tags gắn vào request, backend có thể log/route |
|
|
34
|
+
| `timeout` | `number` | yes | Timeout giây; default = `OperationRequest.defaultTimeOut` |
|
|
35
|
+
|
|
36
|
+
Response class expose field: `returnCode`, `errorCode`, `invalidMembers`, `debugMessage`, `responseData`. Xem [ERROR_HANDLING.md](ERROR_HANDLING.md).
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
## Client methods (`GNNetwork.group.*`)
|
|
40
|
+
|
|
41
|
+
| Method | Request DTO | Async form | Response class | Default Permission Rules | Permission Rules khi truyền `groupId` mà `gamePlayer` đang authenticated và những `characterPlayer` có owner của `gamePlayer` đều không phải là member của `group` này |
|
|
42
|
+
|--------|-------------|------------|----------------|--------------------------|-------------------------------------------------------------------------------|
|
|
43
|
+
| `addMember` | `GroupModels.AddMemberRequestData` | `addMemberAsync(...)` | `GroupResponseModels.AddMemberOperationResponse` | `group.addMember.selfEnable` | `group.addMember.otherSelfEnable` |
|
|
44
|
+
| `addSegment` | `GroupModels.AddSegmentRequestData` | `addSegmentAsync(...)` | `GroupResponseModels.AddSegmentOperationResponse` | `group.addSegment.selfEnable` | `group.addSegment.otherSelfEnable` |
|
|
45
|
+
| `getAvatar` | `GroupModels.GetAvatarRequestData` | `getAvatarAsync(...)` | `GroupResponseModels.GetAvatarOperationResponse` | `group.getAvatar.selfEnable` | `group.getAvatar.otherSelfEnable` |
|
|
46
|
+
| `getCatalogId` | `GroupModels.GetCatalogIdRequestData` | `getCatalogIdAsync(...)` | `GroupResponseModels.GetCatalogIdOperationResponse` | `group.getCatalogId.selfEnable` | `group.getCatalogId.otherSelfEnable` |
|
|
47
|
+
| `getCustomData` | `GroupModels.GetCustomDataRequestData` | `getCustomDataAsync(...)` | `GroupResponseModels.GetCustomDataOperationResponse` | `group.getCustomData.selfEnable` | `group.getCustomData.otherSelfEnable` |
|
|
48
|
+
| `getDisplayName` | `GroupModels.GetDisplayNameRequestData` | `getDisplayNameAsync(...)` | `GroupResponseModels.GetDisplayNameOperationResponse` | `group.getDisplayName.selfEnable` | `group.getDisplayName.otherSelfEnable` |
|
|
49
|
+
| `getGroupCurrency` | `GroupModels.GetGroupCurrencyRequestData` | `getGroupCurrencyAsync(...)` | `GroupResponseModels.GetGroupCurrencyOperationResponse` | `group.getGroupCurrency.selfEnable` | `group.getGroupCurrency.otherSelfEnable` |
|
|
50
|
+
| `getGroupData` | `GroupModels.GetGroupDataRequestData` | `getGroupDataAsync(...)` | `GroupResponseModels.GetGroupDataOperationResponse` | `group.getGroupData.selfEnable` | `group.getGroupData.otherSelfEnable` |
|
|
51
|
+
| `getGroupInformation` | `GroupModels.GetGroupInformationRequestData` | `getGroupInformationAsync(...)` | `GroupResponseModels.GetGroupInformationOperationResponse` | `group.getGroupInformation.selfEnable` | `group.getGroupInformation.otherSelfEnable` |
|
|
52
|
+
| `getGroupInventory` | `GroupModels.GetGroupInventoryRequestData` | `getGroupInventoryAsync(...)` | `GroupResponseModels.GetGroupInventoryOperationResponse` | `group.getGroupInventory.selfEnable` | `group.getGroupInventory.otherSelfEnable` |
|
|
53
|
+
| `getGroupMessage` | `GroupModels.GetGroupMessageRequestData` | `getGroupMessageAsync(...)` | `GroupResponseModels.GetGroupMessageOperationResponse` | `group.getGroupMessage.selfEnable` | `group.getGroupMessage.otherSelfEnable` |
|
|
54
|
+
| `getGroupStatistics` | `GroupModels.GetGroupStatisticsRequestData` | `getGroupStatisticsAsync(...)` | `GroupResponseModels.GetGroupStatisticsOperationResponse` | `group.getGroupStatistics.selfEnable` | `group.getGroupStatistics.otherSelfEnable` |
|
|
55
|
+
| `getGroupsWithDisplayName` | `GroupModels.GetGroupsWithDisplayNameRequestData` | `getGroupsWithDisplayNameAsync(...)` | `GroupResponseModels.GetGroupsWithDisplayNameOperationResponse` | `group.getGroupsWithDisplayName.otherSelfEnable` | |
|
|
56
|
+
| `getGroupsWithSegment` | `GroupModels.GetGroupsWithSegmentRequestData` | `getGroupsWithSegmentAsync(...)` | `GroupResponseModels.GetGroupsWithSegmentOperationResponse` | `group.getGroupsWithSegment.otherSelfEnable` | |
|
|
57
|
+
| `getGroupsWithTag` | `GroupModels.GetGroupsWithTagRequestData` | `getGroupsWithTagAsync(...)` | `GroupResponseModels.GetGroupsWithTagOperationResponse` | `group.getGroupsWithTag.otherSelfEnable` | |
|
|
58
|
+
| `getMembers` | `GroupModels.GetMembersRequestData` | `getMembersAsync(...)` | `GroupResponseModels.GetMembersOperationResponse` | `group.getMembers.selfEnable` | `group.getMembers.otherSelfEnable` |
|
|
59
|
+
| `getRemoveStatus` | `GroupModels.GetRemoveStatusRequestData` | `getRemoveStatusAsync(...)` | `GroupResponseModels.GetRemoveStatusOperationResponse` | `group.getRemoveStatus.selfEnable` | `group.getRemoveStatus.otherSelfEnable` |
|
|
60
|
+
| `getSegment` | `GroupModels.GetSegmentRequestData` | `getSegmentAsync(...)` | `GroupResponseModels.GetSegmentOperationResponse` | `group.getSegment.selfEnable` | `group.getSegment.otherSelfEnable` |
|
|
61
|
+
| `getStatisticsLeaderboardAroundGroup` | `GroupModels.GetStatisticsLeaderboardAroundGroupRequestData` | `getStatisticsLeaderboardAroundGroupAsync(...)` | `GroupResponseModels.GetStatisticsLeaderboardAroundGroupOperationResponse` | `group.getStatisticsLeaderboardAroundGroup.selfEnable` | `group.getStatisticsLeaderboardAroundGroup.otherSelfEnable` |
|
|
62
|
+
| `getStatisticsLeaderboard` | `GroupModels.GetStatisticsLeaderboardRequestData` | `getStatisticsLeaderboardAsync(...)` | `GroupResponseModels.GetStatisticsLeaderboardOperationResponse` | `group.getStatisticsLeaderboard.otherSelfEnable` | |
|
|
63
|
+
| `getTag` | `GroupModels.GetTagRequestData` | `getTagAsync(...)` | `GroupResponseModels.GetTagOperationResponse` | `group.getTag.selfEnable` | `group.getTag.otherSelfEnable` |
|
|
64
|
+
| `getTsCreate` | `GroupModels.GetTsCreateRequestData` | `getTsCreateAsync(...)` | `GroupResponseModels.GetTsCreateOperationResponse` | `group.getTsCreate.selfEnable` | `group.getTsCreate.otherSelfEnable` |
|
|
65
|
+
| `createGroupItem` | `GroupModels.CreateGroupItemRequestData` | `createGroupItemAsync(...)` | `GroupResponseModels.CreateGroupItemOperationResponse` | `group.createGroupItem.selfEnable` | `group.createGroupItem.otherSelfEnable` |
|
|
66
|
+
| `removeGroupItem` | `GroupModels.RemoveGroupItemRequestData` | `removeGroupItemAsync(...)` | `GroupResponseModels.RemoveGroupItemOperationResponse` | `group.removeGroupItem.selfEnable` | `group.removeGroupItem.otherSelfEnable` |
|
|
67
|
+
| `removeMember` | `GroupModels.RemoveMemberRequestData` | `removeMemberAsync(...)` | `GroupResponseModels.RemoveMemberOperationResponse` | `group.removeMember.selfEnable` | `group.removeMember.otherSelfEnable` |
|
|
68
|
+
| `removeSegment` | `GroupModels.RemoveSegmentRequestData` | `removeSegmentAsync(...)` | `GroupResponseModels.RemoveSegmentOperationResponse` | `group.removeSegment.selfEnable` | `group.removeSegment.otherSelfEnable` |
|
|
69
|
+
| `removeTag` | `GroupModels.RemoveTagRequestData` | `removeTagAsync(...)` | `GroupResponseModels.RemoveTagOperationResponse` | `group.removeTag.selfEnable` | `group.removeTag.otherSelfEnable` |
|
|
70
|
+
| `sendGroupMessage` | `GroupModels.SendGroupMessageRequestData` | `sendGroupMessageAsync(...)` | `GroupResponseModels.SendGroupMessageOperationResponse` | `group.sendGroupMessage.selfEnable` | `group.sendGroupMessage.otherSelfEnable` |
|
|
71
|
+
| `setAvatar` | `GroupModels.SetAvatarRequestData` | `setAvatarAsync(...)` | `GroupResponseModels.SetAvatarOperationResponse` | `group.setAvatar.selfEnable` | `group.setAvatar.otherSelfEnable` |
|
|
72
|
+
| `setCustomData` | `GroupModels.SetCustomDataRequestData` | `setCustomDataAsync(...)` | `GroupResponseModels.SetCustomDataOperationResponse` | `group.setCustomData.selfEnable` | `group.setCustomData.otherSelfEnable` |
|
|
73
|
+
| `setDisplayName` | `GroupModels.SetDisplayNameRequestData` | `setDisplayNameAsync(...)` | `GroupResponseModels.SetDisplayNameOperationResponse` | `group.setDisplayName.selfEnable` | `group.setDisplayName.otherSelfEnable` |
|
|
74
|
+
| `changeGroupCurrency` | `GroupModels.ChangeGroupCurrencyRequestData` | `changeGroupCurrencyAsync(...)` | `GroupResponseModels.ChangeGroupCurrencyOperationResponse` | `group.changeGroupCurrency.selfEnable` | `group.changeGroupCurrency.otherSelfEnable` |
|
|
75
|
+
| `setGroupData` | `GroupModels.SetGroupDataRequestData` | `setGroupDataAsync(...)` | `GroupResponseModels.SetGroupDataOperationResponse` | `group.setGroupData.selfEnable` | `group.setGroupData.otherSelfEnable` |
|
|
76
|
+
| `changeGroupStatistics` | `GroupModels.ChangeGroupStatisticsRequestData` | `changeGroupStatisticsAsync(...)` | `GroupResponseModels.ChangeGroupStatisticsOperationResponse` | `group.changeGroupStatistics.selfEnable` | `group.changeGroupStatistics.otherSelfEnable` |
|
|
77
|
+
| `setRemoveStatus` | `GroupModels.SetRemoveStatusRequestData` | `setRemoveStatusAsync(...)` | `GroupResponseModels.SetRemoveStatusOperationResponse` | `group.setRemoveStatus.selfEnable` | `group.setRemoveStatus.otherSelfEnable` |
|
|
78
|
+
| `setTag` | `GroupModels.SetTagRequestData` | `setTagAsync(...)` | `GroupResponseModels.SetTagOperationResponse` | `group.setTag.selfEnable` | `group.setTag.otherSelfEnable` |
|
|
79
|
+
| `getCurrencyLeaderboard` | `GroupModels.GetCurrencyLeaderboardRequestData` | `getCurrencyLeaderboardAsync(...)` | `GroupResponseModels.GetCurrencyLeaderboardOperationResponse` | `group.getCurrencyLeaderboard.otherSelfEnable` | |
|
|
80
|
+
| `getCreateLeaderboard` | `GroupModels.GetCreateLeaderboardRequestData` | `getCreateLeaderboardAsync(...)` | `GroupResponseModels.GetCreateLeaderboardOperationResponse` | `group.getCreateLeaderboard.otherSelfEnable` | |
|
|
81
|
+
| `getStatisticsLog` | `GroupModels.GetStatisticsLogRequestData` | `getStatisticsLogAsync(...)` | `GroupResponseModels.GetStatisticsLogOperationResponse` | `group.getStatisticsLog.selfEnable` | `group.getStatisticsLog.otherSelfEnable` |
|
|
82
|
+
| `getCurrencyLog` | `GroupModels.GetCurrencyLogRequestData` | `getCurrencyLogAsync(...)` | `GroupResponseModels.GetCurrencyLogOperationResponse` | `group.getCurrencyLog.selfEnable` | `group.getCurrencyLog.otherSelfEnable` |
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
## Server methods (`GNNetwork.group.server.*`)
|
|
86
|
+
|
|
87
|
+
| Method | Request DTO | Async form | Response class | Default Permission Rules |
|
|
88
|
+
|--------|-------------|------------|----------------|--------------------------|
|
|
89
|
+
| `addMember` | `GroupModels.ServerAddMemberRequestData` | `addMemberAsync(...)` | `GroupResponseModels.AddMemberOperationResponse` | `group.addMember.serverSelfEnable` |
|
|
90
|
+
| `addSegment` | `GroupModels.ServerAddSegmentRequestData` | `addSegmentAsync(...)` | `GroupResponseModels.AddSegmentOperationResponse` | `group.addSegment.serverSelfEnable` |
|
|
91
|
+
| `getAvatar` | `GroupModels.ServerGetAvatarRequestData` | `getAvatarAsync(...)` | `GroupResponseModels.GetAvatarOperationResponse` | `group.getAvatar.serverSelfEnable` |
|
|
92
|
+
| `getCatalogId` | `GroupModels.ServerGetCatalogIdRequestData` | `getCatalogIdAsync(...)` | `GroupResponseModels.GetCatalogIdOperationResponse` | `group.getCatalogId.serverSelfEnable` |
|
|
93
|
+
| `getCustomData` | `GroupModels.ServerGetCustomDataRequestData` | `getCustomDataAsync(...)` | `GroupResponseModels.GetCustomDataOperationResponse` | `group.getCustomData.serverSelfEnable` |
|
|
94
|
+
| `getDisplayName` | `GroupModels.ServerGetDisplayNameRequestData` | `getDisplayNameAsync(...)` | `GroupResponseModels.GetDisplayNameOperationResponse` | `group.getDisplayName.serverSelfEnable` |
|
|
95
|
+
| `getGroupCurrency` | `GroupModels.ServerGetGroupCurrencyRequestData` | `getGroupCurrencyAsync(...)` | `GroupResponseModels.GetGroupCurrencyOperationResponse` | `group.getGroupCurrency.serverSelfEnable` |
|
|
96
|
+
| `getGroupData` | `GroupModels.ServerGetGroupDataRequestData` | `getGroupDataAsync(...)` | `GroupResponseModels.GetGroupDataOperationResponse` | `group.getGroupData.serverSelfEnable` |
|
|
97
|
+
| `getGroupInformation` | `GroupModels.ServerGetGroupInformationRequestData` | `getGroupInformationAsync(...)` | `GroupResponseModels.GetGroupInformationOperationResponse` | `group.getGroupInformation.serverSelfEnable` |
|
|
98
|
+
| `getGroupInventory` | `GroupModels.ServerGetGroupInventoryRequestData` | `getGroupInventoryAsync(...)` | `GroupResponseModels.GetGroupInventoryOperationResponse` | `group.getGroupInventory.serverSelfEnable` |
|
|
99
|
+
| `getGroupMessage` | `GroupModels.ServerGetGroupMessageRequestData` | `getGroupMessageAsync(...)` | `GroupResponseModels.GetGroupMessageOperationResponse` | `group.getGroupMessage.serverSelfEnable` |
|
|
100
|
+
| `getGroupStatistics` | `GroupModels.ServerGetGroupStatisticsRequestData` | `getGroupStatisticsAsync(...)` | `GroupResponseModels.GetGroupStatisticsOperationResponse` | `group.getGroupStatistics.serverSelfEnable` |
|
|
101
|
+
| `getGroupsWithDisplayName` | `GroupModels.ServerGetGroupsWithDisplayNameRequestData` | `getGroupsWithDisplayNameAsync(...)` | `GroupResponseModels.GetGroupsWithDisplayNameOperationResponse` | `group.getGroupsWithDisplayName.serverSelfEnable` |
|
|
102
|
+
| `getGroupsWithSegment` | `GroupModels.ServerGetGroupsWithSegmentRequestData` | `getGroupsWithSegmentAsync(...)` | `GroupResponseModels.GetGroupsWithSegmentOperationResponse` | `group.getGroupsWithSegment.serverSelfEnable` |
|
|
103
|
+
| `getGroupsWithTag` | `GroupModels.ServerGetGroupsWithTagRequestData` | `getGroupsWithTagAsync(...)` | `GroupResponseModels.GetGroupsWithTagOperationResponse` | `group.getGroupsWithTag.serverSelfEnable` |
|
|
104
|
+
| `getMembers` | `GroupModels.ServerGetMembersRequestData` | `getMembersAsync(...)` | `GroupResponseModels.GetMembersOperationResponse` | `group.getMembers.serverSelfEnable` |
|
|
105
|
+
| `getRemoveStatus` | `GroupModels.ServerGetRemoveStatusRequestData` | `getRemoveStatusAsync(...)` | `GroupResponseModels.GetRemoveStatusOperationResponse` | `group.getRemoveStatus.serverSelfEnable` |
|
|
106
|
+
| `getSegment` | `GroupModels.ServerGetSegmentRequestData` | `getSegmentAsync(...)` | `GroupResponseModels.GetSegmentOperationResponse` | `group.getSegment.serverSelfEnable` |
|
|
107
|
+
| `getStatisticsLeaderboardAroundGroup` | `GroupModels.ServerGetStatisticsLeaderboardAroundGroupRequestData` | `getStatisticsLeaderboardAroundGroupAsync(...)` | `GroupResponseModels.GetStatisticsLeaderboardAroundGroupOperationResponse` | `group.getStatisticsLeaderboardAroundGroup.serverSelfEnable` |
|
|
108
|
+
| `getStatisticsLeaderboard` | `GroupModels.ServerGetStatisticsLeaderboardRequestData` | `getStatisticsLeaderboardAsync(...)` | `GroupResponseModels.GetStatisticsLeaderboardOperationResponse` | `group.getStatisticsLeaderboard.serverSelfEnable` |
|
|
109
|
+
| `getTag` | `GroupModels.ServerGetTagRequestData` | `getTagAsync(...)` | `GroupResponseModels.GetTagOperationResponse` | `group.getTag.serverSelfEnable` |
|
|
110
|
+
| `getTsCreate` | `GroupModels.ServerGetTsCreateRequestData` | `getTsCreateAsync(...)` | `GroupResponseModels.GetTsCreateOperationResponse` | `group.getTsCreate.serverSelfEnable` |
|
|
111
|
+
| `createGroupItem` | `GroupModels.ServerCreateGroupItemRequestData` | `createGroupItemAsync(...)` | `GroupResponseModels.CreateGroupItemOperationResponse` | `group.createGroupItem.serverSelfEnable` |
|
|
112
|
+
| `removeGroupItem` | `GroupModels.ServerRemoveGroupItemRequestData` | `removeGroupItemAsync(...)` | `GroupResponseModels.RemoveGroupItemOperationResponse` | `group.removeGroupItem.serverSelfEnable` |
|
|
113
|
+
| `removeMember` | `GroupModels.ServerRemoveMemberRequestData` | `removeMemberAsync(...)` | `GroupResponseModels.RemoveMemberOperationResponse` | `group.removeMember.serverSelfEnable` |
|
|
114
|
+
| `removeSegment` | `GroupModels.ServerRemoveSegmentRequestData` | `removeSegmentAsync(...)` | `GroupResponseModels.RemoveSegmentOperationResponse` | `group.removeSegment.serverSelfEnable` |
|
|
115
|
+
| `removeTag` | `GroupModels.ServerRemoveTagRequestData` | `removeTagAsync(...)` | `GroupResponseModels.RemoveTagOperationResponse` | `group.removeTag.serverSelfEnable` |
|
|
116
|
+
| `sendGroupMessage` | `GroupModels.ServerSendGroupMessageRequestData` | `sendGroupMessageAsync(...)` | `GroupResponseModels.SendGroupMessageOperationResponse` | `group.sendGroupMessage.serverSelfEnable` |
|
|
117
|
+
| `setAvatar` | `GroupModels.ServerSetAvatarRequestData` | `setAvatarAsync(...)` | `GroupResponseModels.SetAvatarOperationResponse` | `group.setAvatar.serverSelfEnable` |
|
|
118
|
+
| `setCustomData` | `GroupModels.ServerSetCustomDataRequestData` | `setCustomDataAsync(...)` | `GroupResponseModels.SetCustomDataOperationResponse` | `group.setCustomData.serverSelfEnable` |
|
|
119
|
+
| `setDisplayName` | `GroupModels.ServerSetDisplayNameRequestData` | `setDisplayNameAsync(...)` | `GroupResponseModels.SetDisplayNameOperationResponse` | `group.setDisplayName.serverSelfEnable` |
|
|
120
|
+
| `changeGroupCurrency` | `GroupModels.ServerChangeGroupCurrencyRequestData` | `changeGroupCurrencyAsync(...)` | `GroupResponseModels.ChangeGroupCurrencyOperationResponse` | `group.changeGroupCurrency.serverSelfEnable` |
|
|
121
|
+
| `setGroupData` | `GroupModels.ServerSetGroupDataRequestData` | `setGroupDataAsync(...)` | `GroupResponseModels.SetGroupDataOperationResponse` | `group.setGroupData.serverSelfEnable` |
|
|
122
|
+
| `changeGroupStatistics` | `GroupModels.ServerChangeGroupStatisticsRequestData` | `changeGroupStatisticsAsync(...)` | `GroupResponseModels.ChangeGroupStatisticsOperationResponse` | `group.changeGroupStatistics.serverSelfEnable` |
|
|
123
|
+
| `setRemoveStatus` | `GroupModels.ServerSetRemoveStatusRequestData` | `setRemoveStatusAsync(...)` | `GroupResponseModels.SetRemoveStatusOperationResponse` | `group.setRemoveStatus.serverSelfEnable` |
|
|
124
|
+
| `setTag` | `GroupModels.ServerSetTagRequestData` | `setTagAsync(...)` | `GroupResponseModels.SetTagOperationResponse` | `group.setTag.serverSelfEnable` |
|
|
125
|
+
| `getCurrencyLeaderboard` | `GroupModels.ServerGetCurrencyLeaderboardRequestData` | `getCurrencyLeaderboardAsync(...)` | `GroupResponseModels.GetCurrencyLeaderboardOperationResponse` | `group.getCurrencyLeaderboard.serverSelfEnable` |
|
|
126
|
+
| `getCreateLeaderboard` | `GroupModels.ServerGetCreateLeaderboardRequestData` | `getCreateLeaderboardAsync(...)` | `GroupResponseModels.GetCreateLeaderboardOperationResponse` | `group.getCreateLeaderboard.serverSelfEnable` |
|
|
127
|
+
| `getStatisticsLog` | `GroupModels.ServerGetStatisticsLogRequestData` | `getStatisticsLogAsync(...)` | `GroupResponseModels.GetStatisticsLogOperationResponse` | `group.getStatisticsLog.serverSelfEnable` |
|
|
128
|
+
| `getCurrencyLog` | `GroupModels.ServerGetCurrencyLogRequestData` | `getCurrencyLogAsync(...)` | `GroupResponseModels.GetCurrencyLogOperationResponse` | `group.getCurrencyLog.serverSelfEnable` |
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
## Admin methods (`GNNetwork.group.admin.*`)
|
|
132
|
+
|
|
133
|
+
| Method | Request DTO | Async form | Response class | Default Permission Rules |
|
|
134
|
+
|--------|-------------|------------|----------------|--------------------------|
|
|
135
|
+
| `addMember` | `GroupModels.AdminAddMemberRequestData` | `addMemberAsync(...)` | `GroupResponseModels.AddMemberOperationResponse` | `group.addMember.adminSelfEnable` |
|
|
136
|
+
| `addSegment` | `GroupModels.AdminAddSegmentRequestData` | `addSegmentAsync(...)` | `GroupResponseModels.AddSegmentOperationResponse` | `group.addSegment.adminSelfEnable` |
|
|
137
|
+
| `getAvatar` | `GroupModels.AdminGetAvatarRequestData` | `getAvatarAsync(...)` | `GroupResponseModels.GetAvatarOperationResponse` | `group.getAvatar.adminSelfEnable` |
|
|
138
|
+
| `getCatalogId` | `GroupModels.AdminGetCatalogIdRequestData` | `getCatalogIdAsync(...)` | `GroupResponseModels.GetCatalogIdOperationResponse` | `group.getCatalogId.adminSelfEnable` |
|
|
139
|
+
| `getCustomData` | `GroupModels.AdminGetCustomDataRequestData` | `getCustomDataAsync(...)` | `GroupResponseModels.GetCustomDataOperationResponse` | `group.getCustomData.adminSelfEnable` |
|
|
140
|
+
| `getDisplayName` | `GroupModels.AdminGetDisplayNameRequestData` | `getDisplayNameAsync(...)` | `GroupResponseModels.GetDisplayNameOperationResponse` | `group.getDisplayName.adminSelfEnable` |
|
|
141
|
+
| `getGroupCurrency` | `GroupModels.AdminGetGroupCurrencyRequestData` | `getGroupCurrencyAsync(...)` | `GroupResponseModels.GetGroupCurrencyOperationResponse` | `group.getGroupCurrency.adminSelfEnable` |
|
|
142
|
+
| `getGroupData` | `GroupModels.AdminGetGroupDataRequestData` | `getGroupDataAsync(...)` | `GroupResponseModels.GetGroupDataOperationResponse` | `group.getGroupData.adminSelfEnable` |
|
|
143
|
+
| `getGroupInformation` | `GroupModels.AdminGetGroupInformationRequestData` | `getGroupInformationAsync(...)` | `GroupResponseModels.GetGroupInformationOperationResponse` | `group.getGroupInformation.adminSelfEnable` |
|
|
144
|
+
| `getGroupInventory` | `GroupModels.AdminGetGroupInventoryRequestData` | `getGroupInventoryAsync(...)` | `GroupResponseModels.GetGroupInventoryOperationResponse` | `group.getGroupInventory.adminSelfEnable` |
|
|
145
|
+
| `getGroupMessage` | `GroupModels.AdminGetGroupMessageRequestData` | `getGroupMessageAsync(...)` | `GroupResponseModels.GetGroupMessageOperationResponse` | `group.getGroupMessage.adminSelfEnable` |
|
|
146
|
+
| `getGroupStatistics` | `GroupModels.AdminGetGroupStatisticsRequestData` | `getGroupStatisticsAsync(...)` | `GroupResponseModels.GetGroupStatisticsOperationResponse` | `group.getGroupStatistics.adminSelfEnable` |
|
|
147
|
+
| `getGroupsWithDisplayName` | `GroupModels.AdminGetGroupsWithDisplayNameRequestData` | `getGroupsWithDisplayNameAsync(...)` | `GroupResponseModels.GetGroupsWithDisplayNameOperationResponse` | `group.getGroupsWithDisplayName.adminSelfEnable` |
|
|
148
|
+
| `getGroupsWithSegment` | `GroupModels.AdminGetGroupsWithSegmentRequestData` | `getGroupsWithSegmentAsync(...)` | `GroupResponseModels.GetGroupsWithSegmentOperationResponse` | `group.getGroupsWithSegment.adminSelfEnable` |
|
|
149
|
+
| `getGroupsWithTag` | `GroupModels.AdminGetGroupsWithTagRequestData` | `getGroupsWithTagAsync(...)` | `GroupResponseModels.GetGroupsWithTagOperationResponse` | `group.getGroupsWithTag.adminSelfEnable` |
|
|
150
|
+
| `getMembers` | `GroupModels.AdminGetMembersRequestData` | `getMembersAsync(...)` | `GroupResponseModels.GetMembersOperationResponse` | `group.getMembers.adminSelfEnable` |
|
|
151
|
+
| `getRemoveStatus` | `GroupModels.AdminGetRemoveStatusRequestData` | `getRemoveStatusAsync(...)` | `GroupResponseModels.GetRemoveStatusOperationResponse` | `group.getRemoveStatus.adminSelfEnable` |
|
|
152
|
+
| `getSegment` | `GroupModels.AdminGetSegmentRequestData` | `getSegmentAsync(...)` | `GroupResponseModels.GetSegmentOperationResponse` | `group.getSegment.adminSelfEnable` |
|
|
153
|
+
| `getStatisticsLeaderboardAroundGroup` | `GroupModels.AdminGetStatisticsLeaderboardAroundGroupRequestData` | `getStatisticsLeaderboardAroundGroupAsync(...)` | `GroupResponseModels.GetStatisticsLeaderboardAroundGroupOperationResponse` | `group.getStatisticsLeaderboardAroundGroup.adminSelfEnable` |
|
|
154
|
+
| `getStatisticsLeaderboard` | `GroupModels.AdminGetStatisticsLeaderboardRequestData` | `getStatisticsLeaderboardAsync(...)` | `GroupResponseModels.GetStatisticsLeaderboardOperationResponse` | `group.getStatisticsLeaderboard.adminSelfEnable` |
|
|
155
|
+
| `getTag` | `GroupModels.AdminGetTagRequestData` | `getTagAsync(...)` | `GroupResponseModels.GetTagOperationResponse` | `group.getTag.adminSelfEnable` |
|
|
156
|
+
| `getTsCreate` | `GroupModels.AdminGetTsCreateRequestData` | `getTsCreateAsync(...)` | `GroupResponseModels.GetTsCreateOperationResponse` | `group.getTsCreate.adminSelfEnable` |
|
|
157
|
+
| `createGroupItem` | `GroupModels.AdminCreateGroupItemRequestData` | `createGroupItemAsync(...)` | `GroupResponseModels.CreateGroupItemOperationResponse` | `group.createGroupItem.adminSelfEnable` |
|
|
158
|
+
| `removeGroupItem` | `GroupModels.AdminRemoveGroupItemRequestData` | `removeGroupItemAsync(...)` | `GroupResponseModels.RemoveGroupItemOperationResponse` | `group.removeGroupItem.adminSelfEnable` |
|
|
159
|
+
| `removeMember` | `GroupModels.AdminRemoveMemberRequestData` | `removeMemberAsync(...)` | `GroupResponseModels.RemoveMemberOperationResponse` | `group.removeMember.adminSelfEnable` |
|
|
160
|
+
| `removeSegment` | `GroupModels.AdminRemoveSegmentRequestData` | `removeSegmentAsync(...)` | `GroupResponseModels.RemoveSegmentOperationResponse` | `group.removeSegment.adminSelfEnable` |
|
|
161
|
+
| `removeTag` | `GroupModels.AdminRemoveTagRequestData` | `removeTagAsync(...)` | `GroupResponseModels.RemoveTagOperationResponse` | `group.removeTag.adminSelfEnable` |
|
|
162
|
+
| `sendGroupMessage` | `GroupModels.AdminSendGroupMessageRequestData` | `sendGroupMessageAsync(...)` | `GroupResponseModels.SendGroupMessageOperationResponse` | `group.sendGroupMessage.adminSelfEnable` |
|
|
163
|
+
| `setAvatar` | `GroupModels.AdminSetAvatarRequestData` | `setAvatarAsync(...)` | `GroupResponseModels.SetAvatarOperationResponse` | `group.setAvatar.adminSelfEnable` |
|
|
164
|
+
| `setCustomData` | `GroupModels.AdminSetCustomDataRequestData` | `setCustomDataAsync(...)` | `GroupResponseModels.SetCustomDataOperationResponse` | `group.setCustomData.adminSelfEnable` |
|
|
165
|
+
| `setDisplayName` | `GroupModels.AdminSetDisplayNameRequestData` | `setDisplayNameAsync(...)` | `GroupResponseModels.SetDisplayNameOperationResponse` | `group.setDisplayName.adminSelfEnable` |
|
|
166
|
+
| `changeGroupCurrency` | `GroupModels.AdminChangeGroupCurrencyRequestData` | `changeGroupCurrencyAsync(...)` | `GroupResponseModels.ChangeGroupCurrencyOperationResponse` | `group.changeGroupCurrency.adminSelfEnable` |
|
|
167
|
+
| `setGroupData` | `GroupModels.AdminSetGroupDataRequestData` | `setGroupDataAsync(...)` | `GroupResponseModels.SetGroupDataOperationResponse` | `group.setGroupData.adminSelfEnable` |
|
|
168
|
+
| `changeGroupStatistics` | `GroupModels.AdminChangeGroupStatisticsRequestData` | `changeGroupStatisticsAsync(...)` | `GroupResponseModels.ChangeGroupStatisticsOperationResponse` | `group.changeGroupStatistics.adminSelfEnable` |
|
|
169
|
+
| `setRemoveStatus` | `GroupModels.AdminSetRemoveStatusRequestData` | `setRemoveStatusAsync(...)` | `GroupResponseModels.SetRemoveStatusOperationResponse` | `group.setRemoveStatus.adminSelfEnable` |
|
|
170
|
+
| `setTag` | `GroupModels.AdminSetTagRequestData` | `setTagAsync(...)` | `GroupResponseModels.SetTagOperationResponse` | `group.setTag.adminSelfEnable` |
|
|
171
|
+
| `getCurrencyLeaderboard` | `GroupModels.AdminGetCurrencyLeaderboardRequestData` | `getCurrencyLeaderboardAsync(...)` | `GroupResponseModels.GetCurrencyLeaderboardOperationResponse` | `group.getCurrencyLeaderboard.adminSelfEnable` |
|
|
172
|
+
| `getCreateLeaderboard` | `GroupModels.AdminGetCreateLeaderboardRequestData` | `getCreateLeaderboardAsync(...)` | `GroupResponseModels.GetCreateLeaderboardOperationResponse` | `group.getCreateLeaderboard.adminSelfEnable` |
|
|
173
|
+
| `getStatisticsLog` | `GroupModels.AdminGetStatisticsLogRequestData` | `getStatisticsLogAsync(...)` | `GroupResponseModels.GetStatisticsLogOperationResponse` | `group.getStatisticsLog.adminSelfEnable` |
|
|
174
|
+
| `getCurrencyLog` | `GroupModels.AdminGetCurrencyLogRequestData` | `getCurrencyLogAsync(...)` | `GroupResponseModels.GetCurrencyLogOperationResponse` | `group.getCurrencyLog.adminSelfEnable` |
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
## Ví dụ tối thiểu
|
|
178
|
+
|
|
179
|
+
```ts
|
|
180
|
+
import { GNNetwork, ReturnCode, ErrorCode } from "@xmobitea/gn-typescript-client";
|
|
181
|
+
|
|
182
|
+
// requestData: GroupModels.AddMemberRequestData đã build theo dto/GROUP.md
|
|
183
|
+
const res = await GNNetwork.group.addMemberAsync(requestData);
|
|
184
|
+
if (res.returnCode !== ReturnCode.Ok) return;
|
|
185
|
+
if (res.errorCode !== ErrorCode.Ok) return;
|
|
186
|
+
// res.responseData có typed payload
|
|
187
|
+
```
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# API Reference Index
|
|
2
|
+
|
|
3
|
+
Tổng cộng **945** public async method trên **11 API group**. Mỗi group có 1 file reference riêng (bảng method + request DTO + async form + response class).
|
|
4
|
+
|
|
5
|
+
Các khái niệm chung (áp dụng cho mọi group):
|
|
6
|
+
|
|
7
|
+
- Namespace gốc: `GNNetwork.<group>` (role `Client`); một số group có thêm `.server` (`Server`) và `.admin` (`Admin`).
|
|
8
|
+
- Mỗi method có 2 form: callback (`method(data, onResponse?, ...)`) và Promise (`methodAsync(data, ...)`). Ưu tiên `*Async()`.
|
|
9
|
+
- Param chung của mọi method: `(requestData, onResponse?, overrideAuthToken?, overrideSecretKey?, customTags?, timeout?)` — xem chi tiết trong từng file.
|
|
10
|
+
- Response class expose field PUBLIC: `returnCode`, `errorCode`, `invalidMembers`, `debugMessage`, `responseData`. Check 2 tầng (`ReturnCode` → `ErrorCode`); xem [ERROR_HANDLING.md](ERROR_HANDLING.md).
|
|
11
|
+
- Enum value cụ thể: [ENUMS.md](ENUMS.md). Config SDK: [CONFIG.md](CONFIG.md). Permission flags: [PERMISSION_RULES.md](PERMISSION_RULES.md). Realtime event: [EVENTS.md](EVENTS.md).
|
|
12
|
+
|
|
13
|
+
## API groups
|
|
14
|
+
|
|
15
|
+
| Group | File reference | Namespaces | Public methods | Chịu trách nhiệm |
|
|
16
|
+
|-------|----------------|------------|----------------|------------------|
|
|
17
|
+
| Authenticate | [API_AUTHENTICATE.md](API_AUTHENTICATE.md) | `authenticate` | 18 | Player login (account, social, device id), register, refresh auth token. |
|
|
18
|
+
| CharacterPlayer | [API_CHARACTER_PLAYER.md](API_CHARACTER_PLAYER.md) | `characterPlayer`, `.server`, `.admin` | 159 (53/53/53) | Character-level gameplay: profile, inventory relation, friend/group relation, statistics, currency, segment, tag. |
|
|
19
|
+
| CloudScript | [API_CLOUDSCRIPT.md](API_CLOUDSCRIPT.md) | `cloudScript`, `.server`, `.admin` | 15 (5/5/5) | CloudScript function add/edit/execute + version/listing. |
|
|
20
|
+
| Content | [API_CONTENT.md](API_CONTENT.md) | `content`, `.server`, `.admin` | 21 (7/7/7) | Content data key-value, file upload info, download token. |
|
|
21
|
+
| Dashboard | [API_DASHBOARD.md](API_DASHBOARD.md) | `dashboard` | 26 | Admin login, game/admin account/secret management, analytics, server log, maintenance tools. Dùng `RequestRole.Client` transport; admin context resolve từ auth token. |
|
|
22
|
+
| GamePlayer | [API_GAME_PLAYER.md](API_GAME_PLAYER.md) | `gamePlayer`, `.server`, `.admin` | 156 (52/52/52) | Game-player profile, friend/group relation, currency, statistics, segment, tag, social identity. |
|
|
23
|
+
| Group | [API_GROUP.md](API_GROUP.md) | `group`, `.server`, `.admin` | 120 (40/40/40) | Group metadata, member roster, message stream, group-level currency/inventory/statistics. |
|
|
24
|
+
| Inventory | [API_INVENTORY.md](API_INVENTORY.md) | `inventory`, `.server`, `.admin` | 102 (34/34/34) | Inventory item metadata, ownership, amount, statistics, activity log. |
|
|
25
|
+
| MasterPlayer | [API_MASTER_PLAYER.md](API_MASTER_PLAYER.md) | `masterPlayer`, `.server`, `.admin` | 256 (86/85/85) | Master-player account: identity linking, profile, contact info, external providers. |
|
|
26
|
+
| Multiplayer | [API_MULTIPLAYER.md](API_MULTIPLAYER.md) | `multiplayer`, `.server`, `.admin` | 30 (10/10/10) | Matchmaking ticket lifecycle, queue statistics, match query. |
|
|
27
|
+
| StoreInventory | [API_STORE_INVENTORY.md](API_STORE_INVENTORY.md) | `storeInventory`, `.server`, `.admin` | 42 (14/14/14) | Store catalog, buy/present, receipt validation, store log. |
|
|
28
|
+
|
|
29
|
+
Format count: `client/server/admin`. Nếu chỉ có 1 số → chỉ có client variant.
|
|
30
|
+
|
|
31
|
+
## Cách đọc file reference
|
|
32
|
+
|
|
33
|
+
Mỗi `API_<GROUP>.md` có:
|
|
34
|
+
|
|
35
|
+
1. **Namespaces** — danh sách namespace + role transport.
|
|
36
|
+
2. **Convention** — template signature chung + param table.
|
|
37
|
+
3. **Method tables** — 1 bảng cho client, và (nếu có) 1 bảng cho server + 1 cho admin. Mỗi hàng: `Method | Request DTO | Async form | Response class`.
|
|
38
|
+
4. **Ví dụ tối thiểu** — snippet `*Async()` đầu tiên của group với check `returnCode` + `errorCode`.
|
|
39
|
+
|
|
40
|
+
DTO shape (field-by-field) không inline trong API reference — xem [DTO_INDEX.md](DTO_INDEX.md) và thư mục [dto/](dto/).
|
|
41
|
+
|
|
42
|
+
## Khi nào dùng `server` / `admin` variant?
|
|
43
|
+
|
|
44
|
+
- `.server` (role `Server`) — trusted backend-to-backend call, ví dụ CloudScript runtime gọi SDK, hoặc backend microservice grant item cho player khác.
|
|
45
|
+
- `.admin` (role `Admin`) — admin tool / dashboard script mutate state bất kỳ player.
|
|
46
|
+
- Không có `.server` / `.admin` namespace nghĩa là group đó chỉ expose cho client (hoặc admin flow đã wrap trong namespace riêng, ví dụ `dashboard`).
|
|
47
|
+
|
|
48
|
+
Xem [AI_CHEATSHEET.md](../AI_CHEATSHEET.md#2-decision-tree-tôi-cần-làm-gì) để chọn đúng API group + [CONFIG.md](CONFIG.md) cho secret key config.
|
|
49
|
+
|
|
50
|
+
## Liên kết nhanh
|
|
51
|
+
|
|
52
|
+
- Error / return code → [ERROR_HANDLING.md](ERROR_HANDLING.md)
|
|
53
|
+
- Enum value cụ thể → [ENUMS.md](ENUMS.md)
|
|
54
|
+
- Permission route/flag → [PERMISSION_RULES.md](PERMISSION_RULES.md)
|
|
55
|
+
- Config `GNServerSettings` → [CONFIG.md](CONFIG.md)
|
|
56
|
+
- Realtime event handler → [EVENTS.md](EVENTS.md)
|
|
57
|
+
- Kịch bản end-to-end → [../COOKBOOK.md](../COOKBOOK.md)
|