public async Task ShowGreetings(int page = 0)
        {
            if (page != 0)
            {
                page -= 1;
            }

            List <GreetMessages> GMs;

            using (var uow = DBHandler.UnitOfWork())
            {
                GMs = uow.GreetMessages.FetchGreetMessages(Context.Guild.Id, page);
            }

            if (!GMs.Any())
            {
                await Context.Channel.SendErrorAsync($"No GMs found for page {page + 1}");

                return;
            }

            EmbedBuilder embed = new EmbedBuilder().WithOkColour().WithTitle($"GMs").WithFooter(efb => efb.WithText($"Page: {page + 1}"));

            foreach (GreetMessages gm in GMs)
            {
                EmbedFieldBuilder efb = new EmbedFieldBuilder().WithName(gm.ID.ToString()).WithValue(gm.Message);

                embed.AddField(efb);
            }

            await Context.Channel.BlankEmbedAsync(embed);
        }
Example #2
0
        public async Task GrantItem(IUser user, string itemname, int amount = 1)
        {
            Item item = Item.LoadItem(itemname);

            if (item == null)
            {
                await ReplyAsync("Item Not Found");
            }
            else if (await HasFuel(item.tier, 2))
            {
                Player player = Player.Load(user.Id, Player.IgnoreException.All);
                string result = $"Could not collect {item.name}";
                if (player.CollectItem(item, amount))
                {
                    result = $"Collected {item.name}";
                }
                IUserMessage reply = await ReplyAsync(user.Mention + " " + result);

                player.ui = new UI(reply, new List <string> {
                    EUI.xp, EUI.inv, EUI.stats
                });
                player.SaveFileMongo();
                await DUtils.DeleteContextMessageAsync(Context);

                GMs.Find(GM.FindWithID(Context.User.Id)).limits[2] -= item.tier;
                SaveGMFile();
            }
            await DUtils.DeleteContextMessageAsync(Context);
        }
Example #3
0
        public async Task GrantTempSchem(IUser user, [Remainder] string name)
        {
            if (await IsGMLevel(3))
            {
                Item item = Item.NewTemporarySchematic(name);
                if (item == null)
                {
                    await ReplyAsync("Item Not Found");
                }
                else if (HasFuel(item.tier, 2).Result)
                {
                    Player player = Player.Load(user.Id);
                    string result = $"Could not collect {item.name}";
                    if (player.CollectItem(item, 1))
                    {
                        result = $"Collected {item.name}";
                    }
                    IUserMessage reply = await ReplyAsync(user.Mention + " " + result);

                    player.ui = new UI(reply, new List <string> {
                        EUI.xp, EUI.inv, EUI.stats
                    });
                    player.SaveFileMongo();
                    await DUtils.DeleteContextMessageAsync(Context);

                    GMs.Find(GM.FindWithID(Context.User.Id)).limits[2] -= item.tier;
                    SaveGMFile();
                }
                await DUtils.DeleteContextMessageAsync(Context);
            }
        }
Example #4
0
        public async Task GrantXP(IUser user, long xp)
        {
            if (HasFuel(xp, 1).Result)
            {
                Player player = Player.Load(user.Id, Player.IgnoreException.All);
                player.XpGain(xp);
                IUserMessage reply = await ReplyAsync(user.Mention + " gained " + xp + " XP points.");

                player.ui = new UI(reply, new List <string> {
                    EUI.xp, EUI.inv, EUI.stats
                });
                player.SaveFileMongo();
                await DUtils.DeleteContextMessageAsync(Context);

                GMs.Find(GM.FindWithID(Context.User.Id)).limits[1] -= xp;
                SaveGMFile();
            }
        }
Example #5
0
        public async Task GrantCoins(IUser user, long amount)
        {
            if (HasFuel(amount, 0).Result)
            {
                Player player = Player.Load(user.Id, Player.IgnoreException.All);
                player.KCoins += amount;
                player.SaveFileMongo();
                IUserMessage reply = await ReplyAsync(user.Mention + " gained " + amount + " Kutsyei coins.");

                player.ui = new UI(reply, new List <string> {
                    EUI.xp, EUI.inv, EUI.stats
                });
                player.SaveFileMongo();
                await DUtils.DeleteContextMessageAsync(Context);

                GMs.Find(GM.FindWithID(Context.User.Id)).limits[0] -= amount;
                SaveGMFile();
            }
            await DUtils.DeleteContextMessageAsync(Context);
        }