Example #1
0
        public async Task Give([Summary("The user to give XP")] IGuildUser user, [Summary("The amount of XP you want to give the user")] int xp)
        {
            try {
                if (user.Id == Context.User.Id)
                {
                    await ReplyAsync("Nice try, you can't give yourself XP!");

                    return;
                }
                if (xp == 0)
                {
                    await ReplyAsync("Wow man. How generous. :+1:");

                    return;
                }
                IGuildUser guilduser = Context.User as IGuildUser;
                if (xp < 1 && !guilduser.GuildPermissions.Administrator)
                {
                    await ReplyAsync("Nice try, you can't drain XP from Users!");

                    return;
                }
                int ownXp = xp / Information.OwnXp;

                XpManager.UserXp userxp = XpManager.Get(Context.User);

                if (userxp.XpReserve >= xp)
                {
                    int lvlBefore = XpManager.Get(user).Level;
                    XpManager.Update(user, xp, 0);
                    int lvlAfter = XpManager.Get(user).Level;

                    //Drain XP from Sender, minus own XP (you get 1/100 from donations)
                    XpManager.Update(Context.User, ownXp, -xp);

                    await ReplyAsync($"{Helper.GetName(Context.User)} donated {Helper.GetName(user)} {xp} XP! :money_with_wings:");

                    if (lvlAfter > lvlBefore)
                    {
                        await ReplyAsync($":tada: {Helper.GetName(user)} was promoted to level {lvlAfter}! :tada:");
                    }
                }
                else
                {
                    await ReplyAsync($"You can't give {xp} XP to {Helper.GetName(user)}, you only have {userxp.XpReserve} XP!");
                }
            } catch {
                await ReplyAsync("Whoops, I couldn't give XP to that user!");
            }
        }
Example #2
0
        public async Task Info([Summary("The user you want to display XP")] IGuildUser user)
        {
            try {
                XpManager.UserXp xp = XpManager.Get(user);

                EmbedBuilder builder = new EmbedBuilder {
                    Author = new EmbedAuthorBuilder {
                        Name    = user.IsBot ? $"{Helper.GetName(user)}'s XP (Bot)" : $"{Helper.GetName(user)}'s XP",
                        IconUrl = user.GetAvatarUrl()
                    },
                    Color = new Color(50, 125, 0)
                };
                builder.AddField("XP", xp.Xp);
                builder.AddField("Reserve XP", xp.XpReserve);
                builder.AddField("Level", xp.Level);
                builder.AddField("Next Level", XpManager.GetXp(xp.Level + 1) - xp.Xp);

                await ReplyAsync("", embed : builder.Build());
            } catch {
                await ReplyAsync($"I couldn't look up any Info about {Helper.GetName(user)}, sorry..");
            }
        }
Example #3
0
        public async Task Info()
        {
            try {
                XpManager.UserXp xp = XpManager.Get(Context.User);

                EmbedBuilder builder = new EmbedBuilder {
                    Author = new EmbedAuthorBuilder {
                        Name    = Context.User.IsBot ? $"{Helper.GetName(Context.User)}'s XP (Bot)" : $"{Helper.GetName(Context.User)}'s XP",
                        IconUrl = Context.User.GetAvatarUrl()
                    },
                    Color = new Color(50, 125, 0)
                };
                builder.AddField("XP", xp.Xp);
                builder.AddField("Reserve XP", xp.XpReserve);
                builder.AddField("Level", xp.Level);
                builder.AddField("Next Level", XpManager.GetXp(xp.Level + 1) - xp.Xp);

                await ReplyAsync("", embed : builder.Build());
            } catch {
                await ReplyAsync("I couldn't look up any Info about you, sorry..");
            }
        }