ed
This commit is contained in:
		
							parent
							
								
									6b4ab46e6c
								
							
						
					
					
						commit
						8a0d378308
					
				
					 3 changed files with 67 additions and 60 deletions
				
			
		
							
								
								
									
										0
									
								
								resources/[carscripts]/nordi_car_admin/config.lua
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								resources/[carscripts]/nordi_car_admin/config.lua
									
										
									
									
									
										Normal file
									
								
							|  | @ -6,7 +6,8 @@ description 'Job-based Vehicle Admin Script for QBCore with ox_lib' | |||
| version '2.0.0' | ||||
|  | ||||
| shared_scripts { | ||||
|     '@ox_lib/init.lua' | ||||
|     '@ox_lib/init.lua', | ||||
|     'config.lua' | ||||
| } | ||||
|  | ||||
| client_scripts { | ||||
|  |  | |||
|  | @ -1,14 +1,18 @@ | |||
| local QBCore = exports['qb-core']:GetCoreObject() | ||||
|  | ||||
| -- Erlaubte Jobs für das Vehicle Admin System | ||||
| local AllowedJobs = { | ||||
|     ['police'] = true, | ||||
|     ['admin'] = true, | ||||
|     ['mechanic'] = true, | ||||
|     ['ambulance'] = true, | ||||
|     ['cardealer'] = true, | ||||
|     -- Füge hier weitere Jobs hinzu | ||||
| } | ||||
| -- Lade die Garagen aus dem Hauptsystem | ||||
| Citizen.CreateThread(function() | ||||
|     Wait(1000) -- Warte kurz, damit das Hauptsystem geladen ist | ||||
|      | ||||
|     -- Versuche, die Garagen aus dem Hauptsystem zu laden | ||||
|     if _G.Config and _G.Config.Zonen then | ||||
|         Config.Zonen = _G.Config.Zonen | ||||
|         print("[Fahrzeugadmin] Garagen aus dem Hauptsystem geladen: " .. #Config.Zonen .. " Garagen gefunden.") | ||||
|     else | ||||
|         print("[Fahrzeugadmin] Konnte keine Garagen aus dem Hauptsystem laden, verwende Standard-Garagen.") | ||||
|     end | ||||
| end) | ||||
|  | ||||
|  | ||||
| -- Job Permission Check | ||||
| local function HasPermission(source) | ||||
|  | @ -22,7 +26,7 @@ local function HasPermission(source) | |||
|      | ||||
|     -- Check if player has allowed job | ||||
|     local playerJob = Player.PlayerData.job.name | ||||
|     return AllowedJobs[playerJob] == true | ||||
|     return Config.AllowedJobs[playerJob] == true | ||||
| end | ||||
|  | ||||
| -- Get all players from database | ||||
|  | @ -95,12 +99,22 @@ QBCore.Functions.CreateCallback('vehicleadmin:getGarages', function(source, cb) | |||
|      | ||||
|     local garages = {} | ||||
|      | ||||
|     -- Verwende die Garagen aus eurem Config | ||||
|     for k, v in pairs(Config.Zonen) do | ||||
|         table.insert(garages, { | ||||
|             name = v.name, | ||||
|             label = v.name -- Ihr könnt hier auch eine Label-Property hinzufügen | ||||
|         }) | ||||
|     -- Verwende die externen Garagen aus dem Garagensystem | ||||
|     if Config.Zonen then | ||||
|         for k, v in pairs(Config.Zonen) do | ||||
|             table.insert(garages, { | ||||
|                 name = v.name, | ||||
|                 label = v.name -- Ihr könnt hier auch eine Label-Property hinzufügen | ||||
|             }) | ||||
|         end | ||||
|     else | ||||
|         -- Fallback auf Standard-Garagen | ||||
|         for garageName, garageData in pairs(Config.DefaultGarages) do | ||||
|             table.insert(garages, { | ||||
|                 name = garageName, | ||||
|                 label = garageData.label or garageName | ||||
|             }) | ||||
|         end | ||||
|     end | ||||
|      | ||||
|     -- Sortiere alphabetisch | ||||
|  | @ -172,13 +186,9 @@ RegisterNetEvent('vehicleadmin:moveToGarage', function(plate, garage) | |||
|                 )) | ||||
|                  | ||||
|                 -- Log für Discord | ||||
|                 TriggerEvent('mh_garage:log', { | ||||
|                     type = "admin_move", | ||||
|                     user = Player.PlayerData.charinfo.firstname .. ' ' .. Player.PlayerData.charinfo.lastname, | ||||
|                     citizenid = Player.PlayerData.citizenid, | ||||
|                     plate = plate, | ||||
|                     garage = garage | ||||
|                 }) | ||||
|                 if Config.Log and Config.Log.Enabled then | ||||
|                     sendToDiscord("Fahrzeugadmin", Player.PlayerData.charinfo.firstname .. " " .. Player.PlayerData.charinfo.lastname .. " (" .. Player.PlayerData.job.label .. ") hat Fahrzeug " .. plate .. " in Garage " .. garage .. " gestellt.", "blue") | ||||
|                 end | ||||
|             end | ||||
|              | ||||
|             TriggerClientEvent('ox_lib:notify', src, { | ||||
|  | @ -233,12 +243,9 @@ RegisterNetEvent('vehicleadmin:deleteFromMap', function(plate) | |||
|         )) | ||||
|          | ||||
|         -- Log für Discord | ||||
|         TriggerEvent('mh_garage:log', { | ||||
|             type = "admin_delete", | ||||
|             user = Player.PlayerData.charinfo.firstname .. ' ' .. Player.PlayerData.charinfo.lastname, | ||||
|             citizenid = Player.PlayerData.citizenid, | ||||
|             plate = plate | ||||
|         }) | ||||
|         if Config.Log and Config.Log.Enabled then | ||||
|             sendToDiscord("Fahrzeugadmin", Player.PlayerData.charinfo.firstname .. " " .. Player.PlayerData.charinfo.lastname .. " (" .. Player.PlayerData.job.label .. ") hat Fahrzeug " .. plate .. " von der Map gelöscht.", "orange") | ||||
|         end | ||||
|     end | ||||
|      | ||||
|     if deleted then | ||||
|  | @ -320,12 +327,9 @@ RegisterNetEvent('vehicleadmin:repairVehicle', function(plate) | |||
|                     )) | ||||
|                      | ||||
|                     -- Log für Discord | ||||
|                     TriggerEvent('mh_garage:log', { | ||||
|                         type = "admin_repair", | ||||
|                         user = Player.PlayerData.charinfo.firstname .. ' ' .. Player.PlayerData.charinfo.lastname, | ||||
|                         citizenid = Player.PlayerData.citizenid, | ||||
|                         plate = plate | ||||
|                     }) | ||||
|                     if Config.Log and Config.Log.Enabled then | ||||
|                         sendToDiscord("Fahrzeugadmin", Player.PlayerData.charinfo.firstname .. " " .. Player.PlayerData.charinfo.lastname .. " (" .. Player.PlayerData.job.label .. ") hat Fahrzeug " .. plate .. " repariert.", "green") | ||||
|                     end | ||||
|                 end | ||||
|                  | ||||
|                 if affectedRows > 0 then | ||||
|  | @ -352,6 +356,32 @@ RegisterNetEvent('vehicleadmin:repairVehicle', function(plate) | |||
|     end) | ||||
| end) | ||||
|  | ||||
| -- Discord Log Funktion | ||||
| function sendToDiscord(title, message, color) | ||||
|     if not Config.Log or not Config.Log.Enabled or not Config.Log.Webhook then return end | ||||
|      | ||||
|     local embed = { | ||||
|         { | ||||
|             ["title"] = message, | ||||
|             ["type"] = "rich", | ||||
|             ["color"] = Config.Log.Colors[color] or Config.Log.Colors.blue, | ||||
|             ["footer"] = { | ||||
|                 ["text"] = Config.Log.SystemName or "Fahrzeugadmin", | ||||
|             }, | ||||
|         } | ||||
|     } | ||||
|      | ||||
|     PerformHttpRequest(Config.Log.Webhook, function(err, text, headers)  | ||||
|         if err and err ~= 204 and err ~= 200 then | ||||
|             print("Fehler beim Discord Webhook [" .. tostring(err) .. "]: " .. tostring(text)) | ||||
|         end | ||||
|     end, 'POST', json.encode({  | ||||
|         username = title .. " - System",  | ||||
|         avatar_url = Config.Log.SystemAvatar,  | ||||
|         embeds = embed | ||||
|     }), { ['Content-Type'] = 'application/json' }) | ||||
| end | ||||
|  | ||||
| -- Command to open admin menu | ||||
| QBCore.Commands.Add('vehicleadmin', 'Öffne Fahrzeug Admin Menu', {}, false, function(source, args) | ||||
|     local src = source | ||||
|  | @ -437,27 +467,3 @@ QBCore.Commands.Add('dealeradmin', 'Öffne Autohändler Fahrzeug Menu', {}, fals | |||
|      | ||||
|     TriggerClientEvent('vehicleadmin:openMenu', src) | ||||
| end) | ||||
|  | ||||
| -- Erweiterung des Log-Systems für Fahrzeugadmin | ||||
| AddEventHandler('mh_garage:log', function(data) | ||||
|     local type = data.type | ||||
|     local user = data.user | ||||
|     local citizenid = data.citizenid | ||||
|     local plate = data.plate | ||||
|     local garage = data.garage | ||||
|     local Color = "purple" | ||||
|     local Text = "" | ||||
|      | ||||
|     if type == "admin_move" then | ||||
|         Text = user .. " [" .. citizenid .. "] hat Fahrzeug " .. plate .. " in Garage " .. garage .. " gestellt." | ||||
|         Color = "blue" | ||||
|     elseif type == "admin_delete" then | ||||
|         Text = user .. " [" .. citizenid .. "] hat Fahrzeug " .. plate .. " von der Map gelöscht." | ||||
|         Color = "orange" | ||||
|     elseif type == "admin_repair" then | ||||
|         Text = user .. " [" .. citizenid .. "] hat Fahrzeug " .. plate .. " repariert." | ||||
|         Color = "green" | ||||
|     end | ||||
|      | ||||
|     sendToDiscord("Fahrzeugadmin", Text, Color) | ||||
| end) | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Nordi98
						Nordi98