Solved Open an Inventory on click with a compass

Discussion in 'Plugin Development' started by MiBB3L, Apr 29, 2020.

Thread Status:
Not open for further replies.
  1. Offline

    MiBB3L

    I want to create an Inventory if a player right click or left clicks a compass. This does not work. why?


    Code:
    package de.mibbel.lobby;
    
    import org.bukkit.Bukkit;
    import org.bukkit.Material;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.inventory.InventoryInteractEvent;
    import org.bukkit.inventory.Inventory;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.meta.ItemMeta;
    
    public class listener implements Listener{
    
      @EventHandler
      public void onPlayerInteract(InventoryInteractEvent event) {
      Player player = (Player) event.getWhoClicked();
      if(player.getItemInHand().getType() == Material.COMPASS) {
      
         Inventory inventory = Bukkit.createInventory(null, 9 * 3, "§d§lErze");
            
             inventory.setItem(0, ItemBuilder(Material.STAINED_GLASS_PANE, "§f"));
             inventory.setItem(1, ItemBuilder(Material.STAINED_GLASS_PANE, "§f"));
             inventory.setItem(2, ItemBuilder(Material.STAINED_GLASS_PANE, "§f"));
             inventory.setItem(3, ItemBuilder(Material.STAINED_GLASS_PANE, "§f"));
             inventory.setItem(4, ItemBuilder(Material.IRON_ORE, "§6§lTP zu Erzen"));
             inventory.setItem(5, ItemBuilder(Material.STAINED_GLASS_PANE, "§f"));
             inventory.setItem(6, ItemBuilder(Material.STAINED_GLASS_PANE, "§f"));
             inventory.setItem(7, ItemBuilder(Material.STAINED_GLASS_PANE, "§f"));
             inventory.setItem(8, ItemBuilder(Material.STAINED_GLASS_PANE, "§f"));
             inventory.setItem(9, ItemBuilder(Material.STAINED_GLASS_PANE, "§f"));
             inventory.setItem(10, ItemBuilder(Material.STAINED_GLASS_PANE, "§f"));
             inventory.setItem(11, ItemBuilder(Material.BOOK, "§3§lErze Hilfe"));
             inventory.setItem(12, ItemBuilder(Material.STAINED_GLASS_PANE, "§f"));
             inventory.setItem(13, ItemBuilder(Material.STAINED_GLASS_PANE, "§f"));
             inventory.setItem(14, ItemBuilder(Material.STAINED_GLASS_PANE, "§f"));
             inventory.setItem(15, ItemBuilder(Material.GOLD_NUGGET, "§7§lMine Crate"));
             inventory.setItem(16, ItemBuilder(Material.STAINED_GLASS_PANE, "§f"));
             inventory.setItem(17, ItemBuilder(Material.STAINED_GLASS_PANE, "§f"));
             inventory.setItem(18, ItemBuilder(Material.STAINED_GLASS_PANE, "§f"));
             inventory.setItem(19, ItemBuilder(Material.STAINED_GLASS_PANE, "§f"));
             inventory.setItem(20, ItemBuilder(Material.STAINED_GLASS_PANE, "§f"));
             inventory.setItem(21, ItemBuilder(Material.STAINED_GLASS_PANE, "§f"));
             inventory.setItem(22, ItemBuilder(Material.STAINED_GLASS_PANE, "§f"));
             inventory.setItem(23, ItemBuilder(Material.STAINED_GLASS_PANE, "§f"));
             inventory.setItem(24, ItemBuilder(Material.STAINED_GLASS_PANE, "§f"));
             inventory.setItem(25, ItemBuilder(Material.STAINED_GLASS_PANE, "§f"));
             inventory.setItem(26, ItemBuilder(Material.STAINED_GLASS_PANE, "§f"));
            
            
             player.openInventory(inventory);
    
      
      }
      }
       public ItemStack ItemBuilder(Material material, String name) {
         ItemStack item = new ItemStack(material);
         ItemMeta itemMeta = item.getItemMeta();
         itemMeta.setDisplayName(name);
         item.setItemMeta(itemMeta);
         return item;
       }
      }
     
    Last edited by a moderator: Apr 29, 2020
  2. Offline

    Niv-Mizzet

    @MiBB3L Looks like you used a InventoryInteractEvent instead of a PlayerInteractEvent. Also, in the future, try to paste your code using the code function in the forum. Click on the fourth icon on the sixth box on your navbar, and click code, then paste your code in.
     
  3. Offline

    MiBB3L

    Code:
    Player player = (Player) event.getPlayer();
          
                if(player.getItemInHand().getType() == Material.COMPASS) {
    I´m now using the PlayerInteractEvent (never used that before) how can I open the inventory?

    I fixed it by myself. Thanks @Niv-Mizzet for your tips!

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Apr 30, 2020
Thread Status:
Not open for further replies.

Share This Page