From d733fe5428f113fe67056172ccbbfc1ccf5a79eb Mon Sep 17 00:00:00 2001 From: ElPumpo Date: Sun, 19 Jan 2020 16:30:30 +0100 Subject: [PATCH] Minor code cleanup, use latest esx_identity code --- README.md | 3 +- client/main.lua | 83 +++++------------------ locales/br.lua | 1 - locales/de.lua | 1 - locales/en.lua | 3 +- locales/es.lua | 1 - locales/fi.lua | 1 - locales/fr.lua | 1 - locales/ko.lua | 1 - locales/pl.lua | 3 +- locales/sv.lua | 1 - server/main.lua | 175 +++++++++++++++++++----------------------------- 12 files changed, 88 insertions(+), 186 deletions(-) diff --git a/README.md b/README.md index ec62e9de..ee0709f4 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,7 @@ git clone https://github.com/ESX-Org/esx_policejob [esx]/esx_policejob ## Installation - Import `esx_policejob.sql` in your database -- Add this in your server.cfg : +- Add this to your server.cfg: ``` start esx_policejob @@ -52,7 +52,6 @@ start esx_policejob * If you want license management you have to set `Config.EnableLicenses` to `true` in `config.lua` * If you want service management you have to set `Config.MaxInService` to a higher value than `-1` in `config.lua` - # Legal ### License esx_policejob - police script for ESX diff --git a/client/main.lua b/client/main.lua index 688f7daa..315b175f 100644 --- a/client/main.lua +++ b/client/main.lua @@ -610,7 +610,7 @@ function OpenPoliceActionsMenu() if data.current.value == 'citizen_interaction' then local elements = { {label = _U('id_card'), value = 'identity_card'}, - {label = _U('search'), value = 'body_search'}, + {label = _U('search'), value = 'search'}, {label = _U('handcuff'), value = 'handcuff'}, {label = _U('drag'), value = 'drag'}, {label = _U('put_in_vehicle'), value = 'put_in_vehicle'}, @@ -634,8 +634,7 @@ function OpenPoliceActionsMenu() if action == 'identity_card' then OpenIdentityCardMenu(closestPlayer) - elseif action == 'body_search' then - TriggerServerEvent('esx_policejob:message', GetPlayerServerId(closestPlayer), _U('being_searched')) + elseif action == 'search' then OpenBodySearchMenu(closestPlayer) elseif action == 'handcuff' then TriggerServerEvent('esx_policejob:handcuff', GetPlayerServerId(closestPlayer)) @@ -765,58 +764,15 @@ end function OpenIdentityCardMenu(player) ESX.TriggerServerCallback('esx_policejob:getOtherPlayerData', function(data) - local elements = {} - local nameLabel = _U('name', data.name) - local jobLabel, sexLabel, dobLabel, heightLabel, idLabel - - if data.job.grade_label and data.job.grade_label ~= '' then - jobLabel = _U('job', data.job.label .. ' - ' .. data.job.grade_label) - else - jobLabel = _U('job', data.job.label) - end - - if Config.EnableESXIdentity then - nameLabel = _U('name', data.firstname .. ' ' .. data.lastname) - - if data.sex then - if string.lower(data.sex) == 'm' then - sexLabel = _U('sex', _U('male')) - else - sexLabel = _U('sex', _U('female')) - end - else - sexLabel = _U('sex', _U('unknown')) - end - - if data.dob then - dobLabel = _U('dob', data.dob) - else - dobLabel = _U('dob', _U('unknown')) - end - - if data.height then - heightLabel = _U('height', data.height) - else - heightLabel = _U('height', _U('unknown')) - end - - if data.name then - idLabel = _U('id', data.name) - else - idLabel = _U('id', _U('unknown')) - end - end - local elements = { - {label = nameLabel}, - {label = jobLabel} + {label = _U('name', data.name)}, + {label = _U('job', ('%s - %s'):format(data.job.label, data.job.grade_label))} } if Config.EnableESXIdentity then - table.insert(elements, {label = sexLabel}) - table.insert(elements, {label = dobLabel}) - table.insert(elements, {label = heightLabel}) - table.insert(elements, {label = idLabel}) + table.insert(elements, {label = _U('sex', _U(data.sex))}) + table.insert(elements, {label = _U('dob', data.dob)}) + table.insert(elements, {label = _U('height', data.height)}) end if data.drunk then @@ -949,8 +905,7 @@ function OpenFineCategoryMenu(player, category) end function LookupVehicle() - ESX.UI.Menu.Open('dialog', GetCurrentResourceName(), 'lookup_vehicle', - { + ESX.UI.Menu.Open('dialog', GetCurrentResourceName(), 'lookup_vehicle', { title = _U('search_database_title'), }, function(data, menu) local length = string.len(data.value) @@ -972,32 +927,26 @@ function LookupVehicle() end function ShowPlayerLicense(player) - local elements, targetName = {} + local elements = {} - ESX.TriggerServerCallback('esx_policejob:getOtherPlayerData', function(data) - if data.licenses then - for i=1, #data.licenses, 1 do - if data.licenses[i].label and data.licenses[i].type then + ESX.TriggerServerCallback('esx_policejob:getOtherPlayerData', function(playerData) + if playerData.licenses then + for i=1, #playerData.licenses, 1 do + if playerData.licenses[i].label and playerData.licenses[i].type then table.insert(elements, { - label = data.licenses[i].label, - type = data.licenses[i].type + label = playerData.licenses[i].label, + type = playerData.licenses[i].type }) end end end - if Config.EnableESXIdentity then - targetName = data.firstname .. ' ' .. data.lastname - else - targetName = data.name - end - ESX.UI.Menu.Open('default', GetCurrentResourceName(), 'manage_license', { title = _U('license_revoke'), align = 'top-left', elements = elements, }, function(data, menu) - ESX.ShowNotification(_U('licence_you_revoked', data.current.label, targetName)) + ESX.ShowNotification(_U('licence_you_revoked', data.current.label, playerData.name)) TriggerServerEvent('esx_policejob:message', GetPlayerServerId(player), _U('license_revoked', data.current.label)) TriggerServerEvent('esx_license:removeLicense', GetPlayerServerId(player), data.current.type) diff --git a/locales/br.lua b/locales/br.lua index 9f040eab..13ad287c 100644 --- a/locales/br.lua +++ b/locales/br.lua @@ -108,7 +108,6 @@ Locales['br'] = { ['sex'] = 'sex: %s', ['dob'] = 'DOB: %s', ['height'] = 'height: %s', - ['id'] = 'ID: %s', ['bac'] = 'BAC: %s', ['unknown'] = 'unknown', ['male'] = 'male', diff --git a/locales/de.lua b/locales/de.lua index 2f5a9b07..eb6ee554 100644 --- a/locales/de.lua +++ b/locales/de.lua @@ -108,7 +108,6 @@ Locales['de'] = { ['sex'] = 'sex: %s', ['dob'] = 'DOB: %s', ['height'] = 'height: %s', - ['id'] = 'ID: %s', ['bac'] = 'BAC: %s', ['unknown'] = 'unknown', ['male'] = 'male', diff --git a/locales/en.lua b/locales/en.lua index 69a6b496..323f4e7d 100644 --- a/locales/en.lua +++ b/locales/en.lua @@ -108,7 +108,6 @@ Locales['en'] = { ['sex'] = 'sex: %s', ['dob'] = 'DOB: %s', ['height'] = 'height: %s', - ['id'] = 'ID: %s', ['bac'] = 'BAC: %s', ['unknown'] = 'unknown', ['male'] = 'male', @@ -117,7 +116,7 @@ Locales['en'] = { ['guns_label'] = '--- Guns ---', ['inventory_label'] = '--- Inventory ---', ['license_label'] = ' --- Licenses ---', - ['confiscate'] = 'confiscate %s', + ['confiscate'] = 'sieze illegal items', ['confiscate_weapon'] = 'confiscate %s with %s bullets', ['confiscate_inv'] = 'confiscate %sx %s', ['confiscate_dirty'] = 'confiscate dirty money: $%s', diff --git a/locales/es.lua b/locales/es.lua index 202b444e..c9c05cc5 100644 --- a/locales/es.lua +++ b/locales/es.lua @@ -108,7 +108,6 @@ Locales['es'] = { ['sex'] = 'sex: %s', ['dob'] = 'DOB: %s', ['height'] = 'height: %s', - ['id'] = 'ID: %s', ['bac'] = 'BAC: %s', ['unknown'] = 'unknown', ['male'] = 'male', diff --git a/locales/fi.lua b/locales/fi.lua index 89fce3ff..93c8af21 100644 --- a/locales/fi.lua +++ b/locales/fi.lua @@ -108,7 +108,6 @@ Locales['fi'] = { ['sex'] = 'sukupuoli: %s', ['dob'] = 'syntymäaika: %s', ['height'] = 'pituus: %s', - ['id'] = 'ID: %s', ['bac'] = 'alkometri: %s', ['unknown'] = 'tuntematon', ['male'] = 'mies', diff --git a/locales/fr.lua b/locales/fr.lua index 2165e130..8f3071cc 100644 --- a/locales/fr.lua +++ b/locales/fr.lua @@ -108,7 +108,6 @@ Locales['fr'] = { ['sex'] = 'sexe: %s', ['dob'] = 'DOB: %s', ['height'] = 'taille: %s', - ['id'] = 'ID: %s', ['bac'] = 'BAC: %s', ['unknown'] = 'inconnu', ['male'] = 'homme', diff --git a/locales/ko.lua b/locales/ko.lua index 2a523c0c..cf7fe418 100644 --- a/locales/ko.lua +++ b/locales/ko.lua @@ -108,7 +108,6 @@ Locales['ko'] = { ['sex'] = '성별: %s', ['dob'] = '생일: %s', ['height'] = '키: %s', - ['id'] = 'ID: %s', ['bac'] = '혈중 알코올 농도: %s', ['unknown'] = '알 수 없는', ['male'] = '남자', diff --git a/locales/pl.lua b/locales/pl.lua index 3ce1d255..210092ca 100644 --- a/locales/pl.lua +++ b/locales/pl.lua @@ -108,8 +108,7 @@ Locales['pl'] = { ['sex'] = 'płeć: %s', ['dob'] = 'data urodzenia: %s', ['height'] = 'wzrost: %s', - ['id'] = 'iD: %s', - ['bac'] = 'bAC: %s', + ['bac'] = 'BAC: %s', ['unknown'] = 'nieznany', ['male'] = 'mężczyzna', ['female'] = 'kobieta', diff --git a/locales/sv.lua b/locales/sv.lua index bbba9d4e..a79aef07 100644 --- a/locales/sv.lua +++ b/locales/sv.lua @@ -108,7 +108,6 @@ Locales['sv'] = { ['sex'] = 'kön: %s', ['dob'] = 'födelsedatum: %s', ['height'] = 'längd: %s', - ['id'] = 'ID: %s', ['bac'] = 'alkohol i blodet: %s', ['unknown'] = 'okänt', ['male'] = 'man', diff --git a/server/main.lua b/server/main.lua index e2b01235..06097983 100644 --- a/server/main.lua +++ b/server/main.lua @@ -9,7 +9,7 @@ end TriggerEvent('esx_phone:registerNumber', 'police', _U('alert_police'), true, true) TriggerEvent('esx_society:registerSociety', 'police', 'Police', 'society_police', 'society_police', 'society_police', {type = 'public'}) -RegisterServerEvent('esx_policejob:confiscatePlayerItem') +RegisterNetEvent('esx_policejob:confiscatePlayerItem') AddEventHandler('esx_policejob:confiscatePlayerItem', function(target, itemType, itemName, amount) local _source = source local sourceXPlayer = ESX.GetPlayerFromId(_source) @@ -57,7 +57,7 @@ AddEventHandler('esx_policejob:confiscatePlayerItem', function(target, itemType, end end) -RegisterServerEvent('esx_policejob:handcuff') +RegisterNetEvent('esx_policejob:handcuff') AddEventHandler('esx_policejob:handcuff', function(target) local xPlayer = ESX.GetPlayerFromId(source) @@ -68,7 +68,7 @@ AddEventHandler('esx_policejob:handcuff', function(target) end end) -RegisterServerEvent('esx_policejob:drag') +RegisterNetEvent('esx_policejob:drag') AddEventHandler('esx_policejob:drag', function(target) local xPlayer = ESX.GetPlayerFromId(source) @@ -79,7 +79,7 @@ AddEventHandler('esx_policejob:drag', function(target) end end) -RegisterServerEvent('esx_policejob:putInVehicle') +RegisterNetEvent('esx_policejob:putInVehicle') AddEventHandler('esx_policejob:putInVehicle', function(target) local xPlayer = ESX.GetPlayerFromId(source) @@ -90,7 +90,7 @@ AddEventHandler('esx_policejob:putInVehicle', function(target) end end) -RegisterServerEvent('esx_policejob:OutVehicle') +RegisterNetEvent('esx_policejob:OutVehicle') AddEventHandler('esx_policejob:OutVehicle', function(target) local xPlayer = ESX.GetPlayerFromId(source) @@ -101,7 +101,7 @@ AddEventHandler('esx_policejob:OutVehicle', function(target) end end) -RegisterServerEvent('esx_policejob:getStockItem') +RegisterNetEvent('esx_policejob:getStockItem') AddEventHandler('esx_policejob:getStockItem', function(itemName, count) local _source = source local xPlayer = ESX.GetPlayerFromId(_source) @@ -126,7 +126,7 @@ AddEventHandler('esx_policejob:getStockItem', function(itemName, count) end) end) -RegisterServerEvent('esx_policejob:putStockItems') +RegisterNetEvent('esx_policejob:putStockItems') AddEventHandler('esx_policejob:putStockItems', function(itemName, count) local xPlayer = ESX.GetPlayerFromId(source) local sourceItem = xPlayer.getInventoryItem(itemName) @@ -145,68 +145,44 @@ AddEventHandler('esx_policejob:putStockItems', function(itemName, count) end) end) -ESX.RegisterServerCallback('esx_policejob:getOtherPlayerData', function(source, cb, target) - if Config.EnableESXIdentity then - local xPlayer = ESX.GetPlayerFromId(target) - local result = MySQL.Sync.fetchAll('SELECT firstname, lastname, sex, dateofbirth, height FROM users WHERE identifier = @identifier', { - ['@identifier'] = xPlayer.identifier - }) +ESX.RegisterServerCallback('esx_policejob:getOtherPlayerData', function(source, cb, target, notify) + local xPlayer = ESX.GetPlayerFromId(target) - local firstname = result[1].firstname - local lastname = result[1].lastname - local sex = result[1].sex - local dob = result[1].dateofbirth - local height = result[1].height + if notify then + xPlayer.showNotification(_U('being_searched')) + end + if xPlayer then local data = { - name = GetPlayerName(target), - job = xPlayer.job, - inventory = xPlayer.inventory, - accounts = xPlayer.accounts, - weapons = xPlayer.loadout, - firstname = firstname, - lastname = lastname, - sex = sex, - dob = dob, - height = height + name = xPlayer.getName(), + job = xPlayer.job.label, + grade = xPlayer.job.grade_label, + inventory = xPlayer.getInventory(), + accounts = xPlayer.getAccounts(), + weapons = xPlayer.getLoadout() } - TriggerEvent('esx_status:getStatus', target, 'drunk', function(status) - if status ~= nil then - data.drunk = math.floor(status.percent) - end - end) + if Config.EnableESXIdentity then + data.dob = xPlayer.get('dateofbirth') + data.height = xPlayer.get('height') - if Config.EnableLicenses then - TriggerEvent('esx_license:getLicenses', target, function(licenses) - data.licenses = licenses - cb(data) - end) - else - cb(data) + if xPlayer.get('sex') == 'm' then data.sex = 'male' else data.sex = 'female' end end - else - local xPlayer = ESX.GetPlayerFromId(target) - - local data = { - name = GetPlayerName(target), - job = xPlayer.job, - inventory = xPlayer.inventory, - accounts = xPlayer.accounts, - weapons = xPlayer.loadout - } TriggerEvent('esx_status:getStatus', target, 'drunk', function(status) if status then - data.drunk = math.floor(status.percent) + data.drunk = ESX.Math.Round(status.percent) + end + + if Config.EnableLicenses then + TriggerEvent('esx_license:getLicenses', target, function(licenses) + data.licenses = licenses + cb(data) + end) + else + cb(data) end end) - - TriggerEvent('esx_license:getLicenses', target, function(licenses) - data.licenses = licenses - end) - - cb(data) end end) @@ -219,28 +195,35 @@ ESX.RegisterServerCallback('esx_policejob:getFineList', function(source, cb, cat end) ESX.RegisterServerCallback('esx_policejob:getVehicleInfos', function(source, cb, plate) - MySQL.Async.fetchAll('SELECT owner FROM owned_vehicles WHERE plate = @plate', { ['@plate'] = plate }, function(result) - - local retrivedInfo = { - plate = plate - } + local retrivedInfo = {plate = plate} if result[1] then - MySQL.Async.fetchAll('SELECT name, firstname, lastname FROM users WHERE identifier = @identifier', { - ['@identifier'] = result[1].owner - }, function(result2) - - if Config.EnableESXIdentity then - retrivedInfo.owner = result2[1].firstname .. ' ' .. result2[1].lastname - else - retrivedInfo.owner = result2[1].name - end + local xPlayer = ESX.GetPlayerFromIdentifier(result[1].owner) + -- is the owner online? + if xPlayer then + retrivedInfo.owner = xPlayer.getName() cb(retrivedInfo) - end) + else + MySQL.Async.fetchAll('SELECT name, firstname, lastname FROM users WHERE identifier = @identifier', { + ['@identifier'] = result[1].owner + }, function(result2) + if result2[1] then + if Config.EnableESXIdentity then + retrivedInfo.owner = ('%s %s'):format(result2[1].firstname, result2[1].lastname) + else + retrivedInfo.owner = result2[1].name + end + + cb(retrivedInfo) + else + cb(retrivedInfo) + end + end) + end else cb(retrivedInfo) end @@ -251,14 +234,13 @@ ESX.RegisterServerCallback('esx_policejob:getVehicleFromPlate', function(source, MySQL.Async.fetchAll('SELECT owner FROM owned_vehicles WHERE plate = @plate', { ['@plate'] = plate }, function(result) - if result[1] ~= nil then - + if result[1] then MySQL.Async.fetchAll('SELECT name, firstname, lastname FROM users WHERE identifier = @identifier', { ['@identifier'] = result[1].owner }, function(result2) if Config.EnableESXIdentity then - cb(result2[1].firstname .. ' ' .. result2[1].lastname, true) + cb(('%s %s'):format(result2[1].firstname, result2[1].lastname), true) else cb(result2[1].name, true) end @@ -290,12 +272,7 @@ ESX.RegisterServerCallback('esx_policejob:addArmoryWeapon', function(source, cb, end TriggerEvent('esx_datastore:getSharedDataStore', 'society_police', function(store) - local weapons = store.get('weapons') - - if weapons == nil then - weapons = {} - end - + local weapons = store.get('weapons') or {} local foundWeapon = false for i=1, #weapons, 1 do @@ -323,12 +300,7 @@ ESX.RegisterServerCallback('esx_policejob:removeArmoryWeapon', function(source, xPlayer.addWeapon(weaponName, 500) TriggerEvent('esx_datastore:getSharedDataStore', 'society_police', function(store) - - local weapons = store.get('weapons') - - if weapons == nil then - weapons = {} - end + local weapons = store.get('weapons') or {} local foundWeapon = false @@ -342,7 +314,7 @@ ESX.RegisterServerCallback('esx_policejob:removeArmoryWeapon', function(source, if not foundWeapon then table.insert(weapons, { - name = weaponName, + name = weaponName, count = 0 }) end @@ -382,7 +354,6 @@ ESX.RegisterServerCallback('esx_policejob:buyWeapon', function(source, cb, weapo elseif type == 2 then local price = selectedWeapon.components[componentNum] local weaponNum, weapon = ESX.GetWeapon(weaponName) - local component = weapon.components[componentNum] if component then @@ -402,7 +373,6 @@ ESX.RegisterServerCallback('esx_policejob:buyWeapon', function(source, cb, weapo end end) - ESX.RegisterServerCallback('esx_policejob:buyJobVehicle', function(source, cb, vehicleProps, type) local xPlayer = ESX.GetPlayerFromId(source) local price = getPriceFromHash(vehicleProps.model, xPlayer.job.grade_name, type) @@ -464,7 +434,6 @@ ESX.RegisterServerCallback('esx_policejob:storeNearbyVehicle', function(source, end end) end - end) function getPriceFromHash(hashKey, jobGrade, type) @@ -506,37 +475,36 @@ ESX.RegisterServerCallback('esx_policejob:getPlayerInventory', function(source, local xPlayer = ESX.GetPlayerFromId(source) local items = xPlayer.inventory - cb( { items = items } ) + cb({items = items}) end) AddEventHandler('playerDropped', function() -- Save the source in case we lose it (which happens a lot) - local _source = source + local playerId = source -- Did the player ever join? - if _source ~= nil then - local xPlayer = ESX.GetPlayerFromId(_source) + if playerId then + local xPlayer = ESX.GetPlayerFromId(playerId) -- Is it worth telling all clients to refresh? - if xPlayer ~= nil and xPlayer.job ~= nil and xPlayer.job.name == 'police' then + if xPlayer and xPlayer.job.name == 'police' then Citizen.Wait(5000) TriggerClientEvent('esx_policejob:updateBlip', -1) end end end) -RegisterServerEvent('esx_policejob:spawned') +RegisterNetEvent('esx_policejob:spawned') AddEventHandler('esx_policejob:spawned', function() - local _source = source - local xPlayer = ESX.GetPlayerFromId(_source) + local xPlayer = ESX.GetPlayerFromId(playerId) - if xPlayer ~= nil and xPlayer.job ~= nil and xPlayer.job.name == 'police' then + if xPlayer and xPlayer.job.name == 'police' then Citizen.Wait(5000) TriggerClientEvent('esx_policejob:updateBlip', -1) end end) -RegisterServerEvent('esx_policejob:forceBlip') +RegisterNetEvent('esx_policejob:forceBlip') AddEventHandler('esx_policejob:forceBlip', function() TriggerClientEvent('esx_policejob:updateBlip', -1) end) @@ -553,8 +521,3 @@ AddEventHandler('onResourceStop', function(resource) TriggerEvent('esx_phone:removeNumber', 'police') end end) - -RegisterServerEvent('esx_policejob:message') -AddEventHandler('esx_policejob:message', function(target, msg) - TriggerClientEvent('esx:showNotification', target, msg) -end)