Rankup [Plugin]

Discussion in 'Plugin Development' started by WhaleAnarchy, Nov 27, 2013.

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

    WhaleAnarchy

    Hey Bukkit, I have been have been working on this for a day or two, and I just can't seem to get this to work. I have been working on a plugin called "Rankup" and I am trying to open an inventory from clicking on an item in another inventory. So far all I have gotten is this; You click on a certain item, it will open an inventory from which you can click on 5 different items/buttons. Those buttons are: Donate Menu (emerald), Guest Kit (wooden sword), VIP Kit (iron sword), VIP+ Kit (diamond sword), and Instructions (tnt).

    I am trying to get it so that if you click on the "Donate Menu", you open another inventory from which you can click on three items: Website (iron ingot), Buy VIP (gold ingot), Buy VIP+ (diamond), and it will give you the website URL to buy those ranks from. Currently all I have gotten is the first inventory, but when I try and open the "Donate Menu", it just closes the inventory and doesn't ever open the other inventory.

    The code is kind-of lengthy, but here it is.

    Main:
    package me.WhaleAnarchy.rankup;

    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.block.Action;
    import org.bukkit.event.player.PlayerInteractEvent;
    import org.bukkit.plugin.java.JavaPlugin;


    public class Main extends JavaPlugin implements Listener {

    private MainInv menu;
    private MainInv2 menu2;

    public void onEnable() {
    menu = new MainInv(this);
    menu2 = new MainInv2(this);
    Bukkit.getServer().getPluginManager().registerEvents(this, this);
    }

    @EventHandler
    public void onPlayerInteract(PlayerInteractEvent event) {
    Player p = event.getPlayer();
    if(event.getAction() == Action.RIGHT_CLICK_AIR || event.getAction() == Action.RIGHT_CLICK_BLOCK) {
    if(p.getItemInHand().getType() == Material.BLAZE_POWDER) {
    menu.show(event.getPlayer());
    }
    }
    }
    }

    MenuInv1:
    package me.WhaleAnarchy.rankup;
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.Material;
    import org.bukkit.enchantments.Enchantment;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.inventory.InventoryClickEvent;
    import org.bukkit.inventory.Inventory;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.meta.ItemMeta;
    import org.bukkit.plugin.Plugin;
    import org.bukkit.plugin.java.JavaPlugin;
    public class MainInv extends JavaPlugin implements Listener {

    private Inventory inv;
    private Inventory inv2;

    public MainInv(Plugin p) {
    inv = Bukkit.getServer().createInventory(null, 9, "Rankup Menu");

    ItemStack tnt = new ItemStack(Material.TNT);
    ItemMeta tn = tnt.getItemMeta();
    tn.setDisplayName(ChatColor.DARK_RED + "Instructions");
    tnt.setItemMeta(tn);
    inv.setItem(8, tnt);

    ItemStack wsword = new ItemStack(Material.WOOD_SWORD);
    ItemMeta ws = wsword.getItemMeta();
    ws.setDisplayName(ChatColor.DARK_AQUA + "Guest Kit");
    wsword.setItemMeta(ws);
    inv.setItem(3, wsword);

    ItemStack isword = new ItemStack(Material.IRON_SWORD);
    ItemMeta is = isword.getItemMeta();
    is.setDisplayName(ChatColor.DARK_GREEN + "VIP Kit");
    isword.setItemMeta(is);
    inv.setItem(4, isword);

    ItemStack dsword = new ItemStack(Material.DIAMOND_SWORD);
    ItemMeta ds = dsword.getItemMeta();
    ds.setDisplayName(ChatColor.DARK_PURPLE + "VIP+ Kit");
    dsword.setItemMeta(ds);
    inv.setItem(5, dsword);

    ItemStack emerald = new ItemStack(Material.EMERALD);
    ItemMeta em = emerald.getItemMeta();
    em.setDisplayName(ChatColor.DARK_RED + "Donation Menu");
    emerald.setItemMeta(em);
    inv.setItem(0, emerald);

    Bukkit.getServer().getPluginManager().registerEvents(this, p);
    }

    public void show(Player p) {
    p.openInventory(inv);
    }

    public void show2(Player p) {
    p.openInventory(inv2);
    }

    @EventHandler
    public void onInventoryClick1(InventoryClickEvent e) {
    Player player = (Player) e.getWhoClicked();
    if(e.getCurrentItem().getItemMeta().getDisplayName().contains("Instructions")) {
    e.setCancelled(true);
    e.getWhoClicked().closeInventory();
    player.sendMessage(ChatColor.DARK_RED + "Step 1:"
    + ChatColor.RED + " Click Your Menu Item");
    player.sendMessage(ChatColor.DARK_RED + "Step 2:"
    + ChatColor.RED + " Choose Your Kit");
    player.sendMessage(ChatColor.DARK_RED + "Step 3:"
    + ChatColor.RED + " Have Fun Killing!");
    }
    }

    @EventHandler
    public void onInventoryClick2(InventoryClickEvent e) {
    Player player = (Player) e.getWhoClicked();
    if(e.getCurrentItem().getItemMeta().getDisplayName().contains("Guest Kit")) {
    if(player.hasPermission("rankup.guest")) {
    e.setCancelled(true);
    e.getWhoClicked().closeInventory();
    player.getInventory().clear();
    player.sendMessage(ChatColor.AQUA + "Your"
    + ChatColor.DARK_AQUA + " Guest"
    + ChatColor.AQUA + " Gear Has Been Equipped!");

    ItemStack dsword = new ItemStack(Material.STONE_SWORD);
    ItemMeta ds = dsword.getItemMeta();
    ds.setDisplayName(ChatColor.DARK_AQUA + "Guest Sword");
    dsword.setItemMeta(ds);
    player.getInventory().addItem(dsword);

    ItemStack bow = new ItemStack(Material.BOW);
    ItemMeta bw = bow.getItemMeta();
    bw.setDisplayName(ChatColor.DARK_AQUA + "Guest Bow");
    bw.addEnchant(Enchantment.ARROW_INFINITE, 1, true);
    bw.addEnchant(Enchantment.ARROW_KNOCKBACK, 1, true);
    bow.setItemMeta(bw);
    player.getInventory().addItem(bow);

    ItemStack blazepowder = new ItemStack(Material.BLAZE_POWDER);
    ItemMeta bp = blazepowder.getItemMeta();
    bp.setDisplayName(ChatColor.RED + "Menu");
    blazepowder.setItemMeta(bp);
    player.getInventory().setItem(8, blazepowder);

    ItemStack chainhelm = new ItemStack(Material.CHAINMAIL_HELMET);
    ItemMeta cm = chainhelm.getItemMeta();
    cm.setDisplayName(ChatColor.DARK_AQUA + "Guest Helmet");
    cm.addEnchant(Enchantment.DURABILITY, 10, true);
    cm.addEnchant(Enchantment.PROTECTION_ENVIRONMENTAL, 2, true);
    chainhelm.setItemMeta(cm);
    player.getInventory().setHelmet(chainhelm);

    ItemStack chainchest= new ItemStack(Material.CHAINMAIL_CHESTPLATE);
    ItemMeta cc = chainchest.getItemMeta();
    cc.setDisplayName(ChatColor.DARK_AQUA + "Guest Chestplate");
    cc.addEnchant(Enchantment.DURABILITY, 10, true);
    cc.addEnchant(Enchantment.PROTECTION_ENVIRONMENTAL, 2, true);
    chainchest.setItemMeta(cc);
    player.getInventory().setChestplate(chainchest);

    ItemStack chainlegs = new ItemStack(Material.CHAINMAIL_LEGGINGS);
    ItemMeta cl = chainlegs.getItemMeta();
    cl.setDisplayName(ChatColor.DARK_AQUA + "Guest Leggings");
    cl.addEnchant(Enchantment.DURABILITY, 10, true);
    cl.addEnchant(Enchantment.PROTECTION_ENVIRONMENTAL, 2, true);
    chainlegs.setItemMeta(cl);
    player.getInventory().setLeggings(chainlegs);

    ItemStack chainboot = new ItemStack(Material.CHAINMAIL_BOOTS);
    ItemMeta cb = chainboot.getItemMeta();
    cb.setDisplayName(ChatColor.DARK_AQUA + "Guest Boots");
    cb.addEnchant(Enchantment.DURABILITY, 10, true);
    cb.addEnchant(Enchantment.PROTECTION_ENVIRONMENTAL, 2, true);
    cb.addEnchant(Enchantment.PROTECTION_FALL, 3, true);
    chainboot.setItemMeta(cb);
    player.getInventory().setBoots(chainboot);

    ItemStack arrow = new ItemStack(Material.ARROW);
    ItemMeta a = arrow.getItemMeta();
    a.setDisplayName(ChatColor.DARK_AQUA + "Guest Arrow");
    arrow.setItemMeta(a);
    player.getInventory().addItem(arrow);

    } else if(!(player.hasPermission("rankup.guest"))) {
    player.sendMessage(ChatColor.RED + "You Do Not Have Permission To Use The"
    + ChatColor.DARK_RED + " Guest"
    + ChatColor.RED + " Kit!");
    player.closeInventory();
    }
    }
    }

    @EventHandler
    public void onInventoryClick3(InventoryClickEvent e) {
    Player player = (Player) e.getWhoClicked();
    if(e.getCurrentItem().getItemMeta().getDisplayName().contains("VIP Kit")) {
    if(player.hasPermission("rankup.vip")) {
    e.setCancelled(true);
    e.getWhoClicked().closeInventory();
    player.getInventory().clear();
    player.sendMessage(ChatColor.GREEN + "Your"
    + ChatColor.DARK_GREEN + " VIP"
    + ChatColor.GREEN + " Gear Has Been Equipped!");

    ItemStack dsword = new ItemStack(Material.IRON_SWORD);
    ItemMeta ds = dsword.getItemMeta();
    ds.setDisplayName(ChatColor.DARK_GREEN + "VIP Sword");
    dsword.setItemMeta(ds);
    player.getInventory().addItem(dsword);

    ItemStack bow = new ItemStack(Material.BOW);
    ItemMeta bw = bow.getItemMeta();
    bw.setDisplayName(ChatColor.DARK_GREEN + "VIP Bow");
    bw.addEnchant(Enchantment.ARROW_INFINITE, 1, true);
    bw.addEnchant(Enchantment.ARROW_DAMAGE, 2, true);
    bow.setItemMeta(bw);
    player.getInventory().addItem(bow);

    ItemStack blazepowder = new ItemStack(Material.BLAZE_POWDER);
    ItemMeta bp = blazepowder.getItemMeta();
    bp.setDisplayName(ChatColor.RED + "Menu");
    blazepowder.setItemMeta(bp);
    player.getInventory().setItem(8, blazepowder);

    ItemStack ironhelm = new ItemStack(Material.IRON_HELMET);
    ItemMeta ih = ironhelm.getItemMeta();
    ih.setDisplayName(ChatColor.DARK_GREEN + "VIP Helmet");
    ih.addEnchant(Enchantment.DURABILITY, 7, true);
    ih.addEnchant(Enchantment.PROTECTION_ENVIRONMENTAL, 2, true);
    ironhelm.setItemMeta(ih);
    player.getInventory().setHelmet(ironhelm);

    ItemStack ironchest = new ItemStack(Material.IRON_CHESTPLATE);
    ItemMeta ic = ironchest.getItemMeta();
    ic.setDisplayName(ChatColor.DARK_GREEN + "VIP Chestplate");
    ic.addEnchant(Enchantment.DURABILITY, 7, true);
    ic.addEnchant(Enchantment.PROTECTION_ENVIRONMENTAL, 2, true);
    ironchest.setItemMeta(ic);
    player.getInventory().setChestplate(ironchest);

    ItemStack ironlegs = new ItemStack(Material.IRON_LEGGINGS);
    ItemMeta il = ironlegs.getItemMeta();
    il.setDisplayName(ChatColor.DARK_GREEN + "VIP Leggings");
    il.addEnchant(Enchantment.DURABILITY, 7, true);
    il.addEnchant(Enchantment.PROTECTION_ENVIRONMENTAL, 2, true);
    ironlegs.setItemMeta(il);
    player.getInventory().setLeggings(ironlegs);

    ItemStack ironboot = new ItemStack(Material.IRON_BOOTS);
    ItemMeta ib = ironboot.getItemMeta();
    ib.setDisplayName(ChatColor.DARK_GREEN + "VIP Boots");
    ib.addEnchant(Enchantment.DURABILITY, 7, true);
    ib.addEnchant(Enchantment.PROTECTION_ENVIRONMENTAL, 2, true);
    ib.addEnchant(Enchantment.PROTECTION_FALL, 3, true);
    ironboot.setItemMeta(ib);
    player.getInventory().setBoots(ironboot);

    ItemStack arrow = new ItemStack(Material.ARROW);
    ItemMeta a = arrow.getItemMeta();
    a.setDisplayName(ChatColor.DARK_GREEN + "VIP Arrow");
    arrow.setItemMeta(a);
    player.getInventory().addItem(arrow);
    } else if(!(player.hasPermission("rankup.vip"))) {
    player.sendMessage(ChatColor.RED + "You Do Not Have Permission To Use The"
    + ChatColor.DARK_RED + " VIP"
    + ChatColor.RED + " Kit!");
    player.closeInventory();
    }
    }
    }

    @EventHandler
    public void onInventoryClick4(InventoryClickEvent e) {
    Player player = (Player) e.getWhoClicked();
    if(e.getCurrentItem().getItemMeta().getDisplayName().contains("VIP+ Kit")) {
    if(player.hasPermission("rankup.vip+")) {
    e.setCancelled(true);
    e.getWhoClicked().closeInventory();
    player.getInventory().clear();
    player.sendMessage(ChatColor.LIGHT_PURPLE + "Your"
    + ChatColor.DARK_PURPLE + " VIP+"
    + ChatColor.LIGHT_PURPLE + " Gear Has Been Equipped!");

    ItemStack dsword = new ItemStack(Material.DIAMOND_SWORD);
    ItemMeta ds = dsword.getItemMeta();
    ds.setDisplayName(ChatColor.DARK_PURPLE + "VIP+ Sword");
    dsword.setItemMeta(ds);
    player.getInventory().addItem(dsword);

    ItemStack bow = new ItemStack(Material.BOW);
    ItemMeta bw = bow.getItemMeta();
    bw.setDisplayName(ChatColor.DARK_PURPLE + "VIP+ Bow");
    bw.addEnchant(Enchantment.ARROW_INFINITE, 1, true);
    bw.addEnchant(Enchantment.ARROW_FIRE, 1, true);
    bow.setItemMeta(bw);
    player.getInventory().addItem(bow);

    ItemStack blazepowder = new ItemStack(Material.BLAZE_POWDER);
    ItemMeta bp = blazepowder.getItemMeta();
    bp.setDisplayName(ChatColor.RED + "Menu");
    blazepowder.setItemMeta(bp);
    player.getInventory().setItem(8, blazepowder);

    ItemStack diahelm = new ItemStack(Material.DIAMOND_HELMET);
    ItemMeta dh = diahelm.getItemMeta();
    dh.setDisplayName(ChatColor.DARK_PURPLE + "VIP+ Helmet");
    dh.addEnchant(Enchantment.DURABILITY, 5, true);
    dh.addEnchant(Enchantment.PROTECTION_ENVIRONMENTAL, 3, true);
    diahelm.setItemMeta(dh);
    player.getInventory().setHelmet(diahelm);

    ItemStack diachest = new ItemStack(Material.DIAMOND_CHESTPLATE);
    ItemMeta dc = diachest.getItemMeta();
    dc.setDisplayName(ChatColor.DARK_PURPLE + "VIP+ Chestplate");
    dc.addEnchant(Enchantment.DURABILITY, 5, true);
    dc.addEnchant(Enchantment.PROTECTION_ENVIRONMENTAL, 3, true);
    diachest.setItemMeta(dc);
    player.getInventory().setChestplate(diachest);

    ItemStack dialegs = new ItemStack(Material.DIAMOND_LEGGINGS);
    ItemMeta dl = dialegs.getItemMeta();
    dl.setDisplayName(ChatColor.DARK_PURPLE + "VIP+ Leggings");
    dl.addEnchant(Enchantment.DURABILITY, 5, true);
    dl.addEnchant(Enchantment.PROTECTION_ENVIRONMENTAL, 3, true);
    dialegs.setItemMeta(dl);
    player.getInventory().setLeggings(dialegs);

    ItemStack diaboot = new ItemStack(Material.DIAMOND_BOOTS);
    ItemMeta db = diaboot.getItemMeta();
    db.setDisplayName(ChatColor.DARK_AQUA + "VIP+ Boots");
    db.addEnchant(Enchantment.DURABILITY, 5, true);
    db.addEnchant(Enchantment.PROTECTION_ENVIRONMENTAL, 3, true);
    db.addEnchant(Enchantment.PROTECTION_FALL, 3, true);
    diaboot.setItemMeta(db);
    player.getInventory().setBoots(diaboot);

    ItemStack arrow = new ItemStack(Material.ARROW);
    ItemMeta a = arrow.getItemMeta();
    a.setDisplayName(ChatColor.DARK_PURPLE + "VIP+ Arrow");
    arrow.setItemMeta(a);
    player.getInventory().addItem(arrow);
    } else if(!(player.hasPermission("rankup.vip+"))) {
    player.sendMessage(ChatColor.RED + "You Do Not Have Permission To Use The"
    + ChatColor.DARK_RED + " VIP+"
    + ChatColor.RED + " Kit!");
    player.closeInventory();
    }
    }
    }

    @EventHandler
    public void onInventoryClick5(InventoryClickEvent e) {
    Player player = (Player) e.getWhoClicked();
    if(e.getCurrentItem().getItemMeta().getDisplayName().contains("Donation Menu")) {
    e.setCancelled(true);
    e.getWhoClicked().closeInventory();
    menu.show2(player);
    }
    }
    }

    MainInv2:

    package me.WhaleAnarchy.rankup;
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.Material;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.inventory.InventoryClickEvent;
    import org.bukkit.inventory.Inventory;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.meta.ItemMeta;
    import org.bukkit.plugin.Plugin
    public class MainInv2 implements Listener {
    public Inventory inv2;
    public MainInv2(Plugin p) {
    inv2 = Bukkit.getServer().createInventory(null, 9, "Donation Menu");
    ItemStack iron = new ItemStack(Material.IRON_INGOT);
    ItemMeta i = iron.getItemMeta();
    i.setDisplayName(ChatColor.DARK_RED + "Website");
    iron.setItemMeta(i);
    inv2.setItem(3, iron);
    ItemStack tnt = new ItemStack(Material.GOLD_INGOT);
    ItemMeta tn = tnt.getItemMeta();
    tn.setDisplayName(ChatColor.DARK_GREEN + "VIP");
    tnt.setItemMeta(tn);
    inv2.setItem(4, tnt);
    ItemStack wsword = new ItemStack(Material.DIAMOND);
    ItemMeta ws = wsword.getItemMeta();
    ws.setDisplayName(ChatColor.DARK_PURPLE + "VIP+");
    wsword.setItemMeta(ws);
    inv2.setItem(5, wsword);
    Bukkit.getServer().getPluginManager().registerEvents(this, p);
    }
    public void show2(Player p) {
    p.openInventory(inv2);
    }
    @EventHandler
    public cvoid onInventoryClick1(InventoryClickEvent e) {
    Player player = (Player) e.getWhoClicked();
    if(e.getCurrentItem().getItemMeta().getDisplayName().contains("VIP")) {
    e.setCancelled(true);
    e.getWhoClicked().closeInventory();
    player.sendMessage(ChatColor.DARK_RED + "VIP Rank: "
    + ChatColor.RED + "www.craftedtoperfection.com/minigameranks/vip");
    }
    }
    @EventHandler
    publicvoid onInventoryClick2(InventoryClickEvent e) {
    Player player = (Player) e.getWhoClicked();
    if(e.getCurrentItem().getItemMeta().getDisplayName().contains("VIP+")) {
    e.setCancelled(true);
    e.getWhoClicked().closeInventory();
    player.sendMessage(ChatColor.DARK_RED + "VIP+ Rank: "
    + ChatColor.RED + "www.craftedtoperfection.com/minigameranks/vip+");
    }
    }
    @EventHandler
    publicvoid onInventoryClick3(InventoryClickEvent e) {
    Player player = (Player) e.getWhoClicked();
    if(e.getCurrentItem().getItemMeta().getDisplayName().contains("Website")) {
    e.setCancelled(true);
    e.getWhoClicked().closeInventory();
    player.sendMessage(ChatColor.DARK_RED + "Website: "
    + ChatColor.RED + "www.craftedtoperfection.com/minigameranks");
    }
    }
    }

    plugin.yml:
    name: Rankup
    version: 2.0
    author: WhaleAnarchy
    main: me.WhaleAnarchy.rankup.Main
    description: A Brand New Kit Plugin From WhaleAnarchy!
    permissions:
    rankup.*:
    description: All Abilities For Rankup
    children:
    rankup.guest: true
    rankup.vip: true
    rankup.vip+: true
    rankup.guest:
    description: Guest Abilities For Rankup
    default: default
    rankup.vip:
    description: VIP Abilities For Rankup
    default: op
    rankup.vip+:
    description: VIP+ Abilities For Rankup
    default: op

    If anyone knows what it going on and how to fix this, I thank them in advance!

    - WhaleAnarchy
     
  2. Offline

    Mathias Eklund

    Really hard to read your code... But you could try checking for the lore of the items you click. If you haven't already :) Can't read your code, brain hurts too much. FIX IT
     
  3. Offline

    PolarCraft

    Mathias Eklund I am having the same problem. Next time use [.syntax=java][./syntax] remove "."
    [Edit] Where are your lores?
     
  4. Offline

    GreatMinerZ

    Please post your code in a CODE field.
     
Thread Status:
Not open for further replies.

Share This Page