forked from Simnation/Main
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,13 +99,23 @@ QBCore.Functions.CreateCallback('vehicleadmin:getGarages', function(source, cb)
|
|||
|
||||
local garages = {}
|
||||
|
||||
-- Verwende die Garagen aus eurem Config
|
||||
-- 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
|
||||
table.sort(garages, function(a, b)
|
||||
|
@ -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