async Task MainAsync(string[] args) { client = new DiscordClient(new DiscordConfiguration { Token = Tokens.QUIPCORD, TokenType = TokenType.Bot, UseInternalLogHandler = true, LogLevel = LogLevel.Debug }); client.MessageCreated += async e => { try { switch (e.Message.Content) { case "!save": PeriodicSave(); break; case "!exit": PeriodicSave(); Environment.Exit(0); break; } await acro.Handle(e); await markov.Handle(e); await paint.Handle(e); await quip.Handle(e); await quote.Handle(e); } catch (Exception ex) { PeriodicSave(); //e.Channel.SendMessageAsync("Oops"); throw ex; } }; acro = Load <Acrolash>() ?? new Acrolash(); markov = Load <Markovlash>() ?? new Markovlash(); paint = Load <Paintlash>() ?? new Paintlash(); quip = Load <Quiplash>() ?? new Quiplash(); quote = Load <Quotelash>() ?? new Quotelash(); acro.OnLoad(this); markov.OnLoad(this); paint.OnLoad(this); quip.OnLoad(this); quote.OnLoad(this); PeriodicSave(); await client.ConnectAsync(); await Task.Delay(-1); }
public void OnLoad(Program p) { this.client = p.client; quote = p.quote; }