【发布时间】:2018-09-28 03:08:47
【问题描述】:
我目前正在使用 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 -> 填充邀请列表
我的代码都没有触发。为什么?任何事情都可以在这里提供帮助。它不是最干净的,因为在它工作之前清理代码是没有意义的。
谢谢。
【问题讨论】:
标签: c# linq enumeration discord.net