Files
red-valley/resources/[framework]/[addons]/qs-advancedgarages/client/custom/menu/qb-menu.lua

177 lines
4.3 KiB
Lua
Raw Normal View History

2026-03-29 21:41:17 +03:00
if Config.Menu ~= 'qb-menu' then
return
end
function OpenManagementMenu()
local elementsList = {
{
header = 'Management',
isMenuHeader = true,
},
{
header = 'Give Key',
params = {
event = 'advancedgarages:openGiveKeyMenu',
}
},
{
header = 'Key Holders',
params = {
event = 'advancedgarages:openKeyHoldersMenu',
}
}
}
exports['qb-menu']:openMenu(elementsList)
end
function openGiveKeyMenu(players)
local elementsList = {}
table.insert(elementsList, {
header = 'Give Key',
isMenuHeader = true,
})
for k, v in pairs(players) do
table.insert(elementsList, {
header = 'Player: ' .. v.name.firstName .. ' ' .. v.name.lastName,
params = {
isServer = true,
event = 'advancedgarages:giveKey',
args = {
id = v.id,
garage = ClosestGarage
}
}
})
end
exports['qb-menu']:openMenu(elementsList)
end
function openTakeKeyMenu()
local elementsList = {}
local holders = lib.callback.await('advancedgarages:getGarageKeyHolders', false, ClosestGarage)
if not holders or #holders == 0 then
Notification(i18n.t('keyholders.empty_list'), 'info')
return
end
table.insert(elementsList, {
header = 'Take Key',
isMenuHeader = true,
})
for k, v in pairs(holders) do
table.insert(elementsList, {
header = 'Player: ' .. v.firstname .. ' ' .. v.lastname,
params = {
isServer = true,
event = 'advancedgarages:takeKey',
args = {
id = v.identifier,
garage = ClosestGarage
}
}
})
end
exports['qb-menu']:openMenu(elementsList)
end
function HandleKeyboard(callback)
local dialog = exports['qb-input']:ShowInput({
header = 'Set a Price',
submitText = 'Continue',
inputs = {
{
text = 'Garage Price...',
name = 'price',
type = 'number',
isRequired = true,
}
},
})
if dialog ~= nil then
for k, v in pairs(dialog) do
callback(v)
end
end
end
function HandleGarageJob()
local dialog = exports['qb-input']:ShowInput({
header = 'Job Name (you can leave it blank for everyone)',
submitText = 'Continue',
inputs = {
{
text = 'Job Name...',
name = 'Job public garage',
type = 'text',
isRequired = false,
}
},
})
if dialog ~= nil then
for k, v in pairs(dialog) do
if v and v ~= '' then
return v
end
return nil
end
end
end
function OpenRecoveryMenu(vehicleList)
local elementsList = {}
table.insert(elementsList, {
header = 'Recovery Vehicle (OUT)',
isMenuHeader = true,
})
for k, v in pairs(vehicleList) do
table.insert(elementsList, {
header = v.plate,
params = {
isServer = true,
event = 'advancedgarages:RecoveryVehicle',
args = {
plate = v.plate,
type = v.type
}
}
})
end
exports['qb-menu']:openMenu(elementsList)
end
function OpenDeleteJobVehicleMenu(garage, job)
local menu = {}
local vehicles = lib.callback.await('advancedgarages:getJobVehicles', false, garage, job)
if not vehicles or #vehicles == 0 then
Notification(i18n.t('keyholders.empty_out'), 'info')
return
end
table.insert(menu, {
header = 'Delete work vehicles'
})
for k, v in pairs(vehicles) do
table.insert(menu, {
header = v.plate,
params = {
isServer = true,
event = 'advancedgarages:deleteJobVehicle',
args = {
plate = v.plate,
garage = garage
}
}
})
end
exports['qb-menu']:openMenu(menu)
end