Example #1
0
        public async Task StartAsync(CancellationToken cancellationToken)
        {
            _logger.LogInformation("Starting bot");

            var commandPrefix    = _options.CommandPrefix;
            var altCommandPrefix = _options.AlternateCommandPrefix;

            var commands = _client.UseCommandsNext(new CommandsNextConfiguration()
            {
                StringPrefixes    = new[] { commandPrefix, altCommandPrefix },
                Services          = _serviceProvider,
                EnableDefaultHelp = false
            });

            await _client.ConnectAsync();

            commands.RegisterConverter(new GenericArgumentConverter <StatsCommandArgs, StatsCommandArgsParser>());
            commands.RegisterCommands(Assembly.GetExecutingAssembly());

            _client.SocketOpened += OnClientConnected;
            _client.SocketClosed += OnClientDisconnected;
            _client.Ready        += OnClientReady;

            _commandEventHandler.RegisterHandlers(commands);
            _emoteEventHandler.RegisterHandlers();
        }