Skip to content

Commit

Permalink
Add events.
Browse files Browse the repository at this point in the history
  • Loading branch information
megalanthus committed Jul 31, 2023
1 parent 7b6a03b commit 2ad3062
Show file tree
Hide file tree
Showing 8 changed files with 219 additions and 97 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
- Triggers.
- Added methods for obtaining purchases and achievements.
- Schedulers.
- Events.

# [v1.1.2](https://github.com/megalanthus/defold-gamepush/releases/tag/v1.1.2) (2023-04-05)

Expand Down
10 changes: 10 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -399,6 +399,16 @@ end)
| `gp.ads.on('sticky:render', () => {})` | `ads.callbacks.sticky_render()`<br> Рендер sticky баннера |
| `gp.ads.on('sticky:refresh', () => {})` | `ads.callbacks.sticky_refresh()`<br> Обновление sticky баннера |
| `gp.ads.on('sticky:close', () => {})` | `ads.callbacks.sticky_close()`<br> Закрытие sticky баннера |
| **События** [(doc)](https://docs.gamepush.com/docs/events) | |
| `gp.events.join(parameters)` | `events.join(parameters, callback)`<br> Принять участие в событии<br> parameters: таблица параметров<br> callback(result): функция обратного вызова |
| `gp.events.list` | `events.list()`<br> Список событий<br> возвращает таблицу с событиями |
| `gp.events.activeList` | `events.active_list()`<br> Список активных событий игрока<br> возвращает таблицу с событиями |
| `gp.events.getEvent()` | `events.get_event()`<br> Получение информации о событии<br> возвращает таблицу с информацией о событии |
| `gp.events.has(id_or_tag)` | `events.has(id_or_tag)`<br> Событие активно<br> id_or_tag: тег или идентификатор события |
| `gp.events.isJoined(id_or_tag)` | `events.is_joined(id_or_tag)`<br> Игрок участвует в событии<br> id_or_tag: тег или идентификатор события |
| События: | |
| `gp.events.on('join', (event) => {})` | `events.callbacks.join(event)`<br> Игрок присоединился к событию |
| `gp.events.on('error:join', (error) => {})` | `events.callbacks.error_join(error)`<br> Не удалось вступить в событие |
| **Награды** [(doc)](https://docs.gamepush.com/docs/rewards) | |
| `gp.rewards.give(parameters)` | `rewards.give(parameters, callback)`<br> Выдать награду<br> parameters: таблица параметров<br> callback(result): функция обратного вызова |
| `gp.rewards.accept(parameters)` | `rewards.accept(parameters, callback)`<br> Принять награду<br> parameters: таблица параметров<br> callback(result): функция обратного вызова |
Expand Down
48 changes: 48 additions & 0 deletions example/events.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
local gamepush = require("gamepush.gamepush")
local utils = require("example.utils")

local event_tag = "my_event"

local function join()
gamepush.events.join({ tag = event_tag }, function(result)
utils.to_log("Join event:", result)
end)
end

local function list()
utils.to_log("List events:", gamepush.events.list())
end

local function active_list()
utils.to_log("Active list events:", gamepush.events.active_list())
end

local function get_event()
utils.to_log("Get event:", gamepush.events.get_event(event_tag))
end

local function has()
utils.to_log("Event has:", gamepush.events.has(event_tag))
end

local function is_joined()
utils.to_log("Is joined:", gamepush.events.is_joined(event_tag))
end

local M = {
{ name = "Join", callback = join },
{ name = "List", callback = list },
{ name = "Active list", callback = active_list },
{ name = "Get event", callback = get_event },
{ name = "Has", callback = has },
{ name = "Is joined", callback = is_joined },
}

gamepush.events.callbacks.join = function(reward)
utils.to_console("Join event:", reward)
end
gamepush.events.callbacks.error_join = function(error)
utils.to_console("Join event error:", error)
end

return M
1 change: 1 addition & 0 deletions example/gui.gui_script
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ local buttons = {
{ name = "Leaderboard", callback = switch_section, section = require("example.leaderboard") },
{ name = "Channels", callback = switch_section, section = require("example.channels") },
{ name = "Ads", callback = switch_section, section = require("example.ads") },
{ name = "Events", callback = switch_section, section = require("example.events") },
{ name = "Rewards", callback = switch_section, section = require("example.rewards") },
{ name = "Schedulers", callback = switch_section, section = require("example.schedulers") },
{ name = "Triggers", callback = switch_section, section = require("example.triggers") },
Expand Down
152 changes: 78 additions & 74 deletions gamepush/core/callback_ids.lua
Original file line number Diff line number Diff line change
Expand Up @@ -119,96 +119,100 @@ local M = {
["fetchMoreMessages"] = 0xF356,
["error:fetchMoreMessages"] = 0xF357
},
events = {
["join"] = 0xF400,
["error:join"] = 0xF401
},
rewards = {
["give"] = 0xF410,
["error:give"] = 0xF411,
["accept"] = 0xF412,
["error:accept"] = 0xF413
},
schedulers = {
["claimDay"] = 0xF420,
["error:claimDay"] = 0xF421,
["claimDayAdditional"] = 0xF422,
["error:claimDayAdditional"] = 0xF423,
["claimAllDay"] = 0xF424,
["error:claimAllDay"] = 0xF425,
["claimAllDays"] = 0xF426,
["error:claimAllDays"] = 0xF427,
["join"] = 0xF428,
["error:join"] = 0xF429
},
triggers = {
["activate"] = 0xF430,
["claim"] = 0xF431,
["error:claim"] = 0xF432
},
ads = {
["start"] = 0xF400,
["close"] = 0xF401,
["fullscreen:start"] = 0xF402,
["fullscreen:close"] = 0xF403,
["preloader:start"] = 0xF404,
["preloader:close"] = 0xF405,
["rewarded:start"] = 0xF406,
["rewarded:close"] = 0xF407,
["rewarded:reward"] = 0xF408,
["sticky:start"] = 0xF409,
["sticky:render"] = 0xF40A,
["sticky:refresh"] = 0xF40B,
["sticky:close"] = 0xF40C
["start"] = 0xF500,
["close"] = 0xF501,
["fullscreen:start"] = 0xF502,
["fullscreen:close"] = 0xF503,
["preloader:start"] = 0xF504,
["preloader:close"] = 0xF505,
["rewarded:start"] = 0xF506,
["rewarded:close"] = 0xF507,
["rewarded:reward"] = 0xF508,
["sticky:start"] = 0xF509,
["sticky:render"] = 0xF50A,
["sticky:refresh"] = 0xF50B,
["sticky:close"] = 0xF50C
},
achievements = {
["unlock"] = 0xF500,
["error:unlock"] = 0xF501,
["progress"] = 0xF502,
["error:progress"] = 0xF503,
["open"] = 0xF504,
["close"] = 0xF505,
["fetch"] = 0xF506,
["error:fetch"] = 0xF507
["unlock"] = 0xF600,
["error:unlock"] = 0xF601,
["progress"] = 0xF602,
["error:progress"] = 0xF603,
["open"] = 0xF604,
["close"] = 0xF605,
["fetch"] = 0xF606,
["error:fetch"] = 0xF607
},
variables = {
["fetch"] = 0xF600,
["error:fetch"] = 0xF601
["fetch"] = 0xF700,
["error:fetch"] = 0xF701
},
gamesCollections = {
["open"] = 0xF700,
["close"] = 0xF701,
["fetch"] = 0xF702,
["error:fetch"] = 0xF703
["open"] = 0xF800,
["close"] = 0xF801,
["fetch"] = 0xF802,
["error:fetch"] = 0xF803
},
images = {
["upload"] = 0xF800,
["error:upload"] = 0xF801,
["choose"] = 0xF802,
["error:choose"] = 0xF803,
["fetch"] = 0xF804,
["error:fetch"] = 0xF805,
["fetchMore"] = 0xF806,
["error:fetchMore"] = 0xF807
},
files = {
["upload"] = 0xF900,
["error:upload"] = 0xF901,
["loadContent"] = 0xF902,
["error:loadContent"] = 0xF903,
["choose"] = 0xF904,
["error:choose"] = 0xF905,
["fetch"] = 0xF906,
["error:fetch"] = 0xF907,
["fetchMore"] = 0xF908,
["error:fetchMore"] = 0xF909
["choose"] = 0xF902,
["error:choose"] = 0xF903,
["fetch"] = 0xF904,
["error:fetch"] = 0xF905,
["fetchMore"] = 0xF906,
["error:fetchMore"] = 0xF907
},
documents = {
["open"] = 0xFA00,
["close"] = 0xFA01,
["fetch"] = 0xFA02,
["error:fetch"] = 0xFA03
files = {
["upload"] = 0xFA00,
["error:upload"] = 0xFA01,
["loadContent"] = 0xFA02,
["error:loadContent"] = 0xFA03,
["choose"] = 0xFA04,
["error:choose"] = 0xFA05,
["fetch"] = 0xFA06,
["error:fetch"] = 0xFA07,
["fetchMore"] = 0xFA08,
["error:fetchMore"] = 0xFA09
},
fullscreen = {
documents = {
["open"] = 0xFB00,
["close"] = 0xFB01,
["change"] = 0xFB02
},
rewards = {
["give"] = 0xFD00,
["error:give"] = 0xFD01,
["accept"] = 0xFD02,
["error:accept"] = 0xFD03
["fetch"] = 0xFB02,
["error:fetch"] = 0xFB03
},
schedulers = {
["claimDay"] = 0xFD10,
["error:claimDay"] = 0xFD11,
["claimDayAdditional"] = 0xFD12,
["error:claimDayAdditional"] = 0xFD13,
["claimAllDay"] = 0xFD14,
["error:claimAllDay"] = 0xFD15,
["claimAllDays"] = 0xFD16,
["error:claimAllDays"] = 0xFD17,
["join"] = 0xFD18,
["error:join"] = 0xFD19
},
triggers = {
["activate"] = 0xFE00,
["claim"] = 0xFE01,
["error:claim"] = 0xFE02
fullscreen = {
["open"] = 0xFC00,
["close"] = 0xFC01,
["change"] = 0xFC02
}
}

Expand Down
50 changes: 27 additions & 23 deletions gamepush/core/callbacks.lua
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,33 @@ local M = {
fetch_more_messages = nil,
error_fetch_more_messages = nil
},
events = {
join = nil,
error_join = nil
},
rewards = {
give = nil,
error_give = nil,
accept = nil,
error_accept = nil
},
schedulers = {
claim_day = nil,
error_claim_day = nil,
claim_day_additional = nil,
error_claim_day_additional = nil,
claim_all_day = nil,
error_claim_all_day = nil,
claim_all_days = nil,
error_claim_all_days = nil,
join = nil,
error_join = nil
},
triggers = {
activate = nil,
claim = nil,
error_claim = nil
},
ads = {
start = nil,
close = nil,
Expand Down Expand Up @@ -186,29 +213,6 @@ local M = {
open = nil,
close = nil,
change = nil
},
rewards = {
give = nil,
error_give = nil,
accept = nil,
error_accept = nil
},
schedulers = {
claim_day = nil,
error_claim_day = nil,
claim_day_additional = nil,
error_claim_day_additional = nil,
claim_all_day = nil,
error_claim_all_day = nil,
claim_all_days = nil,
error_claim_all_days = nil,
join = nil,
error_join = nil
},
triggers = {
activate = nil,
claim = nil,
error_claim = nil
}
}

Expand Down
53 changes: 53 additions & 0 deletions gamepush/core/events.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
local M = {}
local core = require("gamepush.core.core")
local helpers = require("gamepush.core.helpers")
local callbacks = require("gamepush.core.callbacks")

---Принять участие в событии
---@param parameters table параметры
---@param callback function функция обратного вызова по результату принятия участия в событии: callback(result)
function M.join(parameters, callback)
helpers.check_table_required(parameters)
helpers.check_callback(callback)
core.call_api("events.join", { parameters }, callback)
end

---Список событий
---@return table результат
function M.list()
return core.call_api("events.list")
end

---Список активных событий игрока
---@return table результат
function M.active_list()
return core.call_api("events.activeList")
end

---Получение информации о событии
---@param id_or_tag string|number тег или идентификатор события
---@return table результат
function M.get_event(id_or_tag)
helpers.check_string_or_number(id_or_tag, "id_or_tag")
return core.call_api("events.getEvent", id_or_tag)
end

---Событие активно
---@param id_or_tag string|number тег или идентификатор награды
---@return boolean результат
function M.has(id_or_tag)
helpers.check_string_or_number(id_or_tag, "id_or_tag")
return core.call_api("events.has", id_or_tag) == true
end

---Игрок участвует в событии
---@param id_or_tag string|number тег или идентификатор награды
---@return boolean результат
function M.is_joined(id_or_tag)
helpers.check_string_or_number(id_or_tag, "id_or_tag")
return core.call_api("events.isJoined", id_or_tag) == true
end

M.callbacks = callbacks.events

return M
1 change: 1 addition & 0 deletions gamepush/gamepush.lua
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,7 @@ M.players = require("gamepush.core.players")
M.payments = require("gamepush.core.payments")
M.leaderboard = require("gamepush.core.leaderboard")
M.channels = require("gamepush.core.channels")
M.events = require("gamepush.core.events")
M.rewards = require("gamepush.core.rewards")
M.schedulers = require("gamepush.core.schedulers")
M.triggers = require("gamepush.core.triggers")
Expand Down

0 comments on commit 2ad3062

Please sign in to comment.