--- Registers a command with the active command system. --- This function supports multiple command systems (OXLib, qb-core, ESX Legacy). --- --- @param command string The name of the command to register. --- @param options table A table containing command options. --- - help (`string`): The help description for the command. --- - params (`table`): A table of parameters for the command. --- - callback (`function`): The function to execute when the command is called. --- - autocomplete (`function|nil`): (Optional) A function for autocompletion. --- - restrictedGroup (`string|nil`): (Optional) The user group required to execute the command. --- --- @usage --- ```lua --- registerCommand("greet", { --- "Greets the player", --- { name = "name", help = "Name of the player to greet" }, --- nil, --- function(source, args) print("Hello, "..args[1].."!") end, --- "admin" --- }) --- ``` function registerCommand(command, options) -- Name the options local optionTable = { helpInfo = options[1] or nil, -- help info that pops up in chat box subText = options[2] or nil, -- sub help info for each arg argsRequired = options[3] or nil, -- command only works if you enter args funct = options[4] or nil, -- function that will run when command is triggered restriction = options[5] or nil -- admin group that can use the group or `nil` } local commandResource = "" if isStarted(OXLibExport) then commandResource = OXLibExport lib.addCommand(command, { help = optionTable.helpInfo, params = optionTable.subText, restricted = optionTable.restriction and "group."..optionTable.restriction or nil }, optionTable.funct) elseif isStarted(QBExport) and not isStarted(QBXExport) then commandResource = QBExport Core.Commands.Add(command, optionTable.helpInfo, optionTable.subText, optionTable.argsRequired, optionTable.funct, optionTable.restriction or nil ) elseif isStarted(RSGExport) then commandResource = RSGExport Core.Commands.Add(command, optionTable.helpInfo, optionTable.subText, optionTable.argsRequired, optionTable.funct, optionTable.restriction or nil ) elseif isStarted(ESXExport) then commandResource = ESXExport ESX.RegisterCommand(command, optionTable.restriction or 'admin', function(xPlayer, args, showError) optionTable.funct(xPlayer.source, args, showError) end, false, { help = options[1] } ) end if commandResource ~= "" then debugPrint("^6Bridge^7: ^2Registering ^3Command^2 with ^4"..commandResource.."^7:", "^7/"..command) else print("^1ERROR^7: ^1Couldn't find supported framework to register command^7:", "/"..command) end end