Inventory Problems

Discussion in 'Plugin Development' started by billman555555, Sep 6, 2013.

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

    billman555555

    Hello,
    i am making a plugin for Blitz survival and need some help with a piece of code.
    The code checks if you have selected a Blitz and executes the Blitz that was selected.
    Currently it half works, the Blitz activates but when you click on a slot in any inventory
    it executes all Blitz's again.
    Here is my current code:
    Code:java
    1. @EventHandler
    2. public void onBlitzActivate(InventoryClickEvent event) {
    3. Player player = (Player) event.getWhoClicked();
    4. PlayerInventory inventory = player.getInventory();
    5. if (event.getInventory().equals(Blitz) && event.getSlot() == 0); {
    6. Bukkit.broadcastMessage("§a"+player.getName()+" has activated Armor Baby.");
    7. event.setCancelled(true);
    8. player.closeInventory();
    9. inventory.addItem(new ItemStack(Material.DIAMOND_HELMET));
    10. inventory.addItem(new ItemStack(Material.DIAMOND_CHESTPLATE));
    11. inventory.addItem(new ItemStack(Material.DIAMOND_LEGGINGS));
    12. inventory.addItem(new ItemStack(Material.DIAMOND_BOOTS));
    13. inventory.removeItem(new ItemStack(Material.NETHER_STAR));
    14. }
    15. if (event.getInventory().equals(Blitz) && event.getSlot() == 1); {
    16. Bukkit.broadcastMessage("§a"+player.getName()+" has activated Sword time.");
    17. event.setCancelled(true);
    18. player.closeInventory();
    19. inventory.addItem(new ItemStack(Material.DIAMOND_SWORD));
    20. inventory.removeItem(new ItemStack(Material.NETHER_STAR));
    21. }
    22. }

    Please help me.
    Thanks.
     
  2. Not really helping with your problem but replace equals(Blitz) to equals("Blitz")
    also replace event.getSlot() with event.getRawSlot() as if you click the slot 0 or 1 in your inventory not the blitz inventory, it will also execute the code

    code below fixes ^, Idk if it will fix your issue
    Code:java
    1.  
    2. @EventHandler
    3. public void onBlitzActivate(InventoryClickEvent event) {
    4. Player player = (Player) event.getWhoClicked();
    5. PlayerInventory inventory = player.getInventory();
    6. if (event.getInventory().getName().equals("Blitz") && event.getRawSlot() == 0); {
    7. Bukkit.broadcastMessage("§a"+player.getName()+" has activated Armor Baby.");
    8. event.setCancelled(true);
    9. player.closeInventory();
    10. inventory.addItem(new ItemStack(Material.DIAMOND_HELMET));
    11. inventory.addItem(new ItemStack(Material.DIAMOND_CHESTPLATE));
    12. inventory.addItem(new ItemStack(Material.DIAMOND_LEGGINGS));
    13. inventory.addItem(new ItemStack(Material.DIAMOND_BOOTS));
    14. inventory.removeItem(new ItemStack(Material.NETHER_STAR));
    15. }
    16. if (event.getInventory().getName().equals("Blitz") && event.getRawSlot() == 1); {
    17. Bukkit.broadcastMessage("§a"+player.getName()+" has activated Sword time.");
    18. event.setCancelled(true);
    19. player.closeInventory();
    20. inventory.addItem(new ItemStack(Material.DIAMOND_SWORD));
    21. inventory.removeItem(new ItemStack(Material.NETHER_STAR));
    22. }
    23. }
    24.  
     
  3. Offline

    Forseth11

    billman555555 you need to check if the inventory is the correct type.
     
  4. Offline

    billman555555

  5. Offline

    Forseth11

    billman555555 I'm on my phone.

    I believe it is event.getinventory().getType().equals(Inventory.[inventory];
     
Thread Status:
Not open for further replies.

Share This Page