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