Exemple #1
0
        private static async Task Bot_UserUpdated(
            SocketUser arg1,
            SocketUser arg2
            )
        {
            if (arg1.IsBot || arg1.IsWebhook)
            {
                return;
            }

            try
            {
                using SkuldDbContext database = new SkuldDbContextFactory()
                                                .CreateDbContext();

                Skuld.Models.User suser = await database
                                          .InsertOrGetUserAsync(arg2)
                                          .ConfigureAwait(false);

                if (!suser.IsUpToDate(arg2))
                {
                    suser.AvatarUrl =
                        arg2.GetAvatarUrl() ?? arg2.GetDefaultAvatarUrl();

                    suser.Username = arg2.Username;

                    await database.SaveChangesAsync().ConfigureAwait(false);
                }
            }
            catch (Exception ex)
            {
                Log.Error("UsrJoin", ex.Message, null, ex);
            }
        }
Exemple #2
0
        public async Task HelpAsync()
        {
            EmbedBuilder embed = new EmbedBuilder();
            SocketUser   user  = Context.Message.Author;

            if (user.GetAvatarUrl() == null)
            {
                avatar = user.GetDefaultAvatarUrl();
            }
            else
            {
                avatar = user.GetAvatarUrl();
            }

            embed.WithAuthor(user.ToString(), avatar);
            embed.WithTitle(Context.Client.CurrentUser.Username.ToString() + " " + "Command options!");
            embed.WithThumbnailUrl("https://i.imgur.com/dq4HKJr.png");
            embed.WithDescription("**INFO: this bot is in `beta` and some of these features may not have full functionality yet*");
            embed.AddField("`.j` / `.join`", "Joins voice channel that you are connected to!");
            embed.AddField("`.p` / `.play`", "Starts playing in connected voice channel!");
            embed.AddField("`.pp` / `.pause`", "Pause playback!");
            embed.AddField("`.r` / `.resume`", "Resumes playback!");
            embed.AddField("`.ss` / `.skip`", "Stops current song and moves to the next! (requires majority of all users in current voice channel)");
            embed.AddField("`.v` / `.volume`", "Ajusts the players volume!");
            embed.AddField("`.s` / `.stop`", "Stops playback! (removes all songs from queue)");
            embed.AddField("`.l` / `.leave`", "Leave current voice channel!");
            embed.AddField("`.q` / `.queue`", "View all songs in queue!");
            embed.AddField("`.rp` / `.repeat`", "Infinate queue! (at the end of a song, it is re-added to queue at end)");
            embed.AddField("`.list`", "Playlist manager main command!");
            embed.AddField("`.list create <playlist name>`", "Create new playlist!");
            embed.AddField("`.list del <playlist name>`", "Delete playlist and all its contents!");
            embed.AddField("`.list add <playlist name> <track name>`", "Adds a track to the playlist");
            embed.AddField("`.list rem <playlist name> <track name>`", "removes a track from playlist");
            await ReplyAsync(null, false, embed.Build());
        }
        public static string GetAvatar(this SocketUser user)
        {
            var avi = user.GetAvatarUrl(ImageFormat.Auto, 2048);

            if (avi != null)
            {
                return(avi);
            }
            return(user.GetDefaultAvatarUrl());
        }
Exemple #4
0
        public async Task AvatarAsync([Remainder] string arg = "")
        {
            Utilities utilities = new Utilities(Context.Guild);

            SocketUser target        = null;
            var        mentionedUser = Context.Message.MentionedUsers.FirstOrDefault();

            target = mentionedUser ?? Context.User;
            string avatar = target.GetAvatarUrl() ?? target.GetDefaultAvatarUrl();

            await ReplyAsync(Utilities.GetFormattedAlert("AVATAR_GET", target.Username, avatar));
        }
        public CommandUserInfoEmbed(SocketUser user)
        {
            ThumbnailUrl = user.GetAvatarUrl() ?? user.GetDefaultAvatarUrl();
            Color        = global::Discord.Color.Blue;

            Title = user.GetCompleteUserTag();

            AddField("User ID", user.Id);
            AddField("Created at", "// GET WALLET CREATION DATE");
            AddField("Total points", "// GET TOTAL POINTS");

            WithCurrentTimestamp();
        }
Exemple #6
0
        public bool IsUpToDate(SocketUser user)
        {
            if (user is null)
            {
                return(false);
            }

            string avi = user.GetAvatarUrl() ?? user.GetDefaultAvatarUrl();

            bool username = Username == user.Username;
            bool avatar   = AvatarUrl == avi;

            return((username && avatar) == true);
        }
Exemple #7
0
        private EmbedAuthorBuilder AuthorBuilder(User user)
        {
            var author = new EmbedAuthorBuilder
            {
                Name = Username(user)
            };

            SocketUser discordUser = DiscordUser(user);

            if (discordUser != null)
            {
                author.WithIconUrl(discordUser.GetDefaultAvatarUrl());
            }
            return(author);
        }
Exemple #8
0
        public async Task GetAvatar([ManualOptionalParameter("Self")][Name("User")]
                                    SocketUser user = null)
        {
            user ??= Context.User;
            EmbedBuilder builder = new EmbedBuilder
            {
                Title    = $"{user.Username}'s Avatar",
                Color    = Color.Teal,
                ImageUrl = user.GetAvatarUrl(ImageFormat.Auto, 2048) ?? user.GetDefaultAvatarUrl()
            };

            builder.WithCurrentTimestamp();

            await ReplyAsync(embed : builder.Build());
        }
        public string LevelUp(SocketUser contextUser, User user)
        {
            // Getting User's Avatar
            Bitmap bmpAvatar;
            Stream responseStream;

            if (contextUser.GetAvatarUrl() == null)
            {
                System.Net.WebRequest  request  = System.Net.WebRequest.Create(contextUser.GetDefaultAvatarUrl());
                System.Net.WebResponse response = request.GetResponse();
                responseStream = response.GetResponseStream();
            }
            else
            {
                System.Net.WebRequest  request  = System.Net.WebRequest.Create(contextUser.GetAvatarUrl());
                System.Net.WebResponse response = request.GetResponse();
                responseStream = response.GetResponseStream();
            }

            bmpAvatar = new Bitmap(responseStream);

            Bitmap result = new Bitmap(350, 120);

            using (Graphics g = Graphics.FromImage(result))
                using (StringFormat sf = new StringFormat())
                    using (SolidBrush b = new SolidBrush(Color.Black))
                    {
                        g.Clear(m_clrUserInfoBG);

                        sf.LineAlignment = StringAlignment.Center;
                        sf.Alignment     = StringAlignment.Center;

                        g.DrawImage(bmpAvatar, 15, 15, 90, 90);

                        using (Font f = new Font(FontCollection.Families[0], 14, FontStyle.Bold))
                            g.DrawString(Truncate(contextUser.Username.ToUpper(), 11), f, b,
                                         new Rectangle(m_nMargin, m_nAvatar + 2 * m_nMargin, 300, 28));

                        using (Font f = new Font(FontCollection.Families[0], 20, FontStyle.Bold))
                            g.DrawString("Congratulations!", f, b, new Rectangle(110, 15, 250, 35));

                        using (Font f = new Font(FontCollection.Families[0], 14, FontStyle.Regular))
                            g.DrawString("On reaching Level " + user.Level + "", f, b, new Rectangle(111, 48, 250, 25));
                    }

            result.Save(Path.Combine(FilePath, user.UserID + ".png"), ImageFormat.Png);
            return(user.UserID + ".png");
        }
        public override async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
        {
            if (!DiscordSocketClient.Guilds.Any())
            {
                return;
            }

            if (HttpContext.User == null)
            {
                await HttpContext.ChallengeAsync();

                return;
            }

            //Parse the ID to look up socket user
            ModixUser = ModixUser.FromClaimsPrincipal(HttpContext.User);

            var          guildCookie = Request.Cookies["SelectedGuild"];
            ISocketGuild guildToSearch;

            if (!string.IsNullOrWhiteSpace(guildCookie))
            {
                var guildId = ulong.Parse(guildCookie);
                guildToSearch = DiscordSocketClient.GetGuild(guildId);
            }
            else
            {
                guildToSearch = DiscordSocketClient.Guilds.First();
            }

            SocketUser = guildToSearch?.GetUser(ModixUser.UserId);

            if (SocketUser is null)
            {
                await HttpContext.ChallengeAsync();

                return;
            }

            await AssignClaims();

            //Do it again here to assign claims (this is very lazy of us)
            ModixUser = ModixUser.FromClaimsPrincipal(HttpContext.User);
            ModixUser.SelectedGuild = SocketUser.Guild.Id;
            ModixUser.AvatarHash    = SocketUser.GetAvatarUrl() ?? SocketUser.GetDefaultAvatarUrl();

            await next();
        }
Exemple #11
0
        public async Task LevelAsync([Remainder] string arg = "")
        {
            Utilities  utilities     = new Utilities(Context.Guild);
            var        mentionedUser = Context.Message.MentionedUsers.FirstOrDefault();
            SocketUser target        = mentionedUser ?? Context.User;
            var        account       = UserAccounts.GetAccount(target);
            string     avatar        = target.GetAvatarUrl() ?? target.GetDefaultAvatarUrl();

            EmbedBuilder builder = new EmbedBuilder();

            builder
            .WithAuthor(target.Username, avatar)
            .WithDescription(Utilities.GetFormattedAlert("LEVEL_LEVEL", target.Username, account.XP));

            await ReplyAsync("", false, builder.Build());
        }
        public async Task Info(SocketUser user = null)
        {
            if (user == null)
            {
                user = Context.User as SocketUser;
            }
            var builder = new EmbedBuilder()
                          .AddField("User", $"{user.Id}#{user.Discriminator}", true)
                          .AddField("Created at", user.CreatedAt.ToString("dd/MM/yyyy"), true)
                          .AddField("Joined at", (user as SocketGuildUser).JoinedAt.Value.ToString("dd/MM/yyyy"), true)
                          .AddField("Roles", string.Join(", ", (user as SocketGuildUser).Roles.Select(x => x.Mention)), true)
                          .WithThumbnailUrl(user.GetAvatarUrl() ?? user.GetDefaultAvatarUrl())
                          .WithColor(Color.Blue)
                          .WithCurrentTimestamp();
            var embed = builder.Build();

            await ReplyAsync("", false, embed);
        }
        public async Task Info([Summary("Optional user to get info about")] SocketUser mentionedUser = null)
        {
            await Context.Channel.TriggerTypingAsync();

            if (mentionedUser == null)
            {
                mentionedUser = Context.User; //as SocketGuildUser;
            }

            _logger.LogInformation("{username}#{discriminator} executed info ({target}) on {server}/{channel}",
                                   Context.User.Username, Context.User.Discriminator, mentionedUser?.Username ?? "self", Context.Guild?.Name ?? "DM", Context.Channel.Name);

            var server = await _servers.GetServer(Context.Guild);

            var builder = new EmbedBuilder()
                          .WithThumbnailUrl(mentionedUser.GetAvatarUrl() ?? mentionedUser.GetDefaultAvatarUrl())
                          .WithDescription("User information:")
                          .WithColor(ColorHelper.GetColor(server))
                          .AddField("User ID", mentionedUser.Id, true)
                          .AddField("Discriminator", mentionedUser.Discriminator, true)
                          .AddField("Created at", mentionedUser.CreatedAt.ToString("MM/dd/yyyy"), true)
                          .WithCurrentTimestamp();

            var timezone = await _userTimeZones.GetByUserID(mentionedUser.Id);

            if (timezone != null)
            {
                builder.AddField("Timezone", timezone.TimeZone, true);
            }

            SocketGuildUser guildUser = mentionedUser as SocketGuildUser;

            if (guildUser != null)
            {
                builder
                .AddField("Joined at", guildUser.JoinedAt.Value.ToString("MM/dd/yyyy"), true)
                .AddField("Roles", string.Join(" ", guildUser.Roles.Select(x => x.Mention)));
            }

            var embed = builder.Build();

            await ReplyAsync(null, false, embed);
        }
Exemple #14
0
        public async Task ProfileAsync([Remainder] string arg = "")
        {
            Utilities  utilities     = new Utilities(Context.Guild);
            var        mentionedUser = Context.Message.MentionedUsers.FirstOrDefault();
            SocketUser target        = mentionedUser ?? Context.User;

            var    account = UserAccounts.GetAccount(target);
            string avatar  = target.GetAvatarUrl() ?? target.GetDefaultAvatarUrl();

            EmbedBuilder builder = new EmbedBuilder();

            builder
            .WithAuthor(Utilities.GetFormattedAlert("PROFILE_ACCOUNT_NAME", target.Username), avatar)
            .WithThumbnailUrl(avatar)
            .WithDescription(account.Description)
            .AddField(Utilities.GetAlert("PROFILE_ACCOUNT_LEVEL"), $"{account.XP}")
            .WithFooter(Utilities.GetAlert("BOT_NAME_INPROFILE"))
            .WithColor(Color.Magenta);

            await ReplyAsync(" ", false, builder.Build());
        }
Exemple #15
0
        public async Task GetUserAccountTime(SocketUser user = null)
        {
            user ??= this.Context.User;

            var now        = DateTime.UtcNow;
            var created    = user.CreatedAt.UtcDateTime;
            var difference = (now - created);

            var totalMonths = difference.TotalDays / 30.4;
            var years       = totalMonths / 12;
            var months      = totalMonths % 12;
            var days        = difference.TotalDays / 30.4;

            var sb = new StringBuilder();

            if (years > 0)
            {
                sb.Append($"{years:0} ano(s), ");
            }
            if (months > 0)
            {
                sb.Append($"{months:0} mes(es), ");
            }
            if (days > 0)
            {
                sb.Append($"{days:0} dias");
            }

            var e = new EmbedBuilder {
                Title       = sb.ToString(),
                Description = $"Tempo de conta de {user.Mention}"
            };

            e.ImageUrl = user.GetAvatarUrl() ?? user.GetDefaultAvatarUrl();

            await this.ReplyAsync(this.Context.User.Mention, false, e.Build());
        }
 public static string GetAvatarUrl(SocketUser user)
 {
     return user.GetAvatarUrl(size: 1024) ?? user.GetDefaultAvatarUrl();
     // Get the avatar and resize it 1024x1024. if the user has no avatar, get the default discord logo.
 }
        public static string GetAvatar(this SocketUser user)
        {
            var avi = user.GetAvatarUrl(ImageFormat.Auto, 2048);

            return(avi ?? user.GetDefaultAvatarUrl());
        }
Exemple #18
0
 private async Task defaultavatar(params string[] args)
 {
     if (args.Length == 0)
     {
         await ReplyAsync($"Heres your default avatar! {Context.User.GetDefaultAvatarUrl()}");
     }
     if (args.Length == 1)
     {
         if (args[0].Contains("@everyone") | args[0].Contains("@here"))
         {
             await ReplyAsync("Tsk Tsk");
         }
         else
         {
             if (args[0].Contains("@"))
             {
                 ulong      userid = MentionUtils.ParseUser(args[0]);
                 SocketUser user   = Program._client.GetUser(userid);
                 await ReplyAsync($"{Program._client.GetUser(userid)}'s avatar is {user.GetDefaultAvatarUrl()}");
             }
             else
             {
                 await ReplyAsync("You have to mention someone to get their avatar!");
             }
         }
     }
     if (args.Length == 2 | args.Length > 2)
     {
         await ReplyAsync("Mention only one user!");
     }
 }
Exemple #19
0
 public static string GetAvatar(this SocketUser user) => user.GetAvatarUrl() ?? user.GetDefaultAvatarUrl();
Exemple #20
0
 public virtual string GetDefaultAvatarUrl()
 {
     return(_socketUser.GetDefaultAvatarUrl());
 }
Exemple #21
0
        public async Task Profile(SocketUser user = null)
        {
            if (user == null)
            {
                user = Context.User;
            }
            using (var db = Database.Open())
            {
                string path = "";
                using (Context.Channel.EnterTypingState())
                {
                    string name = (user as IGuildUser).Nickname?.Replace("<", "&lt;").Replace(">", "&gt;") ?? user.Username?.Replace("<", "&lt;").Replace(">", "&gt;");
                    if (!db.Users.Any(p => p.Id == user.Id))
                    {
                        await db.Users.AddAsync(new UserEntity { Id = user.Id, Name = $"{user.Username}#{user.Discriminator}" });
                    }

                    var dbUser = db.Features.FirstOrDefault(p => p.UserId == user.Id && p.GuildId == Context.Guild.Id) ?? db.Features.AddAsync(new FeatureEntity {
                        GuildId = Context.Guild.Id, UserId = user.Id, Exp = 0, Goats = 0
                    }).Result.Entity;
                    int    exp             = dbUser.Exp;
                    int    goat            = dbUser.Goats;
                    var    level           = Helper.GetLevel(exp);
                    var    neededExp1      = Helper.GetEXP(level);
                    var    neededExp2      = Helper.GetEXP(level + 1);
                    var    currentExp      = exp - Helper.GetEXP(level);
                    int    totalExp        = exp;
                    int    currentLevelExp = currentExp;
                    int    neededLevelExp  = neededExp2 - neededExp1;
                    double dblPercent      = ((double)currentLevelExp / (double)neededLevelExp) * 100;
                    int    percent         = (int)dblPercent;
                    string progress        = $"{currentLevelExp.ToFormattedString()} | {neededLevelExp.ToFormattedString()}";
                    if (level == Helper.exp.OrderByDescending(p => p.Key).First().Key)
                    {
                        percent  = 100;
                        progress = $"{currentLevelExp.ToFormattedString()}";
                    }
                    var ranks = db.Features.AsQueryable().Where(p => p.GuildId == Context.Guild.Id && p.HasLeft == false).OrderByDescending(p => p.Exp);
                    int rank  = 1;
                    foreach (var Rank in ranks)
                    {
                        if (Rank.UserId == user.Id)
                        {
                            break;
                        }
                        rank++;
                    }
                    string profilePicture = user.GetAvatarUrl(Discord.ImageFormat.Auto, 128);
                    if (profilePicture == null)
                    {
                        profilePicture = user.GetDefaultAvatarUrl();
                    }

                    bool isAnimated = profilePicture.Contains(".gif");
                    using (var image = await _imageService.DrawProfileAsync(new UserProfileDto {
                        Exp = exp.ToFormattedString(), AvatarUrl = profilePicture, Name = name, Goats = goat.ToFormattedString(), Level = level.ToString(), LevelInfo = progress, Percent = percent, Rank = rank.ToString()
                    }, isAnimated))
                    {
                        await Context.Channel.SendFileAsync(image, $"{name}.{(isAnimated ? "gif" : "png")}", $"{Constants.Fire} {_streakService.GetStreakLevel(dbUser)}");
                    }
                    await db.SaveChangesAsync();
                }
            }
        }
Exemple #22
0
 public static string DisplayAvatarURL(this SocketUser user)
 {
     return(user.GetAvatarUrl() ?? user.GetDefaultAvatarUrl());
 }
        public string UserInfo(SocketUser contextUser, User user, Inventory inventory)
        {
            #region Arrays
            int[] arIDs = new int[]
            {
                inventory.ItemID1, inventory.ItemID2,
                inventory.ItemID3, inventory.ItemID4,
                inventory.ItemID5, inventory.ItemID6,
                inventory.ItemID7, inventory.ItemID8
            };

            int[] arAmounts = new int[]
            {
                inventory.Amount1, inventory.Amount2,
                inventory.Amount3, inventory.Amount4,
                inventory.Amount5, inventory.Amount6,
                inventory.Amount7, inventory.Amount8
            };
            #endregion

            // Getting User's Avatar
            Bitmap bmpAvatar;
            Stream responseStream;
            if (contextUser.GetAvatarUrl() == null)
            {
                System.Net.WebRequest  request  = System.Net.WebRequest.Create(contextUser.GetDefaultAvatarUrl());
                System.Net.WebResponse response = request.GetResponse();
                responseStream = response.GetResponseStream();
            }
            else
            {
                System.Net.WebRequest  request  = System.Net.WebRequest.Create(contextUser.GetAvatarUrl());
                System.Net.WebResponse response = request.GetResponse();
                responseStream = response.GetResponseStream();
            }

            bmpAvatar = new Bitmap(responseStream);

            Bitmap result = new Bitmap(UserInfoDefault);

            using (Graphics g = Graphics.FromImage(result))
                using (StringFormat sf = new StringFormat())
                    using (SolidBrush b = new SolidBrush(Color.Black))
                    {
                        sf.LineAlignment = StringAlignment.Center;
                        sf.Alignment     = StringAlignment.Center;

                        List <Bitmap> arItems           = CreateItemImages(arIDs, arAmounts);
                        Bitmap        bmpInventoryItems = ItemsGrid(arItems, 2, 4);
                        g.DrawImage(bmpAvatar, m_nMargin, m_nMargin, m_nAvatar, m_nAvatar);
                        g.DrawImage(bmpInventoryItems, m_nAvatar + 2 * m_nMargin + 10, m_nMargin);

                        #region Level
                        using (SolidBrush bBg = new SolidBrush(m_clrUserInfoBG))
                            g.FillPie(bBg, new Rectangle(m_nAvatar, m_nAvatar, 50, 50), 180, 90);

                        using (Font f = new Font(FontCollection.Families[0], 12, FontStyle.Bold))
                            g.DrawString(user.Level.ToString(), f, b, new Rectangle(148, 159, 40, 18), sf);
                        #endregion

                        #region Username
                        using (Font f = new Font(FontCollection.Families[0], 14, FontStyle.Bold))
                            g.DrawString(Truncate(contextUser.Username.ToUpper(), 11), f, b,
                                         new Rectangle(m_nMargin, m_nAvatar + 2 * m_nMargin, m_nAvatar + 3 * m_nMargin, 28));
                        #endregion

                        #region XPBar
                        if (user.Level >= Data.Singleton.Levels.Count)
                        {
                            using (SolidBrush bRectFg = new SolidBrush(Color.FromArgb(90, 130, 190)))
                                using (Font fXP = new Font(FontCollection.Families[0], 8, FontStyle.Regular))
                                {
                                    g.FillRectangle(bRectFg, new Rectangle(m_nMargin, m_nMargin + m_nAvatar + 5, m_nAvatar, 20));
                                    g.DrawString("MAX", fXP, b, new RectangleF(m_nMargin, 179, m_nAvatar, 20), sf);
                                }
                        }
                        else
                        {
                            using (SolidBrush bRectFg = new SolidBrush(Color.FromArgb(90, 130, 190)))
                                using (SolidBrush bRectBg = new SolidBrush(Color.FromArgb(150, 180, 240)))
                                    using (SolidBrush bXP = new SolidBrush(Color.Black))
                                        using (Font fXP = new Font(FontCollection.Families[0], 8, FontStyle.Regular))
                                        {
                                            g.FillRectangle(bRectBg, new Rectangle(m_nMargin, m_nMargin + m_nAvatar + 5, m_nAvatar, 20));

                                            //Calculating XP Progress
                                            int nOldLvlGap = 0;
                                            if (user.Level != 1)
                                            {
                                                nOldLvlGap = Data.Singleton.Levels[user.Level - 1].XPGap;
                                            }

                                            int   nLvlGap = Data.Singleton.Levels[user.Level].XPGap;
                                            float fWidth  = (user.XP - nOldLvlGap) / ((nLvlGap - nOldLvlGap) / 100);
                                            fWidth *= 1.5f;

                                            g.FillRectangle(bRectFg, new RectangleF(m_nMargin, m_nMargin + m_nAvatar + 5, fWidth, 20));

                                            g.DrawString(user.XP.ToString() + " / " + Data.Singleton.Levels[user.Level].XPGap.ToString(),
                                                         fXP, b, new RectangleF(m_nMargin, 179, m_nAvatar, 20), sf);
                                        }
                        }
                        #endregion

                        #region Stats
                        using (Font f = new Font(FontCollection.Families[0], 12, FontStyle.Regular))
                        {
                            #region Money
                            string sMoney = String.Empty;
                            if (user.Money >= 100000)
                            {
                                sMoney = "+99999";
                            }
                            else
                            {
                                sMoney = user.Money.ToString();
                            }
                            g.DrawString(sMoney, f, b, new RectangleF(20, 270, 75, 17.5f), sf);
                            #endregion

                            #region Messages
                            string sMessages = String.Empty;
                            if (user.Messages >= 100000)
                            {
                                sMessages = "+99999";
                            }
                            else
                            {
                                sMessages = user.Messages.ToString();
                            }
                            g.DrawString(sMessages, f, b, new RectangleF(100, 270, 75, 17.5f), sf);
                            #endregion

                            #region Quests
                            string sQuests = String.Empty;
                            if (user.Quests >= 100000)
                            {
                                sQuests = "+99999";
                            }
                            else
                            {
                                sQuests = user.Quests.ToString();
                            }
                            g.DrawString(sQuests, f, b, new RectangleF(20, 335, 75, 17.5f), sf);
                            #endregion

                            #region Warnings
                            g.DrawString(user.Warnings.ToString(), f, b, new RectangleF(100, 335, 75, 17.5f), sf);
                            #endregion

                            #region JoinedDate
                            if (user.JoinedDate == String.Empty)
                            {
                                user.JoinedDate = DateTime.Now.ToString("d. MM. yyyy");
                            }

                            g.DrawString(user.JoinedDate, f, b, new RectangleF(40, 390, 160, 17.5f));
                            #endregion
                        }
                        #endregion
                    }

            result.Save(Path.Combine(FilePath, user.UserID + ".png"), ImageFormat.Png);
            return(user.UserID + ".png");
        }
Exemple #24
0
 public static string GetAvatarUrl(SocketUser user, ushort size = 1024)
 {
     // Get user avatar and resize it. If the user has no avatar, get the default Discord avatar.
     return(user.GetAvatarUrl(size: size) ?? user.GetDefaultAvatarUrl());
 }
Exemple #25
0
 private async Task defaultavatar(params string[] args)
 {
     if (args.Length == 0)
     {
         await ReplyAsync($"Heres your default avatar! {Context.User.GetDefaultAvatarUrl()}");
     }
     if (args.Length == 1) //Makes sure that there isn't an @everyone or a @here to prevent a mass-ping through the bot.
     {
         if (args[0].Contains("@everyone") | args[0].Contains("@here"))
         {
             await ReplyAsync("Tsk Tsk");
         }
         else
         {
             if (args[0].Contains("@")) //Checks to see if there was any ping by looking to see if there was an @
             {
                 ulong      userid = MentionUtils.ParseUser(args[0]);
                 SocketUser user   = Program._client.GetUser(userid);
                 await ReplyAsync($"{Program._client.GetUser(userid).Username}'s avatar is {user.GetDefaultAvatarUrl()}");
             }
             else
             {
                 await ReplyAsync("You have to mention someone to get their avatar!");
             }
         }
     }
     if (args.Length == 2 | args.Length > 2)
     {
         await ReplyAsync("Mention only one user!");
     }
 }
Exemple #26
0
 private async Task avatar(params string[] args)
 {
     if (args.Length == 0)
     {
         string avatarurl = Context.User.GetAvatarUrl();
         await ReplyAsync($"Heres your avatar! {avatarurl}");
     }
     if (args.Length == 1)
     {
         if (args[0].Contains("@everyone") | args[0].Contains("@here")) //Makes sure that there isn't an @everyone or a @here to prevent a mass-ping through the bot.
         {
             await ReplyAsync("Tsk Tsk");
         }
         else
         {
             if (args[0].Contains("@"))                               //Checks to see if there was any ping by looking to see if there was an @
             {
                 ulong      userid = MentionUtils.ParseUser(args[0]); //Parses the mention to get a userid
                 SocketUser user   = Program._client.GetUser(userid); //Defines a SocketUser based on that userid
                 if (user.GetAvatarUrl() == null)                     //If the user doesn't have an avatar
                 {
                     await ReplyAsync($"{Program._client.GetUser(userid).Username}'s avatar is {user.GetDefaultAvatarUrl()}");
                 }
                 else //If the user *does* have an avatar
                 {
                     await ReplyAsync($"{Program._client.GetUser(userid).Username}'s avatar is {user.GetAvatarUrl()}");
                 }
             }
             else //If there was *not* an @
             {
                 await ReplyAsync("You have to mention someone to get their avatar!");
             }
         }
     }
     if (args.Length == 2 | args.Length > 2)
     {
         await ReplyAsync("Mention only one user!");
     }
 }