forked from Simnation/Main
278 lines
No EOL
9.3 KiB
Lua
278 lines
No EOL
9.3 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()
|
|
|
|
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) |