So I am trying to make it so players cant move this gold nugget put into there enderchest ever as it is gonna be used later in the plugin. I set it up with multiple events involving inventory movement and cancelling them but i can still move it all around. Code:java package me.online.Bank; import java.util.ArrayList; import org.bukkit.ChatColor;import org.bukkit.Material;import org.bukkit.event.Event.Result;import org.bukkit.event.EventHandler;import org.bukkit.event.inventory.InventoryClickEvent;import org.bukkit.event.inventory.InventoryDragEvent;import org.bukkit.inventory.ItemStack; public class Events extends Main{ public void onEnable() { getServer().getPluginManager().registerEvents(this, this); } @EventHandler public void onInventoryDrag(InventoryDragEvent event) { ItemStack item = new ItemStack(Material.GOLD_NUGGET,1 ); ArrayList<String> lore; lore = new ArrayList<String>(); lore.add(ChatColor.GOLD + "Right-Click" + ChatColor.GREEN + " to make a Check"); lore.add(ChatColor.GOLD + "Left-Click" + ChatColor.GREEN + " to withdrawal nuggets"); lore.add(ChatColor.GREEN + "Put Gold Nuggets into Bank to Deposit"); item.getItemMeta().setLore(lore); if(event.getCursor().getItemMeta().getLore().equals(lore)){ event.setResult(Result.DENY); event.setCancelled(true); } } @EventHandler public void onMove(InventoryClickEvent event){ ItemStack item = new ItemStack(Material.GOLD_NUGGET,1 ); ArrayList<String> lore; lore = new ArrayList<String>(); lore.add(ChatColor.GOLD + "Right-Click" + ChatColor.GREEN + " to make a Check"); lore.add(ChatColor.GOLD + "Left-Click" + ChatColor.GREEN + " to withdrawal nuggets"); lore.add(ChatColor.GREEN + "Put Gold Nuggets into Bank to Deposit"); item.getItemMeta().setLore(lore); if(event.getCursor().getItemMeta().getLore().equals(lore) || event.getCurrentItem().getItemMeta().getLore().equals(lore)){ event.setCancelled(true); event.setResult(Result.DENY); } }}
Onlineids Try InventoryClickEvent, might be a better event, also, cancel shift clicking otherwise you can bypass that.
Inventory click event is there (Scroll down) the problem is they dont work i can still move the nugget anywhere around the echest
Code:java if(e.getCurrentItem().getItemMeta().getDisplayName().contains("Golden Nugget")){e.setCancelled(true);} Put that into an inventory click event and walaa? Edit: actually I think that lets them pick them up and place still, I had to add Code:java e.getWhoClicked().closeInventory();
Problem is gold nugget is a common item and i have it getting the lore so they can move other gold nuggets
Give the nugget a different name? E.g. call it Shop and change my code to Code: if(e.getCurrentItem().getItemMeta().getDisplayName().contains("Shop")){
Tried that didnt work Code:java package me.online.Bank; import java.util.ArrayList; import org.bukkit.ChatColor;import org.bukkit.Material;import org.bukkit.event.Event.Result;import org.bukkit.event.EventHandler;import org.bukkit.event.inventory.InventoryClickEvent;import org.bukkit.event.inventory.InventoryDragEvent;import org.bukkit.inventory.ItemStack; public class Events extends Main{ public void onEnable() { getServer().getPluginManager().registerEvents(this, this); } @EventHandler public void onInventoryDrag(InventoryDragEvent event) { ItemStack item = new ItemStack(Material.GOLD_NUGGET,1 ); ArrayList<String> lore; lore = new ArrayList<String>(); lore.add(ChatColor.GOLD + "Right-Click" + ChatColor.GREEN + " to make a Check"); lore.add(ChatColor.GOLD + "Left-Click" + ChatColor.GREEN + " to withdrawal nuggets"); lore.add(ChatColor.GREEN + "Put Gold Nuggets into Bank to Deposit"); item.getItemMeta().setLore(lore); if(event.getCursor().getItemMeta().getDisplayName().contains("nuggets")){ event.setResult(Result.DENY); event.setCancelled(true); } } @EventHandler public void onMove(InventoryClickEvent event){ ItemStack item = new ItemStack(Material.GOLD_NUGGET,1 ); ArrayList<String> lore; lore = new ArrayList<String>(); lore.add(ChatColor.GOLD + "Right-Click Me" + ChatColor.GREEN + " to make a Check"); lore.add(ChatColor.GOLD + "Left-Click Me" + ChatColor.GREEN + " to withdrawal Gold Nuggets"); lore.add(ChatColor.GREEN + "Put Gold Nuggets into Bank to Deposit"); item.getItemMeta().setLore(lore); if(event.getCursor().getItemMeta().getDisplayName().contains("nuggets") || event.getCurrentItem().getItemMeta().getDisplayName().contains("nuggets")){ event.setCancelled(true); event.setResult(Result.DENY); } }}