From 04a685dcd5fc6b3afb80affa37808f8af9947962 Mon Sep 17 00:00:00 2001 From: Tony Stark <76168122+tony-stark-17@users.noreply.github.com> Date: Tue, 6 Sep 2022 12:52:57 +0530 Subject: [PATCH 01/10] Fix Teleport error --- [esx_addons]/esx_jobs/client/main.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/[esx_addons]/esx_jobs/client/main.lua b/[esx_addons]/esx_jobs/client/main.lua index e322c6c4..6699ed67 100644 --- a/[esx_addons]/esx_jobs/client/main.lua +++ b/[esx_addons]/esx_jobs/client/main.lua @@ -361,7 +361,7 @@ CreateThread(function() ESX.ShowHelpNotification(v.Hint) hintIsShowed = true if IsControlJustReleased(0, 38) then - ESX.Game.Teleport(PlayerPedId(), position) + ESX.Game.Teleport(PlayerPedId(), v.Teleport) end end end From 784c43177fd971a73ac011482b9bbf1011f89afa Mon Sep 17 00:00:00 2001 From: GRIZY <60541417+GRZ-D3V@users.noreply.github.com> Date: Tue, 6 Sep 2022 15:48:39 -0400 Subject: [PATCH 02/10] Update(cfg): add correct locale + description --- server.cfg | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server.cfg b/server.cfg index 3904cdf4..25824af0 100644 --- a/server.cfg +++ b/server.cfg @@ -24,8 +24,8 @@ sv_licenseKey "" sv_maxclients 10 # Allow access to features usually locked behind a FiveM patreon key sets sv_projectName "ESX Legacy" -sets sv_projectDesc "" -sets locale "en-GB" +sets sv_projectDesc "My new ESX Legacy project" +sets locale "en-US" sets tags "default, esx, legacy, Roleplay" sv_scriptHookAllowed 0 From 234d0798206df7dd9968958cdcc9f0b6af7417fe Mon Sep 17 00:00:00 2001 From: Mycroft Date: Wed, 7 Sep 2022 18:31:22 +0100 Subject: [PATCH 03/10] Experimental - refactor(es_extended):change accounts to handle index within its object this should correct the behaviour when working with ESX within v8 --- [esx]/es_extended/server/classes/player.lua | 14 +++++++------- [esx]/es_extended/server/main.lua | 10 ++++++++-- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/[esx]/es_extended/server/classes/player.lua b/[esx]/es_extended/server/classes/player.lua index 32ad4e12..071cce15 100644 --- a/[esx]/es_extended/server/classes/player.lua +++ b/[esx]/es_extended/server/classes/player.lua @@ -109,7 +109,7 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory, function self.getAccount(account) for i=1, #self.accounts do if self.accounts[i].name == account then - return self.accounts[i], i + return self.accounts[i] end end end @@ -177,11 +177,11 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory, return end if money >= 0 then - local account, index = self.getAccount(accountName) + local account = self.getAccount(accountName) if account then money = account.round and ESX.Math.Round(money) or money - self.accounts[index].money = money + self.accounts[account.index].money = money self.triggerEvent('esx:setAccountMoney', account) else @@ -198,10 +198,10 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory, return end if money > 0 then - local account, index = self.getAccount(accountName) + local account = self.getAccount(accountName) if account then money = account.round and ESX.Math.Round(money) or money - self.accounts[index].money += money + self.accounts[account.index].money += money self.triggerEvent('esx:setAccountMoney', account) else @@ -218,11 +218,11 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory, return end if money > 0 then - local account, index = self.getAccount(accountName) + local account = self.getAccount(accountName) if account then money = account.round and ESX.Math.Round(money) or money - self.accounts[index].money -= money + self.accounts[account.index].money -= money self.triggerEvent('esx:setAccountMoney', account) else diff --git a/[esx]/es_extended/server/main.lua b/[esx]/es_extended/server/main.lua index 7ca0a701..2a46a02f 100644 --- a/[esx]/es_extended/server/main.lua +++ b/[esx]/es_extended/server/main.lua @@ -131,8 +131,14 @@ function loadESXPlayer(identifier, playerId, isNew) if data.round == nil then data.round = true end - userData.accounts[#userData.accounts + 1] = {name = account, money = foundAccounts[account] or Config.StartingAccountMoney[account] or 0, - label = data.label, round = data.round} + local index = #userData.accounts + 1 + userData.accounts[index] = { + name = account, + money = foundAccounts[account] or Config.StartingAccountMoney[account] or 0, + label = data.label, + round = data.round, + index = index + } end -- Job From 8a2dd46219f6083e76159f42d9d603c0481255d7 Mon Sep 17 00:00:00 2001 From: Blxvyy <110262001+Blxvyy@users.noreply.github.com> Date: Wed, 7 Sep 2022 19:52:29 +0200 Subject: [PATCH 04/10] Update nl.lua --- [esx_addons]/esx_policejob/locales/nl.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/[esx_addons]/esx_policejob/locales/nl.lua b/[esx_addons]/esx_policejob/locales/nl.lua index 0cbfacb4..c8511feb 100644 --- a/[esx_addons]/esx_policejob/locales/nl.lua +++ b/[esx_addons]/esx_policejob/locales/nl.lua @@ -100,6 +100,7 @@ Locales['nl'] = { ['box'] = 'Box', ['fence'] = 'PD Hek', ['cash'] = 'Pallet met geld', + ['spikestrips'] = 'Spijkermatten', -- ID Menu ['name'] = 'Naam: %s', ['job'] = 'Werk: %s', From b6b1175dda1fb5cf75e668c9fd1e90f39637c00c Mon Sep 17 00:00:00 2001 From: Mycroft Date: Thu, 8 Sep 2022 20:31:13 +0100 Subject: [PATCH 05/10] feat(esx_property): Save Properties on an interval --- [esx_addons]/esx_property/config.lua | 1 + [esx_addons]/esx_property/server/main.lua | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/[esx_addons]/esx_property/config.lua b/[esx_addons]/esx_property/config.lua index 13fd373c..9cbe598d 100644 --- a/[esx_addons]/esx_property/config.lua +++ b/[esx_addons]/esx_property/config.lua @@ -8,6 +8,7 @@ Config.OwnedBlips = true -- Add blips for Owned Properties --------------------- General Settings --------------------------------- Config.Locale = 'en' Config.Shells = false -- Enable/Disable Shell Interiors Default: false +Config.SaveInterval = 5 -- Interval in Minutes to Save Properties Config.CanAlwaysExit = true -- Disabling this allows players to be locked in Config.OwnerCanAlwaysEnter = true -- Disabling this means the owner can't enter the property unless door is unlocked Config.MaxNameLength = 20 -- Max Name Length for Owned Properties Default: 20 diff --git a/[esx_addons]/esx_property/server/main.lua b/[esx_addons]/esx_property/server/main.lua index 0b7397fb..ea4bd250 100644 --- a/[esx_addons]/esx_property/server/main.lua +++ b/[esx_addons]/esx_property/server/main.lua @@ -1109,3 +1109,15 @@ AddEventHandler('onResourceStop', function(ResourceName) end end) +-- Save Properties every x Minutes + +CreateThread(function() + while true do + Wait(60000 * Config.SaveInterval) + if Properties and #Properties > 0 then + SaveResourceFile(GetCurrentResourceName(), 'properties.json', json.encode(Properties)) + Log("Properties Saving", 11141375, {{name = "**Reason**", value = "Interval Saving", inline = true}, + {name = "**Property Count**", value = tostring(#Properties), inline = true}}, 1) + end + end +end) \ No newline at end of file From 203b79ef924733cb9eb44d1dfc2a701c464bb300 Mon Sep 17 00:00:00 2001 From: Mycroft Date: Thu, 8 Sep 2022 20:57:59 +0100 Subject: [PATCH 06/10] refactor(esx_property): Better Saving Management --- [esx_addons]/esx_property/server/main.lua | 34 ++++++++++------------- 1 file changed, 14 insertions(+), 20 deletions(-) diff --git a/[esx_addons]/esx_property/server/main.lua b/[esx_addons]/esx_property/server/main.lua index ea4bd250..44b5bfdf 100644 --- a/[esx_addons]/esx_property/server/main.lua +++ b/[esx_addons]/esx_property/server/main.lua @@ -165,12 +165,6 @@ ESX.RegisterCommand(_("refresh_name"), Config.AllowedGroups, function(xPlayer) PropertiesRefresh() end, false, {help = _U("refresh_desc")}) -ESX.RegisterCommand(_("save_name"), Config.AllowedGroups, function(xPlayer) - SaveResourceFile(GetCurrentResourceName(), 'properties.json', json.encode(Properties)) - Log("Properties Saving", 11141375, - {{name = "**Reason**", value = "Requsted By Admin", inline = true}, {name = "**Property Count**", value = tostring(#Properties), inline = true}}, 1) -end, false,{help = _U("save_desc")}) - ESX.RegisterCommand(_("create_name"), "user", function(xPlayer) if IsPlayerAdmin(xPlayer.source) or (PM.Enabled and xPlayer.job.name == PM.job) then xPlayer.triggerEvent("esx_property:CreateProperty") @@ -1088,24 +1082,24 @@ AddEventHandler('txAdmin:events:scheduledRestart', function(eventData) end end) ---- Save Properties On Server Stop/Restart -AddEventHandler('txAdmin:events:serverShuttingDown', function() +function PropertySave(Reason) if Properties and #Properties > 0 then SaveResourceFile(GetCurrentResourceName(), 'properties.json', json.encode(Properties)) Log("Properties Saving", 11141375, - {{name = "**Reason**", value = "Server Shutdown", inline = true}, {name = "**Property Count**", value = tostring(#Properties), inline = true}}, 1) + {{name = "**Reason**", value = Reason, inline = true}, {name = "**Property Count**", value = tostring(#Properties), inline = true}}, 1) end +end + +--- Save Properties On Server Stop/Restart +AddEventHandler('txAdmin:events:serverShuttingDown', function() + PropertySave("Server Shutdown") end) --- Save Properties On Resource Stop/Restart AddEventHandler('onResourceStop', function(ResourceName) if ResourceName == GetCurrentResourceName() then - if Properties and #Properties > 0 then - SaveResourceFile(GetCurrentResourceName(), 'properties.json', json.encode(Properties)) - Log("Properties Saving", 11141375, {{name = "**Reason**", value = "Resource Restart", inline = true}, - {name = "**Property Count**", value = tostring(#Properties), inline = true}}, 1) - end + PropertySave("Resource Stopped") end end) @@ -1114,10 +1108,10 @@ end) CreateThread(function() while true do Wait(60000 * Config.SaveInterval) - if Properties and #Properties > 0 then - SaveResourceFile(GetCurrentResourceName(), 'properties.json', json.encode(Properties)) - Log("Properties Saving", 11141375, {{name = "**Reason**", value = "Interval Saving", inline = true}, - {name = "**Property Count**", value = tostring(#Properties), inline = true}}, 1) - end + PropertySave("Interval Saving") end -end) \ No newline at end of file +end) + +ESX.RegisterCommand(_("save_name"), Config.AllowedGroups, function(xPlayer) + PropertySave("Manual Saving (Requested By .. " .. GetPlayerName(xPlayer.source) .. ")") +end, false,{help = _U("save_desc")}) From 465367d38a1cca0b178b82e3010122820a73cd53 Mon Sep 17 00:00:00 2001 From: Mycroft Date: Thu, 8 Sep 2022 21:01:32 +0100 Subject: [PATCH 07/10] feat(esx_property): Translations for Saving Reasons --- [esx_addons]/esx_property/locales/en.lua | 7 +++++++ [esx_addons]/esx_property/server/main.lua | 8 ++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/[esx_addons]/esx_property/locales/en.lua b/[esx_addons]/esx_property/locales/en.lua index 031fba23..50d4de9c 100644 --- a/[esx_addons]/esx_property/locales/en.lua +++ b/[esx_addons]/esx_property/locales/en.lua @@ -194,4 +194,11 @@ Locales['en'] = { ["cctv_textui_3"] = "Press ~b~[E]~s~ to Set Max Left Roation", ["create_success"] = "Property created!", ["missing_data"] = "Please Fill Out all Required Inputs!", + + -- Saving Translations + ["server_restart"] = "Server Restarting", + ["server_shutdown"] = "Server Shutdown", + ["manual_save"] = "Manual Save (Requested By %s)", + ["resource_stop"] = "Resource Stopping", + ["interval_saving"] = "Interval Saving" } diff --git a/[esx_addons]/esx_property/server/main.lua b/[esx_addons]/esx_property/server/main.lua index 44b5bfdf..2d3db968 100644 --- a/[esx_addons]/esx_property/server/main.lua +++ b/[esx_addons]/esx_property/server/main.lua @@ -1092,14 +1092,14 @@ end --- Save Properties On Server Stop/Restart AddEventHandler('txAdmin:events:serverShuttingDown', function() - PropertySave("Server Shutdown") + PropertySave(_U("server_shutdown")) end) --- Save Properties On Resource Stop/Restart AddEventHandler('onResourceStop', function(ResourceName) if ResourceName == GetCurrentResourceName() then - PropertySave("Resource Stopped") + PropertySave(_U("resource_stop")) end end) @@ -1108,10 +1108,10 @@ end) CreateThread(function() while true do Wait(60000 * Config.SaveInterval) - PropertySave("Interval Saving") + PropertySave(_U("interval_save")) end end) ESX.RegisterCommand(_("save_name"), Config.AllowedGroups, function(xPlayer) - PropertySave("Manual Saving (Requested By .. " .. GetPlayerName(xPlayer.source) .. ")") + PropertySave(_U("manual_save", GetPlayerName(xPlayer.source))) end, false,{help = _U("save_desc")}) From 3e7535ed158d50d3b161344faf5bb6c5ff06e105 Mon Sep 17 00:00:00 2001 From: Mycroft Date: Thu, 8 Sep 2022 21:03:06 +0100 Subject: [PATCH 08/10] fix(esx_property): Admins no longer see the realestate menu --- [esx_addons]/esx_property/client/main.lua | 2 +- [esx_addons]/esx_property/server/main.lua | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/[esx_addons]/esx_property/client/main.lua b/[esx_addons]/esx_property/client/main.lua index 1f5cc274..0712ff7e 100644 --- a/[esx_addons]/esx_property/client/main.lua +++ b/[esx_addons]/esx_property/client/main.lua @@ -877,7 +877,7 @@ function OpenPMQuickMenu(Action) end ESX.RegisterInput(_U("realestate_command"), _U("realestate_command_desc"), "keyboard", "F5", function() - ESX.TriggerServerCallback('esx_property:IsAdmin', function(Access) + ESX.TriggerServerCallback('esx_property:CanAccessRealEstateMenu', function(Access) if Access then OpenPMQuickMenu("ActionsMenu") end diff --git a/[esx_addons]/esx_property/server/main.lua b/[esx_addons]/esx_property/server/main.lua index 2d3db968..ee7fb114 100644 --- a/[esx_addons]/esx_property/server/main.lua +++ b/[esx_addons]/esx_property/server/main.lua @@ -1025,7 +1025,7 @@ AddEventHandler('playerDropped', function() end end) -ESX.RegisterServerCallback('esx_property:CanCreateProperty', function(source, cb, num) +ESX.RegisterServerCallback('esx_property:CanCreateProperty', function(source, cb) local Re = false local xPlayer = ESX.GetPlayerFromId(source) @@ -1042,6 +1042,12 @@ ESX.RegisterServerCallback('esx_property:IsAdmin', function(source, cb, num) cb(IsPlayerAdmin(source, "ViewProperties")) end) +ESX.RegisterServerCallback('esx_property:CanAccessRealEstateMenu', function(source, cb, num) + local xPlayer = ESX.GetPlayerFromId(source) + local Re = (Config.PlayerManagement.Enabled and xPlayer.job.name == Config.PlayerManagement.job and xPlayer.job.grade >= Config.PlayerManagement.Permissions.ManagePropertiesFromQuickActions) and true or false + cb(Re) +end) + RegisterNetEvent('esx_property:server:createProperty', function(Property) local source = source local xPlayer = ESX.GetPlayerFromId(source) From 5f9b5cd1da0584efcd4f6b7a09a63d897473cf5d Mon Sep 17 00:00:00 2001 From: Mycroft Date: Thu, 8 Sep 2022 21:05:38 +0100 Subject: [PATCH 09/10] tweak(esx_property): Remove Unused variables --- [esx_addons]/esx_property/server/main.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/[esx_addons]/esx_property/server/main.lua b/[esx_addons]/esx_property/server/main.lua index ee7fb114..440ad971 100644 --- a/[esx_addons]/esx_property/server/main.lua +++ b/[esx_addons]/esx_property/server/main.lua @@ -1038,11 +1038,11 @@ ESX.RegisterServerCallback('esx_property:CanCreateProperty', function(source, cb cb(Re) end) -ESX.RegisterServerCallback('esx_property:IsAdmin', function(source, cb, num) +ESX.RegisterServerCallback('esx_property:IsAdmin', function(source, cb) cb(IsPlayerAdmin(source, "ViewProperties")) end) -ESX.RegisterServerCallback('esx_property:CanAccessRealEstateMenu', function(source, cb, num) +ESX.RegisterServerCallback('esx_property:CanAccessRealEstateMenu', function(source, cb) local xPlayer = ESX.GetPlayerFromId(source) local Re = (Config.PlayerManagement.Enabled and xPlayer.job.name == Config.PlayerManagement.job and xPlayer.job.grade >= Config.PlayerManagement.Permissions.ManagePropertiesFromQuickActions) and true or false cb(Re) From 04b237a7e6ba4a6820d92cae4e3865ed2fe5c7f3 Mon Sep 17 00:00:00 2001 From: Mycroft Date: Thu, 8 Sep 2022 23:48:34 +0100 Subject: [PATCH 10/10] feat(esx_menu_list): return currentRow with data --- [esx]/esx_menu_list/client/main.lua | 10 ++-------- [esx]/esx_menu_list/html/js/app.js | 1 + 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/[esx]/esx_menu_list/client/main.lua b/[esx]/esx_menu_list/client/main.lua index 9cd27f91..65721d0f 100644 --- a/[esx]/esx_menu_list/client/main.lua +++ b/[esx]/esx_menu_list/client/main.lua @@ -12,11 +12,7 @@ CreateThread(function() name = name, data = data }) - - ESX.SetTimeout(200, function() - SetNuiFocus(true, true) - end) - + SetNuiFocus(true, true) end local function closeMenu(namespace, name) @@ -46,11 +42,9 @@ CreateThread(function() RegisterNUICallback('menu_submit', function(data, cb) local menu = ESX.UI.Menu.GetOpened(MenuType, data._namespace, data._name) - - if menu.submit ~= nil then + if menu.submit then menu.submit(data, menu) end - cb('OK') end) diff --git a/[esx]/esx_menu_list/html/js/app.js b/[esx]/esx_menu_list/html/js/app.js index 943e2db8..fd113858 100644 --- a/[esx]/esx_menu_list/html/js/app.js +++ b/[esx]/esx_menu_list/html/js/app.js @@ -122,6 +122,7 @@ let menu = $(Mustache.render(MenuTpl, view)); menu.find('button[data-namespace][data-name]').click(function() { + ESX_MENU.data[$(this).data('namespace')][$(this).data('name')][parseInt($(this).data('id'))].currentRow = parseInt($(this).data('id')) + 1; ESX_MENU.submit($(this).data('namespace'), $(this).data('name'), { data : ESX_MENU.data[$(this).data('namespace')][$(this).data('name')][parseInt($(this).data('id'))], value: $(this).data('value')