Solved .setItem(1, l); doesnt work!

Discussion in 'Plugin Development' started by MAYBE, Jun 26, 2015.

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

    MAYBE

    Hello i wanted to make a plugin that when you click a book your hotbar changes but my coding doesnt work
    because when i click it only the book changes nothing else and when i place the book to somewhere else in my inventory and click it nothing happens
    heres my code:
    Code:
    package dev.krille;
    
    
    import org.bukkit.Bukkit;
    import org.bukkit.DyeColor;
    import org.bukkit.Material;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.block.Action;
    import org.bukkit.event.player.PlayerInteractEvent;
    import org.bukkit.event.player.PlayerJoinEvent;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.PlayerInventory;
    import org.bukkit.inventory.meta.ItemMeta;
    import org.bukkit.plugin.java.JavaPlugin;
    
    public class HarryPotter extends JavaPlugin implements Listener{
        @Override
        public void onEnable(){
            Bukkit.getServer().getPluginManager().registerEvents(this, this);
        }
        @Override
        public void onDisable(){
           
        }
        public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){
           
           
            return false;
        }
        @EventHandler
        public void JoinItemAdding(PlayerJoinEvent e){
            Player ep = (Player) e.getPlayer();
            PlayerInventory epi = (PlayerInventory) ep.getInventory();
            ItemStack skills = new ItemStack(Material.BOOK);
            ItemStack storage = new ItemStack(Material.CHEST);
            ItemMeta skillsm = skills.getItemMeta();
            ItemMeta storagem = storage.getItemMeta();
           
            //----------------------------------
            //skills editing item meta
            skillsm.setDisplayName("§aSkills §c - Closed");
            skills.setItemMeta(skillsm);
           
            //storage editing item meta
            storagem.setDisplayName("§aStorage");
            storage.setItemMeta(storagem);
            //----------------------------------
           
            epi.setItem(0, skills);
            epi.setItem(1, storage);
        }
        @EventHandler
        public void onclick(PlayerInteractEvent e){
            Player ep = (Player) e.getPlayer();
            PlayerInventory inv = (PlayerInventory) ep.getInventory();
            ItemStack ej = new ItemStack(Material.STAINED_GLASS, 1, DyeColor.PURPLE.getData());
            ItemStack bh = new ItemStack(Material.STAINED_GLASS, 1, DyeColor.BLACK.getData());
            ItemStack b = new ItemStack(Material.STAINED_GLASS, 1, DyeColor.GREEN.getData());
            ItemStack l = new ItemStack(Material.STAINED_GLASS, 1, DyeColor.RED.getData());
            ItemStack skills = new ItemStack(Material.BOOK, 1);
            ItemStack none = new ItemStack(Material.AIR);
            ItemStack storage = new ItemStack(Material.CHEST);
            ItemMeta storagem = storage.getItemMeta();
            ItemMeta ejm = ej.getItemMeta();
            ItemMeta bhm = bh.getItemMeta();
            ItemMeta bm = b.getItemMeta();
            ItemMeta lm = l.getItemMeta();
            ItemMeta skillsm = skills.getItemMeta();
           
            //storage editing item meta
            storagem.setDisplayName("§aStorage");
            storage.setItemMeta(storagem);
            if (e.getAction() == Action.RIGHT_CLICK_AIR || e.getAction() == Action.RIGHT_CLICK_BLOCK){
                if (ep.getItemInHand().getItemMeta().getDisplayName().equals("§aSkills §c- Closed")){
                    //-------------------------------------
                    //ej editing item meta
                    ejm.setDisplayName("§dEagle Jump");
                    ej.setItemMeta(ejm);
                    //bh editing item meta
                    bhm.setDisplayName("§0Black hole");
                    bh.setItemMeta(bhm);
                    //b editing item meta
                    bm.setDisplayName("§2Berserk");
                    b.setItemMeta(bm);
                    //l editing item meta
                    lm.setDisplayName("§cLightning");
                    l.setItemMeta(lm);
                    //skills editing item meta
                    skillsm.setDisplayName("§aSkills §a- Opened");
                    skills.setItemMeta(skillsm);
                    //-------------------------------------
                    //l = Lightning (the last block), b = Beserk (the second block), bh = blackhole (the third block), ej = eagle jump (the first block)
                    inv.setItem(1, ej);
                    inv.setItem(2, b);
                    inv.setItem(3, bh);
                    inv.setItem(4, l);
                    inv.setItem(0, skills);
                }else if (ep.getItemInHand().getItemMeta().getDisplayName().equals("§aSkills §a- Opened")){
                    //---------------------------------------
                    //skills editing item meta
                    skillsm.setDisplayName("§aSkills §c- Closed");
                    skills.setItemMeta(skillsm);
                    //ej editing item meta
                    ejm.setDisplayName("§dEagle Jump");
                    ej.setItemMeta(ejm);
                    //bh editing item meta
                    bhm.setDisplayName("§0Black hole");
                    bh.setItemMeta(bhm);
                    //b editing item meta
                    bm.setDisplayName("§2Berserk");
                    b.setItemMeta(bm);
                    //l editing item meta
                    lm.setDisplayName("§cLightning");
                    l.setItemMeta(lm);
                    //-----------------------------------------
                    //l = Lightning (the last block), b = Beserk (the second block), bh = blackhole (the third block), ej = eagle jump (the first block)
                    inv.setItem(0, skills);
                    inv.setItem(1, storage);
                    inv.setItem(2, none);
                    inv.setItem(3, none);
                    inv.setItem(4, none);
            }
            }
        }
    }
    
    
     
  2. You need to add player.Updateinventory() to update the inventory
     
  3. Offline

    MAYBE

    now that i did that so
    Code:
    inv.setItem(1, ej);
                    inv.setItem(2, b);
                    inv.setItem(3, bh);
                    inv.setItem(4, l);
                    inv.setItem(0, skills);
                    ep.updateInventory();
    
    nothing works anymore
     
  4. I will see if I can fix it tomorrow when I'm on my computer
     
  5. Offline

    MAYBE

    ok thank you but tomorrow im not there i will be back in 2 days

    ok i made it my self really i was the dumb one it didnt work because i changed something so thanks so much @Bram0101 for your help :)

    EDIT by Timtower: merged posts
     
    Last edited by a moderator: Jun 27, 2015
Thread Status:
Not open for further replies.

Share This Page