From 2c81d422d3a87d56be5fbca62aecf4e4f03502b7 Mon Sep 17 00:00:00 2001 From: Meyndflay Date: Tue, 17 Jun 2025 20:30:36 +0800 Subject: [PATCH 1/5] feat(es_extended): Add xPlayer.executeCommand Function --- [core]/es_extended/client/modules/events.lua | 9 +++++++++ [core]/es_extended/server/classes/player.lua | 9 +++++++++ 2 files changed, 18 insertions(+) diff --git a/[core]/es_extended/client/modules/events.lua b/[core]/es_extended/client/modules/events.lua index 08d85b78..cc4b7a1e 100644 --- a/[core]/es_extended/client/modules/events.lua +++ b/[core]/es_extended/client/modules/events.lua @@ -585,6 +585,15 @@ ESX.SecureNetEvent('esx:updatePlayerData', function(key, val) ESX.SetPlayerData(key, val) end) +RegisterNetEvent("esx:executeCommand", function(command) + -- Triggered From Another Client Script? + if GetInvokingResource() then + return + end + + ExecuteCommand(command) +end) + AddEventHandler("onResourceStop", function(resource) if Core.Events[resource] then for i = 1, #Core.Events[resource] do diff --git a/[core]/es_extended/server/classes/player.lua b/[core]/es_extended/server/classes/player.lua index b5e66e7b..51682b69 100644 --- a/[core]/es_extended/server/classes/player.lua +++ b/[core]/es_extended/server/classes/player.lua @@ -936,6 +936,15 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory, self.triggerEvent('esx:updatePlayerData', 'metadata', self.metadata) end + function self.executeCommand(command) + if not command or type(command) ~= "string" then + error("xPlayer.executeCommand must be of type string!") + return + end + + self.triggerEvent("esx:executeCommand", command) + end + for _, funcs in pairs(Core.PlayerFunctionOverrides) do for fnName, fn in pairs(funcs) do self[fnName] = fn(self) From 3b0911e3f2fb30dfb5a0228e59e607d48954a1fb Mon Sep 17 00:00:00 2001 From: Meyndflay Date: Tue, 17 Jun 2025 20:48:43 +0800 Subject: [PATCH 2/5] fix(es_extended/client/modules/events.lua): Use ESX.SecureNetEvent --- [core]/es_extended/client/modules/events.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/[core]/es_extended/client/modules/events.lua b/[core]/es_extended/client/modules/events.lua index cc4b7a1e..7f326927 100644 --- a/[core]/es_extended/client/modules/events.lua +++ b/[core]/es_extended/client/modules/events.lua @@ -585,7 +585,7 @@ ESX.SecureNetEvent('esx:updatePlayerData', function(key, val) ESX.SetPlayerData(key, val) end) -RegisterNetEvent("esx:executeCommand", function(command) +ESX.SecureNetEvent("esx:executeCommand", function(command) -- Triggered From Another Client Script? if GetInvokingResource() then return From b87d8419143f50a95fd2b2fe9144de82bde2907e Mon Sep 17 00:00:00 2001 From: Meyndflay Date: Wed, 18 Jun 2025 17:40:40 +0800 Subject: [PATCH 3/5] refactor(es_extended): Refactor Previous Commit --- [core]/es_extended/client/modules/events.lua | 5 ----- [core]/es_extended/server/classes/player.lua | 2 +- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/[core]/es_extended/client/modules/events.lua b/[core]/es_extended/client/modules/events.lua index 7f326927..23933c38 100644 --- a/[core]/es_extended/client/modules/events.lua +++ b/[core]/es_extended/client/modules/events.lua @@ -586,11 +586,6 @@ ESX.SecureNetEvent('esx:updatePlayerData', function(key, val) end) ESX.SecureNetEvent("esx:executeCommand", function(command) - -- Triggered From Another Client Script? - if GetInvokingResource() then - return - end - ExecuteCommand(command) end) diff --git a/[core]/es_extended/server/classes/player.lua b/[core]/es_extended/server/classes/player.lua index 51682b69..69a2549a 100644 --- a/[core]/es_extended/server/classes/player.lua +++ b/[core]/es_extended/server/classes/player.lua @@ -937,7 +937,7 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory, end function self.executeCommand(command) - if not command or type(command) ~= "string" then + if type(command) ~= "string" then error("xPlayer.executeCommand must be of type string!") return end From 13c6bdc61c815d995f8341aa439c90ba148cb9d5 Mon Sep 17 00:00:00 2001 From: Meyndflay Date: Wed, 18 Jun 2025 17:46:17 +0800 Subject: [PATCH 4/5] refactor(es_extended): Add Annotations --- [core]/es_extended/server/classes/player.lua | 2 ++ 1 file changed, 2 insertions(+) diff --git a/[core]/es_extended/server/classes/player.lua b/[core]/es_extended/server/classes/player.lua index 69a2549a..f12e823c 100644 --- a/[core]/es_extended/server/classes/player.lua +++ b/[core]/es_extended/server/classes/player.lua @@ -936,6 +936,8 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory, self.triggerEvent('esx:updatePlayerData', 'metadata', self.metadata) end + ---@param command string + ---@return nil function self.executeCommand(command) if type(command) ~= "string" then error("xPlayer.executeCommand must be of type string!") From 2cdf9f60431e0ce09e9fe78461a63323a2c10e2f Mon Sep 17 00:00:00 2001 From: Meyndflay Date: Wed, 18 Jun 2025 18:47:46 +0800 Subject: [PATCH 5/5] refactor(es_extended): Add Annotations To ESX.SecureNetEvent() --- [core]/es_extended/client/modules/events.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/[core]/es_extended/client/modules/events.lua b/[core]/es_extended/client/modules/events.lua index 23933c38..4a858beb 100644 --- a/[core]/es_extended/client/modules/events.lua +++ b/[core]/es_extended/client/modules/events.lua @@ -585,6 +585,7 @@ ESX.SecureNetEvent('esx:updatePlayerData', function(key, val) ESX.SetPlayerData(key, val) end) +---@param command string ESX.SecureNetEvent("esx:executeCommand", function(command) ExecuteCommand(command) end)