forked from Simnation/Main
81 lines
2.4 KiB
Lua
81 lines
2.4 KiB
Lua
![]() |
local savedLooks = {}
|
||
|
local filePath = "data/saved_looks.json"
|
||
|
|
||
|
-- Holt die Lizenz-ID des Spielers
|
||
|
local function getLicenseIdentifier(src)
|
||
|
for _, id in ipairs(GetPlayerIdentifiers(src)) do
|
||
|
if id:find("license:") then
|
||
|
return id
|
||
|
end
|
||
|
end
|
||
|
return nil
|
||
|
end
|
||
|
|
||
|
-- Resource Start: Datei laden
|
||
|
AddEventHandler("onResourceStart", function(resource)
|
||
|
if resource == GetCurrentResourceName() then
|
||
|
loadLooks()
|
||
|
end
|
||
|
end)
|
||
|
|
||
|
-- Client fordert Looks an
|
||
|
RegisterServerEvent("lookchanger:requestLooks")
|
||
|
AddEventHandler("lookchanger:requestLooks", function()
|
||
|
local src = source
|
||
|
local license = getLicenseIdentifier(src)
|
||
|
if not license then
|
||
|
print("[LookChanger] Warnung: Kein gültiger Identifier für Spieler " .. src)
|
||
|
return
|
||
|
end
|
||
|
|
||
|
local data = savedLooks[license] or {}
|
||
|
TriggerClientEvent("lookchanger:setSavedLooks", src, data)
|
||
|
end)
|
||
|
|
||
|
-- Look speichern
|
||
|
RegisterServerEvent("lookchanger:saveLook")
|
||
|
AddEventHandler("lookchanger:saveLook", function(category, slot, lookData)
|
||
|
local src = source
|
||
|
local license = getLicenseIdentifier(src)
|
||
|
if not license then
|
||
|
print("[LookChanger] Warnung: Kein gültiger Identifier für Spieler " .. src)
|
||
|
return
|
||
|
end
|
||
|
|
||
|
savedLooks[license] = savedLooks[license] or {}
|
||
|
savedLooks[license][category] = savedLooks[license][category] or {}
|
||
|
savedLooks[license][category][slot] = lookData
|
||
|
|
||
|
print(("[LookChanger] Spieler %s hat Slot %s (%s) gespeichert."):format(license, slot, category))
|
||
|
saveLooks()
|
||
|
end)
|
||
|
|
||
|
-- Looks aus Datei laden
|
||
|
function loadLooks()
|
||
|
local file = LoadResourceFile(GetCurrentResourceName(), filePath)
|
||
|
if file then
|
||
|
local parsed = json.decode(file)
|
||
|
if parsed then
|
||
|
savedLooks = parsed
|
||
|
print("[LookChanger] Looks erfolgreich geladen.")
|
||
|
else
|
||
|
print("[LookChanger] Fehler beim Parsen der Datei.")
|
||
|
savedLooks = {}
|
||
|
end
|
||
|
else
|
||
|
print("[LookChanger] Keine Datei gefunden. Starte mit leerer Datenbank.")
|
||
|
savedLooks = {}
|
||
|
end
|
||
|
end
|
||
|
|
||
|
-- Looks in Datei speichern
|
||
|
function saveLooks()
|
||
|
local jsonData = json.encode(savedLooks)
|
||
|
local success = SaveResourceFile(GetCurrentResourceName(), filePath, jsonData, -1)
|
||
|
if success then
|
||
|
print("[LookChanger] Looks erfolgreich gespeichert.")
|
||
|
else
|
||
|
print("[LookChanger] Fehler beim Speichern!")
|
||
|
end
|
||
|
end
|