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); }
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()); } }
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()); } }