mirror of
https://github.com/MartinKral/Slash-The-Hordes
synced 2024-12-23 18:28:56 +00:00
Y8 API
This commit is contained in:
parent
f0b4387b77
commit
7d5eac78fb
@ -5,6 +5,7 @@
|
||||
"extends": ["eslint:recommended", "plugin:@typescript-eslint/eslint-recommended", "plugin:@typescript-eslint/recommended", "prettier"],
|
||||
"rules": {
|
||||
"@typescript-eslint/explicit-function-return-type": "warn",
|
||||
"@typescript-eslint/explicit-member-accessibility": "warn"
|
||||
"@typescript-eslint/explicit-member-accessibility": "warn",
|
||||
"@typescript-eslint/no-namespace": "off"
|
||||
}
|
||||
}
|
||||
|
12
assets/Plugins.meta
Normal file
12
assets/Plugins.meta
Normal file
@ -0,0 +1,12 @@
|
||||
{
|
||||
"ver": "1.1.0",
|
||||
"importer": "directory",
|
||||
"imported": true,
|
||||
"uuid": "11ea4add-991c-437e-8f89-2a1204514d87",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {
|
||||
"compressionType": {},
|
||||
"isRemoteBundle": {}
|
||||
}
|
||||
}
|
12
assets/Plugins/Y8.meta
Normal file
12
assets/Plugins/Y8.meta
Normal file
@ -0,0 +1,12 @@
|
||||
{
|
||||
"ver": "1.1.0",
|
||||
"importer": "directory",
|
||||
"imported": true,
|
||||
"uuid": "97380d00-7f7e-46c8-8ced-e468657b8f44",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {
|
||||
"compressionType": {},
|
||||
"isRemoteBundle": {}
|
||||
}
|
||||
}
|
12
assets/Plugins/Y8/Scripts.meta
Normal file
12
assets/Plugins/Y8/Scripts.meta
Normal file
@ -0,0 +1,12 @@
|
||||
{
|
||||
"ver": "1.1.0",
|
||||
"importer": "directory",
|
||||
"imported": true,
|
||||
"uuid": "cf65ddc3-4251-4d88-aaae-3353cb32f0d6",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {
|
||||
"compressionType": {},
|
||||
"isRemoteBundle": {}
|
||||
}
|
||||
}
|
64
assets/Plugins/Y8/Scripts/Y8.ts
Normal file
64
assets/Plugins/Y8/Scripts/Y8.ts
Normal file
@ -0,0 +1,64 @@
|
||||
import { Component, _decorator } from "cc";
|
||||
import { Y8API } from "./Y8def";
|
||||
|
||||
const { ccclass, property } = _decorator;
|
||||
|
||||
@ccclass("Y8")
|
||||
export class Y8 extends Component {
|
||||
@property(String) private appId = "ENTER APP ID";
|
||||
|
||||
public init(): Promise<void> {
|
||||
return new Promise<void>((resolve) => {
|
||||
// callback after Y8 script is loaded
|
||||
window.idAsyncInit = (): void => {
|
||||
// wait for app connection
|
||||
ID.Event.subscribe("id.init", resolve);
|
||||
ID.init({ appId: this.appId });
|
||||
};
|
||||
|
||||
// Load the script
|
||||
(function (d, s, id): void {
|
||||
const fjs = d.getElementsByTagName(s)[0];
|
||||
if (d.getElementById(id)) {
|
||||
return;
|
||||
}
|
||||
const js: HTMLScriptElement = <HTMLScriptElement>d.createElement(s);
|
||||
js.id = id;
|
||||
js.src = document.location.protocol == "https:" ? "https://cdn.y8.com/api/sdk.js" : "http://cdn.y8.com/api/sdk.js";
|
||||
fjs.parentNode.insertBefore(js, fjs);
|
||||
})(document, "script", "id-jssdk");
|
||||
});
|
||||
}
|
||||
|
||||
public login(): Promise<Y8API.Authorization> {
|
||||
console.log("Logging in");
|
||||
return new Promise<Y8API.Authorization>((resolve) => {
|
||||
ID.login((response: Y8API.Authorization) => {
|
||||
resolve(response);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
public async tryAutoLogin(): Promise<void> {
|
||||
const auth = await this.getLoginStatus();
|
||||
console.log(auth);
|
||||
if (auth?.status == "not_linked" || auth?.status == "uncomplete") {
|
||||
await this.login();
|
||||
}
|
||||
}
|
||||
|
||||
public async isLoggedIn(): Promise<boolean> {
|
||||
const auth = await this.getLoginStatus();
|
||||
return auth?.success == true;
|
||||
}
|
||||
|
||||
public sendCustomEvent(name: string, data?: string | number): void {
|
||||
ID.Analytics.custom_event(name, data);
|
||||
}
|
||||
|
||||
private getLoginStatus(): Promise<Y8API.Authorization> {
|
||||
return new Promise((resolve) => {
|
||||
ID.getLoginStatus(resolve);
|
||||
});
|
||||
}
|
||||
}
|
9
assets/Plugins/Y8/Scripts/Y8.ts.meta
Normal file
9
assets/Plugins/Y8/Scripts/Y8.ts.meta
Normal file
@ -0,0 +1,9 @@
|
||||
{
|
||||
"ver": "4.0.23",
|
||||
"importer": "typescript",
|
||||
"imported": true,
|
||||
"uuid": "02815b81-6c1e-4a09-8ae4-f4bcb375745a",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
}
|
39
assets/Plugins/Y8/Scripts/Y8def.ts
Normal file
39
assets/Plugins/Y8/Scripts/Y8def.ts
Normal file
@ -0,0 +1,39 @@
|
||||
declare global {
|
||||
const ID: Y8API.ID;
|
||||
interface Window {
|
||||
idAsyncInit: () => void;
|
||||
}
|
||||
}
|
||||
|
||||
export namespace Y8API {
|
||||
export interface ID {
|
||||
init: (appInfo: { appId: string }) => void;
|
||||
getLoginStatus: (callback: (response?: Authorization) => void, skipCache?: boolean) => void;
|
||||
login: (callback: (response?: Authorization) => void) => void;
|
||||
register: (callback: (response?: Authorization) => void) => void;
|
||||
Event: Event;
|
||||
Analytics: Analytics;
|
||||
}
|
||||
|
||||
export interface Event {
|
||||
subscribe: (eventName: string, callback: (response?: any) => void) => void;
|
||||
}
|
||||
|
||||
export interface Analytics {
|
||||
custom_event: (name: string, data?: string | number) => void;
|
||||
}
|
||||
|
||||
export interface Authorization {
|
||||
status: string;
|
||||
success?: boolean;
|
||||
authResponse: {
|
||||
state: string;
|
||||
access_token: string;
|
||||
token_type: string;
|
||||
expires_in: number;
|
||||
scope: string;
|
||||
redirect_uri: string;
|
||||
details: any;
|
||||
};
|
||||
}
|
||||
}
|
9
assets/Plugins/Y8/Scripts/Y8def.ts.meta
Normal file
9
assets/Plugins/Y8/Scripts/Y8def.ts.meta
Normal file
@ -0,0 +1,9 @@
|
||||
{
|
||||
"ver": "4.0.23",
|
||||
"importer": "typescript",
|
||||
"imported": true,
|
||||
"uuid": "445aa0c8-388e-4665-aeee-0a51681e77e4",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
}
|
86
assets/Plugins/Y8/Y8.prefab
Normal file
86
assets/Plugins/Y8/Y8.prefab
Normal file
@ -0,0 +1,86 @@
|
||||
[
|
||||
{
|
||||
"__type__": "cc.Prefab",
|
||||
"_name": "Y8",
|
||||
"_objFlags": 0,
|
||||
"_native": "",
|
||||
"data": {
|
||||
"__id__": 1
|
||||
},
|
||||
"optimizationPolicy": 0,
|
||||
"persistent": false,
|
||||
"asyncLoadAssets": false
|
||||
},
|
||||
{
|
||||
"__type__": "cc.Node",
|
||||
"_name": "Y8",
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"_parent": null,
|
||||
"_children": [],
|
||||
"_active": true,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 2
|
||||
}
|
||||
],
|
||||
"_prefab": {
|
||||
"__id__": 4
|
||||
},
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0
|
||||
},
|
||||
"_lrot": {
|
||||
"__type__": "cc.Quat",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0,
|
||||
"w": 1
|
||||
},
|
||||
"_lscale": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": 1,
|
||||
"y": 1,
|
||||
"z": 1
|
||||
},
|
||||
"_layer": 1073741824,
|
||||
"_euler": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0
|
||||
},
|
||||
"_id": ""
|
||||
},
|
||||
{
|
||||
"__type__": "02815uBbB5KCYrk9LyzdXRa",
|
||||
"_name": "",
|
||||
"_objFlags": 0,
|
||||
"node": {
|
||||
"__id__": 1
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 3
|
||||
},
|
||||
"appId": "63b3de081f76dda380d47195",
|
||||
"_id": ""
|
||||
},
|
||||
{
|
||||
"__type__": "cc.CompPrefabInfo",
|
||||
"fileId": "9cOBr9gAFNWbvsaSX5dfaa"
|
||||
},
|
||||
{
|
||||
"__type__": "cc.PrefabInfo",
|
||||
"root": {
|
||||
"__id__": 1
|
||||
},
|
||||
"asset": {
|
||||
"__id__": 0
|
||||
},
|
||||
"fileId": "5da9o8mwlJl5XD861jGbYx"
|
||||
}
|
||||
]
|
13
assets/Plugins/Y8/Y8.prefab.meta
Normal file
13
assets/Plugins/Y8/Y8.prefab.meta
Normal file
@ -0,0 +1,13 @@
|
||||
{
|
||||
"ver": "1.1.40",
|
||||
"importer": "prefab",
|
||||
"imported": true,
|
||||
"uuid": "f668086a-2bff-40eb-a029-dd891718441d",
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {},
|
||||
"userData": {
|
||||
"syncNodeName": "Y8"
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user