Solved How do i open an inventory by clicking a sheep?

Discussion in 'Plugin Development' started by MasterNiitro, Nov 15, 2015.

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

    MasterNiitro

    I have coded this plugin but when i right click a sheep i want to open an inventory but it not seem to work..
    Those are the classes:

    Main(Core)
    Code:
    package me.niitro.kitpvpdc;
    
    import org.bukkit.Material;
    import org.bukkit.entity.Player;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.plugin.java.JavaPlugin;
    
    public class Core extends JavaPlugin {
      
        @Override
        public void onEnable() {
            getLogger().info("KITPVP ABILITATO");
            Listeners();
        }
      
        public void onDisable() {
            getLogger().info("KITPVP DISABILITATO");
        }
      
        private void Listeners() {
            getServer().getPluginManager().registerEvents(new Pecora(this), this);
        }
        public static void Spada(Player p) {
            p.getInventory().addItem(new ItemStack(Material.DIAMOND_SWORD));
        }
    }
    Pecora(Sheep)

    Code:
    package me.niitro.kitpvpdc;
    
    import org.bukkit.entity.Sheep;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerInteractEntityEvent;
    
    public class Pecora implements Listener {
      
        Core plugin;
      
        public Pecora(Core core) {
            plugin = core;
        }
    
        @EventHandler
        public void onClick(PlayerInteractEntityEvent event) {
            if (event.getRightClicked() instanceof Sheep) {  
            }
        }
    
    }
    Inventario(Inventory)

    Code:
    package me.niitro.kitpvpdc;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import org.bukkit.Bukkit;
    import org.bukkit.Material;
    import org.bukkit.inventory.Inventory;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.meta.ItemMeta;
    
    public class Inventario {
    
        public static Inventory getInventario() {
    
        Inventory inv = Bukkit.createInventory(null, 36, "§4Il tuo kit");
      
        ItemStack item = new ItemStack(Material.DIAMOND_SWORD);
        ItemMeta meta = item.getItemMeta();
        List<String> lore = new ArrayList<String>();
    
        lore.add("§bCambia la tua spada!");
        meta.setLore(lore);
        meta.setDisplayName("§7Spade");
        item.setItemMeta(meta);
        inv.addItem(item);
      
        return inv;
        }
    }
    ClickInv

    Code:
    package me.niitro.kitpvpdc;
    
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.inventory.InventoryClickEvent;
    
    public class ClickInv implements Listener {
      
        @EventHandler
        public void onClick(InventoryClickEvent event) {
            event.setCancelled(true);
            if (event.getClickedInventory().getName().toLowerCase().contains("Il tuo kit"));
            int slot = event.getSlot();
            switch(slot) {
            case 0:
                Core.Spada((Player) event.getWhoClicked());
                break;
            }
          
        }
    
    }

    Im italian that's why i have the classes/other things named "strange" xD

    EDIT by Timtower: added code tags.
     
  2. Offline

    Gonmarte

    @MasterNiitro You need to add the method thatyou have to create an inventory to the PlayerInteractEntityEvent.
     
  3. Offline

    dlange

    Just call the inventory open method in here?

    Code:
    @EventHandler
        public void onClick(PlayerInteractEntityEvent event) {
            if (event.getRightClicked() instanceof Sheep) { 
                   event.getPlayer().openInventory(Inventario.getInventario());
            }
        }
     
  4. Offline

    MasterNiitro

    Thanks man it worked :D
     
  5. Offline

    dlange

    @MasterNiitro no worries, please mark the thread as 'solved'
     
  6. Offline

    Gonmarte

Thread Status:
Not open for further replies.

Share This Page