Customisation
Features you may want to customize
Qb-Management
1) qb-management/server/sv_boss.lua
Find line 162 and change the whole event to
-- Fire Employee
RegisterNetEvent('qb-bossmenu:server:FireEmployee', function(data)
local src = source
local Player = QBCore.Functions.GetPlayer(src)
local Employee = QBCore.Functions.GetPlayerByCitizenId(data.target)
if not Player.PlayerData.job.isboss then ExploitBan(src, 'FireEmployee Exploiting') return end
if Employee then
if data.target ~= Player.PlayerData.citizenid then
if Employee.PlayerData.job.grade.level > Player.PlayerData.job.grade.level then TriggerClientEvent('QBCore:Notify', src, "You cannot fire this citizen!", "error") return end
if Employee.Functions.SetJob("unemployed", '0') then
TriggerEvent("qb-log:server:CreateLog", "bossmenu", "Job Fire", "red", Player.PlayerData.charinfo.firstname .. " " .. Player.PlayerData.charinfo.lastname .. ' successfully fired ' .. Employee.PlayerData.charinfo.firstname .. " " .. Employee.PlayerData.charinfo.lastname .. " (" .. Player.PlayerData.job.name .. ")", false)
TriggerClientEvent('QBCore:Notify', src, "Employee fired!", "success")
TriggerClientEvent('QBCore:Notify', Employee.PlayerData.source , "You have been fired! Good luck.", "error")
MySQL.query('DELETE FROM `player_jobs` WHERE `cid` = ? and `job` = ?', {data.target, data.job})
local cid = Employee.PlayerData.citizenid
local results = MySQL.Sync.fetchAll('SELECT * FROM player_jobs_num WHERE cid = @id', {["@id"] = cid })
for i = 1, #results, 1 do resultss = results[i].jobs end
MySQL.Async.insert('UPDATE player_jobs_num SET jobs = @jobs WHERE cid = @cid', {
["@jobs"] = resultss - 1,
["@cid"] = cid
})
else
TriggerClientEvent('QBCore:Notify', src, "Error..", "error")
end
else
TriggerClientEvent('QBCore:Notify', src, "You can\'t fire yourself", "error")
end
else
local player = MySQL.query.await('SELECT * FROM players WHERE citizenid = ?', { data.target })
if player[1] ~= nil then
Employee = player[1]
Employee.job = json.decode(Employee.job)
if Employee.job.grade.level > Player.PlayerData.job.grade.level then TriggerClientEvent('QBCore:Notify', src, "You cannot fire this citizen!", "error") return end
local job = {}
job.name = "unemployed"
job.label = "Unemployed"
job.payment = QBCore.Shared.Jobs[job.name].grades['0'].payment or 500
job.onduty = true
job.isboss = false
job.grade = {}
job.grade.name = nil
job.grade.level = 0
MySQL.update('UPDATE players SET job = ? WHERE citizenid = ?', { json.encode(job), data.target })
TriggerClientEvent('QBCore:Notify', src, "Employee fired!", "success")
TriggerEvent("qb-log:server:CreateLog", "bossmenu", "Job Fire", "red", Player.PlayerData.charinfo.firstname .. " " .. Player.PlayerData.charinfo.lastname .. ' successfully fired ' .. Employee.PlayerData.charinfo.firstname .. " " .. Employee.PlayerData.charinfo.lastname .. " (" .. Player.PlayerData.job.name .. ")", false)
else
TriggerClientEvent('QBCore:Notify', src, "Civilian not in city.", "error")
end
end
TriggerClientEvent('qb-bossmenu:client:OpenMenu', src)
end)
Find line 117 and change the whole event to
-- Get Employees
QBCore.Functions.CreateCallback('qb-bossmenu:server:GetEmployees', function(source, cb, jobname)
local src = source
local Player = QBCore.Functions.GetPlayer(src)
if not Player.PlayerData.job.isboss then ExploitBan(src, 'GetEmployees Exploiting') return end
local employees = {}
local players = MySQL.query.await("SELECT * FROM `player_jobs` WHERE `job` = ?", {jobname})
if players[1] ~= nil then
for _, value in pairs(players) do
local isOnline = QBCore.Functions.GetPlayerByCitizenId(value.cid)
if isOnline and isOnline.PlayerData.job.name == jobname then
employees[#employees+1] = {
empSource = isOnline.PlayerData.citizenid,
grade = isOnline.PlayerData.job.grade.level,
isboss = isOnline.PlayerData.job.isboss,
name = '🟢 ' .. isOnline.PlayerData.charinfo.firstname .. ' ' .. isOnline.PlayerData.charinfo.lastname
}
elseif value.job == jobname then
local player = MySQL.query.await("SELECT * FROM `players` WHERE `citizenid` = ?", {value.cid})
if player[1] ~= nil then
Employee = player[1]
Employee.charinfo = json.decode(Employee.charinfo)
employees[#employees+1] = {
empSource = value.cid,
grade = value.grade,
isboss = value.job.isboss,
name = '❌ '.. Employee.charinfo.firstname .. ' ' .. Employee.charinfo.lastname
}
end
end
end
table.sort(employees, function(a, b)
return a.grade > b.grade
end)
end
cb(employees)
end)
3) qb-management/client/cl_boss.lua
Find line 177 and edit it to this
EmployeeMenu[#EmployeeMenu + 1] = {
header = "Fire Employee",
icon = "fa-solid fa-user-large-slash",
params = {
isServer = true,
event = "qb-bossmenu:server:FireEmployee",
args = {
target = data.player.empSource,
job = data.work.name
}
}
}
Replace on line 131, "txt = v.grade.name," to
txt = QBCore.Shared.Jobs[PlayerJob.name].grades[tostring(v.grade)].name,
Editing the theme
The resource comes with 2 pre-created themes, but you can always make your own by editing the index.css file.
Last updated