Exemplo n.º 1
0
        public RPGVenda(ulong id, int preco, int quantidade, string nome)
        {
            if (ModuloBanco.TryGetVenda(id, out var vendas))
            {
                this.Slot = vendas.Count;
            }
            else
            {
                this.Slot = 0;
            }
            this.JogadorId             = id;
            this.Preco                 = preco;
            this.Quantidade            = quantidade;
            this.ItemNome              = nome;
            this.QuantidadeParaColetar = 0;

            ModuloBanco.ColecaoVenda.InsertOne(this);
        }
Exemplo n.º 2
0
        public async Task ComandoVenderAb(CommandContext ctx, int quantidade = -1, int preco = -1, [RemainingText] string itemNome = "")
        {
            await ctx.TriggerTypingAsync();

            if (quantidade < 1)
            {
                await ctx.ExecutarComandoAsync("ajuda vender");

                return;
            }

            if (preco < 1)
            {
                await ctx.ExecutarComandoAsync("ajuda vender");

                return;
            }

            if (string.IsNullOrEmpty(itemNome))
            {
                await ctx.ExecutarComandoAsync("ajuda vender");

                return;
            }

            itemNome = itemNome.ToLower();
            if (itemNome == "zayn")
            {
                await ctx.RespondAsync($"Não é possível vender moeda por moeda {ctx.User.Mention}!");

                return;
            }

            var jogador = ModuloBanco.GetJogador(ctx);

            if (jogador.Mochila.TryGetValue(itemNome, out var quantidadeMochila))
            {
                if (quantidade > quantidadeMochila)
                {
                    await ctx.RespondAsync($"{ctx.User.Mention} você somente tem {quantidadeMochila} [{itemNome.FirstUpper()}] na mochila!".Bold());

                    return;
                }
                ModuloBanco.TryGetVenda(ctx.User.Id, out var vendas);
                if (vendas.Count >= jogador.SlotsVenda)
                {
                    await ctx.RespondAsync($"Você já anúnciou, remova a venda anterior para anúnciar novamente {ctx.User.Mention}!");

                    return;
                }

                jogador.Mochila.RemoverItem(itemNome, quantidade);
                new RPGVenda(ctx.User.Id, preco, quantidade, itemNome);
                jogador.Salvar();

                await ctx.RespondAsync($"{ctx.User.Mention} você anunciou no mercado {quantidade} [{itemNome.FirstUpper()}] por {preco} Zayn cada únidade! Aguarde algum jogador comprar o seu produto.".Bold());
            }
            else
            {
                await ctx.RespondAsync($"{ctx.User.Mention} item [{itemNome.FirstUpper()}] não foi encontrado na mochila!".Bold());
            }
        }
Exemplo n.º 3
0
        public async Task ComandoComprarAb(CommandContext ctx, int quantidade = -1, [RemainingText] string itemId = "")
        {
            await ctx.TriggerTypingAsync();

            if (quantidade <= 0)
            {
                await ctx.ExecutarComandoAsync("ajuda comprar");

                return;
            }
            if (string.IsNullOrEmpty(itemId))
            {
                await ctx.ExecutarComandoAsync("ajuda comprar");

                return;
            }

            var array = itemId.Split('#');

            ulong.TryParse(array[0], out var userid);
            if (userid == ctx.User.Id)
            {
                await ctx.RespondAsync($"Não pode comprar do seu proprio anúncio {ctx.User.Mention}!".Bold());

                return;
            }
            if (array.Length == 1)
            {
                await ctx.ExecutarComandoAsync("ajuda comprar");

                return;
            }
            int.TryParse(array[1], out var userslot);
            if (ModuloBanco.TryGetVenda(userid, userslot, out var venda))
            {
                var jogador = ModuloBanco.GetJogador(ctx);
                if (quantidade > venda.Quantidade)
                {
                    await ctx.RespondAsync($"Não tem quantidade o suficiente a venda para comprar essa quantidade {ctx.User.Mention}!".Bold());

                    return;
                }
                if (jogador.Mochila.RemoverItem("zayn", quantidade * venda.Preco))
                {
                    jogador.Mochila.AdicionarItem(venda.ItemNome, quantidade);
                    venda.Quantidade            -= quantidade;
                    venda.QuantidadeParaColetar += quantidade * venda.Preco;
                    venda.Salvar();
                    jogador.Salvar();
                    await ctx.RespondAsync($"{ctx.User.Mention} você acabou de comprar {quantidade} [{venda.ItemNome.FirstUpper()}]!".Bold());
                }
                else
                {
                    await ctx.RespondAsync($"{ctx.User.Mention} você não tem [Zayn] o suficiente para comprar essa quantidade!".Bold());
                }
            }
            else
            {
                await ctx.RespondAsync($"Venda não encontrada {ctx.User.Mention}!".Bold());
            }
        }