public async Task StartAsync()
        {
            _gateway.SocketMessageReceived += SocketMessageReceived;
            _gateway.Disconnected          += Disconnected;

            await _gateway.ConnectAsync();
        }
        private async Task Disconnected(GatewayConnection conn)
        {
            _logger.LogInformation(LogEvent.Disconnected, "Connection to Discord lost, attempting to reconnect in 2s");
            await Task.Delay(2000);

            _logger.LogTrace(LogEvent.Disconnected, "Reconnecting now");
            _gateway = new GatewayConnection(_gatewayUrl, _logger);

            _gateway.SocketMessageReceived += SocketMessageReceived;
            _gateway.Disconnected          += Disconnected;

            await _gateway.ConnectAsync();
        }