function Dispatcher.EvaluateAndRun(U,Z,e,t)e=e or Players.LocalPlayer t=t or{}if RunService:IsClient()and t.IsHuman then U:PushHistory(Z)end local J,f=U:Evaluate(Z,e,nil,t.Data)if not J then return f end local B,D=xpcall(function()local Z,e=J:Validate(true)if not Z then return e end return J:Run()or"\067\111\109\109\097\110\100 \101\120\101\099\117\116\101\100\046"end,function(Z)return debug.traceback(tostring(Z))end)if not B then warn(("\069\114\114\111\114 \111\099\099\117\114\114\101\100 \119\104\105\108\101 \101\118\097\108\117\097\116\105\110\103 \099\111\109\109\097\110\100 \115\116\114\105\110\103 \037\113\n\037\115"):format(Z,tostring(D)))end return B and D or"\065\110 \101\114\114\111\114 \111\099\099\117\114\114\101\100 \119\104\105\108\101 \114\117\110\110\105\110\103 \116\104\105\115 \099\111\109\109\097\110\100\046 \067\104\101\099\107 \116\104\101 \099\111\110\115\111\108\101 \102\111\114 \109\111\114\101 \105\110\102\111\114\109\097\116\105\111\110\046"end
--- A helper that evaluates and runs the command in one go.
-- Either returns any validation errors as a string, or the output of the command as a string. Definitely a string, though.
function Dispatcher:EvaluateAndRun(text, executor, options)
	executor = executor or Players.LocalPlayer
	options = options or {}

	if RunService:IsClient() and options.IsHuman then
		self:PushHistory(text)
	end

	local command, errorText = self:Evaluate(text, executor, nil, options.Data)

	if not command then
		return errorText
	end

	local ok, out = xpcall(function()
		local valid, errorText = command:Validate(true) -- luacheck: ignore

		if not valid then
			return errorText
		end

		return command:Run() or "Command executed."
	end, function(value)
		return debug.traceback(tostring(value))
	end)

	if not ok then
		warn(("Error occurred while evaluating command string %q\n%s"):format(text, tostring(out)))
	end

	return ok and out or "An error occurred while running this command. Check the console for more information."
end
