diff --git a/fxmanifest.lua b/fxmanifest.lua index ce99a20..cfb84eb 100644 --- a/fxmanifest.lua +++ b/fxmanifest.lua @@ -2,7 +2,7 @@ author "Andyyy#7666, N1K0#0001" description "ND Framework Core" -version "3.1.3" +version "3.1.4" fx_version "cerulean" game "gta5" @@ -17,6 +17,7 @@ server_scripts { "@oxmysql/lib/MySQL.lua", "config_server.lua", "server/main.lua", + "server/commands.lua", "server/functions.lua", "server/events.lua" } diff --git a/server/commands.lua b/server/commands.lua new file mode 100644 index 0000000..6c284b9 --- /dev/null +++ b/server/commands.lua @@ -0,0 +1,39 @@ +NDCore.Commands = {} +NDCore.Commands.Registry = {} + +function NDCore.Commands.Add(name, help, arguments, argsrequired, callback, ...) + RegisterCommand(name, function(source, args, rawCommand) + if argsrequired and #args < #arguments then + return TriggerClientEvent("chat:addMessage", source, { + color = {255, 0, 0}, + multiline = true, + args = {"System", "All arguments must be filled out!"} + }) + end + callback(source, args, rawCommand) + end, false) + + NDCore.Commands.Registry[name:lower()] = { + name = name:lower(), + help = help, + arguments = arguments, + argsrequired = argsrequired, + callback = callback + } +end + +function NDCore.Commands.Refresh(source) + local src = source + local Player = NDCore.Functions.GetPlayer(src) + local suggestions = {} + if Player then + for command, info in pairs(NDCore.Commands.Registry) do + suggestions[#suggestions + 1] = { + name = "/" .. command, + help = info.help, + params = info.arguments + } + end + TriggerClientEvent("chat:addSuggestions", src, suggestions) + end +end \ No newline at end of file