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() myMDT_Core.DB.updateTableColumns() myMDT_Core.DB.handleDatabaseCollation( --todo !! {table = Config.Framework == "ESX" and "users" or "players", column = Config.Framework == "ESX" and "identifier" or "citizenid"}, { {table = "myemergency_employees", col = "id"}, {table = "myemergency_employees", col = "createdby"}, {table = "myemergency_employees", col = "changedby"}, {table = "myemergency_files_entries", col = "createdby"}, {table = "myemergency_mission_reports", col = "createdby"}, {table = "myemergency_mission_reports", col = "changedby"}, {table = "myemergency_investigations_entries", col = "createdby"}, {table = "myemergency_investigations_entries", col = "changedby"}, {table = "myemergency_employees_entries", col = "createdby"}, {table = "myemergency_employees_entries", col = "changedby"}, {table = "myemergency_trainings_employees", col = "createdby"}, {table = "myemergency_trainings_employees", col = "changedby"}, {table = "myemergency_trainings_employees", col = "employee_id"}, } ) end) if Config.Framework == "ESX" then ESX.RegisterServerCallback('myEmergency:loadOverview', function(source, cb, pageNum, quicksearch, loadType) cb(handleLoadOverview(source, pageNum, quicksearch, loadType)) end) ESX.RegisterServerCallback('myEmergency:loadCustom', function(source, cb, loadType, id) cb(handleCustomData(source, loadType, id)) end) ESX.RegisterServerCallback('myEmergency:loadDetails', function(source, cb, id, loadType) cb(loadDetails(source, id, loadType)) end) ESX.RegisterServerCallback('myEmergency:finish-manhunt', function(source, cb, id, loadType) cb(myEmergency_Data.manhunt.finish(source, id, loadType)) end) ESX.RegisterServerCallback('myEmergency:save-data', function(source, cb, id, data, saveSrc) cb(handleSave(source, id, data, saveSrc)) end) ESX.RegisterServerCallback('myEmergency: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('myEmergency: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('myEmergency:SetRadioState', function(source, cb, new_state_id) cb(myMDT_Core.Data.radiostate.set(source, new_state_id)) end) ESX.RegisterServerCallback('myEmergency:filterFileDropdown', function(source, cb, parentID, search) local _source = source cb(myMDT_Core.Data.filesSaver.getForDropDown(_source, parentID, search)) end) ESX.RegisterServerCallback('myEmergency:SetVehicle', function(source, cb, new_state_id) cb(myMDT_Core.Data.employees.setVehicle(source, new_state_id)) end) ESX.RegisterServerCallback('myEmergency:resetVehicle', function(source, cb, id) cb(myMDT_Core.Data.emergencyvehicle.reset(source, id)) end) ESX.RegisterServerCallback('myEmergency:resetEmployeeRadio', function(source, cb, id) cb(myMDT_Core.Data.employeeradio.reset(source, id)) end) elseif Config.Framework == "QB" then QBCore.Functions.CreateCallback('myEmergency:loadOverview', function(source, cb, pageNum, quicksearch, loadType) cb(handleLoadOverview(source, pageNum, quicksearch, loadType)) end) QBCore.Functions.CreateCallback('myEmergency:loadCustom', function(source, cb, loadType, id) cb(handleCustomData(source, loadType, id)) end) QBCore.Functions.CreateCallback('myEmergency:loadDetails', function(source, cb, id, loadType) cb(loadDetails(source, id, loadType)) end) QBCore.Functions.CreateCallback('myEmergency:finish-manhunt', function(source, cb, id, loadType) cb(myEmergency_Data.manhunt.finish(source, id, loadType)) end) QBCore.Functions.CreateCallback('myEmergency:save-data', function(source, cb, id, data, saveSrc) cb(handleSave(source, id, data, saveSrc)) end) QBCore.Functions.CreateCallback('myEmergency:delete-data', function(source, cb, id, src) cb(handleDelete(source, id, src)) end) QBCore.Functions.CreateCallback('myEmergency: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('myEmergency:SetRadioState', function(source, cb, new_state_id) cb(myMDT_Core.Data.radiostate.set(source, new_state_id)) end) QBCore.Functions.CreateCallback('myEmergency:filterFileDropdown', function(source, cb, parentID, search) local _source = source cb(myMDT_Core.Data.filesSaver.getForDropDown(_source, parentID, search)) end) QBCore.Functions.CreateCallback('myEmergency:SetVehicle', function(source, cb, new_state_id) cb(myMDT_Core.Data.employees.setVehicle(source, new_state_id)) end) QBCore.Functions.CreateCallback('myEmergency:resetVehicle', function(source, cb, id) cb(myMDT_Core.Data.emergencyvehicle.reset(source, id)) end) QBCore.Functions.CreateCallback('myEmergency:resetEmployeeRadio', function(source, cb, id) cb(myMDT_Core.Data.employeeradio.reset(source, id)) end) end RegisterNetEvent("myEmergency:openSystem") AddEventHandler('myEmergency:openSystem',function(_source) local _source = source or _source local xPlayer = myMDT_Core.Functions.getPlayer(_source, true, Config.Systems) openServiceSystem(_source, xPlayer) end) RegisterNetEvent("myEmergency:openRadioStates") AddEventHandler('myEmergency: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("myEmergency: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() local syncStateLicenses = exports["myMDT_core"]:GetLicenseSyncState() TriggerClientEvent( "myEmergency:open" ,source , playerName , xPlayer.myEmergeny.systemRights , playerJob , xPlayer.myEmergeny.jobGrade , systemBehaviour , xPlayer.myEmergeny.current_job_grades , theme , syncState , syncStateLicenses ) else TriggerClientEvent("myEmergency:notify",source, Config.NoSystemText[Config.Locale]) end else print("no xPlayer found!") TriggerClientEvent("myEmergency:notify",source, "Problem: No xPlayer found!") end end exports('DeleteFile', function(_source, id, whereColumn, system) myEmergency_Data.files.delete(_source, id, whereColumn, system) end) exports('DeleteLicense', function(_source, id, whereColumn, system) myEmergency_Data.licenses.delete(_source, id, whereColumn, system) end) exports('SaveLicense', function(_source, data, id) myEmergency_Data.licenses.save(_source, data, id) end) exports('DeleteFileLicense', function(_source, id, whereColumn, system) myEmergency_Data.fileslicenses.delete(_source, id, whereColumn, system) end) exports('SaveFileLicense', function(_source, data, id) myEmergency_Data.fileslicenses.save(_source, data, id) end) exports('GetSystems', function() return Config.Systems end)