diff --git a/__resource.lua b/__resource.lua index 68e653d5..3dd25881 100644 --- a/__resource.lua +++ b/__resource.lua @@ -3,10 +3,11 @@ resource_manifest_version '44febabe-d386-4d18-afbe-5e627f4af937' description 'ESX Skin' server_scripts { + '@mysql-async/lib/MySQL.lua', '@es_extended/locale.lua', 'locales/en.lua', 'locales/fr.lua', - '@mysql-async/lib/MySQL.lua', + 'config.lua', 'server/main.lua' } @@ -14,5 +15,6 @@ client_scripts { '@es_extended/locale.lua', 'locales/en.lua', 'locales/fr.lua', + 'config.lua', 'client/main.lua' } diff --git a/client/main.lua b/client/main.lua index 70fd3420..f3860f18 100644 --- a/client/main.lua +++ b/client/main.lua @@ -304,6 +304,13 @@ AddEventHandler('esx_skin:openSaveableRestrictedMenu', function(submitCb, cancel OpenSaveableMenu(submitCb, cancelCb, restrict) end) +RegisterNetEvent('esx_skin:requestSaveSkin') +AddEventHandler('esx_skin:requestSaveSkin', function() + TriggerEvent('skinchanger:getSkin', function(skin) + TriggerServerEvent('esx_skin:responseSaveSkin', skin) + end) +end) + AddEventHandler('skinchanger:modelLoaded', function() if not HasLoadedModel then diff --git a/locales/en.lua b/locales/en.lua index 5ea05c28..7609234d 100644 --- a/locales/en.lua +++ b/locales/en.lua @@ -2,6 +2,7 @@ Locales['en'] = { ['skin_menu'] = 'Skin Menu', ['use_rotate_view'] = 'use ~INPUT_VEH_FLY_ROLL_LEFT_ONLY~ and ~INPUT_VEH_FLY_ROLL_RIGHT_ONLY~ to rotate the view.', - + ['skin'] = 'change skin', + ['saveskin'] = 'save skin to a file', } diff --git a/locales/fr.lua b/locales/fr.lua index 450e67b0..e20a772e 100644 --- a/locales/fr.lua +++ b/locales/fr.lua @@ -2,6 +2,7 @@ Locales['fr'] = { ['skin_menu'] = 'Skin Menu', ['use_rotate_view'] = 'utilisez ~INPUT_VEH_FLY_ROLL_LEFT_ONLY~ et ~INPUT_VEH_FLY_ROLL_RIGHT_ONLY~ pour tourner la vue.', - + ['skin'] = 'changer de skin', + ['saveskin'] = 'sauvegarder skin dans un fichier', } diff --git a/server/main.lua b/server/main.lua index 2e6c464d..1c259e71 100644 --- a/server/main.lua +++ b/server/main.lua @@ -17,6 +17,17 @@ AddEventHandler('esx_skin:save', function(skin) end) +RegisterServerEvent('esx_skin:responseSaveSkin') +AddEventHandler('esx_skin:responseSaveSkin', function(skin) + + local file = io.open('resources/[esx]/esx_skin/skins.txt', "a") + + file:write(json.encode(skin) .. "\n\n") + file:flush() + file:close() + +end) + ESX.RegisterServerCallback('esx_skin:getPlayerSkin', function(source, cb) local xPlayer = ESX.GetPlayerFromId(source) @@ -48,8 +59,14 @@ ESX.RegisterServerCallback('esx_skin:getPlayerSkin', function(source, cb) end) -- Commands -TriggerEvent('es:addGroupCommand', 'skin', "admin", function(source, args, user) +TriggerEvent('es:addGroupCommand', 'skin', 'admin', function(source, args, user) TriggerClientEvent('esx_skin:openSaveableMenu', source) end, function(source, args, user) TriggerClientEvent('chatMessage', source, "SYSTEM", {255, 0, 0}, 'Insufficient permissions!') -end) +end, {help = _U('skin')}) + +TriggerEvent('es:addGroupCommand', 'saveskin', 'admin', function(source, args, user) + TriggerClientEvent('esx_skin:requestSaveSkin', source) +end, function(source, args, user) + TriggerClientEvent('chatMessage', source, "SYSTEM", {255, 0, 0}, "Insufficient Permissions.") +end, {help = _U('saveskin')}) \ No newline at end of file