Ir para conteúdo
  • 0

ClickInventory


Skript0

Pergunta

Alguém consegue achar o erro de por que não cancela o evento de clicar no inventario:

package island.ln.eventos;

import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.entity.Villager;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.event.player.PlayerInteractEntityEvent;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;

import island.ln.Main;
import island.ln.reflections.InventarioAPI;

public class Villagert implements Listener {
	@EventHandler
	public void interagir(PlayerInteractEntityEvent e) {
		Player p = e.getPlayer();
		if(e.getRightClicked() instanceof Villager) {
			Villager villager = (Villager)e.getRightClicked();
				if(villager.getName().equalsIgnoreCase(Main.getInstance().getConfig().getString("NomeNpc").replaceAll("&", "§"))) {
					e.setCancelled(true);
					Inventory npc = Bukkit.createInventory(null, 6*9, Main.getInstance().getConfig().getString("NomeNpc").replaceAll("&", "§"));
					p.openInventory(npc);
					ItemStack i = new ItemStack(Material.BED);
					ItemMeta imeta = i.getItemMeta();
					imeta.setDisplayName("§ateste");
					
					npc.setItem(InventarioAPI.getslot(npc), i);
					
					
				}
				
		}
		
		
	}

	@EventHandler
	public void onDano(EntityDamageByEntityEvent e) {
		if(e.getEntity() instanceof Villager) {
			Villager villager = (Villager)e.getEntity();
			if(villager.getName().equalsIgnoreCase(Main.getInstance().getConfig().getString("NomeNpc").replaceAll("&", "§"))) {
				if (e.getDamager() instanceof Player) {
					Player p = (Player)e.getDamager();
					if(p.isOp() && p.getItemInHand().getType() == Material.BLAZE_ROD) {
						villager.setHealth(0.0);
					} else {
						e.setCancelled(true);
					}
				}else {
					e.setCancelled(true);
				}
			}
		}
		}
		
		public void clicarinv(InventoryClickEvent e) {
			if(e.getInventory().getName().equalsIgnoreCase(Main.getInstance().getConfig().getString("NomeNpc").replaceAll("&", "§"))) {
				Player p = (Player) e.getWhoClicked();
				if (e.getCurrentItem() == null || e.getCurrentItem().getType().equals(Material.AIR)) {
					return;
			}
			e.setCancelled(true);
		
	}
	
		}

}

No caso e um villager que abre um menu normalzão mesmo para testes.

porém não to conseguindo bloquear que jogador click no inventario

vlwww

Editado por Skript0
Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

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