InventoryClickEvent Help

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

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

    billman555555

    Hey im having a problem with InventoryClickEvent.
    I need it to Check if the player has click on a specific item.
    This is my current code:
    Code:java
    1. package com.billcraftgaming.blitz;
    2.  
    3. import org.bukkit.Bukkit;
    4. import org.bukkit.Material;
    5. import org.bukkit.entity.Player;
    6. import org.bukkit.event.EventHandler;
    7. import org.bukkit.event.Listener;
    8. import org.bukkit.event.inventory.InventoryClickEvent;
    9. import org.bukkit.event.player.PlayerInteractEvent;
    10. import org.bukkit.inventory.Inventory;
    11. import org.bukkit.inventory.ItemStack;
    12. import org.bukkit.inventory.PlayerInventory;
    13. import org.bukkit.plugin.java.JavaPlugin;
    14.  
    15. public final class Blitz extends JavaPlugin implements Listener {
    16.  
    17. Inventory Blitz = Bukkit.createInventory(null, 9, "Blitz selection");
    18.  
    19. @Override
    20. public void onEnable(){
    21. getLogger().info("Enabled Blitz");
    22. Bukkit.getServer().getPluginManager().registerEvents(this, this);
    23. }
    24. @Override
    25. public void onDisable() {
    26. getLogger().info("Disaled Blitz");
    27. }
    28.  
    29. @EventHandler
    30. public void onPlayerInteractBlock(PlayerInteractEvent event) {
    31. Player player = event.getPlayer();
    32. if (player.getItemInHand().getTypeId() == Material.NETHER_STAR.getId()) {
    33. Blitz.setItem(0, new ItemStack(Material.DIAMOND_HELMET, 1));
    34. Blitz.setItem(1, new ItemStack(Material.DIAMOND_SWORD, 1));
    35. player.openInventory(Blitz);
    36. }
    37. }
    38.  
    39. public void onInventoryClick(InventoryClickEvent event) {
    40. Player player = (Player) event.getWhoClicked();
    41. PlayerInventory inventory = player.getInventory();
    42. if (event.getInventory() == Blitz && event.getCursor() == new ItemStack(Material.DIAMOND_HELMET)); { //function 1
    43. Bukkit.broadcastMessage("§a"+player.getName()+" has activated ###");
    44. event.setCancelled(true);
    45. player.closeInventory();
    46. inventory.addItem(new ItemStack(Material.DIAMOND_HELMET));
    47. inventory.addItem(new ItemStack(Material.DIAMOND_CHESTPLATE));
    48. inventory.addItem(new ItemStack(Material.DIAMOND_LEGGINGS));
    49. inventory.addItem(new ItemStack(Material.DIAMOND_BOOTS));
    50. }
    51. if (event.getInventory() == Blitz && event.getCursor() == new ItemStack(Material.DIAMOND_SWORD)); { //function 2
    52. Bukkit.broadcastMessage("§a"+player.getName()+" has activated ###");
    53. event.setCancelled(true);
    54. player.closeInventory();
    55. inventory.addItem(new ItemStack(Material.DIAMOND_SWORD));
    56. }
    57. }
    58.  
    59. }

    It puts the items in the Blitz inventory correctly but wont do the other functions.

    Bump?
    Assist

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 4, 2016
  2. Offline

    billman555555

    Assist
    Thank you!!!!

    Assist
    Now when i click on any diamond sword it gives me,
    Chestplate
    Helmet
    Boots
    Leggings
    Sword
    And it doesn't have to be in the blitz inventory.

    Bump!
    Still having problems with the code:
    Code:java
    1. package com.billcraftgaming.blitz;
    2.  
    3. import org.bukkit.Bukkit;
    4. import org.bukkit.Material;
    5. import org.bukkit.entity.Player;
    6. import org.bukkit.event.EventHandler;
    7. import org.bukkit.event.Listener;
    8. import org.bukkit.event.entity.PlayerDeathEvent;
    9. import org.bukkit.event.inventory.InventoryClickEvent;
    10. import org.bukkit.event.player.PlayerInteractEvent;
    11. import org.bukkit.event.player.PlayerJoinEvent;
    12. import org.bukkit.event.player.PlayerQuitEvent;
    13. import org.bukkit.inventory.Inventory;
    14. import org.bukkit.inventory.ItemStack;
    15. import org.bukkit.inventory.PlayerInventory;
    16. import org.bukkit.plugin.java.JavaPlugin;
    17.  
    18. public final class Blitz extends JavaPlugin implements Listener {
    19.  
    20. Inventory Blitz = Bukkit.createInventory(null, 9, "Blitz selection");
    21.  
    22. @Override
    23. public void onEnable(){
    24. getLogger().info("Enabled Blitz");
    25. Bukkit.getServer().getPluginManager().registerEvents(this, this);
    26. }
    27. @Override
    28. public void onDisable() {
    29. getLogger().info("Disaled Blitz");
    30. }
    31.  
    32. @EventHandler
    33. public void onPlayerJoin(PlayerJoinEvent event) {
    34. event.setJoinMessage("§a"+event.getPlayer().getName()+" joined the game.");
    35. }
    36.  
    37. @EventHandler
    38. public void onPlayerQuit(PlayerQuitEvent event) {
    39. event.setQuitMessage(null);
    40. }
    41.  
    42. @EventHandler
    43. public void onPlayerDeath(PlayerDeathEvent event) {
    44. event.setDeathMessage("§a"+event.getEntity().getPlayer().getName()+" died and every one got a speed buff.");
    45. }
    46.  
    47. @EventHandler
    48. public void onBlitzActivate(PlayerInteractEvent event) {
    49. Player player = event.getPlayer();
    50. if (player.getItemInHand().getTypeId() == Material.NETHER_STAR.getId()) {
    51. Blitz.setItem(0, new ItemStack(Material.DIAMOND_HELMET, 1));
    52. Blitz.setItem(1, new ItemStack(Material.DIAMOND_SWORD, 1));
    53. player.openInventory(Blitz);
    54. }
    55. }
    56.  
    57. @EventHandler
    58. public void onBlitzSelect(InventoryClickEvent event) {
    59. Player player = (Player) event.getWhoClicked();
    60. PlayerInventory inventory = player.getInventory();
    61. if (event.getInventory().equals(Blitz) && event.getCurrentItem().equals(new ItemStack(Material.DIAMOND_HELMET))); {
    62. Bukkit.broadcastMessage("§a"+player.getName()+" has activated ###");
    63. event.setCancelled(true);
    64. player.closeInventory();
    65. inventory.addItem(new ItemStack(Material.DIAMOND_HELMET));
    66. inventory.addItem(new ItemStack(Material.DIAMOND_CHESTPLATE));
    67. inventory.addItem(new ItemStack(Material.DIAMOND_LEGGINGS));
    68. inventory.addItem(new ItemStack(Material.DIAMOND_BOOTS));
    69. inventory.removeItem(new ItemStack(Material.NETHER_STAR));
    70. }
    71. if (event.getInventory().equals(Blitz) && event.getCurrentItem().equals(new ItemStack(Material.DIAMOND_SWORD))); {
    72. Bukkit.broadcastMessage("§a"+player.getName()+" has activated ###");
    73. event.setCancelled(true);
    74. player.closeInventory();
    75. inventory.addItem(new ItemStack(Material.DIAMOND_SWORD));
    76. inventory.removeItem(new ItemStack(Material.NETHER_STAR));
    77. }
    78. }
    79. }


    Bump!
    Whenever i click an inventory (player, blitz, crafting, ect.) slot it spawns in the items and says:
    billman555555 has activated ##.
    billman555555 has activated ##.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 4, 2016
Thread Status:
Not open for further replies.

Share This Page