mirror of
https://github.com/jimathy/jim_bridge.git
synced 2026-08-17 05:56:02 +01:00
Update contextMenus.lua to use new format
This commit is contained in:
@@ -10,6 +10,263 @@
|
|||||||
• esx (using ESX.UI.Menu)
|
• esx (using ESX.UI.Menu)
|
||||||
]]
|
]]
|
||||||
|
|
||||||
|
local contextFunc = {
|
||||||
|
["ox"] =
|
||||||
|
function(Menu, data)
|
||||||
|
local index = nil
|
||||||
|
if data.onBack and not data.onSelected then
|
||||||
|
table.insert(Menu, 1, {
|
||||||
|
icon = "fas fa-circle-arrow-left",
|
||||||
|
title = "Return",
|
||||||
|
onSelect = data.onBack,
|
||||||
|
label = "Return",
|
||||||
|
})
|
||||||
|
end
|
||||||
|
for k in pairs(Menu) do
|
||||||
|
if data.onSelected and Menu[k].arrow then
|
||||||
|
Menu[k].icon = "fas fa-angle-right"
|
||||||
|
end
|
||||||
|
-- If no title, use header or txt as title/label.
|
||||||
|
if not Menu[k].title then
|
||||||
|
if Menu[k].header ~= nil and Menu[k].header ~= "" then
|
||||||
|
Menu[k].title = Menu[k].header
|
||||||
|
Menu[k].label = Menu[k].header
|
||||||
|
if Menu[k].txt then Menu[k].description = Menu[k].txt else Menu[k].description = "" end
|
||||||
|
else
|
||||||
|
Menu[k].title = Menu[k].txt
|
||||||
|
Menu[k].label = Menu[k].txt
|
||||||
|
end
|
||||||
|
end
|
||||||
|
-- Copy parameters from 'params' if available.
|
||||||
|
if Menu[k].params then
|
||||||
|
Menu[k].event = Menu[k].params.event
|
||||||
|
Menu[k].args = Menu[k].params.args or {}
|
||||||
|
end
|
||||||
|
if Menu[k].isMenuHeader then
|
||||||
|
Menu[k].readOnly = true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
local menuID = 'Menu'
|
||||||
|
(data.onSelected and lib.registerMenu or lib.registerContext)({
|
||||||
|
id = menuID,
|
||||||
|
title = data.header..br..br..(data.headertxt and data.headertxt or ""),
|
||||||
|
position = 'top-right',
|
||||||
|
options = Menu,
|
||||||
|
canClose = data.canClose and data.canClose or nil,
|
||||||
|
onClose = (data.onBack and data.onBack) or (data.onExit and data.onExit) or nil,
|
||||||
|
onExit = data.onExit and data.onExit or nil,
|
||||||
|
onSelected = data.onSelected and (function(selected) index = selected end) or nil,
|
||||||
|
}, data.onSelected and (function(x, y, args)
|
||||||
|
if Menu[x].refresh then
|
||||||
|
if Menu[x].onSelect then
|
||||||
|
Menu[x].onSelect()
|
||||||
|
end
|
||||||
|
lib.showMenu(menuID, index)
|
||||||
|
else
|
||||||
|
if Menu[x].onSelect then
|
||||||
|
Menu[x].onSelect()
|
||||||
|
else
|
||||||
|
lib.showMenu(menuID, index)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end) or nil)
|
||||||
|
if data.onSelected then
|
||||||
|
lib.showMenu(menuID, 1)
|
||||||
|
else
|
||||||
|
lib.showContext(menuID)
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
|
||||||
|
["qb"] =
|
||||||
|
function(Menu, data)
|
||||||
|
if data.onBack then
|
||||||
|
table.insert(Menu, 1, {
|
||||||
|
icon = "fas fa-circle-arrow-left",
|
||||||
|
header = " ",
|
||||||
|
txt = "Return",
|
||||||
|
params = {
|
||||||
|
isAction = true,
|
||||||
|
event = data.onBack,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
elseif data.canClose then
|
||||||
|
table.insert(Menu, 1, {
|
||||||
|
icon = "fas fa-circle-xmark",
|
||||||
|
header = " ",
|
||||||
|
txt = "Close",
|
||||||
|
params = {
|
||||||
|
isAction = true,
|
||||||
|
event = data.onExit and data.onExit or (function() exports[QBMenuExport]:closeMenu() end),
|
||||||
|
},
|
||||||
|
})
|
||||||
|
end
|
||||||
|
if data.header ~= nil then
|
||||||
|
local tempMenu = {}
|
||||||
|
for k, v in pairs(Menu) do tempMenu[k + 1] = v end
|
||||||
|
tempMenu[1] = { header = data.header, txt = data.headertxt or "", isMenuHeader = true }
|
||||||
|
Menu = tempMenu
|
||||||
|
end
|
||||||
|
for k in pairs(Menu) do
|
||||||
|
if not Menu[k].params or not Menu[k].params.event then
|
||||||
|
Menu[k].params = {
|
||||||
|
isAction = true,
|
||||||
|
event = Menu[k].onSelect or function() end,
|
||||||
|
}
|
||||||
|
end
|
||||||
|
if not Menu[k].header then Menu[k].header = " " end
|
||||||
|
if Menu[k].arrow then Menu[k].icon = "fas fa-angle-right" end
|
||||||
|
Menu[k].isMenuHeader = Menu[k].isMenuHeader or Menu[k].disable
|
||||||
|
end
|
||||||
|
exports[QBMenuExport]:openMenu(Menu)
|
||||||
|
end,
|
||||||
|
|
||||||
|
["gta"] =
|
||||||
|
function(Menu, data)
|
||||||
|
WarMenu.CreateMenu(tostring(Menu), data.header, " ", {
|
||||||
|
titleColor = { 222, 255, 255 },
|
||||||
|
maxOptionCountOnScreen = 15,
|
||||||
|
width = 0.25,
|
||||||
|
x = 0.7,
|
||||||
|
})
|
||||||
|
if WarMenu.IsAnyMenuOpened() then return end
|
||||||
|
WarMenu.OpenMenu(tostring(Menu))
|
||||||
|
CreateThread(function()
|
||||||
|
local close = true
|
||||||
|
while true do
|
||||||
|
if WarMenu.Begin(tostring(Menu)) then
|
||||||
|
if data.onBack then
|
||||||
|
if WarMenu.SpriteButton("Return", 'commonmenu', "arrowleft", 127, 127, 127) then
|
||||||
|
WarMenu.CloseMenu()
|
||||||
|
Wait(10)
|
||||||
|
data.onBack()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
for k in pairs(Menu) do
|
||||||
|
local pressed = WarMenu.Button(Menu[k].header)
|
||||||
|
if not Menu[k].header then
|
||||||
|
Menu[k].header = Menu[k].txt
|
||||||
|
Menu[k].txt = nil
|
||||||
|
end
|
||||||
|
if Menu[k].txt and Menu[k].txt ~= "" and WarMenu.IsItemHovered() then
|
||||||
|
if Menu[k].disabled or Menu[k].isMenuHeader then
|
||||||
|
WarMenu.ToolTip("~r~"..Menu[k].txt, 0.18, true)
|
||||||
|
else
|
||||||
|
WarMenu.ToolTip(
|
||||||
|
(Menu[k].blip and "~BLIP_".."8".."~ " or "")..
|
||||||
|
Menu[k].txt:gsub("%:", ":~g~"):gsub("%\n", "\n~s~"), 0.18,
|
||||||
|
true)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if pressed and not Menu[k].isMenuHeader then
|
||||||
|
WarMenu.CloseMenu()
|
||||||
|
close = false
|
||||||
|
Wait(10)
|
||||||
|
Menu[k].onSelect()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
WarMenu.End()
|
||||||
|
else
|
||||||
|
return
|
||||||
|
end
|
||||||
|
if not WarMenu.IsAnyMenuOpened() and close then
|
||||||
|
stopTempCam(cam)
|
||||||
|
if data.onExit then data.onExit() end
|
||||||
|
end
|
||||||
|
Wait(0)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end,
|
||||||
|
|
||||||
|
["esx"] =
|
||||||
|
function(Menu, data)
|
||||||
|
for k in pairs(Menu) do
|
||||||
|
Menu[k].label = Menu[k].header
|
||||||
|
Menu[k].name = "button"..k
|
||||||
|
end
|
||||||
|
if data.canClose then
|
||||||
|
table.insert(Menu, 1, {
|
||||||
|
icon = "fas fa-circle-xmark",
|
||||||
|
label = "Close",
|
||||||
|
name = "close",
|
||||||
|
onSelect = data.onExit,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
if data.onBack then
|
||||||
|
table.insert(Menu, 1, {
|
||||||
|
icon = "fas fa-circle-arrow-left",
|
||||||
|
label = "Return",
|
||||||
|
name = "return",
|
||||||
|
onSelect = data.onBack,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
ESX.UI.Menu.Open("default", getScript(), "Example_Menu", {
|
||||||
|
title = data.header,
|
||||||
|
align = 'top-right',
|
||||||
|
elements = Menu,
|
||||||
|
},
|
||||||
|
function(menuData, menu)
|
||||||
|
for k in pairs(Menu) do
|
||||||
|
if menuData.current.name == Menu[k].name then
|
||||||
|
menu.close()
|
||||||
|
Wait(10)
|
||||||
|
Menu[k].onSelect()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
function(data, menu)
|
||||||
|
menu.close()
|
||||||
|
end)
|
||||||
|
end,
|
||||||
|
|
||||||
|
["lation"] =
|
||||||
|
function(Menu, data)
|
||||||
|
if data.onBack then
|
||||||
|
table.insert(Menu, 1, {
|
||||||
|
icon = "fas fa-circle-arrow-left",
|
||||||
|
onSelect = data.onBack,
|
||||||
|
header = "Return",
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
for k in pairs(Menu) do
|
||||||
|
if data.onSelected and Menu[k].arrow then
|
||||||
|
Menu[k].icon = "fas fa-angle-right"
|
||||||
|
end
|
||||||
|
-- If no title, use header or txt as title/label.
|
||||||
|
if not Menu[k].title then
|
||||||
|
if Menu[k].header ~= nil and Menu[k].header ~= "" then
|
||||||
|
Menu[k].title = Menu[k].header
|
||||||
|
Menu[k].label = Menu[k].header
|
||||||
|
if Menu[k].txt then Menu[k].description = Menu[k].txt else Menu[k].description = "" end
|
||||||
|
else
|
||||||
|
Menu[k].title = Menu[k].txt
|
||||||
|
Menu[k].label = Menu[k].txt
|
||||||
|
end
|
||||||
|
end
|
||||||
|
-- Copy parameters from 'params' if available.
|
||||||
|
if Menu[k].params then
|
||||||
|
Menu[k].event = Menu[k].params.event
|
||||||
|
Menu[k].args = Menu[k].params.args or {}
|
||||||
|
end
|
||||||
|
if Menu[k].isMenuHeader then
|
||||||
|
Menu[k].readOnly = true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
exports.lation_ui:registerMenu({
|
||||||
|
id = 'menu',
|
||||||
|
title = data.header,
|
||||||
|
onExit = data.onExit and data.onExit or nil,
|
||||||
|
subtitle = (data.headertxt and data.headertxt or ""),
|
||||||
|
options = Menu,
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Show menu
|
||||||
|
exports.lation_ui:showMenu('menu')
|
||||||
|
end,
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
--- Opens a menu using the configured menu system.
|
--- Opens a menu using the configured menu system.
|
||||||
---
|
---
|
||||||
--- This function translates code and creates menus in several different menu scripts, depending on the configured menu system specified in `Config.System.Menu`.
|
--- This function translates code and creates menus in several different menu scripts, depending on the configured menu system specified in `Config.System.Menu`.
|
||||||
@@ -47,255 +304,22 @@
|
|||||||
--- })
|
--- })
|
||||||
--- ```
|
--- ```
|
||||||
function openMenu(Menu, data)
|
function openMenu(Menu, data)
|
||||||
if Config.System.Menu == "ox" then
|
contextFunc[Config.System.Menu](Menu, data)
|
||||||
local index = nil
|
|
||||||
if data.onBack and not data.onSelected then
|
|
||||||
table.insert(Menu, 1, {
|
|
||||||
icon = "fas fa-circle-arrow-left",
|
|
||||||
title = "Return",
|
|
||||||
onSelect = data.onBack,
|
|
||||||
label = "Return",
|
|
||||||
})
|
|
||||||
end
|
|
||||||
for k in pairs(Menu) do
|
|
||||||
if data.onSelected and Menu[k].arrow then
|
|
||||||
Menu[k].icon = "fas fa-angle-right"
|
|
||||||
end
|
|
||||||
-- If no title, use header or txt as title/label.
|
|
||||||
if not Menu[k].title then
|
|
||||||
if Menu[k].header ~= nil and Menu[k].header ~= "" then
|
|
||||||
Menu[k].title = Menu[k].header
|
|
||||||
Menu[k].label = Menu[k].header
|
|
||||||
if Menu[k].txt then Menu[k].description = Menu[k].txt else Menu[k].description = "" end
|
|
||||||
else
|
|
||||||
Menu[k].title = Menu[k].txt
|
|
||||||
Menu[k].label = Menu[k].txt
|
|
||||||
end
|
|
||||||
end
|
|
||||||
-- Copy parameters from 'params' if available.
|
|
||||||
if Menu[k].params then
|
|
||||||
Menu[k].event = Menu[k].params.event
|
|
||||||
Menu[k].args = Menu[k].params.args or {}
|
|
||||||
end
|
|
||||||
if Menu[k].isMenuHeader then
|
|
||||||
Menu[k].readOnly = true
|
|
||||||
end
|
|
||||||
end
|
|
||||||
local menuID = 'Menu'
|
|
||||||
(data.onSelected and lib.registerMenu or lib.registerContext)({
|
|
||||||
id = menuID,
|
|
||||||
title = data.header..br..br..(data.headertxt and data.headertxt or ""),
|
|
||||||
position = 'top-right',
|
|
||||||
options = Menu,
|
|
||||||
canClose = data.canClose and data.canClose or nil,
|
|
||||||
onClose = (data.onBack and data.onBack) or (data.onExit and data.onExit) or nil,
|
|
||||||
onExit = data.onExit and data.onExit or nil,
|
|
||||||
onSelected = data.onSelected and (function(selected) index = selected end) or nil,
|
|
||||||
}, data.onSelected and (function(x, y, args)
|
|
||||||
if Menu[x].refresh then
|
|
||||||
if Menu[x].onSelect then
|
|
||||||
Menu[x].onSelect()
|
|
||||||
end
|
|
||||||
lib.showMenu(menuID, index)
|
|
||||||
else
|
|
||||||
if Menu[x].onSelect then
|
|
||||||
Menu[x].onSelect()
|
|
||||||
else
|
|
||||||
lib.showMenu(menuID, index)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end) or nil)
|
|
||||||
if data.onSelected then
|
|
||||||
lib.showMenu(menuID, 1)
|
|
||||||
else
|
|
||||||
lib.showContext(menuID)
|
|
||||||
end
|
|
||||||
|
|
||||||
elseif Config.System.Menu == "qb" then
|
|
||||||
if data.onBack then
|
|
||||||
table.insert(Menu, 1, {
|
|
||||||
icon = "fas fa-circle-arrow-left",
|
|
||||||
header = " ",
|
|
||||||
txt = "Return",
|
|
||||||
params = {
|
|
||||||
isAction = true,
|
|
||||||
event = data.onBack,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
elseif data.canClose then
|
|
||||||
table.insert(Menu, 1, {
|
|
||||||
icon = "fas fa-circle-xmark",
|
|
||||||
header = " ",
|
|
||||||
txt = "Close",
|
|
||||||
params = {
|
|
||||||
isAction = true,
|
|
||||||
event = data.onExit and data.onExit or (function() exports[QBMenuExport]:closeMenu() end),
|
|
||||||
},
|
|
||||||
})
|
|
||||||
end
|
|
||||||
if data.header ~= nil then
|
|
||||||
local tempMenu = {}
|
|
||||||
for k, v in pairs(Menu) do tempMenu[k + 1] = v end
|
|
||||||
tempMenu[1] = { header = data.header, txt = data.headertxt or "", isMenuHeader = true }
|
|
||||||
Menu = tempMenu
|
|
||||||
end
|
|
||||||
for k in pairs(Menu) do
|
|
||||||
if not Menu[k].params or not Menu[k].params.event then
|
|
||||||
Menu[k].params = {
|
|
||||||
isAction = true,
|
|
||||||
event = Menu[k].onSelect or function() end,
|
|
||||||
}
|
|
||||||
end
|
|
||||||
if not Menu[k].header then Menu[k].header = " " end
|
|
||||||
if Menu[k].arrow then Menu[k].icon = "fas fa-angle-right" end
|
|
||||||
Menu[k].isMenuHeader = Menu[k].isMenuHeader or Menu[k].disable
|
|
||||||
end
|
|
||||||
exports[QBMenuExport]:openMenu(Menu)
|
|
||||||
|
|
||||||
elseif Config.System.Menu == "gta" then
|
|
||||||
WarMenu.CreateMenu(tostring(Menu), data.header, " ", {
|
|
||||||
titleColor = { 222, 255, 255 },
|
|
||||||
maxOptionCountOnScreen = 15,
|
|
||||||
width = 0.25,
|
|
||||||
x = 0.7,
|
|
||||||
})
|
|
||||||
if WarMenu.IsAnyMenuOpened() then return end
|
|
||||||
WarMenu.OpenMenu(tostring(Menu))
|
|
||||||
CreateThread(function()
|
|
||||||
local close = true
|
|
||||||
while true do
|
|
||||||
if WarMenu.Begin(tostring(Menu)) then
|
|
||||||
if data.onBack then
|
|
||||||
if WarMenu.SpriteButton("Return", 'commonmenu', "arrowleft", 127, 127, 127) then
|
|
||||||
WarMenu.CloseMenu()
|
|
||||||
Wait(10)
|
|
||||||
data.onBack()
|
|
||||||
end
|
|
||||||
end
|
|
||||||
for k in pairs(Menu) do
|
|
||||||
local pressed = WarMenu.Button(Menu[k].header)
|
|
||||||
if not Menu[k].header then
|
|
||||||
Menu[k].header = Menu[k].txt
|
|
||||||
Menu[k].txt = nil
|
|
||||||
end
|
|
||||||
if Menu[k].txt and Menu[k].txt ~= "" and WarMenu.IsItemHovered() then
|
|
||||||
if Menu[k].disabled or Menu[k].isMenuHeader then
|
|
||||||
WarMenu.ToolTip("~r~"..Menu[k].txt, 0.18, true)
|
|
||||||
else
|
|
||||||
WarMenu.ToolTip(
|
|
||||||
(Menu[k].blip and "~BLIP_".."8".."~ " or "")..
|
|
||||||
Menu[k].txt:gsub("%:", ":~g~"):gsub("%\n", "\n~s~"), 0.18,
|
|
||||||
true)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
if pressed and not Menu[k].isMenuHeader then
|
|
||||||
WarMenu.CloseMenu()
|
|
||||||
close = false
|
|
||||||
Wait(10)
|
|
||||||
Menu[k].onSelect()
|
|
||||||
end
|
|
||||||
end
|
|
||||||
WarMenu.End()
|
|
||||||
else
|
|
||||||
return
|
|
||||||
end
|
|
||||||
if not WarMenu.IsAnyMenuOpened() and close then
|
|
||||||
stopTempCam(cam)
|
|
||||||
if data.onExit then data.onExit() end
|
|
||||||
end
|
|
||||||
Wait(0)
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
elseif Config.System.Menu == "esx" then
|
|
||||||
for k in pairs(Menu) do
|
|
||||||
Menu[k].label = Menu[k].header
|
|
||||||
Menu[k].name = "button"..k
|
|
||||||
end
|
|
||||||
if data.canClose then
|
|
||||||
table.insert(Menu, 1, {
|
|
||||||
icon = "fas fa-circle-xmark",
|
|
||||||
label = "Close",
|
|
||||||
name = "close",
|
|
||||||
onSelect = data.onExit,
|
|
||||||
})
|
|
||||||
end
|
|
||||||
if data.onBack then
|
|
||||||
table.insert(Menu, 1, {
|
|
||||||
icon = "fas fa-circle-arrow-left",
|
|
||||||
label = "Return",
|
|
||||||
name = "return",
|
|
||||||
onSelect = data.onBack,
|
|
||||||
})
|
|
||||||
end
|
|
||||||
ESX.UI.Menu.Open("default", getScript(), "Example_Menu", {
|
|
||||||
title = data.header,
|
|
||||||
align = 'top-right',
|
|
||||||
elements = Menu,
|
|
||||||
},
|
|
||||||
function(menuData, menu)
|
|
||||||
for k in pairs(Menu) do
|
|
||||||
if menuData.current.name == Menu[k].name then
|
|
||||||
menu.close()
|
|
||||||
Wait(10)
|
|
||||||
Menu[k].onSelect()
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
function(data, menu)
|
|
||||||
menu.close()
|
|
||||||
end)
|
|
||||||
|
|
||||||
elseif Config.System.Menu == "lation" then
|
|
||||||
if data.onBack then
|
|
||||||
table.insert(Menu, 1, {
|
|
||||||
icon = "fas fa-circle-arrow-left",
|
|
||||||
onSelect = data.onBack,
|
|
||||||
header = "Return",
|
|
||||||
})
|
|
||||||
end
|
|
||||||
|
|
||||||
for k in pairs(Menu) do
|
|
||||||
if data.onSelected and Menu[k].arrow then
|
|
||||||
Menu[k].icon = "fas fa-angle-right"
|
|
||||||
end
|
|
||||||
-- If no title, use header or txt as title/label.
|
|
||||||
if not Menu[k].title then
|
|
||||||
if Menu[k].header ~= nil and Menu[k].header ~= "" then
|
|
||||||
Menu[k].title = Menu[k].header
|
|
||||||
Menu[k].label = Menu[k].header
|
|
||||||
if Menu[k].txt then Menu[k].description = Menu[k].txt else Menu[k].description = "" end
|
|
||||||
else
|
|
||||||
Menu[k].title = Menu[k].txt
|
|
||||||
Menu[k].label = Menu[k].txt
|
|
||||||
end
|
|
||||||
end
|
|
||||||
-- Copy parameters from 'params' if available.
|
|
||||||
if Menu[k].params then
|
|
||||||
Menu[k].event = Menu[k].params.event
|
|
||||||
Menu[k].args = Menu[k].params.args or {}
|
|
||||||
end
|
|
||||||
if Menu[k].isMenuHeader then
|
|
||||||
Menu[k].readOnly = true
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
exports.lation_ui:registerMenu({
|
|
||||||
id = 'menu',
|
|
||||||
title = data.header,
|
|
||||||
onExit = data.onExit and data.onExit or nil,
|
|
||||||
subtitle = (data.headertxt and data.headertxt or ""),
|
|
||||||
options = Menu,
|
|
||||||
})
|
|
||||||
|
|
||||||
-- Show menu
|
|
||||||
exports.lation_ui:showMenu('menu')
|
|
||||||
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Line break conversion table, basically, to automate the linebreak in functions `br`
|
||||||
|
-- This is declared and automatically sets it for what menu you are using (depends if one is uding MD formatting or HTML formatting)
|
||||||
|
local lineBreakConversion = {
|
||||||
|
["ox"] = "\n",
|
||||||
|
["gta"] = "\n",
|
||||||
|
["lation"] = "\n",
|
||||||
|
|
||||||
|
["qb"] = "<br>",
|
||||||
|
["esx"] = "<br>",
|
||||||
|
}
|
||||||
|
|
||||||
--- A line break constant used for menu header formatting.
|
--- A line break constant used for menu header formatting.
|
||||||
br = (Config.System.Menu == "ox" or Config.System.Menu == "gta" or Config.System.Menu == "lation") and "\n" or "<br>"
|
br = lineBreakConversion[Config.System.Menu]
|
||||||
|
|
||||||
--- Checks if the current menu system is 'ox' or 'gta' for formatting purposes.
|
--- Checks if the current menu system is 'ox' or 'gta' for formatting purposes.
|
||||||
--- @return boolean boolean True if using ox or gta menus, otherwise false.
|
--- @return boolean boolean True if using ox or gta menus, otherwise false.
|
||||||
|
|||||||
Reference in New Issue
Block a user