diff --git a/imports/addCommand/server.lua b/imports/addCommand/server.lua index 4356994..4fd5057 100644 --- a/imports/addCommand/server.lua +++ b/imports/addCommand/server.lua @@ -1,7 +1,7 @@ ---@class OxCommandParams ---@field name string ---@field help? string ----@field type? 'number' | 'playerId' | 'string' +---@field type? 'number' | 'playerId' | 'string' | 'longString' ---@field optional? boolean ---@class OxCommandProperties @@ -30,7 +30,8 @@ end) local function parseArguments(source, args, raw, params) if not params then return args end - for i = 1, #params do + local paramsNum = #params + for i = 1, paramsNum do local arg, param = args[i], params[i] local value @@ -44,6 +45,9 @@ local function parseArguments(source, args, raw, params) if not value or not DoesPlayerExist(value--[[@as string]]) then value = false end + elseif param.type == 'longString' and i == paramsNum then + local start = raw:find(arg, 1, true) + value = start and raw:sub(start) else value = arg end @@ -131,6 +135,7 @@ function lib.addCommand(commandName, properties, cb, ...) end if properties then + ---@diagnostic disable-next-line: inject-field properties.name = ('/%s'):format(commandName) properties.restricted = nil registeredCommands[totalCommands] = properties diff --git a/package/server/resource/addCommand/index.ts b/package/server/resource/addCommand/index.ts index cb94af3..f6221d7 100644 --- a/package/server/resource/addCommand/index.ts +++ b/package/server/resource/addCommand/index.ts @@ -5,7 +5,7 @@ type OxCommandArguments = Record; interface OxCommandParams { name: string; help?: string; - paramType?: 'number' | 'playerId' | 'string'; + paramType?: 'number' | 'playerId' | 'string' | 'longString'; optional?: boolean; } @@ -55,6 +55,10 @@ function parseArguments( break; + case 'longString': + value = raw.substring(raw.indexOf(arg as string)); + break; + default: value = arg; break;