コード例 #1
0
ファイル: ExperienceManager.cs プロジェクト: fossabot/sanakan
 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
ファイル: ExperienceManager.cs プロジェクト: zsuatem/sanakan
        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();
            }
        }