local C=require(script.Parent.Parent.Shared.Util)local O=Enum.UserInputType:GetEnumItems()for C,V in pairs(Enum.KeyCode:GetEnumItems())do O[#O+1]=V end local V={Transform=function(V)local L=C.MakeFuzzyFinder(O)return L(V)end;Validate=function(C)return#C>0 end;Autocomplete=function(O)return C.GetNames(O)end;Parse=function(C)return C[1]end}return function(O)O:RegisterType("\117\115\101\114\073\110\112\117\116",V)O:RegisterType("\117\115\101\114\073\110\112\117\116\115",C.MakeListableType(V))end
local Util = require(script.Parent.Parent.Shared.Util)

local combinedInputEnums = Enum.UserInputType:GetEnumItems()

for _, e in pairs(Enum.KeyCode:GetEnumItems()) do
	combinedInputEnums[#combinedInputEnums + 1] = e
end

local userInputType = {
	Transform = function (text)
		local findEnum = Util.MakeFuzzyFinder(combinedInputEnums)

		return findEnum(text)
	end;

	Validate = function (enums)
		return #enums > 0
	end;

	Autocomplete = function (enums)
		return Util.GetNames(enums)
	end;

	Parse = function (enums)
		return enums[1];
	end;
}

return function (cmdr)
	cmdr:RegisterType("userInput", userInputType)
	cmdr:RegisterType("userInputs", Util.MakeListableType(userInputType))
end