Hello, I've been making an Inventory plugin, and as some of you will guess, is a modified version from pogostick's tutorial. I'm having 3 issues: 1. Players cannot blocks around in their regular inventorys. 2. I have the lore for all set as: Code:java im.setLore(Arrays.asList(ChatColor.RED + "Opens the " + ChatColor.YELLOW + name.toLowerCase() + ChatColor.RED + " menu!")); This needs to be per-item. 3. The blocks are defined as WOOL blocks, I need there to be materials and potion stacks. Code: Code:java public class Menu implements Listener { private Inventory em; private ItemStack e, a, c; public Menu(Plugin p) { em = Bukkit.getServer().createInventory(null, 9, "Oracle Menu"); e = createItem(DyeColor.GREEN, ChatColor.DARK_RED + "Effects"); a = createItem(DyeColor.YELLOW, ChatColor.YELLOW + "Addons"); c = createItem(DyeColor.RED, ChatColor.GRAY + "Close"); em.setItem(2, e); em.setItem(4, c); em.setItem(6, a); Bukkit.getServer().getPluginManager().registerEvents(this, p); } private ItemStack createItem(DyeColor dc, String name) { ItemStack i = new Wool(dc).toItemStack(1); ItemMeta im = i.getItemMeta(); im.setDisplayName(name); im.setLore(Arrays.asList(ChatColor.RED + "Opens the " + ChatColor.YELLOW + name.toLowerCase() + ChatColor.RED + " menu!")); i.setItemMeta(im); return i; } public void show(Player p) { p.openInventory(em); } @EventHandler public void onInventoryClick(InventoryClickEvent e) { if (!e.getInventory().getName().equalsIgnoreCase(em.getName())) return; if (e.getCurrentItem().getItemMeta() == null) return; if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Effects")) { e.setCancelled(true); ((CommandSender) e.getWhoClicked()).sendMessage(ChatColor.RED + "Opening EffectsMenu..."); // Do stuff e.getWhoClicked().closeInventory(); } if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Addons")) { e.setCancelled(true); ((CommandSender) e.getWhoClicked()).sendMessage(ChatColor.RED + "Opening AddonsMenu..."); // Do stuff e.getWhoClicked().closeInventory(); } if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Close")) { e.setCancelled(true); ((CommandSender) e.getWhoClicked()).sendMessage(ChatColor.RED + "Closing OracleMenu"); e.getWhoClicked().closeInventory(); } }} (This is my mainmenu and I use a different class to summon the inventory.) So if anybody knows how to fix those issues, I'd be very greatful! Thanks
Hey, Would you be able to give me some more info on this? E.g what is the parameter for lore, and could you do an example line for the MATERIAL? Thanks
Echo create an ItemStack with as first parameter Material.POTION. The parameter for lore is something you need to add yourself. It's just like the parameter for the name.