Ir para conteúdo

RemoverItem


R.A

Posts Recomendados

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?

Screenshot_37.png

 

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

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

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

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...