Inventory Menu

Discussion in 'Plugin Development' started by Marcohan, Aug 6, 2015.

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

    Marcohan

    Code:
     
    if (cmd.getName().equalsIgnoreCase("rules"))
    
    
    
    {
    
    //rules inventory
    
    sender.sendMessage("Test");
    
    //camping
    
    rules.setItem(0, new ItemStack(Material.OBSIDIAN));
    
    ItemMeta i = (ItemMeta) rules.getItem(0);
    
    i.setDisplayName(ChatColor.GREEN +  "Portal Camping: " + camping);
    
    //trapping
    
    rules.setItem(1, new ItemStack(Material.LAVA));
    
    ItemMeta ii = (ItemMeta) rules.getItem(1);
    
    ii.setDisplayName(ChatColor.GREEN + "Portal Trapping: " + trapping);
    
    //tier1
    
    rules.setItem(2, new ItemStack(Material.GLASS_BOTTLE));
    
    ItemMeta iii = (ItemMeta) rules.getItem(2);
    
    iii.setDisplayName(ChatColor.GREEN + "Tier One: " + tier1);
    
    //tier2
    
    rules.setItem(3, new ItemStack(Material.POTION));
    
    ItemMeta iiii = (ItemMeta) rules.getItem(3);
    
    iiii.setDisplayName(ChatColor.GREEN + "Tier Two: " + tier2);
    
    //nether
    
    rules.setItem(4, new ItemStack(Material.NETHERRACK));
    
    ItemMeta iiiii = (ItemMeta) rules.getItem(4);
    
    iiiii.setDisplayName(ChatColor.GREEN + "Nether: " + nether);
    
    //gheads
    
    rules.setItem(5, new ItemStack(Material.SKULL_ITEM));
    
    ItemMeta iiiiii = (ItemMeta) rules.getItem(5);
    
    iiiiii.setDisplayName(ChatColor.GREEN + "Golden Heads: " + gheads);
    
    //absorption 
    
    rules.setItem(6, new ItemStack(Material.GOLDEN_APPLE));
    
    ItemMeta iiiiiii = (ItemMeta) rules.getItem(6);
    
    iiiiiii.setDisplayName(ChatColor.GREEN + "Absorption: " + absorption);
    
    //towering
    
    rules.setItem(7,  new ItemStack(Material.COBBLESTONE));
    
    ItemMeta iiiiiiii = (ItemMeta) rules.getItem(7);
    
    iiiiiiii.setDisplayName(ChatColor.GREEN + "Towering: " + towering);
    
    //stalking
    
    rules.setItem(8, new ItemStack(Material.COMPASS));
    
    ItemMeta iiiiiiiii = (ItemMeta) rules.getItem(8);
    
    iiiiiiiii.setDisplayName(ChatColor.GREEN + "Stalking: " + stalking);
    
    //Pokeholing
    
    rules.setItem(9, new ItemStack(Material.STONE));
    
    ItemMeta iiiiiiiiii = (ItemMeta) rules.getItem(9);
    
    iiiiiiiiii.setDisplayName(ChatColor.GREEN + "PokeHoles: " + pokeholes);
    
    //stripmining 
    
    rules.setItem(10, new ItemStack(Material.STONE_PICKAXE));
    
    ItemMeta iiiiiiiiiii = (ItemMeta) rules.getItem(10);
    
    iiiiiiiiiii.setDisplayName(ChatColor.GREEN + "Stripmining: " + stripmining);
    
    //rolercoasting
    
    rules.setItem(11, new ItemStack(Material.GOLD_PICKAXE));
    
    ItemMeta iiiiiiiiiiii = (ItemMeta) rules.getItem(11);
    
    iiiiiiiiiiii.setDisplayName(ChatColor.GREEN + "Rollercoasting: " + rollercoasting);
    
    //horses
    
    rules.setItem(12, new ItemStack(Material.SADDLE));
    
    ItemMeta iiiiiiiiiiiii = (ItemMeta) rules.getItem(12);
    
    iiiiiiiiiiiii.setDisplayName(ChatColor.GREEN + "Horses: " + horse);
    
    //IPVP 
    
    rules.setItem(13, new ItemStack(Material.FLINT_AND_STEEL));
    
    ItemMeta iiiiiiiiiiiiii = (ItemMeta) rules.getItem(13);
    
    iiiiiiiiiiiiii.setDisplayName(ChatColor.GREEN + "IPvP: " + ipvp);
    
    //Pearl Damage
    
    rules.setItem(14, new ItemStack(Material.ENDER_PEARL));
    
    ItemMeta iiiiiiiiiiiiiii = (ItemMeta) rules.getItem(14);
    
    iiiiiiiiiiiiiii.setDisplayName(ChatColor.GREEN + "Enderpearl Damage: " + pearldamage);
    
    //Blast Mining
    
    rules.setItem(15, new ItemStack(Material.TNT));
    
    ItemMeta iiiiiiiiiiiiiiii = (ItemMeta) rules.getItem(15);
    
    iiiiiiiiiiiiiiii.setDisplayName(ChatColor.GREEN + "Blastmining: " + blastmining);
    
    //crossteaming 
    
    rules.setItem(16, new ItemStack(Material.GOLD_SWORD));
    
    ItemMeta iiiiiiiiiiiiiiiii = (ItemMeta) rules.getItem(16);
    
    iiiiiiiiiiiiiiiii.setDisplayName(ChatColor.GREEN + " Cross Teaming: " + crossteaming);
    
    //TeamKilling 
    
    rules.setItem(17, new ItemStack(Material.DIAMOND_SWORD));
    
    ItemMeta iiiiiiiiiiiiiiiiii = (ItemMeta) rules.getItem(17);
    
    iiiiiiiiiiiiiiiiii.setDisplayName(ChatColor.GREEN + " Team Killing: " + teamkilling);
    
    ((HumanEntity) sender).openInventory(rules);
    
    }
    and variable

    Code:
     
    Inventory rules = Bukkit.createInventory(null, 18, "Rules"); 
    I thought this would work but its not its just giving me the error of

    Code:
    Unexpected exception while parsing console command "rules"
    org.bukkit.command.CommandException: Unhandled exception executing command 'rules' in plugin UHCPlugin v1.0
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) 
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:181) 
        at org.bukkit.craftbukkit.v1_7_R4.CraftServer.dispatchCommand(CraftServer.java:767) 
        at org.bukkit.craftbukkit.v1_7_R4.CraftServer.dispatchServerCommand(CraftServer.java:753) 
        at net.minecraft.server.v1_7_R4.DedicatedServer.aB(DedicatedServer.java:326) 
        at net.minecraft.server.v1_7_R4.DedicatedServer.v(DedicatedServer.java:290) 
        at net.minecraft.server.v1_7_R4.MinecraftServer.u(MinecraftServer.java:584) 
        at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java:490) 
        at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:628) 
    Caused by: java.lang.ClassCastException: org.bukkit.craftbukkit.v1_7_R4.inventory.CraftItemStack cannot be cast to org.bukkit.inventory.meta.ItemMeta
        at com.MarcoHan.UHCPlugin.Main.onCommand(Main.java:109) ~[?:?]
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) 
        ... 8 more
    
    
    Bit new to this so don't hurt me :p
     
  2. Offline

    Gater12

    @Marcohan
    You are trying to cast an ItemStack to an ItemMeta.
     
    Shortninja66 likes this.
  3. Offline

    Marcohan

    So then what do i cast the "setdisplayname" too, eclipse is getting me to cast it and its setting it as player, but then its giving the same error but with player

    Code:
    The method setDisplayName(String) is undefined for the type ItemStack
     
  4. Offline

    Gater12

    @Marcohan
    setDisplayName is a method of the class ItemMeta. An ItemStakc is NOT an ItemMeta.
    You can get the ItemMeta of an ItemStack with getItemMeta method.
     
  5. Offline

    Marcohan

    So i got the inventory working, http://imgur.com/fpfAiWG

    but its not renaming, the code is now

    Code:
     
    rules.setItem(2, new ItemStack(Material.GLASS_BOTTLE));
    
    ItemStack iii = (ItemStack) rules.getItem(2);
    
    ItemMeta im2 = iii.getItemMeta();
    
    im2.setDisplayName(ChatColor.GREEN + "Tier One: " + tier1);
     
  6. Offline

    Gater12

    @Marcohan
    You need to set the ItemMeta to the ItemStack with setItemMeta.
     
  7. Offline

    Marcohan

    I think I've got it, but would like some confirmation of how i would do this
     
Thread Status:
Not open for further replies.

Share This Page