Skip to content

Commit ae36c0b

Browse files
committed
Implement player "is authorized"
1 parent fe0524a commit ae36c0b

File tree

6 files changed

+48
-5
lines changed

6 files changed

+48
-5
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,7 @@ And it's also a good idea to upload a demo build of YaGames to your game's draft
242242
| `player.getUniqueID()` | `yagames.player_get_unique_id()` |
243243
| `player.getIDsPerGame()` | `yagames.player_get_ids_per_game(callback)` |
244244
| `player.getMode()` | `yagames.player_get_mode()`<br>[(more info)](https://yandex.ru/blog/gamesfordevelopers/novye-vozmozhnosti-dlya-neavtorizovannykh-polzovateley) |
245+
| `player.isAuthorized()` | `yagames.player_is_authorized()` |
245246
| `player.getName()` | `yagames.player_get_name()` |
246247
| `player.getPhoto(size)` | `yagames.player_get_photo(size)` |
247248
| `player.getPayingStatus()` | `yagames.player_get_paying_status()` |

example/ysdkdebug/pg_player.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ local function init_handler(self, options)
2525
self.button_player_set_stats:set_enabled(true)
2626

2727
print("yagames.player_get_signature():", yagames.player_get_signature() or "nil")
28-
print("yagames.player_get_mode():", "'" .. yagames.player_get_mode() .. "'")
28+
print("yagames.player_is_authorized():", yagames.player_is_authorized() and "true" or "false")
2929
print("yagames.player_get_personal_info():", table_util.tostring(yagames.player_get_personal_info()))
3030
print("yagames.player_get_paying_status():", "'" .. yagames.player_get_paying_status() .. "'")
3131
end

yagames/helpers/mock.lua

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
local rxi_json = require("yagames.helpers.json")
22

3-
local M = {listeners = {}}
3+
local M = {
4+
listeners = {},
5+
_warned = {}
6+
}
47

58
local GLOBAL_CALLBACK_ID = 0
69
local NO_ERR = nil
@@ -61,6 +64,13 @@ local function sequence_calls(...)
6164
end)
6265
end
6366

67+
local function warn_once(message)
68+
if not M._warned[message] then
69+
M._warned[message] = true
70+
print("<!>", message)
71+
end
72+
end
73+
6474
--
6575
-- Yandex Games SDK
6676
--
@@ -469,12 +479,13 @@ end
469479

470480
function M.player_get_id()
471481
assert(M._player)
482+
warn_once("yagames.player_get_id() is deprecated and will be removed from the interface in the future.")
472483

473484
return M._player._personalInfo.uniqueID
474485
end
475486

476487
function M.player_get_ids_per_game(cb_id)
477-
if M.player_get_mode() == "lite" then
488+
if not M.player_is_authorized() then
478489
M.send(cb_id, "FetchError: Unauthorized")
479490
else
480491
M.send(cb_id, NO_ERR, '[{"appID":100,"userID":"9c/GxA5IUaaavN2KPdtTxTlKh/ayLzrVhNj90Ka8oPA="}]')
@@ -483,10 +494,17 @@ end
483494

484495
function M.player_get_mode()
485496
assert(M._player)
497+
warn_once("yagames.player_get_mode() is deprecated and will be removed from the interface in the future.")
486498

487499
return M._player._personalInfo.mode
488500
end
489501

502+
function M.player_is_authorized()
503+
assert(M._player)
504+
505+
return M._player._personalInfo.mode ~= "lite"
506+
end
507+
490508
function M.player_get_name()
491509
assert(M._player)
492510

yagames/lib/web/lib_yagames.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -722,6 +722,12 @@ var LibYaGamesPrivate = {
722722
return cmode;
723723
},
724724

725+
YaGamesPrivate_Player_IsAuthorized: function () {
726+
var self = YaGamesPrivate;
727+
var isAuthorized = self._player.isAuthorized();
728+
return isAuthorized;
729+
},
730+
725731
YaGamesPrivate_Player_GetName: function () {
726732
var self = YaGamesPrivate;
727733
var cname = stringToNewUTF8(self._player.getName());

yagames/src/main.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ extern "C"
5858
void YaGamesPrivate_Player_GetIDsPerGame(const int cb_id);
5959
const char* YaGamesPrivate_Player_GetID();
6060
const char* YaGamesPrivate_Player_GetMode();
61+
const bool YaGamesPrivate_Player_IsAuthorized();
6162
const char* YaGamesPrivate_Player_GetName();
6263
const char* YaGamesPrivate_Player_GetPhoto(const char* size);
6364
const char* YaGamesPrivate_Player_GetUniqueID();
@@ -668,6 +669,12 @@ static int Player_GetMode(lua_State* L)
668669
return 1;
669670
}
670671

672+
static int Player_IsAuthorized(lua_State* L)
673+
{
674+
lua_pushboolean(L, YaGamesPrivate_Player_IsAuthorized());
675+
return 1;
676+
}
677+
671678
static int Player_GetName(lua_State* L)
672679
{
673680
const char* name = YaGamesPrivate_Player_GetName();
@@ -924,6 +931,7 @@ static const luaL_reg Module_methods[] = {
924931
{ "player_get_id", Player_GetID },
925932
{ "player_get_ids_per_game", Player_GetIDsPerGame },
926933
{ "player_get_mode", Player_GetMode },
934+
{ "player_is_authorized", Player_IsAuthorized },
927935
{ "player_get_name", Player_GetName },
928936
{ "player_get_photo", Player_GetPhoto },
929937
{ "player_get_unique_id", Player_GetUniqueID },

yagames/yagames.lua

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -533,7 +533,8 @@ function M.player_get_signature()
533533
return yagames_private.player_get_signature()
534534
end
535535

536-
--- DEPRECATED: Use player_get_unique_id()
536+
--- Return the user's ID.
537+
-- @deprecated Use player_get_unique_id() instead.
537538
-- @treturn string
538539
function M.player_get_id()
539540
assert_player_ready()
@@ -548,7 +549,7 @@ function M.player_get_ids_per_game(callback)
548549
assert(type(callback) == "function", "`callback` function is required")
549550

550551
yagames_private.player_get_ids_per_game(helper.wrap_for_promise(
551-
function(self, err, arr)
552+
function(self, err, arr)
552553
if arr then
553554
arr = rxi_json.decode(arr)
554555
end
@@ -557,13 +558,22 @@ function M.player_get_ids_per_game(callback)
557558
end
558559

559560
--- Return the user's auth mode.
561+
-- @deprecated Use player_is_authorized() instead.
560562
-- @treturn string
561563
function M.player_get_mode()
562564
assert_player_ready()
563565

564566
return yagames_private.player_get_mode()
565567
end
566568

569+
--- Return the user's auth mode.
570+
-- @treturn boolean
571+
function M.player_is_authorized()
572+
assert_player_ready()
573+
574+
return yagames_private.player_is_authorized()
575+
end
576+
567577
--- Return the user's name.
568578
-- @treturn string
569579
function M.player_get_name()

0 commit comments

Comments
 (0)