R.A Postado Agosto 11, 2020 Denunciar Compartilhar Postado Agosto 11, 2020 Eae pessoal, bom estou com um problema ao remover item do inventário do jogador. Preciso remover certa quantidade já definida de um certo item no inventário do jogador. Este é o meu código. Ele está funcionando QUASE perfeitamente, porém vamos supor que minha quantia pré-definida é "12", no caso da imagem abaixo eu tenho 14 ao em vez de ele remover 12 ele remove o 2 e deixa o 12. Alguém pode me ajudar? Código: ArrayList<Integer> slot = new ArrayList<Integer>(); int quantidade = 0; for (int i = 0; i < p.getInventory().getSize(); i++) { ItemStack item = p.getInventory().getItem(i); if (item != null && item.getItemMeta() != null && item.getItemMeta().getDisplayName() != null && item.getItemMeta().getLore() != null) { if (item.getItemMeta().getDisplayName().equals(pedra.getItemMeta().getDisplayName()) && item.getType() == Material.INK_SACK && item.getItemMeta().getLore().equals(pedra.getItemMeta().getLore())) { quantidade += item.getAmount(); slot.add(i); } } } if (quantidade >= quantia) { for (Integer item : slot) { int quantiaitem = p.getInventory().getItem(item).getAmount(); if (quantiaitem > quantia) { p.getInventory().getItem(item).setAmount(quantiaitem - quantia); p.updateInventory(); p.getInventory().addItem(premio); return; }else { p.getInventory().setItem(item, new ItemStack(Material.AIR)); p.updateInventory(); p.getInventory().addItem(premio); return; } } }else { p.sendMessage("§cVocê precisa de §9" + quantia + " §9Pedras da Sabedoria §cpara comprar isto."); } Link para o comentário Compartilhar em outros sites More sharing options...
YTNexus Postado Agosto 11, 2020 Denunciar Compartilhar Postado Agosto 11, 2020 Você quer remover o 12 e o 2? Se sim, recomendo que você verifique cada slot do jogador... e se for o item desejado, setar este item como ar... Link para o comentário Compartilhar em outros sites More sharing options...
R.A Postado Agosto 11, 2020 Autor Denunciar Compartilhar Postado Agosto 11, 2020 2 horas atrás, NSG disse: Você quer remover o 12 e o 2? Se sim, recomendo que você verifique cada slot do jogador... e se for o item desejado, setar este item como ar... Se no inventário do player tiver + que 12 itens, ele só irá remover 12. Se for = 12 ele vai setar ar. Link para o comentário Compartilhar em outros sites More sharing options...
YTNexus Postado Agosto 11, 2020 Denunciar Compartilhar Postado Agosto 11, 2020 Se por exemplo você tem 12 num slot e 2 no outro E você quer remover apenas 12 ou seja você verificar se o slot tem 12 recomendo criar uma variavel, e quando ele retirar 12 vc colocar um return, se não vc coloca um else que ele verificar no próximo, caso queira ajude chame no (! NSG_#9999) Link para o comentário Compartilhar em outros sites More sharing options...
TheGeneX Postado Agosto 19, 2020 Denunciar Compartilhar Postado Agosto 19, 2020 Sua dúvida foi marcada como resolvida pela nossa equipe. Caso sua dúvida não tenha sido sanada, crie outro tópico. OBS: Essa mensagem é automática. Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados