2025-06-09 13:28:19 +02:00
QBCore = exports [ ' qb-core ' ] : GetCoreObject ( )
2025-06-09 15:23:24 +02:00
local test_vari = { }
RegisterServerEvent ( ' mh_garage:setMods ' )
AddEventHandler ( ' mh_garage:setMods ' , function ( mods )
2025-06-09 17:32:19 +02:00
if test_vari [ mods.plate ] == true then
2025-06-25 20:31:26 +02:00
return
2025-06-09 15:23:24 +02:00
else
2025-06-09 17:31:06 +02:00
MySQL.query ( " SELECT mods FROM player_vehicles WHERE plate = ? " , { mods.plate } , function ( rs )
2025-06-09 17:59:45 +02:00
-- Prüfen ob rs überhaupt Daten enthält
if rs and rs [ 1 ] then
-- Wenn mods ein String ist, konvertieren wir es zu einem Table
local modsData = type ( rs [ 1 ] . mods ) == " string " and json.decode ( rs [ 1 ] . mods ) or rs [ 1 ] . mods
if not modsData or next ( modsData ) == nil then
-- Hier sollten Sie wahrscheinlich auch die mods-Daten übergeben, nicht nur plate
MySQL.query ( " UPDATE player_vehicles SET mods = ? WHERE plate = ? " , { json.encode ( mods ) , mods.plate } )
test_vari [ mods.plate ] = true
else
test_vari [ mods.plate ] = true
end
2025-06-09 17:38:26 +02:00
end
2025-06-09 15:23:24 +02:00
end )
end
end )
2025-06-09 13:28:19 +02:00
QBCore.Functions . CreateCallback ( ' mh_garage:storedVehicle ' , function ( source , cb , veh , zone )
local Player = QBCore.Functions . GetPlayer ( source )
if Player ~= nil then
if Player.Functions . GetMoney ( ' bank ' , zone.price ) then
MySQL.query ( " SELECT * FROM player_vehicles WHERE citizenid = ? AND plate = ? " , { Player.PlayerData . citizenid , veh.plate } , function ( rs )
if rs [ 1 ] ~= nil then
2025-06-12 12:58:19 +02:00
MySQL.query ( " UPDATE player_vehicles SET garage = ?, mods = ? WHERE plate = ? " , { zone.name , json.encode ( veh ) , veh.plate } )
2025-06-09 13:28:19 +02:00
DelVehParking ( veh.plate )
cb ( {
status = true ,
text = " Fahrzeug erfolgreich eingeparkt! " ,
type = " success " ,
other = false ,
police = false
} )
else
MySQL.query ( " SELECT * FROM vehicle_keys WHERE owner = ? AND plate = ? " , { Player.PlayerData . citizenid , veh.plate } , function ( rs )
if rs [ 1 ] ~= nil then
2025-06-12 12:58:19 +02:00
MySQL.query ( " UPDATE player_vehicles SET garage = ?, mods = ? WHERE plate = ? " , { zone.name , json.encode ( veh ) , veh.plate } )
2025-06-09 18:33:22 +02:00
--TriggerEvent('mh_Parking:removeVehicle', source, veh.plate)
--DelVehParking(veh.plate)
2025-06-09 13:28:19 +02:00
cb ( {
status = true ,
text = " Fahrzeug erfolgreich eingeparkt! " ,
type = " success " ,
other = true ,
police = false
} )
else
cb ( {
status = false ,
text = " Du besitzt kein Schlüssel für dieses Fahrzeug. " ,
type = " warning " ,
other = false ,
police = true
} )
end
end )
end
end )
end
end
end )
function DelVehParking ( plate )
MySQL.query ( " SELECT * FROM vehicle_parking WHERE plate = ? " , { plate } , function ( rs )
if rs [ 1 ] ~= nil then
MySQL.query ( " DELETE FROM vehicle_parking WHERE plate = ? " , { plate } )
end
end )
end
2025-06-25 20:31:26 +02:00
QBCore.Functions . CreateCallback ( ' mh_garage:retrieveOwnerVehicle ' , function ( source , cb , zone )
2025-06-09 13:28:19 +02:00
local _source = source
local Player = QBCore.Functions . GetPlayer ( _source )
2025-06-25 20:31:26 +02:00
local pedid = Player.PlayerData . citizenid
local veh = { }
MySQL.query ( " SELECT * FROM player_vehicles WHERE owner = ? and garage = ? " , { pedid , zone } , function ( rs )
if rs ~= nil and rs [ 1 ] ~= nil then
for k , v in pairs ( rs ) do
table.insert ( veh , {
2025-06-09 13:28:19 +02:00
vehicle = v.vehicle ,
2025-06-25 20:31:26 +02:00
mods = v.mods ,
2025-06-09 13:28:19 +02:00
plate = v.plate ,
name = v.name
} )
end
2025-06-25 20:31:26 +02:00
Wait ( 100 )
cb ( veh )
else
cb ( false )
2025-06-09 13:28:19 +02:00
end
end )
2025-06-25 20:31:26 +02:00
end )
2025-06-09 13:28:19 +02:00
2025-06-25 20:31:26 +02:00
QBCore.Functions . CreateCallback ( ' mh_garage:retrieveKeyVehicle ' , function ( source , cb , zone )
local _source = source
local Player = QBCore.Functions . GetPlayer ( _source )
local pedid = Player.PlayerData . citizenid
local veh = { }
MySQL.query ( " SELECT pv.* FROM player_vehicles pv JOIN vehicle_keys vk ON pv.plate = vk.plate WHERE vk.owner = ? AND vk.count > 0 " , { playerId } , function ( vehicles )
if vehicles and # vehicles > 0 then
for _ , vehicle in pairs ( vehicles ) do
table.insert ( veh , {
vehicle = vehicle.vehicle ,
mods = vehicle.mods ,
plate = vehicle.plate ,
name = vehicle.name
} )
end
Wait ( 100 )
cb ( veh )
else
cb ( false )
end
end )
2025-06-09 13:28:19 +02:00
end )
QBCore.Functions . CreateCallback ( ' mh_garage:verwaltung ' , function ( source , cb )
local Player = QBCore.Functions . GetPlayer ( source )
local vehicles = { }
MySQL.query ( " SELECT * FROM player_vehicles WHERE citizenid = ? " , { Player.PlayerData . citizenid } , function ( rs )
2025-06-09 18:06:21 +02:00
if rs and rs [ 1 ] then
2025-06-09 13:28:19 +02:00
for k , v in pairs ( rs ) do
table.insert ( vehicles , {
current_garage = v.garage ,
current_in_garage = v.parking ,
current_name = v.name ,
current_plate = v.plate ,
} )
end
end
end )
return vehicles
2025-06-09 19:05:18 +02:00
end )
RegisterServerEvent ( ' mh_garage:spawnedVehicle ' )
AddEventHandler ( ' mh_garage:spawnedVehicle ' , function ( netID , plate )
2025-06-12 12:55:30 +02:00
MySQL.query ( " UPDATE player_vehicles SET garage = ? WHERE plate = ? " , { " OUT " , plate } )
2025-06-25 13:18:34 +02:00
end )
QBCore.Functions . CreateCallback ( ' mh_garage:CheckownerVehicles ' , function ( source , cb , plate )
MySQL.query ( " SELECT * FROM player_vehicles WHERE plate = ? " , { plate } , function ( rs )
if rs ~= nil and rs [ 1 ] ~= nil then
cb ( true )
else
cb ( false )
2025-06-25 13:20:43 +02:00
end
2025-06-25 13:18:34 +02:00
end )
2025-06-09 13:28:19 +02:00
end )