Scripts/resources/[ps]/ps-adminmenu/client/main.lua
2024-12-29 21:11:16 +01:00

80 lines
2.0 KiB
Lua

QBCore = exports['qb-core']:GetCoreObject()
PlayerData = {}
-- Functions
local function setupMenu()
Wait(500)
PlayerData = QBCore.Functions.GetPlayerData()
local resources = lib.callback.await('ps-adminmenu:callback:GetResources', false)
local commands = lib.callback.await('ps-adminmenu:callback:GetCommands', false)
GetData()
SendNUIMessage({
action = "setupUI",
data = {
actions = Config.Actions,
resources = resources,
playerData = PlayerData,
commands = commands
}
})
end
-- Event Handlers
AddEventHandler("QBCore:Client:OnPlayerLoaded", function()
setupMenu()
end)
AddEventHandler("onResourceStart", function(resourceName)
if (GetCurrentResourceName() == resourceName) then
setupMenu()
end
end)
-- NUICallbacks
RegisterNUICallback("hideUI", function()
ToggleUI(false)
end)
RegisterNUICallback("clickButton", function(data)
local selectedData = data.selectedData
local key = data.data
local data = CheckDataFromKey(key)
if not data or not CheckPerms(data.perms) then return end
if data.type == "client" then
TriggerEvent(data.event, key, selectedData)
elseif data.type == "server" then
TriggerServerEvent(data.event, key, selectedData)
elseif data.type == "command" then
ExecuteCommand(data.event)
end
Log("Action Used",
PlayerData.name ..
" (" ..
PlayerData.citizenid ..
") - Used: " .. data.label .. (selectedData and (" with args: " .. json.encode(selectedData)) or ""))
end)
-- Open UI Event
RegisterNetEvent('ps-adminmenu:client:OpenUI', function()
ToggleUI(true)
end)
-- Close UI Event
RegisterNetEvent('ps-adminmenu:client:CloseUI', function()
ToggleUI(false)
end)
-- Change resource state
RegisterNUICallback("setResourceState", function(data, cb)
local resources = lib.callback.await('ps-adminmenu:callback:ChangeResourceState', false, data)
cb(resources)
end)
-- Get players
RegisterNUICallback("getPlayers", function(data, cb)
local players = lib.callback.await('ps-adminmenu:callback:GetPlayers', false)
cb(players)
end)