1
0
Fork 0
forked from Simnation/Main
Main/resources/[standalone]/nordi_lookchanger/server.lua

81 lines
2.4 KiB
Lua
Raw Permalink Normal View History

2025-06-07 08:51:21 +02:00
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