Inventory not opening

Discussion in 'Plugin Development' started by BrushPainter, Mar 25, 2014.

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

    BrushPainter

    Hey everyone, I'm trying to make it so if a player right clicks with a snow block in their hand, it will open a inventory. Here is my code:

    Code:java
    1. package me.BrushPainter.AmmoShop;
    2.  
    3. import java.util.ArrayList;
    4.  
    5. import net.milkbowl.vault.economy.Economy;
    6.  
    7. import org.bukkit.Bukkit;
    8. import org.bukkit.ChatColor;
    9. import org.bukkit.Material;
    10. import org.bukkit.entity.Player;
    11. import org.bukkit.event.EventHandler;
    12. import org.bukkit.event.Listener;
    13. import org.bukkit.event.block.Action;
    14. import org.bukkit.event.inventory.InventoryClickEvent;
    15. import org.bukkit.event.player.PlayerInteractEvent;
    16. import org.bukkit.inventory.Inventory;
    17. import org.bukkit.inventory.ItemStack;
    18. import org.bukkit.inventory.meta.ItemMeta;
    19. import org.bukkit.plugin.java.JavaPlugin;
    20.  
    21. public class Main extends JavaPlugin implements Listener {
    22.  
    23. public static Economy economy = null;
    24.  
    25. public void onEnable() {
    26.  
    27. Bukkit.getServer().getPluginManager().registerEvents(this, this);
    28.  
    29. newInventory();
    30.  
    31. getLogger().info("AmmoShop Enabled");
    32.  
    33. }
    34.  
    35. ItemStack sb16;
    36. ItemStack sb32;
    37. ItemStack cancel;
    38. ItemStack sb48;
    39. ItemStack sb64;
    40.  
    41. public Inventory ammoShop;
    42. public void newInventory() {
    43.  
    44. sb16 = new ItemStack(Material.SNOW_BALL, 16);
    45. ItemMeta imst = sb16.getItemMeta();
    46. imst.setDisplayName(ChatColor.GRAY + "" + ChatColor.BOLD + "16 Paintballs - $1");
    47. sb16.setItemMeta(imst);
    48.  
    49. sb32 = new ItemStack(Material.SNOW_BALL, 32);
    50. ItemMeta imtt = sb32.getItemMeta();
    51. imtt.setDisplayName(ChatColor.GRAY + "" + ChatColor.BOLD + "32 Paintballs - $2");
    52. sb32.setItemMeta(imtt);
    53.  
    54. ArrayList<String> lore1 = new ArrayList<String>();
    55. cancel = new ItemStack(Material.WOOL);
    56. ItemMeta im1 = cancel.getItemMeta();
    57. im1.setDisplayName(ChatColor.DARK_RED + "Close");
    58. lore1.add(ChatColor.DARK_GRAY + "Closes the ammo shop.");
    59. im1.setLore(lore1);
    60. cancel.setItemMeta(im1);
    61. cancel.setDurability((byte) 14);
    62.  
    63. sb48 = new ItemStack(Material.SNOW_BALL, 48);
    64. ItemMeta imfe = sb48.getItemMeta();
    65. imfe.setDisplayName(ChatColor.GRAY + "" + ChatColor.BOLD + "48 Paintballs - $3");
    66. sb48.setItemMeta(imfe);
    67.  
    68. sb64 = new ItemStack(Material.SNOW_BALL, 64);
    69. ItemMeta imsf = sb64.getItemMeta();
    70. imsf.setDisplayName(ChatColor.GRAY + "" + ChatColor.BOLD + "64 Paintballs - $4");
    71. sb64.setItemMeta(imsf);
    72.  
    73. AmmoShop.setItem(0, sb16);
    74. AmmoShop.setItem(1, sb32);
    75. AmmoShop.setItem(4, cancel);
    76. AmmoShop.setItem(7, sb48);
    77. AmmoShop.setItem(8, sb64);
    78.  
    79. }
    80.  
    81. public void onDisable() {
    82.  
    83. getLogger().info("AmmoShop Disabled");
    84.  
    85. }
    86.  
    87. @EventHandler
    88. public void onInteract(final PlayerInteractEvent e)
    89. {
    90. if(e.getAction() == Action.RIGHT_CLICK_AIR)
    91. {
    92. Player p = e.getPlayer();
    93. ItemStack item = p.getItemInHand();
    94.  
    95. if(item.getType() == Material.SNOW) {
    96.  
    97. p.openInventory(AmmoShop);
    98.  
    99. }
    100. }
    101. }
    102.  
    103. public static Inventory AmmoShop = Bukkit.createInventory(null, 9, "PB Gun Shop");
    104.  
    105. public void onInventoryClick(InventoryClickEvent event) {
    106.  
    107. Player player = (Player) event.getWhoClicked();
    108. ItemStack clicked = event.getCurrentItem();
    109. Inventory inventory = event.getInventory();
    110.  
    111. AmmoShop.setItem(0,sb16);
    112. AmmoShop.setItem(1,sb32);
    113. AmmoShop.setItem(4,cancel);
    114. AmmoShop.setItem(7,sb48);
    115. AmmoShop.setItem(8,sb64);
    116.  
    117. if (inventory.getName().equals(AmmoShop.getName())) {
    118. if (clicked.getItemMeta().getDisplayName().equalsIgnoreCase(ChatColor.DARK_RED + "Close")) {
    119.  
    120. event.setCancelled(true);
    121. player.closeInventory();
    122.  
    123. }
    124.  
    125. if (clicked.getItemMeta().getDisplayName().equalsIgnoreCase(ChatColor.GRAY + "" + ChatColor.BOLD + "16 Paintballs - $1")) {
    126.  
    127. if(!economy.has(player.getName(), 1)) {
    128.  
    129. player.sendMessage(ChatColor.RED + "Sorry, you do not have enough money to buy paintballs!");
    130.  
    131. } else { economy.bankWithdraw(player.getName(), 1);
    132.  
    133. player.getInventory().addItem(sb16);
    134. event.setCancelled(true);
    135. player.closeInventory();
    136.  
    137. }
    138. }
    139.  
    140. if (clicked.getItemMeta().getDisplayName().equalsIgnoreCase(ChatColor.GRAY + "" + ChatColor.BOLD + "32 Paintballs - $2")) {
    141.  
    142. if(!economy.has(player.getName(), 2)) {
    143.  
    144. player.sendMessage(ChatColor.RED + "Sorry, you do not have enough money to buy paintballs!");
    145.  
    146. } else { economy.bankWithdraw(player.getName(), 2);
    147.  
    148. player.getInventory().addItem(sb32);
    149. event.setCancelled(true);
    150. player.closeInventory();
    151.  
    152. }
    153.  
    154. }
    155.  
    156. if (clicked.getItemMeta().getDisplayName().equalsIgnoreCase(ChatColor.GRAY + "" + ChatColor.BOLD + "48 Paintballs - $3")) {
    157.  
    158. if(!economy.has(player.getName(), 3)) {
    159.  
    160. player.sendMessage(ChatColor.RED + "Sorry, you do not have enough money to buy paintballs!");
    161.  
    162. } else { economy.bankWithdraw(player.getName(), 3);
    163.  
    164. player.getInventory().addItem(sb48);
    165. event.setCancelled(true);
    166. player.closeInventory();
    167. }
    168. }
    169.  
    170. if (clicked.getItemMeta().getDisplayName().equalsIgnoreCase(ChatColor.GRAY + "" + ChatColor.BOLD + "64 Paintballs - $4")) {
    171.  
    172. if(!economy.has(player.getName(), 4)) {
    173.  
    174. player.sendMessage(ChatColor.RED + "Sorry, you do not have enough money to buy paintballs!");
    175.  
    176. } else { economy.bankWithdraw(player.getName(), 3);
    177.  
    178. player.getInventory().addItem(sb64);
    179. event.setCancelled(true);
    180. player.closeInventory();
    181.  
    182. }
    183. }
    184. }
    185. }
    186. }
     
  2. Offline

    Konkz

    Okay.

    You are making a plugin where player right clicks snow block and it opens inventory.
    Thanks for the code.

    Now what do you want us to do?
     
  3. Offline

    BrushPainter

    Konkz No need to be rude.. Anyway, if you look at the title, it says "Inventory not opening".
     
  4. Offline

    Konkz

    Not being rude :p

    So inventory is not opening. Error? No error?
     
  5. Offline

    BrushPainter

    Konkz No errors at all.
     
  6. Offline

    Onlineids

    Looks like your trying to open the inventory before you tell the plugin it exists
     
  7. Offline

    BrushPainter

    Thanks a lot, never even noticed. I will try it now. :)

    EDIT:
    Onlineids It still doesn't work.. Here is my new code:
    Code:java
    1. package me.BrushPainter.AmmoShop;
    2.  
    3. import java.util.ArrayList;
    4.  
    5. import net.milkbowl.vault.economy.Economy;
    6.  
    7. import org.bukkit.Bukkit;
    8. import org.bukkit.ChatColor;
    9. import org.bukkit.Material;
    10. import org.bukkit.entity.Player;
    11. import org.bukkit.event.EventHandler;
    12. import org.bukkit.event.Listener;
    13. import org.bukkit.event.block.Action;
    14. import org.bukkit.event.inventory.InventoryClickEvent;
    15. import org.bukkit.event.player.PlayerInteractEvent;
    16. import org.bukkit.inventory.Inventory;
    17. import org.bukkit.inventory.ItemStack;
    18. import org.bukkit.inventory.meta.ItemMeta;
    19. import org.bukkit.plugin.java.JavaPlugin;
    20.  
    21. public class Main extends JavaPlugin implements Listener {
    22.  
    23. public static Economy economy = null;
    24.  
    25. public void onEnable() {
    26.  
    27. Bukkit.getServer().getPluginManager().registerEvents(this, this);
    28.  
    29. newInventory();
    30.  
    31. getLogger().info("AmmoShop Enabled");
    32.  
    33. }
    34.  
    35. @EventHandler
    36. public void onInteract(final PlayerInteractEvent e) {
    37. Player p = e.getPlayer();
    38. ItemStack item = p.getItemInHand();
    39.  
    40. if(item.getType() == Material.SNOW) {
    41.  
    42. if(e.getAction() == Action.RIGHT_CLICK_AIR) {
    43.  
    44. p.openInventory(AmmoShop);
    45.  
    46. }
    47. }
    48. }
    49.  
    50. ItemStack sb16;
    51. ItemStack sb32;
    52. ItemStack cancel;
    53. ItemStack sb48;
    54. ItemStack sb64;
    55.  
    56. public Inventory ammoShop;
    57. public void newInventory() {
    58.  
    59. sb16 = new ItemStack(Material.SNOW_BALL, 16);
    60. ItemMeta imst = sb16.getItemMeta();
    61. imst.setDisplayName(ChatColor.GRAY + "" + ChatColor.BOLD + "16 Paintballs - $1");
    62. sb16.setItemMeta(imst);
    63.  
    64. sb32 = new ItemStack(Material.SNOW_BALL, 32);
    65. ItemMeta imtt = sb32.getItemMeta();
    66. imtt.setDisplayName(ChatColor.GRAY + "" + ChatColor.BOLD + "32 Paintballs - $2");
    67. sb32.setItemMeta(imtt);
    68.  
    69. ArrayList<String> lore1 = new ArrayList<String>();
    70. cancel = new ItemStack(Material.WOOL);
    71. ItemMeta im1 = cancel.getItemMeta();
    72. im1.setDisplayName(ChatColor.DARK_RED + "Close");
    73. lore1.add(ChatColor.DARK_GRAY + "Closes the ammo shop.");
    74. im1.setLore(lore1);
    75. cancel.setItemMeta(im1);
    76. cancel.setDurability((byte) 14);
    77.  
    78. sb48 = new ItemStack(Material.SNOW_BALL, 48);
    79. ItemMeta imfe = sb48.getItemMeta();
    80. imfe.setDisplayName(ChatColor.GRAY + "" + ChatColor.BOLD + "48 Paintballs - $3");
    81. sb48.setItemMeta(imfe);
    82.  
    83. sb64 = new ItemStack(Material.SNOW_BALL, 64);
    84. ItemMeta imsf = sb64.getItemMeta();
    85. imsf.setDisplayName(ChatColor.GRAY + "" + ChatColor.BOLD + "64 Paintballs - $4");
    86. sb64.setItemMeta(imsf);
    87.  
    88. AmmoShop.setItem(0, sb16);
    89. AmmoShop.setItem(1, sb32);
    90. AmmoShop.setItem(4, cancel);
    91. AmmoShop.setItem(7, sb48);
    92. AmmoShop.setItem(8, sb64);
    93.  
    94. }
    95.  
    96. public void onDisable() {
    97.  
    98. getLogger().info("AmmoShop Disabled");
    99.  
    100. }
    101.  
    102. public static Inventory AmmoShop = Bukkit.createInventory(null, 9, "PB Gun Shop");
    103.  
    104. public void onInventoryClick(InventoryClickEvent event) {
    105.  
    106. Player player = (Player) event.getWhoClicked();
    107. ItemStack clicked = event.getCurrentItem();
    108. Inventory inventory = event.getInventory();
    109.  
    110. AmmoShop.setItem(0,sb16);
    111. AmmoShop.setItem(1,sb32);
    112. AmmoShop.setItem(4,cancel);
    113. AmmoShop.setItem(7,sb48);
    114. AmmoShop.setItem(8,sb64);
    115.  
    116. if (inventory.getName().equals(AmmoShop.getName())) {
    117. if (clicked.getItemMeta().getDisplayName().equalsIgnoreCase(ChatColor.DARK_RED + "Close")) {
    118.  
    119. event.setCancelled(true);
    120. player.closeInventory();
    121.  
    122. }
    123.  
    124. if (clicked.getItemMeta().getDisplayName().equalsIgnoreCase(ChatColor.GRAY + "" + ChatColor.BOLD + "16 Paintballs - $1")) {
    125.  
    126. if(!economy.has(player.getName(), 1)) {
    127.  
    128. player.sendMessage(ChatColor.RED + "Sorry, you do not have enough money to buy paintballs!");
    129.  
    130. } else { economy.bankWithdraw(player.getName(), 1);
    131.  
    132. player.getInventory().addItem(sb16);
    133. event.setCancelled(true);
    134. player.closeInventory();
    135.  
    136. }
    137. }
    138.  
    139. if (clicked.getItemMeta().getDisplayName().equalsIgnoreCase(ChatColor.GRAY + "" + ChatColor.BOLD + "32 Paintballs - $2")) {
    140.  
    141. if(!economy.has(player.getName(), 2)) {
    142.  
    143. player.sendMessage(ChatColor.RED + "Sorry, you do not have enough money to buy paintballs!");
    144.  
    145. } else { economy.bankWithdraw(player.getName(), 2);
    146.  
    147. player.getInventory().addItem(sb32);
    148. event.setCancelled(true);
    149. player.closeInventory();
    150.  
    151. }
    152.  
    153. }
    154.  
    155. if (clicked.getItemMeta().getDisplayName().equalsIgnoreCase(ChatColor.GRAY + "" + ChatColor.BOLD + "48 Paintballs - $3")) {
    156.  
    157. if(!economy.has(player.getName(), 3)) {
    158.  
    159. player.sendMessage(ChatColor.RED + "Sorry, you do not have enough money to buy paintballs!");
    160.  
    161. } else { economy.bankWithdraw(player.getName(), 3);
    162.  
    163. player.getInventory().addItem(sb48);
    164. event.setCancelled(true);
    165. player.closeInventory();
    166. }
    167. }
    168.  
    169. if (clicked.getItemMeta().getDisplayName().equalsIgnoreCase(ChatColor.GRAY + "" + ChatColor.BOLD + "64 Paintballs - $4")) {
    170.  
    171. if(!economy.has(player.getName(), 4)) {
    172.  
    173. player.sendMessage(ChatColor.RED + "Sorry, you do not have enough money to buy paintballs!");
    174.  
    175. } else { economy.bankWithdraw(player.getName(), 3);
    176.  
    177. player.getInventory().addItem(sb64);
    178. event.setCancelled(true);
    179. player.closeInventory();
    180.  
    181. }
    182. }
    183. }
    184. }
    185. }
     
  8. Offline

    Onlineids

    Line 44 isnt that before it as well?
     
  9. Offline

    BrushPainter

    Onlineids
    Oh god.. I put the inventory open event before everything else lol, I got confused. Anyway, now I put it right at the end, no errors but it is still not working.. :eek:

    Code:java
    1. package me.BrushPainter.AmmoShop;
    2.  
    3. import java.util.ArrayList;
    4.  
    5. import net.milkbowl.vault.economy.Economy;
    6.  
    7. import org.bukkit.Bukkit;
    8. import org.bukkit.ChatColor;
    9. import org.bukkit.Material;
    10. import org.bukkit.entity.Player;
    11. import org.bukkit.event.EventHandler;
    12. import org.bukkit.event.Listener;
    13. import org.bukkit.event.block.Action;
    14. import org.bukkit.event.inventory.InventoryClickEvent;
    15. import org.bukkit.event.player.PlayerInteractEvent;
    16. import org.bukkit.inventory.Inventory;
    17. import org.bukkit.inventory.ItemStack;
    18. import org.bukkit.inventory.meta.ItemMeta;
    19. import org.bukkit.plugin.java.JavaPlugin;
    20.  
    21. public class Main extends JavaPlugin implements Listener {
    22.  
    23. public static Economy economy = null;
    24.  
    25. public void onEnable() {
    26.  
    27. Bukkit.getServer().getPluginManager().registerEvents(this, this);
    28.  
    29. newInventory();
    30.  
    31. getLogger().info("AmmoShop Enabled");
    32.  
    33. }
    34.  
    35. ItemStack sb16;
    36. ItemStack sb32;
    37. ItemStack cancel;
    38. ItemStack sb48;
    39. ItemStack sb64;
    40.  
    41. public Inventory ammoShop;
    42. public void newInventory() {
    43.  
    44. sb16 = new ItemStack(Material.SNOW_BALL, 16);
    45. ItemMeta imst = sb16.getItemMeta();
    46. imst.setDisplayName(ChatColor.GRAY + "" + ChatColor.BOLD + "16 Paintballs - $1");
    47. sb16.setItemMeta(imst);
    48.  
    49. sb32 = new ItemStack(Material.SNOW_BALL, 32);
    50. ItemMeta imtt = sb32.getItemMeta();
    51. imtt.setDisplayName(ChatColor.GRAY + "" + ChatColor.BOLD + "32 Paintballs - $2");
    52. sb32.setItemMeta(imtt);
    53.  
    54. ArrayList<String> lore1 = new ArrayList<String>();
    55. cancel = new ItemStack(Material.WOOL);
    56. ItemMeta im1 = cancel.getItemMeta();
    57. im1.setDisplayName(ChatColor.DARK_RED + "Close");
    58. lore1.add(ChatColor.DARK_GRAY + "Closes the ammo shop.");
    59. im1.setLore(lore1);
    60. cancel.setItemMeta(im1);
    61. cancel.setDurability((byte) 14);
    62.  
    63. sb48 = new ItemStack(Material.SNOW_BALL, 48);
    64. ItemMeta imfe = sb48.getItemMeta();
    65. imfe.setDisplayName(ChatColor.GRAY + "" + ChatColor.BOLD + "48 Paintballs - $3");
    66. sb48.setItemMeta(imfe);
    67.  
    68. sb64 = new ItemStack(Material.SNOW_BALL, 64);
    69. ItemMeta imsf = sb64.getItemMeta();
    70. imsf.setDisplayName(ChatColor.GRAY + "" + ChatColor.BOLD + "64 Paintballs - $4");
    71. sb64.setItemMeta(imsf);
    72.  
    73. AmmoShop.setItem(0, sb16);
    74. AmmoShop.setItem(1, sb32);
    75. AmmoShop.setItem(4, cancel);
    76. AmmoShop.setItem(7, sb48);
    77. AmmoShop.setItem(8, sb64);
    78.  
    79. }
    80.  
    81. public void onDisable() {
    82.  
    83. getLogger().info("AmmoShop Disabled");
    84.  
    85. }
    86.  
    87. public static Inventory AmmoShop = Bukkit.createInventory(null, 9, "PB Gun Shop");
    88.  
    89. public void onInventoryClick(InventoryClickEvent event) {
    90.  
    91. Player player = (Player) event.getWhoClicked();
    92. ItemStack clicked = event.getCurrentItem();
    93. Inventory inventory = event.getInventory();
    94.  
    95. AmmoShop.setItem(0,sb16);
    96. AmmoShop.setItem(1,sb32);
    97. AmmoShop.setItem(4,cancel);
    98. AmmoShop.setItem(7,sb48);
    99. AmmoShop.setItem(8,sb64);
    100.  
    101. if (inventory.getName().equals(AmmoShop.getName())) {
    102. if (clicked.getItemMeta().getDisplayName().equalsIgnoreCase(ChatColor.DARK_RED + "Close")) {
    103.  
    104. event.setCancelled(true);
    105. player.closeInventory();
    106.  
    107. }
    108.  
    109. if (clicked.getItemMeta().getDisplayName().equalsIgnoreCase(ChatColor.GRAY + "" + ChatColor.BOLD + "16 Paintballs - $1")) {
    110.  
    111. if(!economy.has(player.getName(), 1)) {
    112.  
    113. player.sendMessage(ChatColor.RED + "Sorry, you do not have enough money to buy paintballs!");
    114.  
    115. } else { economy.bankWithdraw(player.getName(), 1);
    116.  
    117. player.getInventory().addItem(sb16);
    118. event.setCancelled(true);
    119. player.closeInventory();
    120.  
    121. }
    122. }
    123.  
    124. if (clicked.getItemMeta().getDisplayName().equalsIgnoreCase(ChatColor.GRAY + "" + ChatColor.BOLD + "32 Paintballs - $2")) {
    125.  
    126. if(!economy.has(player.getName(), 2)) {
    127.  
    128. player.sendMessage(ChatColor.RED + "Sorry, you do not have enough money to buy paintballs!");
    129.  
    130. } else { economy.bankWithdraw(player.getName(), 2);
    131.  
    132. player.getInventory().addItem(sb32);
    133. event.setCancelled(true);
    134. player.closeInventory();
    135.  
    136. }
    137.  
    138. }
    139.  
    140. if (clicked.getItemMeta().getDisplayName().equalsIgnoreCase(ChatColor.GRAY + "" + ChatColor.BOLD + "48 Paintballs - $3")) {
    141.  
    142. if(!economy.has(player.getName(), 3)) {
    143.  
    144. player.sendMessage(ChatColor.RED + "Sorry, you do not have enough money to buy paintballs!");
    145.  
    146. } else { economy.bankWithdraw(player.getName(), 3);
    147.  
    148. player.getInventory().addItem(sb48);
    149. event.setCancelled(true);
    150. player.closeInventory();
    151. }
    152. }
    153.  
    154. if (clicked.getItemMeta().getDisplayName().equalsIgnoreCase(ChatColor.GRAY + "" + ChatColor.BOLD + "64 Paintballs - $4")) {
    155.  
    156. if(!economy.has(player.getName(), 4)) {
    157.  
    158. player.sendMessage(ChatColor.RED + "Sorry, you do not have enough money to buy paintballs!");
    159.  
    160. } else { economy.bankWithdraw(player.getName(), 3);
    161.  
    162. player.getInventory().addItem(sb64);
    163. event.setCancelled(true);
    164. player.closeInventory();
    165.  
    166. }
    167. }
    168. }
    169. }
    170. @EventHandler
    171. public void onInteract(final PlayerInteractEvent e) {
    172. Player p = e.getPlayer();
    173. ItemStack item = p.getItemInHand();
    174.  
    175. if(item.getType() == Material.SNOW) {
    176.  
    177. if(e.getAction() == Action.RIGHT_CLICK_AIR) {
    178.  
    179. p.openInventory(AmmoShop);
    180.  
    181. }
    182. }
    183. }
    184. }
     
  10. Offline

    Onlineids

    BrushPainter
    Why are you closing there inventories if there not open o.0
     
  11. Offline

    BrushPainter

    Onlineids I'm not, look at the code, the only way to open the inventory is by right clicking while holding a snowball. If you buy a item it closes the inventory, also if you press the "Close" item (Red wool), it closes the inventory. Anyway do you know why it's not working?
     
  12. Offline

    Onlineids

    Forgot @EventHandler
     
  13. Offline

    BrushPainter

    Onlineids The @EventHandler is in there.
     
  14. Offline

    Onlineids

    BrushPainter
    For one of the events... You have more than one event
     
  15. Offline

    Barinade

    //no @EventHandler, as Onlineids said
    public void onInventoryClick(InventoryClickEvent event) {
     
    Onlineids likes this.
  16. Offline

    BrushPainter

  17. Offline

    Barinade

    You should seriously consider nesting your listener or just creating a separate class
     
  18. Offline

    BrushPainter

    Barinade Onlineids Still not working, updated code:
    Code:java
    1. package me.BrushPainter.AmmoShop;
    2.  
    3. import java.util.ArrayList;
    4.  
    5. import net.milkbowl.vault.economy.Economy;
    6.  
    7. import org.bukkit.Bukkit;
    8. import org.bukkit.ChatColor;
    9. import org.bukkit.Material;
    10. import org.bukkit.entity.Player;
    11. import org.bukkit.event.EventHandler;
    12. import org.bukkit.event.Listener;
    13. import org.bukkit.event.block.Action;
    14. import org.bukkit.event.inventory.InventoryClickEvent;
    15. import org.bukkit.event.player.PlayerInteractEvent;
    16. import org.bukkit.inventory.Inventory;
    17. import org.bukkit.inventory.ItemStack;
    18. import org.bukkit.inventory.meta.ItemMeta;
    19. import org.bukkit.plugin.java.JavaPlugin;
    20.  
    21. public class Main extends JavaPlugin implements Listener {
    22.  
    23. public static Economy economy = null;
    24.  
    25. public void onEnable() {
    26.  
    27. Bukkit.getServer().getPluginManager().registerEvents(this, this);
    28.  
    29. newInventory();
    30.  
    31. getLogger().info("AmmoShop Enabled");
    32.  
    33. }
    34.  
    35. ItemStack sb16;
    36. ItemStack sb32;
    37. ItemStack cancel;
    38. ItemStack sb48;
    39. ItemStack sb64;
    40.  
    41. public Inventory ammoShop;
    42. public void newInventory() {
    43.  
    44. sb16 = new ItemStack(Material.SNOW_BALL, 16);
    45. ItemMeta imst = sb16.getItemMeta();
    46. imst.setDisplayName(ChatColor.GRAY + "" + ChatColor.BOLD + "16 Paintballs - $1");
    47. sb16.setItemMeta(imst);
    48.  
    49. sb32 = new ItemStack(Material.SNOW_BALL, 32);
    50. ItemMeta imtt = sb32.getItemMeta();
    51. imtt.setDisplayName(ChatColor.GRAY + "" + ChatColor.BOLD + "32 Paintballs - $2");
    52. sb32.setItemMeta(imtt);
    53.  
    54. ArrayList<String> lore1 = new ArrayList<String>();
    55. cancel = new ItemStack(Material.WOOL);
    56. ItemMeta im1 = cancel.getItemMeta();
    57. im1.setDisplayName(ChatColor.DARK_RED + "Close");
    58. lore1.add(ChatColor.DARK_GRAY + "Closes the ammo shop.");
    59. im1.setLore(lore1);
    60. cancel.setItemMeta(im1);
    61. cancel.setDurability((byte) 14);
    62.  
    63. sb48 = new ItemStack(Material.SNOW_BALL, 48);
    64. ItemMeta imfe = sb48.getItemMeta();
    65. imfe.setDisplayName(ChatColor.GRAY + "" + ChatColor.BOLD + "48 Paintballs - $3");
    66. sb48.setItemMeta(imfe);
    67.  
    68. sb64 = new ItemStack(Material.SNOW_BALL, 64);
    69. ItemMeta imsf = sb64.getItemMeta();
    70. imsf.setDisplayName(ChatColor.GRAY + "" + ChatColor.BOLD + "64 Paintballs - $4");
    71. sb64.setItemMeta(imsf);
    72.  
    73. AmmoShop.setItem(0, sb16);
    74. AmmoShop.setItem(1, sb32);
    75. AmmoShop.setItem(4, cancel);
    76. AmmoShop.setItem(7, sb48);
    77. AmmoShop.setItem(8, sb64);
    78.  
    79. }
    80.  
    81. public void onDisable() {
    82.  
    83. getLogger().info("AmmoShop Disabled");
    84.  
    85. }
    86.  
    87. public static Inventory AmmoShop = Bukkit.createInventory(null, 9, "PB Gun Shop");
    88.  
    89. @EventHandler
    90. public void onInventoryClick(InventoryClickEvent event) {
    91.  
    92. Player player = (Player) event.getWhoClicked();
    93. ItemStack clicked = event.getCurrentItem();
    94. Inventory inventory = event.getInventory();
    95.  
    96. AmmoShop.setItem(0,sb16);
    97. AmmoShop.setItem(1,sb32);
    98. AmmoShop.setItem(4,cancel);
    99. AmmoShop.setItem(7,sb48);
    100. AmmoShop.setItem(8,sb64);
    101.  
    102. if (inventory.getName().equals(AmmoShop.getName())) {
    103. if (clicked.getItemMeta().getDisplayName().equalsIgnoreCase(ChatColor.DARK_RED + "Close")) {
    104.  
    105. event.setCancelled(true);
    106. player.closeInventory();
    107.  
    108. }
    109.  
    110. if (clicked.getItemMeta().getDisplayName().equalsIgnoreCase(ChatColor.GRAY + "" + ChatColor.BOLD + "16 Paintballs - $1")) {
    111.  
    112. if(!economy.has(player.getName(), 1)) {
    113.  
    114. player.sendMessage(ChatColor.RED + "Sorry, you do not have enough money to buy paintballs!");
    115.  
    116. } else { economy.bankWithdraw(player.getName(), 1);
    117.  
    118. player.getInventory().addItem(sb16);
    119. event.setCancelled(true);
    120. player.closeInventory();
    121.  
    122. }
    123. }
    124.  
    125. if (clicked.getItemMeta().getDisplayName().equalsIgnoreCase(ChatColor.GRAY + "" + ChatColor.BOLD + "32 Paintballs - $2")) {
    126.  
    127. if(!economy.has(player.getName(), 2)) {
    128.  
    129. player.sendMessage(ChatColor.RED + "Sorry, you do not have enough money to buy paintballs!");
    130.  
    131. } else { economy.bankWithdraw(player.getName(), 2);
    132.  
    133. player.getInventory().addItem(sb32);
    134. event.setCancelled(true);
    135. player.closeInventory();
    136.  
    137. }
    138.  
    139. }
    140.  
    141. if (clicked.getItemMeta().getDisplayName().equalsIgnoreCase(ChatColor.GRAY + "" + ChatColor.BOLD + "48 Paintballs - $3")) {
    142.  
    143. if(!economy.has(player.getName(), 3)) {
    144.  
    145. player.sendMessage(ChatColor.RED + "Sorry, you do not have enough money to buy paintballs!");
    146.  
    147. } else { economy.bankWithdraw(player.getName(), 3);
    148.  
    149. player.getInventory().addItem(sb48);
    150. event.setCancelled(true);
    151. player.closeInventory();
    152. }
    153. }
    154.  
    155. if (clicked.getItemMeta().getDisplayName().equalsIgnoreCase(ChatColor.GRAY + "" + ChatColor.BOLD + "64 Paintballs - $4")) {
    156.  
    157. if(!economy.has(player.getName(), 4)) {
    158.  
    159. player.sendMessage(ChatColor.RED + "Sorry, you do not have enough money to buy paintballs!");
    160.  
    161. } else { economy.bankWithdraw(player.getName(), 3);
    162.  
    163. player.getInventory().addItem(sb64);
    164. event.setCancelled(true);
    165. player.closeInventory();
    166.  
    167. }
    168. }
    169. }
    170. }
    171. @EventHandler
    172. public void onInteract(final PlayerInteractEvent e) {
    173. Player p = e.getPlayer();
    174. ItemStack item = p.getItemInHand();
    175.  
    176. if(item.getType() == Material.SNOW) {
    177.  
    178. if(e.getAction() == Action.RIGHT_CLICK_AIR) {
    179.  
    180. p.openInventory(AmmoShop);
    181.  
    182. }
    183. }
    184. }
    185. }
     
  19. Offline

    Barinade

    Show a clean boot log file
     
Thread Status:
Not open for further replies.

Share This Page