From 39b91b14ce96041f1662d1ce9aebb6a1ed065d52 Mon Sep 17 00:00:00 2001 From: Mathu-lmn <80094438+Mathu-lmn@users.noreply.github.com> Date: Wed, 23 Sep 2026 21:00:01 +0200 Subject: [PATCH] Code modernize (#234) * refactor: declare exports at runtime and drop the player-data provides alias Signed-off-by: Mathu-lmn <80094438+Mathu-lmn@users.noreply.github.com> * refactor: pass handlers directly to RegisterNetEvent Signed-off-by: Mathu-lmn <80094438+Mathu-lmn@users.noreply.github.com> * refactor: use CreateThread/Wait without the Citizen prefix Signed-off-by: Mathu-lmn <80094438+Mathu-lmn@users.noreply.github.com> * chore: remove trailing whitespace, stray lines and unused locals Signed-off-by: Mathu-lmn <80094438+Mathu-lmn@users.noreply.github.com> --------- Signed-off-by: Mathu-lmn <80094438+Mathu-lmn@users.noreply.github.com> --- .../[maps]/fivem-map-hipster/map.lua | 2 -- .../[maps]/fivem-map-skater/map.lua | 2 -- .../[examples]/money-fountain/server.lua | 6 ++--- .../[gameplay]/[examples]/money/client.lua | 4 +-- .../[examples]/money/fxmanifest.lua | 3 ++- .../[gameplay]/[examples]/money/server.lua | 6 ++--- .../[examples]/ped-money-drops/client.lua | 1 - .../[examples]/ped-money-drops/server.lua | 8 ++---- .../[gameplay]/player-data/fxmanifest.lua | 4 --- resources/[gameplay]/player-data/server.lua | 25 +++--------------- .../[gameplay]/playernames/fxmanifest.lua | 13 ---------- .../playernames/playernames_api.lua | 7 +++++ .../[gameplay]/playernames/playernames_cl.lua | 6 ++--- .../[gameplay]/playernames/playernames_sv.lua | 7 +++-- .../[managers]/mapmanager/fxmanifest.lua | 20 +++----------- .../mapmanager/mapmanager_client.lua | 4 +-- .../mapmanager/mapmanager_server.lua | 14 +++++++--- .../mapmanager/mapmanager_shared.lua | 2 +- .../[managers]/spawnmanager/spawnmanager.lua | 20 ++++++-------- resources/[system]/baseevents/server.lua | 26 +++++-------------- resources/[system]/runcode/runcode_cl.lua | 4 +-- resources/[system]/runcode/runcode_ui.lua | 8 ++---- resources/[system]/runcode/runcode_web.lua | 9 +++---- 23 files changed, 64 insertions(+), 137 deletions(-) diff --git a/resources/[gamemodes]/[maps]/fivem-map-hipster/map.lua b/resources/[gamemodes]/[maps]/fivem-map-hipster/map.lua index be81831..5b5db1a 100644 --- a/resources/[gamemodes]/[maps]/fivem-map-hipster/map.lua +++ b/resources/[gamemodes]/[maps]/fivem-map-hipster/map.lua @@ -59,5 +59,3 @@ spawnpoint 'a_m_y_hipster_01' { x = 714.109, y = 4151.15, z = 35.7792 } spawnpoint 'a_m_y_hipster_02' { x = -103.651, y = -967.93, z = 296.52 } spawnpoint 'a_m_y_hipster_01' { x = -265.333, y = -2419.35, z = 122.366 } spawnpoint 'a_m_y_hipster_02' { x = 1788.25, y = 3890.34, z = 34.3849 } - --- diff --git a/resources/[gamemodes]/[maps]/fivem-map-skater/map.lua b/resources/[gamemodes]/[maps]/fivem-map-skater/map.lua index 93a9069..22de5fb 100644 --- a/resources/[gamemodes]/[maps]/fivem-map-skater/map.lua +++ b/resources/[gamemodes]/[maps]/fivem-map-skater/map.lua @@ -58,5 +58,3 @@ spawnpoint 'a_m_y_skater_01' { x = 714.109, y = 4151.15, z = 35.7792 } spawnpoint 'a_m_y_skater_02' { x = -103.651, y = -967.93, z = 296.52 } spawnpoint 'a_m_y_skater_01' { x = -265.333, y = -2419.35, z = 122.366 } spawnpoint 'a_m_y_skater_02' { x = 1788.25, y = 3890.34, z = 34.3849 } - --- \ No newline at end of file diff --git a/resources/[gameplay]/[examples]/money-fountain/server.lua b/resources/[gameplay]/[examples]/money-fountain/server.lua index 9b1e238..e4bbf59 100644 --- a/resources/[gameplay]/[examples]/money-fountain/server.lua +++ b/resources/[gameplay]/[examples]/money-fountain/server.lua @@ -80,14 +80,12 @@ local function handleFountainStuff(source, id, pickup) end -- event for picking up fountain->player -RegisterNetEvent('money_fountain:tryPickup') -AddEventHandler('money_fountain:tryPickup', function(id) +RegisterNetEvent('money_fountain:tryPickup', function(id) handleFountainStuff(source, id, true) end) -- event for donating player->fountain -RegisterNetEvent('money_fountain:tryPlace') -AddEventHandler('money_fountain:tryPlace', function(id) +RegisterNetEvent('money_fountain:tryPlace', function(id) handleFountainStuff(source, id, false) end) diff --git a/resources/[gameplay]/[examples]/money/client.lua b/resources/[gameplay]/[examples]/money/client.lua index e094dd1..1713145 100644 --- a/resources/[gameplay]/[examples]/money/client.lua +++ b/resources/[gameplay]/[examples]/money/client.lua @@ -3,9 +3,7 @@ local moneyTypes = { bank = `BANK_BALANCE`, } -RegisterNetEvent('money:displayUpdate') - -AddEventHandler('money:displayUpdate', function(type, money) +RegisterNetEvent('money:displayUpdate', function(type, money) local stat = moneyTypes[type] if not stat then return end StatSetInt(stat, math.floor(money)) diff --git a/resources/[gameplay]/[examples]/money/fxmanifest.lua b/resources/[gameplay]/[examples]/money/fxmanifest.lua index d8d5d30..dd982f1 100644 --- a/resources/[gameplay]/[examples]/money/fxmanifest.lua +++ b/resources/[gameplay]/[examples]/money/fxmanifest.lua @@ -12,5 +12,6 @@ game 'gta5' client_script 'client.lua' server_script 'server.lua' ---dependency 'cfx.re/playerData.v1alpha1' lua54 'yes' + +dependency 'player-data' diff --git a/resources/[gameplay]/[examples]/money/server.lua b/resources/[gameplay]/[examples]/money/server.lua index 2b2ce96..a975965 100644 --- a/resources/[gameplay]/[examples]/money/server.lua +++ b/resources/[gameplay]/[examples]/money/server.lua @@ -1,4 +1,4 @@ -local playerData = exports['cfx.re/playerData.v1alpha1'] +local playerData = exports['player-data'] local validMoneyTypes = { bank = true, @@ -88,9 +88,7 @@ AddEventHandler('money:updated', function(data) end end) -RegisterNetEvent('money:requestDisplay') - -AddEventHandler('money:requestDisplay', function() +RegisterNetEvent('money:requestDisplay', function() local source = source local playerId = playerData:getPlayerId(source) diff --git a/resources/[gameplay]/[examples]/ped-money-drops/client.lua b/resources/[gameplay]/[examples]/ped-money-drops/client.lua index 30241e0..51f8f38 100644 --- a/resources/[gameplay]/[examples]/ped-money-drops/client.lua +++ b/resources/[gameplay]/[examples]/ped-money-drops/client.lua @@ -1,7 +1,6 @@ AddEventHandler('gameEventTriggered', function(eventName, args) if eventName == 'CEventNetworkEntityDamage' then local victim = args[1] - local culprit = args[2] local isDead = args[6] == 1 if isDead then diff --git a/resources/[gameplay]/[examples]/ped-money-drops/server.lua b/resources/[gameplay]/[examples]/ped-money-drops/server.lua index 6876952..cc788dd 100644 --- a/resources/[gameplay]/[examples]/ped-money-drops/server.lua +++ b/resources/[gameplay]/[examples]/ped-money-drops/server.lua @@ -1,8 +1,6 @@ local safePositions = {} -RegisterNetEvent('money:allowPickupNear') - -AddEventHandler('money:allowPickupNear', function(pedId) +RegisterNetEvent('money:allowPickupNear', function(pedId) local entity = NetworkGetEntityFromNetworkId(pedId) Wait(250) @@ -19,9 +17,7 @@ AddEventHandler('money:allowPickupNear', function(pedId) safePositions[pedId] = coords end) -RegisterNetEvent('money:tryPickup') - -AddEventHandler('money:tryPickup', function(entity) +RegisterNetEvent('money:tryPickup', function(entity) if not safePositions[entity] then return end diff --git a/resources/[gameplay]/player-data/fxmanifest.lua b/resources/[gameplay]/player-data/fxmanifest.lua index 6d3570b..1126d17 100644 --- a/resources/[gameplay]/player-data/fxmanifest.lua +++ b/resources/[gameplay]/player-data/fxmanifest.lua @@ -10,7 +10,3 @@ fx_version 'cerulean' game 'common' server_script 'server.lua' - -provides { - 'cfx.re/playerData.v1alpha1' -} diff --git a/resources/[gameplay]/player-data/server.lua b/resources/[gameplay]/player-data/server.lua index a262281..8694a3e 100644 --- a/resources/[gameplay]/player-data/server.lua +++ b/resources/[gameplay]/player-data/server.lua @@ -3,7 +3,7 @@ -- it works in a fairly simple way: a set of identifiers is assigned to an account ID, and said -- account ID is then returned/added as state bag -- --- it also implements the `cfx.re/playerData.v1alpha1` spec, which is exposed through the following: +-- it also implements the `player-data` spec, which is exposed through the following: -- - getPlayerId(source: string) -- - getPlayerById(dbId: string) -- - getPlayerIdFromIdentifier(identifier: string) @@ -130,8 +130,6 @@ AddEventHandler('playerConnecting', function() end) -- and migrate them to a 'joining' ID where possible -RegisterNetEvent('playerJoining') - AddEventHandler('playerJoining', function(oldIdx) -- resource restart race condition local oldPlayer = players[tostring(oldIdx)] @@ -189,25 +187,10 @@ RegisterCommand('playerData', function(source, args) end end, true) --- COMPATIBILITY for server versions that don't export provide -local function getExportEventName(resource, name) - return string.format('__cfx_export_%s_%s', resource, name) -end - -function AddExport(name, fn) - if not Citizen.Traits or not Citizen.Traits.ProvidesExports then - AddEventHandler(getExportEventName('cfx.re/playerData.v1alpha1', name), function(setCB) - setCB(fn) - end) - end - - exports(name, fn) -end - -- exports -AddExport('getPlayerIdFromIdentifier', getPlayerIdFromIdentifier) +exports('getPlayerIdFromIdentifier', getPlayerIdFromIdentifier) -AddExport('getPlayerId', function(playerIdx) +exports('getPlayerId', function(playerIdx) local player = players[tostring(playerIdx)] if not player then @@ -217,6 +200,6 @@ AddExport('getPlayerId', function(playerIdx) return player.dbId end) -AddExport('getPlayerById', function(playerId) +exports('getPlayerById', function(playerId) return playersById[tostring(playerId)] end) \ No newline at end of file diff --git a/resources/[gameplay]/playernames/fxmanifest.lua b/resources/[gameplay]/playernames/fxmanifest.lua index 60da554..7f32c30 100644 --- a/resources/[gameplay]/playernames/fxmanifest.lua +++ b/resources/[gameplay]/playernames/fxmanifest.lua @@ -13,19 +13,6 @@ server_script 'playernames_api.lua' client_script 'playernames_cl.lua' server_script 'playernames_sv.lua' --- make exports -local exportList = { - 'setComponentColor', - 'setComponentAlpha', - 'setComponentVisibility', - 'setWantedLevel', - 'setHealthBarColor', - 'setNameTemplate' -} - -exports(exportList) -server_exports(exportList) - -- add files files { 'template/template.lua' diff --git a/resources/[gameplay]/playernames/playernames_api.lua b/resources/[gameplay]/playernames/playernames_api.lua index e592946..e8411fb 100644 --- a/resources/[gameplay]/playernames/playernames_api.lua +++ b/resources/[gameplay]/playernames/playernames_api.lua @@ -42,6 +42,13 @@ setHealthBarColor = getTriggerFunction('sehc') setNameTemplate = getTriggerFunction('tpl') setName = getTriggerFunction('name') +exports('setComponentColor', setComponentColor) +exports('setComponentAlpha', setComponentAlpha) +exports('setComponentVisibility', setComponentVisibility) +exports('setWantedLevel', setWantedLevel) +exports('setHealthBarColor', setHealthBarColor) +exports('setNameTemplate', setNameTemplate) + if not io then io = { write = nil, open = nil } end diff --git a/resources/[gameplay]/playernames/playernames_cl.lua b/resources/[gameplay]/playernames/playernames_cl.lua index b39737a..1f3870a 100644 --- a/resources/[gameplay]/playernames/playernames_cl.lua +++ b/resources/[gameplay]/playernames/playernames_cl.lua @@ -142,9 +142,7 @@ local function getSettings(id) return mpGamerTagSettings[i] end -RegisterNetEvent('playernames:configure') - -AddEventHandler('playernames:configure', function(id, key, ...) +RegisterNetEvent('playernames:configure', function(id, key, ...) local args = table.pack(...) if key == 'tglc' then @@ -183,7 +181,7 @@ AddEventHandler('onResourceStop', function(name) end end) -SetTimeout(0, function() +CreateThread(function() TriggerServerEvent('playernames:init') end) diff --git a/resources/[gameplay]/playernames/playernames_sv.lua b/resources/[gameplay]/playernames/playernames_sv.lua index 4677e39..8e19868 100644 --- a/resources/[gameplay]/playernames/playernames_sv.lua +++ b/resources/[gameplay]/playernames/playernames_sv.lua @@ -7,7 +7,7 @@ local function detectUpdates() SetTimeout(500, detectUpdates) local template = GetConvar('playerNames_template', '[{{id}}] {{name}}') - + if curTemplate ~= template then setNameTemplate(-1, template) @@ -20,7 +20,7 @@ local function detectUpdates() local newTag = formatPlayerNameTag(v, template) if newTag ~= curTags[v] then setName(v, newTag) - + curTags[v] = newTag end end @@ -37,8 +37,7 @@ AddEventHandler('playerDropped', function() activePlayers[source] = nil end) -RegisterNetEvent('playernames:init') -AddEventHandler('playernames:init', function() +RegisterNetEvent('playernames:init', function() reconfigure(source) activePlayers[source] = true end) diff --git a/resources/[managers]/mapmanager/fxmanifest.lua b/resources/[managers]/mapmanager/fxmanifest.lua index 67279b6..bcb6133 100644 --- a/resources/[managers]/mapmanager/fxmanifest.lua +++ b/resources/[managers]/mapmanager/fxmanifest.lua @@ -6,25 +6,13 @@ author 'Cfx.re ' description 'A flexible handler for game type/map association.' repository 'https://github.com/citizenfx/cfx-server-data' -client_scripts { - "mapmanager_shared.lua", - "mapmanager_client.lua" -} +client_script 'mapmanager_client.lua' -server_scripts { - "mapmanager_shared.lua", - "mapmanager_server.lua" -} +server_script 'mapmanager_server.lua' + +shared_script 'mapmanager_shared.lua' fx_version 'cerulean' games { 'gta5', 'rdr3' } -server_export "getCurrentGameType" -server_export "getCurrentMap" -server_export "changeGameType" -server_export "changeMap" -server_export "doesMapSupportGameType" -server_export "getMaps" -server_export "roundEnded" - rdr3_warning 'I acknowledge that this is a prerelease build of RedM, and I am aware my resources *will* become incompatible once RedM ships.' diff --git a/resources/[managers]/mapmanager/mapmanager_client.lua b/resources/[managers]/mapmanager/mapmanager_client.lua index 510c24e..d3f8bdb 100644 --- a/resources/[managers]/mapmanager/mapmanager_client.lua +++ b/resources/[managers]/mapmanager/mapmanager_client.lua @@ -40,8 +40,8 @@ AddEventHandler('onClientResourceStart', function(res) loadMap(res) -- defer this to the next game tick to work around a lack of dependencies - Citizen.CreateThread(function() - Citizen.Wait(15) + CreateThread(function() + Wait(15) if maps[res] then TriggerEvent('onClientMapStart', res) diff --git a/resources/[managers]/mapmanager/mapmanager_server.lua b/resources/[managers]/mapmanager/mapmanager_server.lua index 545206f..1886699 100644 --- a/resources/[managers]/mapmanager/mapmanager_server.lua +++ b/resources/[managers]/mapmanager/mapmanager_server.lua @@ -12,14 +12,14 @@ local function refreshResources() if GetNumResourceMetadata(resource, 'resource_type') > 0 then local type = GetResourceMetadata(resource, 'resource_type', 0) local params = json.decode(GetResourceMetadata(resource, 'resource_type_extra', 0)) - + local valid = false - + local games = GetNumResourceMetadata(resource, 'game') if games > 0 then for j = 0, games - 1 do local game = GetResourceMetadata(resource, 'game', j) - + if game == GetConvar('gamename', 'gta5') or game == 'common' then valid = true end @@ -313,3 +313,11 @@ function doesMapSupportGameType(gameType, map) return maps[map].gameTypes[gameType] end + +exports('getCurrentGameType', getCurrentGameType) +exports('getCurrentMap', getCurrentMap) +exports('changeGameType', changeGameType) +exports('changeMap', changeMap) +exports('doesMapSupportGameType', doesMapSupportGameType) +exports('getMaps', getMaps) +exports('roundEnded', roundEnded) diff --git a/resources/[managers]/mapmanager/mapmanager_shared.lua b/resources/[managers]/mapmanager/mapmanager_shared.lua index cac5b6c..7fd3ad0 100644 --- a/resources/[managers]/mapmanager/mapmanager_shared.lua +++ b/resources/[managers]/mapmanager/mapmanager_shared.lua @@ -74,7 +74,7 @@ function parseMap(file, owningResource) } setmetatable(env, mt) - + local fileData = LoadResourceFile(owningResource, file) local mapFunction, err = load(fileData, file, 't', env) diff --git a/resources/[managers]/spawnmanager/spawnmanager.lua b/resources/[managers]/spawnmanager/spawnmanager.lua index 5f3eded..2c9d63d 100644 --- a/resources/[managers]/spawnmanager/spawnmanager.lua +++ b/resources/[managers]/spawnmanager/spawnmanager.lua @@ -185,9 +185,7 @@ local function freezePlayer(id, freeze) end function loadScene(x, y, z) - if not NewLoadSceneStart then - return - end + if not NewLoadSceneStart then return end NewLoadSceneStart(x, y, z, 0.0, 0.0, 0.0, 20.0, 0) @@ -199,13 +197,11 @@ local spawnLock = false -- spawns the current player at a certain spawn point index (or a random one, for that matter) function spawnPlayer(spawnIdx, cb) - if spawnLock then - return - end + if spawnLock then return end spawnLock = true - Citizen.CreateThread(function() + CreateThread(function() -- if the spawn isn't set, select a random one if not spawnIdx then spawnIdx = GetRandomIntInRange(1, #spawnPoints + 1) @@ -231,7 +227,7 @@ function spawnPlayer(spawnIdx, cb) DoScreenFadeOut(500) while not IsScreenFadedOut() do - Citizen.Wait(0) + Wait(0) end end @@ -302,7 +298,7 @@ function spawnPlayer(spawnIdx, cb) local time = GetGameTimer() while (not HasCollisionLoadedAroundEntity(ped) and (GetGameTimer() - time) < 5000) do - Citizen.Wait(0) + Wait(0) end ShutdownLoadingScreen() @@ -311,7 +307,7 @@ function spawnPlayer(spawnIdx, cb) DoScreenFadeIn(500) while not IsScreenFadedIn() do - Citizen.Wait(0) + Wait(0) end end @@ -332,10 +328,10 @@ end local respawnForced local diedAt -Citizen.CreateThread(function() +CreateThread(function() -- main loop thing while true do - Citizen.Wait(50) + Wait(50) local playerPed = PlayerPedId() diff --git a/resources/[system]/baseevents/server.lua b/resources/[system]/baseevents/server.lua index 497685d..4a8a338 100644 --- a/resources/[system]/baseevents/server.lua +++ b/resources/[system]/baseevents/server.lua @@ -1,19 +1,7 @@ -RegisterServerEvent('baseevents:onPlayerDied') -RegisterServerEvent('baseevents:onPlayerKilled') -RegisterServerEvent('baseevents:onPlayerWasted') -RegisterServerEvent('baseevents:enteringVehicle') -RegisterServerEvent('baseevents:enteringAborted') -RegisterServerEvent('baseevents:enteredVehicle') -RegisterServerEvent('baseevents:leftVehicle') - -AddEventHandler('baseevents:onPlayerKilled', function(killedBy, data) - local victim = source - - RconLog({msgType = 'playerKilled', victim = victim, attacker = killedBy, data = data}) -end) - -AddEventHandler('baseevents:onPlayerDied', function(killedBy, pos) - local victim = source - - RconLog({msgType = 'playerDied', victim = victim, attackerType = killedBy, pos = pos}) -end) \ No newline at end of file +RegisterNetEvent('baseevents:onPlayerWasted') +RegisterNetEvent('baseevents:enteringVehicle') +RegisterNetEvent('baseevents:enteringAborted') +RegisterNetEvent('baseevents:enteredVehicle') +RegisterNetEvent('baseevents:leftVehicle') +RegisterNetEvent('baseevents:onPlayerKilled') +RegisterNetEvent('baseevents:onPlayerDied') diff --git a/resources/[system]/runcode/runcode_cl.lua b/resources/[system]/runcode/runcode_cl.lua index 29e6806..96f43cc 100644 --- a/resources/[system]/runcode/runcode_cl.lua +++ b/resources/[system]/runcode/runcode_cl.lua @@ -1,6 +1,4 @@ -RegisterNetEvent('runcode:gotSnippet') - -AddEventHandler('runcode:gotSnippet', function(id, lang, code) +RegisterNetEvent('runcode:gotSnippet', function(id, lang, code) local res, err = RunCode(lang, code) if not err then diff --git a/resources/[system]/runcode/runcode_ui.lua b/resources/[system]/runcode/runcode_ui.lua index 57bb0fd..897f528 100644 --- a/resources/[system]/runcode/runcode_ui.lua +++ b/resources/[system]/runcode/runcode_ui.lua @@ -1,8 +1,6 @@ local openData -RegisterNetEvent('runcode:openUi') - -AddEventHandler('runcode:openUi', function(options) +RegisterNetEvent('runcode:openUi', function(options) openData = { type = 'open', options = options, @@ -48,9 +46,7 @@ RegisterNUICallback('runCodeInBand', function(args, cb) TriggerServerEvent('runcode:runInBand', id, args) end) -RegisterNetEvent('runcode:inBandResult') - -AddEventHandler('runcode:inBandResult', function(id, result) +RegisterNetEvent('runcode:inBandResult', function(id, result) if rcCbs[id] then local cb = rcCbs[id] rcCbs[id] = nil diff --git a/resources/[system]/runcode/runcode_web.lua b/resources/[system]/runcode/runcode_web.lua index 9744dba..9a6a934 100644 --- a/resources/[system]/runcode/runcode_web.lua +++ b/resources/[system]/runcode/runcode_web.lua @@ -50,9 +50,7 @@ local function handleRunCode(data, res) end end -RegisterNetEvent('runcode:runInBand') - -AddEventHandler('runcode:runInBand', function(id, data) +RegisterNetEvent('runcode:runInBand', function(id, data) local s = source local privs = GetPrivs(s) @@ -113,7 +111,7 @@ end CreateThread(function() while true do Wait(1000) - + if attempts > 0 and (GetGameTimer() - lastAttempt) > 5000 then attempts = 0 lastAttempt = 0 @@ -155,8 +153,7 @@ CreateThread(function() end end) -RegisterNetEvent('runcode:gotResult') -AddEventHandler('runcode:gotResult', returnCode) +RegisterNetEvent('runcode:gotResult', returnCode) SetHttpHandler(function(req, res) local path = req.path