-- ===================================================================== -- aether-admin / Modul: Einstellungen -- -- Server-Grundeinstellungen, persistiert in aether_admin_settings. -- Slots sind eine reine Anzeige (kommen aus der Serverkonfiguration). -- ===================================================================== Admin = Admin or {} local SCHALTER = { 'pvp', 'whitelist', 'voice', 'economy' } Admin.Kern.Registriere('settings', 'laden', function(handelnder, daten) local schalter = {} for _, k in ipairs(SCHALTER) do schalter[k] = Admin.DB.EinstellungAn(k, true) end return { servername = GetConvar('sv_hostname', 'Aether RP'), slots = GetConvarInt('sv_maxclients', 48), neustartStunden = Admin.DB.EinstellungZahl('neustart_stunden', 4), schalter = schalter, rechte = Admin.Kern.RechteAbbild(handelnder.quelle), } end) Admin.Kern.Registriere('settings', 'speichern', function(handelnder, daten) if daten.servername then local name = tostring(daten.servername):sub(1, 96) Admin.DB.SetzeEinstellung('servername', name) -- sv_hostname zur Laufzeit setzen (greift für die Serverliste) ExecuteCommand('sets sv_hostname "' .. name:gsub('"', '') .. '"') end if daten.neustartStunden ~= nil then Admin.DB.SetzeEinstellung('neustart_stunden', math.max(0, math.floor(tonumber(daten.neustartStunden) or 0))) end if type(daten.schalter) == 'table' then for _, k in ipairs(SCHALTER) do if daten.schalter[k] ~= nil then Admin.DB.SetzeEinstellung(k, daten.schalter[k] and '1' or '0') end end end Admin.Log.Schreibe(handelnder, 'Einstellungen gespeichert') return { ok = true } end)