mirror of
https://github.com/esx-framework/esx_core.git
synced 2026-08-30 09:48:52 +00:00
69 lines
2.0 KiB
Lua
69 lines
2.0 KiB
Lua
ESX = nil
|
|
|
|
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
|
|
|
|
RegisterServerEvent('esx_skin:save')
|
|
AddEventHandler('esx_skin:save', function(skin)
|
|
local xPlayer = ESX.GetPlayerFromId(source)
|
|
|
|
MySQL.Async.execute('UPDATE users SET `skin` = @skin WHERE identifier = @identifier',
|
|
{
|
|
['@skin'] = json.encode(skin),
|
|
['@identifier'] = xPlayer.identifier
|
|
})
|
|
end)
|
|
|
|
RegisterServerEvent('esx_skin:responseSaveSkin')
|
|
AddEventHandler('esx_skin:responseSaveSkin', function(skin)
|
|
|
|
TriggerEvent('es:getPlayerFromId', source, function(user)
|
|
TriggerEvent('es:canGroupTarget', user.getGroup(), "admin", function(available)
|
|
if available then
|
|
local file = io.open('resources/[esx]/esx_skin/skins.txt', "a")
|
|
|
|
file:write(json.encode(skin) .. "\n\n")
|
|
file:flush()
|
|
file:close()
|
|
else
|
|
print(('esx_skin: %s attempted saving skin to file'):format(user.getIdentifier()))
|
|
end
|
|
end)
|
|
end)
|
|
|
|
end)
|
|
|
|
ESX.RegisterServerCallback('esx_skin:getPlayerSkin', function(source, cb)
|
|
local xPlayer = ESX.GetPlayerFromId(source)
|
|
|
|
MySQL.Async.fetchAll('SELECT skin FROM users WHERE identifier = @identifier', {
|
|
['@identifier'] = xPlayer.identifier
|
|
}, function(users)
|
|
local user = users[1]
|
|
local skin = nil
|
|
|
|
local jobSkin = {
|
|
skin_male = xPlayer.job.skin_male,
|
|
skin_female = xPlayer.job.skin_female
|
|
}
|
|
|
|
if user.skin ~= nil then
|
|
skin = json.decode(user.skin)
|
|
end
|
|
|
|
cb(skin, jobSkin)
|
|
end)
|
|
end)
|
|
|
|
-- Commands
|
|
TriggerEvent('es:addGroupCommand', 'skin', 'admin', function(source, args, user)
|
|
TriggerClientEvent('esx_skin:openSaveableMenu', source)
|
|
end, function(source, args, user)
|
|
TriggerClientEvent('chat:addMessage', source, { args = { '^1SYSTEM', 'Insufficient Permissions.' } })
|
|
end, {help = _U('skin')})
|
|
|
|
TriggerEvent('es:addGroupCommand', 'skinsave', 'admin', function(source, args, user)
|
|
TriggerClientEvent('esx_skin:requestSaveSkin', source)
|
|
end, function(source, args, user)
|
|
TriggerClientEvent('chat:addMessage', source, { args = { '^1SYSTEM', 'Insufficient Permissions.' } })
|
|
end, {help = _U('saveskin')})
|