diff --git a/packages/arcade_lobby/seed/scripts/permissions.lua b/packages/arcade_lobby/seed/scripts/permissions.lua new file mode 100644 index 000000000..7162faee4 --- /dev/null +++ b/packages/arcade_lobby/seed/scripts/permissions.lua @@ -0,0 +1,13 @@ +local M = {} + +function M.can_create_tournament(user) + local role = user.role or "public" + local allowed = { + admin = true, + god = true, + supergod = true + } + return allowed[role] == true +end + +return M diff --git a/packages/arcade_lobby/seed/scripts/queue_metrics.lua b/packages/arcade_lobby/seed/scripts/queue_metrics.lua new file mode 100644 index 000000000..cef2b753c --- /dev/null +++ b/packages/arcade_lobby/seed/scripts/queue_metrics.lua @@ -0,0 +1,20 @@ +local M = {} + +function M.summarize(queues) + local total_players = 0 + local longest_wait = 0 + + for _, queue in ipairs(queues) do + total_players = total_players + (queue.players or 0) + if (queue.waitSeconds or 0) > longest_wait then + longest_wait = queue.waitSeconds + end + end + + return { + totalPlayers = total_players, + longestWaitSeconds = longest_wait + } +end + +return M