UNPKG

@xmobitea/gn-typescript-client

Version:

GearN Typescript Client SDK by XmobiTea (Pro)

261 lines (260 loc) 12.6 kB
const VERSION = "2.6"; import { GNDebug } from "./logger/GNDebug"; import { GNSupport } from "./helper/GNSupport"; import { NetworkingPeer } from "./networking/NetworkingPeer"; import { CodeHelper } from "./helper/CodeHelper"; import store from "store"; import { ServiceUpdate } from "./typescript/ServiceUpdate"; import { AuthenticateApi } from "./GNNetworkAuthenticateApi"; import { CharacterPlayerApi } from "./GNNetworkCharacterPlayerApi"; import { ContentApi } from "./GNNetworkContentApi"; import { DashboardApi } from "./GNNetworkDashboardApi"; import { GamePlayerApi } from "./GNNetworkGamePlayerApi"; import { GroupApi } from "./GNNetworkGroupApi"; import { InventoryApi } from "./GNNetworkInventoryApi"; import { MasterPlayerApi } from "./GNNetworkMasterPlayerApi"; import { StoreInventoryApi } from "./GNNetworkStoreInventoryApi"; import { ConverterService } from "./helper/ConverterService"; import { MultiplayerApi } from "./GNNetworkMultiplayerApi"; import { CloudScriptApi } from "./GNNetworkCloudScriptApi"; export class GNNetwork { static getGNServerSettings() { return GNNetwork.gnServerSettings; } static getPing() { return GNNetwork.peer != null ? GNNetwork.peer.getPing() : -1; } static getSocketSId() { return GNNetwork.peer != null ? GNNetwork.peer.getClientId() : ""; } static sendRequestAuthSocket() { return GNNetwork.peer.sendRequestAuthSocket(); } static isSocketConnected() { let socketSId = GNNetwork.getSocketSId(); if (socketSId) return true; return false; } static getServerTimestamp() { return GNNetwork.peer != null ? GNNetwork.peer.getServerTimestamp() : new Date().getUTCMilliseconds(); } static getAuthenticateStatus() { return GNNetwork.peer.authenticateStatus; } static getGameId() { return GNNetwork.peer.gameId; } static getPlatform() { return 17; } static init(gnServerSettings) { if (GNNetwork.gnServerSettings != null) { GNDebug.log("GNNetwork has been init!"); return; } GNSupport.init(); CodeHelper.init(); ConverterService.init(); GNNetwork.gnServerSettings = gnServerSettings; GNNetwork.initServerSettings(); GNNetwork.initGNDebug(); GNDebug.log("GNNetwork init on " + (GNSupport.isBrowser() ? "browser." : "server.") + " Version: " + GNNetwork.getClientSdkVersion()); GNNetwork.initGNSocketObject(); GNNetwork.peer.authenticateStatus.setAuthToken(store.get(GNNetwork.AUTH_TOKEN_KEY, "")); GNNetwork.peer.authenticateStatus.setUserId(store.get(GNNetwork.USER_ID_KEY, "")); GNNetwork.peer.gameId = store.get(GNNetwork.GAME_ID_KEY, ""); GNNetwork.authenticate = new AuthenticateApi(); GNNetwork.characterPlayer = new CharacterPlayerApi(); GNNetwork.content = new ContentApi(); GNNetwork.dashboard = new DashboardApi(); GNNetwork.gamePlayer = new GamePlayerApi(); GNNetwork.group = new GroupApi(); GNNetwork.inventory = new InventoryApi(); GNNetwork.masterPlayer = new MasterPlayerApi(); GNNetwork.storeInventory = new StoreInventoryApi(); GNNetwork.multiplayer = new MultiplayerApi(); GNNetwork.cloudScript = new CloudScriptApi(); } static setNewAuthenticateStatus(authenticateStatus) { store.set(GNNetwork.AUTH_TOKEN_KEY, authenticateStatus.getAuthToken()); store.set(GNNetwork.USER_ID_KEY, authenticateStatus.getUserId()); GNNetwork.peer.authenticateStatus.setAuthToken(authenticateStatus.getAuthToken()); GNNetwork.peer.authenticateStatus.setUserId(authenticateStatus.getUserId()); } static setGameId(gameId) { store.set(GNNetwork.GAME_ID_KEY, gameId); GNNetwork.peer.gameId = gameId; } static getClientSdkVersion() { return VERSION; } static initServerSettings() { // gnServerSettings = Resources.Load(GNServerSettings.ResourcesPath) as GNServerSettings; // if (gnServerSettings == null) // { // #if UNITY_EDITOR // UnityEditor.EditorApplication.ExecuteMenuItem("XmobiTea GN/Open Settings"); // gnServerSettings = Resources.Load(GNServerSettings.ResourcesPath) as GNServerSettings; // if (gnServerSettings == null) throw new NullReferenceException("Null GN Server Settings, please find it now"); // #endif // } } static initGNDebug() { if (GNNetwork.gnServerSettings == null) throw new Error("Null GN Server Settings, please find it now"); GNDebug.setLogType(GNNetwork.gnServerSettings.getLogType()); } static initGNSocketObject() { let peer = new NetworkingPeer(); peer.initPeer(); GNNetwork.peer = peer; let serviceUpdate = new ServiceUpdate(); serviceUpdate.peer = peer; serviceUpdate.run(); } static sendViaSocket(requestType, role, request, onResponse, overrideAuthToken, overrideSecretKey, customTags) { GNNetwork.peer.sendViaSocket(requestType, role, request, onResponse, overrideAuthToken, overrideSecretKey, customTags); } static async sendViaSocketAsync(requestType, role, request, overrideAuthToken, overrideSecretKey, customTags) { return new Promise((resolve) => { GNNetwork.sendViaSocket(requestType, role, request, (response) => { resolve(response); }, overrideAuthToken, overrideSecretKey, customTags); }); } static sendViaHttp(requestType, role, request, onResponse, overrideAuthToken, overrideSecretKey, customTags) { GNNetwork.peer.sendViaHttp(requestType, role, request, onResponse, overrideAuthToken, overrideSecretKey, customTags); } static async sendViaHttpAsync(requestType, role, request, overrideAuthToken, overrideSecretKey, customTags) { return new Promise((resolve) => { GNNetwork.sendViaHttp(requestType, role, request, (response) => { resolve(response); }, overrideAuthToken, overrideSecretKey, customTags); }); } static sendViaSocketTRequestTResponse(request, onResponse = null, overrideAuthToken, overrideSecretKey, customTags, customOperationResponseCls) { GNNetwork.sendViaSocketTResponse(request.getRequestType(), request.getRole(), request.build(), onResponse, overrideAuthToken, overrideSecretKey, customTags, customOperationResponseCls); } static async sendViaSocketTRequestTResponseAsync(request, overrideAuthToken, overrideSecretKey, customTags, customOperationResponseCls) { return new Promise((resolve) => { GNNetwork.sendViaSocketTRequestTResponse(request, (response) => { resolve(response); }, overrideAuthToken, overrideSecretKey, customTags, customOperationResponseCls); }); } static sendViaHttpTRequestTResponse(request, onResponse = null, overrideAuthToken, overrideSecretKey, customTags, customOperationResponseCls) { GNNetwork.sendViaHttpTResponse(request.getRequestType(), request.getRole(), request.build(), onResponse, overrideAuthToken, overrideSecretKey, customTags, customOperationResponseCls); } static async sendViaHttpTRequestTResponseAsync(request, overrideAuthToken, overrideSecretKey, customTags, customOperationResponseCls) { return new Promise((resolve) => { GNNetwork.sendViaHttpTRequestTResponse(request, (response) => { resolve(response); }, overrideAuthToken, overrideSecretKey, customTags, customOperationResponseCls); }); } static sendViaSocketTResponse(requestType, role, request, onResponse = null, overrideAuthToken = null, overrideSecretKey = null, customTags = null, customOperationResponseCls) { GNNetwork.sendViaSocket(requestType, role, request, response => { if (response == null) return; let customOperationResponse = new customOperationResponseCls(); customOperationResponse.setupOperationResponse(response); if (onResponse != null) onResponse(customOperationResponse); }, overrideAuthToken, overrideSecretKey, customTags); } static async sendViaSocketTResponseAsync(requestType, role, request, overrideAuthToken = null, overrideSecretKey = null, customTags = null, customOperationResponseCls) { return new Promise((resolve) => { GNNetwork.sendViaSocketTResponse(requestType, role, request, (response) => { resolve(response); }, overrideAuthToken, overrideSecretKey, customTags, customOperationResponseCls); }); } static sendViaHttpTResponse(requestType, role, request, onResponse = null, overrideAuthToken = null, overrideSecretKey = null, customTags = null, customOperationResponseCls) { GNNetwork.sendViaHttp(requestType, role, request, response => { if (response == null) return; let customOperationResponse = new customOperationResponseCls(); customOperationResponse.setupOperationResponse(response); if (onResponse != null) onResponse(customOperationResponse); }, overrideAuthToken, overrideSecretKey, customTags); } static async sendViaHttpTResponseAsync(requestType, role, request, overrideAuthToken = null, overrideSecretKey = null, customTags = null, customOperationResponseCls) { return new Promise((resolve) => { GNNetwork.sendViaHttpTResponse(requestType, role, request, (response) => { resolve(response); }, overrideAuthToken, overrideSecretKey, customTags, customOperationResponseCls); }); } static connectSocket(_onSocketConnect = null) { GNNetwork.peer.connectSocket(_onSocketConnect); } static disconnectSocket(_onSocketDisconnect = null) { GNNetwork.peer.disconnectSocket(_onSocketDisconnect); } static setOnEventHandler(_onEventHandler) { GNNetwork.peer.setOnEventHandler(_onEventHandler); } static subscriberOnConnectHandler(_onConnectHandler) { GNNetwork.peer.setOnConnectHandler(_onConnectHandler); } static subscriberOnDisconnectHandler(_onDisconnectHandler) { GNNetwork.peer.setOnDisconnectHandler(_onDisconnectHandler); } static unscriberOnConnectHandler(_onConnectHandler) { GNNetwork.peer.removeOnConnectHandler(_onConnectHandler); } static unsubscriberOnDisconnectHandler(_onDisconnectHandler) { GNNetwork.peer.removeOnDisconnectHandler(_onDisconnectHandler); } static subscriberServerEventHandler(serverEventHandler) { GNNetwork.peer.subscriberServerEventHandler(serverEventHandler); } static syncTs(onResponse = null) { GNNetwork.peer.syncTs(onResponse); } static syncTsAsync() { return new Promise((resolve) => { GNNetwork.syncTs((response) => { resolve(response); }); }); } static getAuthInfo(authToken, onResponse = null) { GNNetwork.peer.getAuthInfo(authToken, onResponse); } static getAuthInfoAsync(authToken) { return new Promise((resolve) => { GNNetwork.getAuthInfo(authToken, (response) => { resolve(response); }); }); } static healthCheck(onResponse = null) { GNNetwork.peer.healthCheck(onResponse); } static healthCheckAsync() { return new Promise((resolve) => { GNNetwork.healthCheck((response) => { resolve(response); }); }); } static uploadFile(fileId, content, filename, mimetype, onResponse = null) { GNNetwork.peer.uploadFile(fileId, content, filename, mimetype, onResponse); } static uploadFileAsync(fileId, content, filename, mimetype) { return new Promise((resolve) => { GNNetwork.uploadFile(fileId, content, filename, mimetype, (response) => { resolve(response); }); }); } static getDownloadFileUrl(downloadToken) { return GNNetwork.gnServerSettings.getHttpUrl() + "/" + NetworkingPeer.DOWNLOAD_FILE + "/" + downloadToken; } } GNNetwork.AUTH_TOKEN_KEY = "[GearN]_AUTH_TOKEN_KEY"; GNNetwork.USER_ID_KEY = "[GearN]_USER_ID_KEY"; GNNetwork.GAME_ID_KEY = "[GearN]_GAME_ID_KEY";