Перечисление списка никогда не запускается

В настоящее время я работаю с ботом Discord, чтобы попытаться отслеживать приглашения пользователей, но здесь мы будем использовать яблоки.

Итак, когда бот запускается, он составляет Список яблок, которые, как известно серверу, находятся в корзине. Когда пользователь присоединяется, этот код:

private async Task NewUser(SocketGuildUser user)
    {
        var inv = await GetGuild().GetInvitesAsync();
        foreach (IInviteMetadata i in inv)
        {
            var existing = invites.Any(x => x.Code == i.Code);
            var prev = invites.FirstOrDefault(x => x.Code == i.Code);
            if (!existing)
            {
                new UserManager(client, i.Inviter).UpdateUser();
                Console.WriteLine("Updated " + i.Inviter + "'s ");
                break;
            }
            else if (prev.Uses > i.Uses)
            {
                new UserManager(client, i.Inviter).UpdateUser();
                Console.WriteLine("Updated " + i.Inviter + "'s ");
                break;
            }

        }
        await user.SendMessageAsync("Hey " + user.Username + "! I wanna give you a big warm welcome to " +
            guildName + ". I'd give you a big warm hug if I could but...you know, I'm a bot and all. It would be cold.");
        var newbie = user.Guild.Roles.FirstOrDefault(x => x.Name == "Newbie");
        await user.AddRoleAsync(newbie);
        Update();
    }

это то, что запущено. В идеале он должен определить, существует ли яблоко, от которого новый пользователь откусил (пригласил использовать), уже в списке, и дать ему доллар (потому что поделился!), или, если оно не существует, просто дать первоначальному владельцу яблока доллар (потому что капитализм!), и список яблок обновляется.

В основном бот -> заполнить список приглашений -> присоединяется новый пользователь -> сравнение и +1 для приглашающего -> заполнить список приглашений

Ни один из моих кодов не срабатывает. Почему? Здесь все могло помочь. Это не самый чистый код, потому что нет смысла чистить код, пока он не заработает.

Спасибо.


person Autumn Rowan    schedule 18.04.2018    source источник


Ответы (1)


Без знания API Discord диагностировать это сложно, но если бы мне пришлось рискнуть предположить, я бы сказал, что первый вызов await — это место, где это падает. Итак, я вижу две потенциальные проблемы: либо вызов не возвращается, и поэтому ничего не выполняется (цикл foreach будет перебирать список, если в указанном списке есть элементы), либо функция застревает в ожидании результатов от вызова функции .

Я надеюсь, что это поможет вам, по крайней мере, иметь какую-то точку, с которой можно начать расследование.

person Rhys Johns    schedule 18.04.2018