diff --git a/extensions/reviewed/PokiGamesSDKHtml.json b/extensions/reviewed/PokiGamesSDKHtml.json
index dfbfc195f..3c0bbfc9c 100644
--- a/extensions/reviewed/PokiGamesSDKHtml.json
+++ b/extensions/reviewed/PokiGamesSDKHtml.json
@@ -9,7 +9,7 @@
"name": "PokiGamesSDKHtml",
"previewIconUrl": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1NzguODggMjczLjE2Ij4KCTxwYXRoIGZpbGw9ImJsYWNrIiBkPSJNNTQxIDg1LjhjMjEgMCAzOC0xNy40IDM4LTM4LjcgMC0yMC40LTE3LjQtMzcuNy0zOC0zNy43UzUwMy41IDI2LjYgNTAzLjUgNDdjMCAyMS40IDE3IDM4LjggMzcuNyAzOC44eiI+Cgk8L3BhdGg+Cgk8cGF0aCBmaWxsPSJibGFjayIgZD0iTTUwNCA5OS4zdjExMC41TDQ3MCAxMzZjMTUuNC0xOS4zIDIxLjctNDYuNCAyMi40LTY2VjU0aC02MC4ydjE1LjVjLTEgMTkuNi03LjMgMjguOC0yNC44IDM0LjVWMEgzNDZ2NDQuNEMzMjQgMjEuNiAyOTMgOS42IDI1Ni43IDkuNmMtNDAgMC03MyAxMy44LTk1LjYgNDBhMTE4IDExOCAwIDAgMC0xNyAyNi4yQzEyOSA2MC42IDEwOC40IDU0IDg0IDU0SDB2MjE5LjJoNTZWMjIxaDI4YzI0LjQgMCA0NS04LjMgNjAtMjMuN2ExMTYuMyAxMTYuMyAwIDAgMCAxNy42IDI3YzIyLjcgMjUuOCA1NS41IDM5LjMgOTUgMzkuMyAzOC42IDAgNzEtMTMuNSA5My42LTM5bDQuNS01LjZoNTIuN3YtNTQuM2w4LTIgMjYgNTYuNGgxMzYuOFY5OS40aC03NHptLTQxOCA2NEg1NnYtNTNoMjkuMmM3LjYgMCAyMC4zIDUuMiAyMC4zIDI1LjUgMCAxMy01LjQgMjcuMy0xOS40IDI3LjN6bTE3MCA2MGMtNDcuMyAwLTg1LjctMzkuNC04NS43LTg3LjhDMTcwLjMgODkgMjA5LjUgNTAgMjU2IDUwczg1LjYgMzkgODUuNiA4NS41YzAgNDguNC0zOC40IDg3LjgtODUuNiA4Ny44eiI+Cgk8L3BhdGg+Cgk8cGF0aCBmaWxsPSJibGFjayIgZD0iTTI1NiAxNDJjLTM4IDAtNTcgNi41LTY1IDguNiA2LjcgMzAuNSAzMy4yIDUzLjMgNjUgNTMuM3M1OC4zLTIzIDY1LTUzLjRjLTgtMi0yNy4yLTguNy02NS04Ljd6Ij4KCTwvcGF0aD4KPC9zdmc+Cg==",
"shortDescription": "Poki Games SDK: display ads and manage game lifecycle for Poki hosting.",
- "version": "0.1.1",
+ "version": "0.1.2",
"description": "Please refer to [Poki's guide](https://sdk.poki.com/sdk-documentation.html) to know when to call the different actions.",
"origin": {
"identifier": "PokiGamesSDKHtml",
@@ -429,6 +429,126 @@
],
"objectGroups": []
},
+ {
+ "async": true,
+ "description": "Prompt the player to log in with Poki.",
+ "fullName": "Login",
+ "functionType": "Action",
+ "name": "Login",
+ "sentence": "Log the player in with Poki",
+ "events": [
+ {
+ "type": "BuiltinCommonInstructions::JsCode",
+ "inlineCode": [
+ "if (typeof PokiSDK === \"undefined\") {",
+ " eventsFunctionContext.task.resolve();",
+ " return;",
+ "}",
+ "const logger = new gdjs.Logger(\"Poki games SDK HTML\");",
+ "PokiSDK.login().catch((error) => {",
+ " logger.log(`Login failed: ${error}`);",
+ "}).finally(() => {",
+ " eventsFunctionContext.task.resolve();",
+ "});",
+ ""
+ ],
+ "parameterObjects": "",
+ "useStrict": true,
+ "eventsSheetExpanded": false
+ }
+ ],
+ "parameters": [],
+ "objectGroups": []
+ },
+ {
+ "async": true,
+ "description": "Get the current Poki user and store it in a structure variable.",
+ "fullName": "Get user",
+ "functionType": "Action",
+ "name": "GetUser",
+ "sentence": "Get Poki user and store it in _PARAM0_",
+ "events": [
+ {
+ "type": "BuiltinCommonInstructions::JsCode",
+ "inlineCode": [
+ "if (typeof PokiSDK === \"undefined\") {",
+ " eventsFunctionContext.task.resolve();",
+ " return;",
+ "}",
+ "const logger = new gdjs.Logger(\"Poki games SDK HTML\");",
+ "/** @type {gdjs.Variable} */",
+ "const result = eventsFunctionContext.getArgument(\"Result\");",
+ "result.fromJSObject({ username: \"\", avatarUrl: \"\" });",
+ "PokiSDK.getUser().then((user) => {",
+ " const safeUser = user && typeof user === \"object\" ? user : {};",
+ " result.fromJSObject({",
+ " username: typeof safeUser.username === \"string\" ? safeUser.username : \"\",",
+ " avatarUrl: typeof safeUser.avatarUrl === \"string\" ? safeUser.avatarUrl : \"\",",
+ " });",
+ "}).catch((error) => {",
+ " logger.log(`Failed to get user: ${error}`);",
+ "}).finally(() => {",
+ " eventsFunctionContext.task.resolve();",
+ "});",
+ ""
+ ],
+ "parameterObjects": "",
+ "useStrict": true,
+ "eventsSheetExpanded": false
+ }
+ ],
+ "parameters": [
+ {
+ "description": "Structure variable where the user will be stored",
+ "longDescription": "The result structure contains `username` and `avatarUrl`.",
+ "name": "Result",
+ "type": "variable"
+ }
+ ],
+ "objectGroups": []
+ },
+ {
+ "async": true,
+ "description": "Get the current Poki token and store it in a variable.",
+ "fullName": "Get token",
+ "functionType": "Action",
+ "name": "GetToken",
+ "sentence": "Get Poki token and store it in _PARAM0_",
+ "events": [
+ {
+ "type": "BuiltinCommonInstructions::JsCode",
+ "inlineCode": [
+ "if (typeof PokiSDK === \"undefined\") {",
+ " eventsFunctionContext.task.resolve();",
+ " return;",
+ "}",
+ "const logger = new gdjs.Logger(\"Poki games SDK HTML\");",
+ "/** @type {gdjs.Variable} */",
+ "const result = eventsFunctionContext.getArgument(\"Result\");",
+ "result.setString(\"\");",
+ "PokiSDK.getToken().then((token) => {",
+ " result.setString(typeof token === \"string\" ? token : \"\");",
+ "}).catch((error) => {",
+ " logger.log(`Failed to get token: ${error}`);",
+ "}).finally(() => {",
+ " eventsFunctionContext.task.resolve();",
+ "});",
+ ""
+ ],
+ "parameterObjects": "",
+ "useStrict": true,
+ "eventsSheetExpanded": false
+ }
+ ],
+ "parameters": [
+ {
+ "description": "Variable where the token will be stored",
+ "name": "Result",
+ "type": "variable"
+ }
+ ],
+ "objectGroups": []
+ },
{
"description": "Measure an event for analytics.",
"fullName": "Measure event",