private static ICommandResult CommandExecutor(string[] args, LoadFunctionDelegate load, Func <string, ICommandResult> goWithRole) { var loadResult = load(args); if (!loadResult.OK) { return(loadResult); } return(goWithRole((loadResult as CommandResultWithText).Text)); }
public ICommandResult ProcessCommand(string[] args, LoadFunctionDelegate loadText, LoadFunctionDelegate loadWords) { if (args.Length < 1) { return(new CommandResult(false, "No command was passed")); } if (!_userCommands.TryGetValue(args[0], out GoAsDelegate goWithRole)) { return(new CommandResult(false, "Unknown command")); } return(goWithRole(args, loadText, loadWords)); }