58 lines
		
	
	
		
			No EOL
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			No EOL
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
| local resourceName = "ox_lib"
 | |
| local configValue = BridgeClientConfig.MenuSystem
 | |
| if (configValue == "auto" and GetResourceState(resourceName) ~= "started") or (configValue ~= "auto" and configValue ~= resourceName) then return end
 | |
| Menus = Menus or {}
 | |
| 
 | |
| ---Converts a QB menu to an Ox menu.
 | |
| ---@param id string The menu ID.
 | |
| ---@param menu table The QB menu data.
 | |
| ---@return table The Ox menu data.
 | |
| local function QBToOxMenu(id, menu)
 | |
|     local oxMenu = {
 | |
|         id = id,
 | |
|         title = "",
 | |
|         canClose = true,
 | |
|         options = {},
 | |
|     }
 | |
|     for i, v in pairs(menu) do
 | |
|         if v.isMenuHeader then
 | |
|             if oxMenu.title == "" then
 | |
|                 oxMenu.title = v.header
 | |
|             end
 | |
|         else
 | |
|             local option = {
 | |
|                 title = v.header,
 | |
|                 description = v.txt,
 | |
|                 icon = v.icon,
 | |
|                 args = v.params.args,
 | |
|                 onSelect = function(selected, secondary, args)
 | |
|                     local params = menu[id]?.options?[selected]?.params
 | |
|                     if not params then return end
 | |
|                     local event = params.event
 | |
|                     local isServer = params.isServer
 | |
|                     if not event then return end
 | |
|                     if isServer then
 | |
|                         return TriggerServerEvent(event, args)
 | |
|                     end
 | |
|                     return TriggerEvent(event, args)
 | |
|                 end
 | |
| 
 | |
|             }
 | |
|             table.insert(oxMenu.options, option)
 | |
|         end
 | |
|     end
 | |
|     return oxMenu
 | |
| end
 | |
| 
 | |
| function OpenMenu(id, data, useQBinput)
 | |
|     if useQBinput then
 | |
|         data = QBToOxMenu(id, data)
 | |
|     end
 | |
|     lib.registerContext(data)
 | |
|     lib.showContext(id)
 | |
|     return data
 | |
| end
 | |
| 
 | |
| GetMenuResourceName = function()
 | |
|     return resourceName
 | |
| end | 
