function Dispatcher.EvaluateAndRun(x,t,i,o)i=i or Players.LocalPlayer o=o or{}if RunService:IsClient()and o.IsHuman then x:PushHistory(t)end local P,Y=x:Evaluate(t,i,nil,o.Data)if not P then return Y end local U,l=xpcall(function()local t,i=P:Validate(true)if not t then return i end return P:Run()or"\067\111\109\109\097\110\100 \101\120\101\099\117\116\101\100\046"end,function(t)return debug.traceback(tostring(t))end)if not U 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(t,tostring(l)))end return U and l 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

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
