public BotHarness(BotMeta meta, string botDir, string workDir) : base(meta.NickName ?? meta.Author ?? meta.Email) { BotMeta = meta; BotDir = botDir; WorkDir = workDir; _inMemoryLogger = new InMemoryLogger(); Logger = _inMemoryLogger; switch (meta.BotType) { case BotMeta.BotTypes.CSharp: case BotMeta.BotTypes.CPlusPlus: case BotMeta.BotTypes.FSharp: _botRunner = new DotNetRunner(this); break; case BotMeta.BotTypes.Python2: case BotMeta.BotTypes.Python3: _botRunner = new PythonRunner(this); break; case BotMeta.BotTypes.Java: _botRunner = new JavaRunner(this); break; case BotMeta.BotTypes.JavaScript: _botRunner = new JavaScriptRunner(this); break; default: throw new ArgumentException("Invalid bot type " + meta.BotType); } }
public BotHarness(BotMeta meta, string botDir, string workDir, bool noTimeLimit, bool haltOnError, EnvironmentSettings environmentSettings) : base(meta.NickName ?? meta.Author ?? meta.Email) { BotMeta = meta; BotDir = botDir; WorkDir = workDir; EnforceTimeLimit = !noTimeLimit; HaltOnError = haltOnError; _inMemoryLogger = new InMemoryLogger(); Logger = _inMemoryLogger; switch (meta.BotType) { case BotMeta.BotTypes.CSharp: case BotMeta.BotTypes.CPlusPlus: case BotMeta.BotTypes.FSharp: _botRunner = new DotNetRunner(this, environmentSettings); break; case BotMeta.BotTypes.Python2: case BotMeta.BotTypes.Python3: _botRunner = new PythonRunner(this, environmentSettings); break; case BotMeta.BotTypes.Java: case BotMeta.BotTypes.Scala: _botRunner = new JavaRunner(this, environmentSettings); break; case BotMeta.BotTypes.Golang: _botRunner = new GolangRunner(this, environmentSettings); break; case BotMeta.BotTypes.JavaScript: _botRunner = new JavaScriptRunner(this, environmentSettings); break; case BotMeta.BotTypes.Julia: _botRunner = new JuliaRunner(this, environmentSettings); break; case BotMeta.BotTypes.Rust: _botRunner = new RustRunner(this, environmentSettings); break; default: throw new ArgumentException("Invalid bot type " + meta.BotType); } }