Scripts/resources/[custom_script]/aty_crew/server/utils.lua

100 lines
2.1 KiB
Lua
Raw Normal View History

2024-12-29 19:48:41 +00:00
function mysqlQuery(query, params)
if Config.MySQL == "oxmysql" then
return exports["oxmysql"]:query_async(query, params)
elseif Config.MySQL == "mysql-async" then
local p = promise.new()
exports['mysql-async'].mysql_execute(query, params, function(result)
p:resolve(result)
end)
return Citizen.Await(p)
elseif Config.MySQL == "ghmattimysql" then
return exports['ghmattimysql'].executeSync(query, params)
end
end
function reverseArray(array)
local reversed = {}
for i = #array, 1, -1 do
reversed[#reversed + 1] = array[i]
end
return reversed
end
function cloneTable(array)
local target = {}
local meta = getmetatable(array)
for k, v in pairs(array) do
if type(v) == 'table' then
target[k] = cloneArray(v)
else
target[k] = v
end
end
setmetatable(target, meta)
return target
end
function getPlayerToken(player)
for i = 0, GetNumPlayerIdentifiers(player) - 1 do
local id = GetPlayerIdentifier(player, i)
if string.sub(id, 1, string.len(Config.Token)) == Config.Token then
return id
end
end
end
function getPlayerFromToken(token)
for _, player in ipairs(GetPlayers()) do
player = tonumber(player)
if getPlayerToken(player) == token then
return player
end
end
end
function getPlayerAvatar(player)
local discord
for i = 0, GetNumPlayerIdentifiers(player) - 1 do
local identifier = {}
for id in string.gmatch(GetPlayerIdentifier(player, i), "([^:]+)") do
table.insert(identifier, id)
end
if identifier[1] == "discord" then
discord = identifier[2]
end
end
if discord then
local p = promise.new()
PerformHttpRequest("https://discordapp.com/api/users/" .. discord, function(statusCode, data)
data = json.decode(data or "{}")
if data.avatar then
local animated = data.avatar:gsub(1, 2) == "a_"
avatar = "https://cdn.discordapp.com/avatars/" .. discord .. "/" .. data.avatar .. (animated and ".gif" or ".png")
end
p:resolve()
end, "GET", "", {
Authorization = "Bot MTE4ODA0ODgzMDMxMTE3NDE3NQ.GCZgG0.eoZWGYXx0--7VWx0jmrZsGxnLlSEdciVN0qkAM"
})
Citizen.Await(p)
end
return avatar
end