ESX = nil QBCore = nil myMDT_Core = nil if Config.Framework == "ESX" then ESX = exports["es_extended"]:getSharedObject() elseif Config.Framework == "QB" then QBCore = exports['qb-core']:GetCoreObject() end myMDT_Core = exports["myMDT_core"]:GetCore() startSync = false players = {} MySQL.ready(function() initSystemRights() myEmergency_Data.dashboard.usePoliceData = exports["myMDT_core"]:GetMyMechanicMDT_usePoliceData() myEmergency_Data.files.usePoliceData = exports["myMDT_core"]:GetMyMechanicMDT_usePoliceData() end) if Config.Framework == "ESX" then ESX.RegisterServerCallback('myMechanicMDT:loadOverview', function(source, cb, pageNum, quicksearch, loadType) cb(handleLoadOverview(source, pageNum, quicksearch, loadType)) end) ESX.RegisterServerCallback('myMechanicMDT:loadCustom', function(source, cb, loadType, id) cb(handleCustomData(source, loadType, id)) end) ESX.RegisterServerCallback('myMechanicMDT:loadDetails', function(source, cb, id, loadType) cb(loadDetails(source, id, loadType)) end) ESX.RegisterServerCallback('myMechanicMDT:finish-manhunt', function(source, cb, id, loadType) cb(myEmergency_Data.manhunt.finish(source, id, loadType)) end) ESX.RegisterServerCallback('myMechanicMDT:save-data', function(source, cb, id, data, saveSrc) cb(handleSave(source, id, data, saveSrc)) end) ESX.RegisterServerCallback('myMechanicMDT:delete-data', function(source, cb, id, src) --[[ local xPlayer = myMDT_Core.Functions.getPlayer(source) local query = "select *,(SELECT string_key from myemergency_licenses where myemergency_licenses.id = myemergency_files_licences.license_id) as license_key from myemergency_files_licences where id = @id" local data = MySQL.Sync.fetchAll(query,{ ["@id"] = id }) if data~= nil and #data>0 then TriggerEvent('LicenseManager:revokeLicense', data[1].file_id, data[1].license_key) end --]] cb(handleDelete(source, id, src)) end) ESX.RegisterServerCallback('myMechanicMDT:takeControlCentre', function(source, cb, isReset) local _source = source --if you use a phone with specialnumber here your export --[[ local xPlayer = myMDT_Core.Functions.getPlayer(source) if xPlayer.myEmergeny.openedSystem == 'police' then if not isReset then PhoneExport to get else PhoneExport to set empty end elseif xPlayer.myEmergeny.openedSystem == 'medic' then if not isReset then PhoneExport to get else PhoneExport to set empty end end ]] cb(myMDT_Core.Data.controlcentre.take(_source, isReset)) end) ESX.RegisterServerCallback('myMechanicMDT:SetRadioState', function(source, cb, new_state_id) cb(myMDT_Core.Data.radiostate.set(source, new_state_id)) end) ESX.RegisterServerCallback('myMechanicMDT:filterFileDropdown', function(source, cb, parentID, search) local _source = source cb(myMDT_Core.Data.filesSaver.getForDropDown(_source, parentID, search)) end) ESX.RegisterServerCallback('myMechanicMDT:SetVehicle', function(source, cb, new_state_id) cb(myMDT_Core.Data.employees.setVehicle(source, new_state_id)) end) ESX.RegisterServerCallback('myMechanicMDT:resetVehicle', function(source, cb, id) cb(myMDT_Core.Data.emergencyvehicle.reset(source, id)) end) ESX.RegisterServerCallback('myMechanicMDT:resetEmployeeRadio', function(source, cb, id) cb(myMDT_Core.Data.employeeradio.reset(source, id)) end) elseif Config.Framework == "QB" then QBCore.Functions.CreateCallback('myMechanicMDT:loadOverview', function(source, cb, pageNum, quicksearch, loadType) cb(handleLoadOverview(source, pageNum, quicksearch, loadType)) end) QBCore.Functions.CreateCallback('myMechanicMDT:loadCustom', function(source, cb, loadType, id) cb(handleCustomData(source, loadType, id)) end) QBCore.Functions.CreateCallback('myMechanicMDT:loadDetails', function(source, cb, id, loadType) cb(loadDetails(source, id, loadType)) end) QBCore.Functions.CreateCallback('myMechanicMDT:finish-manhunt', function(source, cb, id, loadType) cb(myEmergency_Data.manhunt.finish(source, id, loadType)) end) QBCore.Functions.CreateCallback('myMechanicMDT:save-data', function(source, cb, id, data, saveSrc) cb(handleSave(source, id, data, saveSrc)) end) QBCore.Functions.CreateCallback('myMechanicMDT:delete-data', function(source, cb, id, src) cb(handleDelete(source, id, src)) end) QBCore.Functions.CreateCallback('myMechanicMDT:takeControlCentre', function(source, cb, isReset) local _source = source --if you use a phone with specialnumber here your export --[[ local xPlayer = myMDT_Core.Functions.getPlayer(source) if xPlayer.myEmergeny.openedSystem == 'police' then if not isReset then PhoneExport to get else PhoneExport to set empty end elseif xPlayer.myEmergeny.openedSystem == 'medic' then if not isReset then PhoneExport to get else PhoneExport to set empty end end ]] cb(myMDT_Core.Data.controlcentre.take(_source, isReset)) end) QBCore.Functions.CreateCallback('myMechanicMDT:SetRadioState', function(source, cb, new_state_id) cb(myMDT_Core.Data.radiostate.set(source, new_state_id)) end) QBCore.Functions.CreateCallback('myMechanicMDT:filterFileDropdown', function(source, cb, parentID, search) local _source = source cb(myMDT_Core.Data.filesSaver.getForDropDown(_source, parentID, search)) end) QBCore.Functions.CreateCallback('myMechanicMDT:SetVehicle', function(source, cb, new_state_id) cb(myMDT_Core.Data.employees.setVehicle(source, new_state_id)) end) QBCore.Functions.CreateCallback('myMechanicMDT:resetVehicle', function(source, cb, id) cb(myMDT_Core.Data.emergencyvehicle.reset(source, id)) end) QBCore.Functions.CreateCallback('myMechanicMDT:resetEmployeeRadio', function(source, cb, id) cb(myMDT_Core.Data.employeeradio.reset(source, id)) end) end RegisterNetEvent("myMechanicMDT:openSystem") AddEventHandler('myMechanicMDT:openSystem',function(_source) local _source = source or _source local xPlayer = myMDT_Core.Functions.getPlayer(_source, true, Config.Systems) openServiceSystem(_source, xPlayer) end) RegisterNetEvent("myMechanicMDT:openRadioStates") AddEventHandler('myMechanicMDT:openRadioStates',function() local _source = source local system = myMDT_Core.Functions.getSystemNameBySource(_source) if system ~= nil and system ~= "" and Config.Systems[system] ~= nil then local theme = Config.Systems[system].theme or "dark" local curState = myMDT_Core.Functions.GetCurrentRadio(_source) local data = handleLoadOverview(_source, 1, "", "radiostate", {}) TriggerClientEvent("myMechanicMDT:openRadio",_source, data, curState, theme) end end) function openServiceSystem(source, xPlayer) local _source = source if xPlayer ~= nil and xPlayer.myEmergeny ~= nil then local openedSystem = myMDT_Core.Functions.getSystemNameBySource(_source) if openedSystem ~= nil and openedSystem ~= "" then local systemBehaviour = myMDT_Core.Functions.getSystemBehaviourBySource(_source) local playerName = myMDT_Core.FW_Wrapper.getNameByIdentifier(myMDT_Core.FW_Wrapper.getPlayerIdentifier(xPlayer)) local playerJob = myMDT_Core.FW_Wrapper.getJobName(xPlayer) local theme = Config.Systems[xPlayer.myEmergeny.openedSystem].theme local syncState = exports["myMDT_core"]:GetSyncState() TriggerClientEvent( "myMechanicMDT:open" ,source , playerName , xPlayer.myEmergeny.systemRights , playerJob , xPlayer.myEmergeny.jobGrade , systemBehaviour , xPlayer.myEmergeny.current_job_grades , theme , syncState ) else TriggerClientEvent("myMechanicMDT:notify",source, Config.NoSystemText[Config.Locale]) end else print("no xPlayer found!") TriggerClientEvent("myMechanicMDT:notify",source, "Problem: No xPlayer found!") end end --todo syncstate nur wenn myEmergency in Config Aktiv, andernfalls eigenen sync bauen exports('DeleteFile', function(_source, id, whereColumn, system) myEmergency_Data.files.delete(_source, id, whereColumn, system) end) exports('GetSystems', function() return Config.Systems end)