Ir para conteúdo
  • 0

[Dúvida] Por que tá funcionando no inventário do Player?


Lelfe

Pergunta

por que caralhos essa merda quando eu to com menu aberto, se eu clicar no mesmo slot (menu gui e inventario do player) se eu clicar no slot que ta no inv do player, acontece o que era pra acontecer somente clicando no slot do menu gui, acho que deu pra entender :/

 

 

inv:

	public static Inventory resgatar(Inventory player){
		Inventory inv = Bukkit.createInventory(null, 9*1, "LUCAS");
		
		ItemStack voltar = new ItemStack(Material.ARROW);
		ItemMeta vm = voltar.getItemMeta();
		vm.setDisplayName("§aVoltar");		voltar.setItemMeta(vm);
		

		inv.setItem(0, voltar);
		
		return inv;
	}

inventoryclickevent:

		//ja tentei tambem por e.getinv.getname.equals("LUCAS")
if(e.getInventory().getType() == InventoryType.CHEST && e.getInventory().getName().equalsIgnoreCase("LUCAS")){
			
                        //tambem tentei assim: if (e.getslot == 0){
			if(e.getSlot() == 0 && e.getInventory().getName().equalsIgnoreCase("LUCAS")){
				e.setCancelled(true);
				p.openInventory(Class.open(p));
				
			}

			
		}

basicamente::::::::::::::::::::::::::::::::::: quando clico no slot (do inventario do player) acontece o que era pra fazer clicando no slot do menu gui(inv que criei)

 

mas funciona os 2 e nao quero isso

 

 

se nao entendeu comenta que eu tento explicar mais direitinho '-'

Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados


 

@EventHandler

public void on(InventoryClickEvent e) {

e.getClickedInventory(); //INVENTARIO CLICADO

e.getWhoClicked(); //PLAYER

if (e.getCurrentItem() == null) {

return;

}

if (e.getClickedInventory().getName().equals("§bMENU")) {

Player p = (Player) e.getWhoClicked();

e.setCancelled(true);

}

}

Link para o comentário
Compartilhar em outros sites

	
	@EventHandler
	public void on(InventoryClickEvent e) {
		e.getClickedInventory(); //INVENTARIO CLICADO
		e.getWhoClicked(); //PLAYER
		if (e.getCurrentItem() == null) {
			return;
		}
		if (e.getClickedInventory().getName().equals("§bMENU")) {
			Player p = (Player) e.getWhoClicked();
			e.setCancelled(true);
		}
	}

continua funcionndo se clicar no slot do inv do player :/

 

code:

	@EventHandler
	public void aoClicar(InventoryClickEvent e){
		if (!(e.getWhoClicked() instanceof Player)){
			return;
		}
		
		e.getClickedInventory(); //inv clicado
		e.getWhoClicked(); //PLAYER
		
		Player p = (Player) e.getWhoClicked();
		
		
		if(e.getCurrentItem() == null) return;
		if(e.getCurrentItem().getType() == Material.AIR) return;
		
		if(e.getClickedInventory().getName().equals("Lucas")){
			if(e.getSlot() == 13){
				e.setCancelled(true);
			}
Link para o comentário
Compartilhar em outros sites

 

continua funcionndo se clicar no slot do inv do player :/

 

code:

	@EventHandler
	public void aoClicar(InventoryClickEvent e){
		if (!(e.getWhoClicked() instanceof Player)){
			return;
		}
		
		e.getClickedInventory(); //inv clicado
		e.getWhoClicked(); //PLAYER
		
		Player p = (Player) e.getWhoClicked();
		
		
		if(e.getCurrentItem() == null) return;
		if(e.getCurrentItem().getType() == Material.AIR) return;
		
		if(e.getClickedInventory().getName().equals("Lucas")){
			if(e.getSlot() == 13){
				e.setCancelled(true);
			}

voce pode adicionar isso! pra ele retornar se o inventario clicado for o do player

@EventHandler
	public void on(InventoryClickEvent e) {
		if (!(e.getWhoClicked() instanceof Player)) return;
		if (e.getClickedInventory() == e.getWhoClicked().getInventory()) return;
		if (e.getCurrentItem() == null) return;
		
		if (e.getClickedInventory().getName().equals("NOME")) {
			if (e.getSlot() == 12) {
				e.setCancelled(true);
			}
		}
	}

Link para o comentário
Compartilhar em outros sites

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