feat(es_extended/server): annotations

This commit is contained in:
Kasey FItton
2024-10-24 17:52:22 +01:00
parent 4d052aae46
commit ca9f83564e
3 changed files with 74 additions and 5 deletions
+2 -1
View File
@@ -21,9 +21,10 @@ function ESX.Math.GroupDigits(value)
return left .. (num:reverse():gsub("(%d%d%d)", "%1" .. TranslateCap("locale_digit_grouping_symbol")):reverse()) .. right
end
---@param value string
---@param value string | number
---@return string | nil
function ESX.Math.Trim(value)
value = tostring(value)
return (string.gsub(value, "^%s*(.-)%s*$", "%1"))
end
+69 -2
View File
@@ -1,3 +1,5 @@
---@param msg string
---@return nil
function ESX.Trace(msg)
if Config.EnableDebug then
print(("[^2TRACE^7] %s^7"):format(msg))
@@ -22,12 +24,16 @@ function ESX.TriggerClientEvent(eventName, playerIds, ...)
end
end
---@param name string | table
---@param group string | table
---@param cb function
---@param allowConsole? boolean
---@param suggestion? table
function ESX.RegisterCommand(name, group, cb, allowConsole, suggestion)
if type(name) == "table" then
for _, v in ipairs(name) do
ESX.RegisterCommand(v, group, cb, allowConsole, suggestion)
end
return
end
@@ -189,6 +195,9 @@ local function updateHealthAndArmorInMetadata(xPlayer)
xPlayer.setMeta("lastPlaytime", xPlayer.getPlayTime())
end
---@param xPlayer table
---@param cb? function
---@return nil
function Core.SavePlayer(xPlayer, cb)
if not xPlayer.spawned then
return cb and cb()
@@ -222,6 +231,8 @@ function Core.SavePlayer(xPlayer, cb)
)
end
---@param cb? function
---@return nil
function Core.SavePlayers(cb)
local xPlayers <const> = ESX.Players
if not next(xPlayers) then
@@ -278,6 +289,9 @@ local function checkTable(key, val, player, xPlayers)
end
end
---@param key? string
---@param val? string|table
---@return table
function ESX.GetExtendedPlayers(key, val)
local xPlayers = {}
if type(val) == "table" then
@@ -299,6 +313,9 @@ function ESX.GetExtendedPlayers(key, val)
return xPlayers
end
---@param key? string
---@param val? string|table
---@return number | table
function ESX.GetNumPlayers(key, val)
if not key then
return #GetPlayers()
@@ -327,26 +344,34 @@ function ESX.GetNumPlayers(key, val)
return #ESX.GetExtendedPlayers(key, val)
end
---@param source number
---@return table
function ESX.GetPlayerFromId(source)
return ESX.Players[tonumber(source)]
end
---@param identifier string
---@return table
function ESX.GetPlayerFromIdentifier(identifier)
return Core.playersByIdentifier[identifier]
end
---@param playerId number | string
---@return string
function ESX.GetIdentifier(playerId)
local fxDk = GetConvarInt("sv_fxdkMode", 0)
if fxDk == 1 then
return "ESX-DEBUG-LICENCE"
end
playerId = tostring(playerId)
local identifier = GetPlayerIdentifierByType(playerId, "license")
return identifier and identifier:gsub("license:", "")
end
---@param model string|number
---@param player number playerId
---@param player number
---@param cb function
---@diagnostic disable-next-line: duplicate-set-field
function ESX.GetVehicleType(model, player, cb)
@@ -362,6 +387,11 @@ function ESX.GetVehicleType(model, player, cb)
end, model)
end
---@param name string
---@param title string
---@param color string
---@param message string
---@return nil
function ESX.DiscordLog(name, title, color, message)
local webHook = Config.DiscordLogs.Webhooks[name] or Config.DiscordLogs.Webhooks.default
local embedData = {
@@ -395,6 +425,11 @@ function ESX.DiscordLog(name, title, color, message)
)
end
---@param name string
---@param title string
---@param color string
---@param fields table
---@return nil
function ESX.DiscordLogFields(name, title, color, fields)
local webHook = Config.DiscordLogs.Webhooks[name] or Config.DiscordLogs.Webhooks.default
local embedData = {
@@ -429,6 +464,7 @@ function ESX.DiscordLogFields(name, title, color, fields)
)
end
---@return nil
function ESX.RefreshJobs()
local Jobs = {}
local jobs = MySQL.query.await("SELECT * FROM jobs")
@@ -463,10 +499,17 @@ function ESX.RefreshJobs()
end
end
---@param item string
---@param cb function
---@return nil
function ESX.RegisterUsableItem(item, cb)
Core.UsableItemsCallbacks[item] = cb
end
---@param source number
---@param item string
---@param ... any
---@return nil
function ESX.UseItem(source, item, ...)
if ESX.Items[item] then
local itemCallback = Core.UsableItemsCallbacks[item]
@@ -483,10 +526,15 @@ function ESX.UseItem(source, item, ...)
end
end
---@param index string
---@param overrides table
---@return nil
function ESX.RegisterPlayerFunctionOverrides(index, overrides)
Core.PlayerFunctionOverrides[index] = overrides
end
---@param index string
---@return nil
function ESX.SetPlayerFunctionOverride(index)
if not index or not Core.PlayerFunctionOverrides[index] then
return print("[^3WARNING^7] No valid index provided.")
@@ -495,6 +543,8 @@ function ESX.SetPlayerFunctionOverride(index)
Config.PlayerFunctionOverride = index
end
---@param item string
---@return string?
function ESX.GetItemLabel(item)
if Config.OxInventory then
item = exports.ox_inventory:Items(item)
@@ -510,10 +560,12 @@ function ESX.GetItemLabel(item)
end
end
---@return table
function ESX.GetJobs()
return ESX.Jobs
end
---@return table
function ESX.GetUsableItems()
local Usables = {}
for k in pairs(Core.UsableItemsCallbacks) do
@@ -523,6 +575,15 @@ function ESX.GetUsableItems()
end
if not Config.OxInventory then
---@param itemType string
---@param name string
---@param count integer
---@param label string
---@param playerId number
---@param components? string | table
---@param tintIndex? integer
---@param coords? table | vector3
---@return nil
function ESX.CreatePickup(itemType, name, count, label, playerId, components, tintIndex, coords)
local pickupId = (Core.PickupId == 65635 and 0 or Core.PickupId + 1)
local xPlayer = ESX.Players[playerId]
@@ -540,11 +601,17 @@ if not Config.OxInventory then
end
end
---@param job string
---@param grade string
---@return boolean
function ESX.DoesJobExist(job, grade)
return (ESX.Jobs[job] and ESX.Jobs[job].grades[tostring(grade)] ~= nil) or false
end
---@param playerId string | number
---@return boolean
function Core.IsPlayerAdmin(playerId)
playerId = tostring(playerId)
if (IsPlayerAceAllowed(playerId, "command") or GetConvar("sv_lan", "") == "true") and true or false then
return true
end
+3 -2
View File
@@ -47,8 +47,9 @@ AddEventHandler("esx_menu_dialog:message:menu_submit", function(data)
if menu.submit then
-- is the submitted data a number?
if tonumber(data.value) then
data.value = ESX.Math.Round(tonumber(data.value))
local value = tonumber(data.value)
if value then
data.value = ESX.Math.Round(value)
-- check for negative value
if tonumber(data.value) <= 0 then