mirror of
https://github.com/project-error/qb-pefcl.git
synced 2026-03-31 06:33:54 -04:00
153 lines
4.2 KiB
Lua
153 lines
4.2 KiB
Lua
local QBCore = exports["qb-core"]:GetCoreObject()
|
|
|
|
local function addCash(src, amount)
|
|
local Player = QBCore.Functions.GetPlayer(src)
|
|
Player.Functions.AddMoney("cash", amount)
|
|
end
|
|
|
|
local function removeCash(src, amount)
|
|
local Player = QBCore.Functions.GetPlayer(src)
|
|
Player.Functions.RemoveMoney("cash", amount)
|
|
end
|
|
|
|
local function getCash(src)
|
|
local Player = QBCore.Functions.GetPlayer(src)
|
|
return Player.PlayerData.money["cash"] or 0
|
|
end
|
|
|
|
local function loadPlayer(src, citizenid, name)
|
|
exports.pefcl:loadPlayer(src, {
|
|
source = src,
|
|
identifier = citizenid,
|
|
name = name
|
|
})
|
|
end
|
|
|
|
local function UniqueAccounts(player)
|
|
local citizenid = player.PlayerData.citizenid
|
|
local playerSrc = player.PlayerData.source
|
|
local PlayerJob = player.PlayerData.job
|
|
if Config.BusinessAccounts[PlayerJob.name] then
|
|
if not exports.pefcl:getUniqueAccount(playerSrc, PlayerJob.name).data then
|
|
local data = {
|
|
name = tostring(Config.BusinessAccounts[PlayerJob.name].AccountName),
|
|
type = 'shared',
|
|
identifier = PlayerJob.name
|
|
}
|
|
exports.pefcl:createUniqueAccount(playerSrc, data)
|
|
end
|
|
|
|
local role = false
|
|
if PlayerJob.grade.level >= Config.BusinessAccounts[PlayerJob.name].AdminRole then
|
|
role = 'admin'
|
|
elseif PlayerJob.grade.level >= Config.BusinessAccounts[PlayerJob.name].ContributorRole then
|
|
role = 'contributor'
|
|
end
|
|
|
|
if role then
|
|
local data = {
|
|
role = role,
|
|
accountIdentifier = PlayerJob.name,
|
|
userIdentifier = citizenid,
|
|
source = playerSrc
|
|
}
|
|
exports.pefcl:addUserToUniqueAccount(playerSrc, data)
|
|
end
|
|
end
|
|
end
|
|
|
|
local function getCards(source)
|
|
local Player = QBCore.Functions.GetPlayer(source)
|
|
local cards = Player.Functions.GetItemsByName('visa')
|
|
local retval = {}
|
|
if cards then
|
|
for k, v in pairs(cards) do
|
|
retval[#retval+1] = {
|
|
id = v.info.id,
|
|
holder = v.info.holder,
|
|
number = v.info.number
|
|
}
|
|
end
|
|
end
|
|
return retval
|
|
end
|
|
|
|
local function giveCard(source, card)
|
|
local Player = QBCore.Functions.GetPlayer(source)
|
|
local info = {
|
|
id = card.id,
|
|
holder = card.holder,
|
|
number = card.number
|
|
}
|
|
Player.Functions.AddItem('visa', 1, nil, info)
|
|
end
|
|
|
|
local function getBank(source)
|
|
local Player = QBCore.Functions.GetPlayer(source)
|
|
return Player.PlayerData.money["bank"] or 0
|
|
end
|
|
|
|
exports("getBank", getBank)
|
|
exports("addCash", addCash)
|
|
exports("removeCash", removeCash)
|
|
exports("getCash", getCash)
|
|
exports("giveCard", giveCard)
|
|
exports("getCards", getCards)
|
|
|
|
AddEventHandler("QBCore:Server:OnMoneyChange", function(playerSrc, moneyType, amount, action, reason)
|
|
if moneyType ~= "bank" then return end
|
|
if action == "add" then
|
|
exports.pefcl:addBankBalance(playerSrc, { amount = amount, message = reason })
|
|
end
|
|
|
|
if action == "remove" then
|
|
exports.pefcl:removeBankBalance(playerSrc, { amount = amount, message = reason })
|
|
end
|
|
|
|
if action == "set" then
|
|
exports.pefcl:setBankBalance(playerSrc, { amount = amount, message = reason })
|
|
end
|
|
end)
|
|
|
|
AddEventHandler("QBCore:Server:PlayerLoaded", function(player)
|
|
if not player then
|
|
return
|
|
end
|
|
local citizenid = player.PlayerData.citizenid
|
|
local charInfo = player.PlayerData.charinfo
|
|
local playerSrc = player.PlayerData.source
|
|
loadPlayer(playerSrc, citizenid, charInfo.firstname .. " " .. charInfo.lastname)
|
|
UniqueAccounts(player)
|
|
player.Functions.SyncMoney()
|
|
end)
|
|
|
|
RegisterNetEvent("qb-pefcl:server:UnloadPlayer", function()
|
|
exports.pefcl:unloadPlayer(source)
|
|
end)
|
|
|
|
RegisterNetEvent("qb-pefcl:server:SyncMoney", function()
|
|
local player = QBCore.Functions.GetPlayer(source)
|
|
player.Functions.SyncMoney()
|
|
end)
|
|
|
|
RegisterNetEvent("qb-pefcl:server:OnJobUpdate", function(oldJob)
|
|
local player = QBCore.Functions.GetPlayer(source)
|
|
UniqueAccounts(player)
|
|
end)
|
|
|
|
local currentResName = GetCurrentResourceName()
|
|
|
|
AddEventHandler("onServerResourceStart", function(resName)
|
|
if resName ~= currentResName then return end
|
|
local players = QBCore.Functions.GetQBPlayers()
|
|
if not players or players == nil then
|
|
print("Error loading players, if no players on the server ignore this")
|
|
return
|
|
end
|
|
for _, v in pairs(players) do
|
|
loadPlayer(v.PlayerData.source, v.PlayerData.citizenid, v.PlayerData.charinfo.firstname .. " " .. v.PlayerData.charinfo.lastname)
|
|
UniqueAccounts(v)
|
|
v.Functions.SyncMoney()
|
|
end
|
|
end)
|