namespace IRCRobots; public class Bot : IBot { private readonly Dictionary _servers = []; private readonly Queue _serverQueue = []; public Server CreateServer(string name) { throw new NotImplementedException(); } public Task Disconnected(Server server) { throw new NotImplementedException(); } public async Task DisconnectAsync(Server server) { _servers.Remove(server.Name); await server.DisconnectAsync(); } public async Task AddServerAsync(string name, ConnectionParams connectionParams) { var server = CreateServer(name); _servers[name] = server; await server.ConnectAsync(); _serverQueue.Enqueue(server); return server; } public Task RunAsync() { return Task.CompletedTask; } } public interface IBot { Server CreateServer(string name); Task Disconnected(Server server); Task DisconnectAsync(Server server); Task AddServerAsync(string name, ConnectionParams connectionParams); Task RunAsync(); }