Beispiel #1
0
        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);
        }
Beispiel #2
0
 public UserHandler(DiscordSocketClient discordSocketClient, IRole liveRole, TwitchLookup twitchLookup)
 {
     _discordSocketClient = discordSocketClient;
     _liveRole            = liveRole;
     _twitchLookup        = twitchLookup;
 }