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'
|
version '2.0.0'
|
||||||
|
|
||||||
shared_scripts {
|
shared_scripts {
|
||||||
'@ox_lib/init.lua'
|
'@ox_lib/init.lua',
|
||||||
|
'config.lua'
|
||||||
}
|
}
|
||||||
|
|
||||||
client_scripts {
|
client_scripts {
|
||||||
|
|
|
@ -1,14 +1,18 @@
|
||||||
local QBCore = exports['qb-core']:GetCoreObject()
|
local QBCore = exports['qb-core']:GetCoreObject()
|
||||||
|
|
||||||
-- Erlaubte Jobs für das Vehicle Admin System
|
-- Lade die Garagen aus dem Hauptsystem
|
||||||
local AllowedJobs = {
|
Citizen.CreateThread(function()
|
||||||
['police'] = true,
|
Wait(1000) -- Warte kurz, damit das Hauptsystem geladen ist
|
||||||
['admin'] = true,
|
|
||||||
['mechanic'] = true,
|
-- Versuche, die Garagen aus dem Hauptsystem zu laden
|
||||||
['ambulance'] = true,
|
if _G.Config and _G.Config.Zonen then
|
||||||
['cardealer'] = true,
|
Config.Zonen = _G.Config.Zonen
|
||||||
-- Füge hier weitere Jobs hinzu
|
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
|
-- Job Permission Check
|
||||||
local function HasPermission(source)
|
local function HasPermission(source)
|
||||||
|
@ -22,7 +26,7 @@ local function HasPermission(source)
|
||||||
|
|
||||||
-- Check if player has allowed job
|
-- Check if player has allowed job
|
||||||
local playerJob = Player.PlayerData.job.name
|
local playerJob = Player.PlayerData.job.name
|
||||||
return AllowedJobs[playerJob] == true
|
return Config.AllowedJobs[playerJob] == true
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Get all players from database
|
-- Get all players from database
|
||||||
|
@ -95,12 +99,22 @@ QBCore.Functions.CreateCallback('vehicleadmin:getGarages', function(source, cb)
|
||||||
|
|
||||||
local garages = {}
|
local garages = {}
|
||||||
|
|
||||||
-- Verwende die Garagen aus eurem Config
|
-- Verwende die externen Garagen aus dem Garagensystem
|
||||||
for k, v in pairs(Config.Zonen) do
|
if Config.Zonen then
|
||||||
table.insert(garages, {
|
for k, v in pairs(Config.Zonen) do
|
||||||
name = v.name,
|
table.insert(garages, {
|
||||||
label = v.name -- Ihr könnt hier auch eine Label-Property hinzufügen
|
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
|
end
|
||||||
|
|
||||||
-- Sortiere alphabetisch
|
-- Sortiere alphabetisch
|
||||||
|
@ -172,13 +186,9 @@ RegisterNetEvent('vehicleadmin:moveToGarage', function(plate, garage)
|
||||||
))
|
))
|
||||||
|
|
||||||
-- Log für Discord
|
-- Log für Discord
|
||||||
TriggerEvent('mh_garage:log', {
|
if Config.Log and Config.Log.Enabled then
|
||||||
type = "admin_move",
|
sendToDiscord("Fahrzeugadmin", Player.PlayerData.charinfo.firstname .. " " .. Player.PlayerData.charinfo.lastname .. " (" .. Player.PlayerData.job.label .. ") hat Fahrzeug " .. plate .. " in Garage " .. garage .. " gestellt.", "blue")
|
||||||
user = Player.PlayerData.charinfo.firstname .. ' ' .. Player.PlayerData.charinfo.lastname,
|
end
|
||||||
citizenid = Player.PlayerData.citizenid,
|
|
||||||
plate = plate,
|
|
||||||
garage = garage
|
|
||||||
})
|
|
||||||
end
|
end
|
||||||
|
|
||||||
TriggerClientEvent('ox_lib:notify', src, {
|
TriggerClientEvent('ox_lib:notify', src, {
|
||||||
|
@ -233,12 +243,9 @@ RegisterNetEvent('vehicleadmin:deleteFromMap', function(plate)
|
||||||
))
|
))
|
||||||
|
|
||||||
-- Log für Discord
|
-- Log für Discord
|
||||||
TriggerEvent('mh_garage:log', {
|
if Config.Log and Config.Log.Enabled then
|
||||||
type = "admin_delete",
|
sendToDiscord("Fahrzeugadmin", Player.PlayerData.charinfo.firstname .. " " .. Player.PlayerData.charinfo.lastname .. " (" .. Player.PlayerData.job.label .. ") hat Fahrzeug " .. plate .. " von der Map gelöscht.", "orange")
|
||||||
user = Player.PlayerData.charinfo.firstname .. ' ' .. Player.PlayerData.charinfo.lastname,
|
end
|
||||||
citizenid = Player.PlayerData.citizenid,
|
|
||||||
plate = plate
|
|
||||||
})
|
|
||||||
end
|
end
|
||||||
|
|
||||||
if deleted then
|
if deleted then
|
||||||
|
@ -320,12 +327,9 @@ RegisterNetEvent('vehicleadmin:repairVehicle', function(plate)
|
||||||
))
|
))
|
||||||
|
|
||||||
-- Log für Discord
|
-- Log für Discord
|
||||||
TriggerEvent('mh_garage:log', {
|
if Config.Log and Config.Log.Enabled then
|
||||||
type = "admin_repair",
|
sendToDiscord("Fahrzeugadmin", Player.PlayerData.charinfo.firstname .. " " .. Player.PlayerData.charinfo.lastname .. " (" .. Player.PlayerData.job.label .. ") hat Fahrzeug " .. plate .. " repariert.", "green")
|
||||||
user = Player.PlayerData.charinfo.firstname .. ' ' .. Player.PlayerData.charinfo.lastname,
|
end
|
||||||
citizenid = Player.PlayerData.citizenid,
|
|
||||||
plate = plate
|
|
||||||
})
|
|
||||||
end
|
end
|
||||||
|
|
||||||
if affectedRows > 0 then
|
if affectedRows > 0 then
|
||||||
|
@ -352,6 +356,32 @@ RegisterNetEvent('vehicleadmin:repairVehicle', function(plate)
|
||||||
end)
|
end)
|
||||||
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
|
-- Command to open admin menu
|
||||||
QBCore.Commands.Add('vehicleadmin', 'Öffne Fahrzeug Admin Menu', {}, false, function(source, args)
|
QBCore.Commands.Add('vehicleadmin', 'Öffne Fahrzeug Admin Menu', {}, false, function(source, args)
|
||||||
local src = source
|
local src = source
|
||||||
|
@ -437,27 +467,3 @@ QBCore.Commands.Add('dealeradmin', 'Öffne Autohändler Fahrzeug Menu', {}, fals
|
||||||
|
|
||||||
TriggerClientEvent('vehicleadmin:openMenu', src)
|
TriggerClientEvent('vehicleadmin:openMenu', src)
|
||||||
end)
|
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