Try remove “source” from ESX.RegisterServerCallback('censored:fatture', function(source, cb)
Make it ESX.RegisterServerCallback('censored:fatture', function(cb)
Try this too by adding
ESX.RegisterServerCallback('censored:fatture', function(source, cb)
local _source = source
local xPlayer = ESX.GetPlayerFromId(_source)
ESX.RegisterServerCallback('censored:fatture', function(source, cb)
local _source = source
local xPlayer = ESX.GetPlayerFromId(_source)
MySQL.Async.fetchAll('SELECT * FROM billing WHERE identifier = @identifier', {
['@identifier'] = xPlayer.identifier
}, function(result)
local bills = {}
if result ~= nil then
for i = 1, #result do
bills[#bills + 1] = {
id = result[i].id,
label = result[i].label,
amount = result[i].amount
}
end
cb(bills)
else
cb(false)
end
end)
end)
[ script:censored] SCRIPT ERROR: @censored/server.lua:9: attempt to index a nil value (local 'xPlayer')
[ script:censored] > TriggerServerCallback (@es_extended/server/functions.lua:160)
[ script:censored] > handler (@es_extended/server/common.lua:81)
[ script:es_extended] SCRIPT ERROR: error object is not a string
[ script:es_extended] (nil stack trace)SCRIPT ERROR: @censored/server.lua:9: attempt to index a nil value (local 'xPlayer')
My updated server.lua is
ESX = nil
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
ESX.RegisterServerCallback('censored:fatture', function(source, cb)
local _source = source
local xPlayer = ESX.GetPlayerFromId(_source)
MySQL.Async.fetchAll('SELECT * FROM billing WHERE identifier = @identifier', {
['@identifier'] = xPlayer.identifier
}, function(result)
local bills = {}
if result ~= nil then
for i = 1, #result do
bills[#bills + 1] = {
id = result[i].id,
label = result[i].label,
amount = result[i].amount
}
end
cb(bills)
else
cb(false)
end
end)
end)
In my server.lua line 9 means
['@identifier'] = xPlayer.identifier
These are my client callbacks
Citizen.CreateThread(function()
while true do
Citizen.Wait(5)
ESX.TriggerServerCallback('censored:fatture', function(bills)
PersonalMenu.BillData = bills
ESX.PlayerData = ESX.GetPlayerData()
end)
end
end)
local action = data.current.value
if action == 'paga' then
ESX.TriggerServerCallback('esx_billing:payBill', function()
ESX.TriggerServerCallback('censored:fatture', function(bills) PersonalMenu.BillData = bills end)
end, PersonalMenu.BillData[i].id)
end
Maybe i wrong, but i think is something from your ESX version, what version you have ? !
Try go to es_extended/server/functions.lua on line 158 or 160 you must find something like this
ESX.TriggerServerCallback = function(name, requestId, source, cb, ...)
if ESX.ServerCallbacks[name] then
ESX.ServerCallbacks[name](source, cb, ...)
else
print(('[es_extended] [^3WARNING^7] Server callback "%s" does not exist. Make sure that the server sided file really is loading, an error in that file might cause it to not load.'):format(name))
end
end