C# 列表枚举永远不会被激发
我目前正在与Discord机器人合作,尝试跟踪用户邀请,但我们将在这里使用苹果 因此,当bot启动时,它会将服务器已经知道的苹果列表放在一起。当用户加入时,此代码:C# 列表枚举永远不会被激发,c#,linq,enumeration,discord.net,C#,Linq,Enumeration,Discord.net,我目前正在与Discord机器人合作,尝试跟踪用户邀请,但我们将在这里使用苹果 因此,当bot启动时,它会将服务器已经知道的苹果列表放在一起。当用户加入时,此代码: private async Task NewUser(SocketGuildUser user) { var inv = await GetGuild().GetInvitesAsync(); foreach (IInviteMetadata i in inv) {
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();
}
是什么在跑。理想情况下,它应该检测到新用户咬了一口(使用邀请)的苹果是否已经存在于列表中,并给他们一美元(因为共享!),或者如果它不存在,只给苹果的原始所有者一美元(因为资本主义!),苹果列表就会刷新
基本上是bot->填充邀请列表->新用户加入->比较和+1邀请者->填充邀请列表
我的代码没有一个被激活。为什么?这里什么都可以。它不是最干净的,因为在它工作之前,清理代码没有任何意义
谢谢。如果不知道Discord API,诊断这一点很难,但是如果我不得不大胆猜测,我会说第一个等待调用就是这个问题的症结所在。所以我看到了两个潜在的问题,要么调用没有返回,这就是为什么什么都没有执行(如果列表中有项目,foreach循环将在列表上迭代),要么函数被卡住,等待函数调用的结果 我希望这至少能帮助你从某种程度上开始调查