示例#1
0
 public async Task NotifyAboutLevelAsync(SocketGuildUser user, ISocketMessageChannel channel, long level)
 {
     using (var badge = await _img.GetLevelUpBadgeAsync(user.Nickname ?? user.Username,
                                                        level, user.GetAvatarUrl(), user.Roles.OrderByDescending(x => x.Position).First().Color))
     {
         using (var badgeStream = badge.ToPngStream())
         {
             await channel.SendFileAsync(badgeStream, $"{user.Id}.png");
         }
     }
 }
示例#2
0
        public async Task NotifyAboutLevelAsync(SocketGuildUser user, ISocketMessageChannel channel, long level)
        {
            using (var badge = await _img.GetLevelUpBadgeAsync(user.Nickname ?? user.Username,
                                                               level, user.GetAvatarUrl() ?? "https://i.imgur.com/xVIMQiB.jpg", user.Roles.OrderByDescending(x => x.Position).First().Color))
            {
                using (var badgeStream = badge.ToPngStream())
                {
                    await channel.SendFileAsync(badgeStream, $"{user.Id}.png");
                }
            }

            using (var dba = new Database.AnalyticsContext(_config))
            {
                dba.UsersData.Add(new Database.Models.Analytics.UserAnalytics
                {
                    Value       = level,
                    UserId      = user.Id,
                    GuildId     = user.Guild.Id,
                    MeasureDate = DateTime.Now,
                    Type        = Database.Models.Analytics.UserAnalyticsEventType.Level
                });
                dba.SaveChanges();
            }
        }