242 lines
8 KiB
Lua
242 lines
8 KiB
Lua
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)
|