public async Task MainAsync() { _client = new DiscordSocketClient(new DiscordSocketConfig() { LogLevel = LogSeverity.Info, MessageCacheSize = 100 }); _client.Log += Log; _client.MessageReceived += MessageReceived; //json to vars var botvars = JsonConvert.DeserializeObject <dynamic>(File.ReadAllText(@".\botvars.json")); _twitchclientid = botvars.twitchclientid; string[] optoutarray = botvars.optout.ToObject <string[]>(); _optout = optoutarray.ToList(); _liveRoleId = botvars.roleid; _token = botvars.token; _twitchLookup = new TwitchLookup(_twitchclientid); await _client.LoginAsync(TokenType.Bot, _token); await _client.StartAsync(); _client.Ready += () => { int n = _client.Guilds.Sum(guild => guild.Users.Count); Console.ForegroundColor = ConsoleColor.Blue; Log(new LogMessage(LogSeverity.Info, "Client", $"{_client.CurrentUser.Username} is connected to" + $" {_client.Guilds.Count} guild, serving a total of {n} online users.")); Log(new LogMessage(LogSeverity.Info, "Client", $"Total of {_optout.Count} users opted out.")); Console.ResetColor(); CheckUsersTimer(); foreach (var guild in _client.Guilds) // weird way of getting role. Should fix { _liveRole = guild.GetRole(_liveRoleId); } _userHandler = new UserHandler(_client, _liveRole, _twitchLookup); return(Task.CompletedTask); }; await Task.Delay(Timeout.Infinite); }
public UserHandler(DiscordSocketClient discordSocketClient, IRole liveRole, TwitchLookup twitchLookup) { _discordSocketClient = discordSocketClient; _liveRole = liveRole; _twitchLookup = twitchLookup; }