[Not Solved!] Gui Null Error

Discussion in 'Plugin Development' started by PotatoLol12321, Nov 10, 2014.

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

    PotatoLol12321

    Null Error
    Code:
    16:23:03 [SEVERE] null
    org.bukkit.command.CommandException: Unhandled exception executing command 'kit'
    in plugin Kit v1
            at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46)
            at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:19
    2)
            at org.bukkit.craftbukkit.v1_6_R3.CraftServer.dispatchCommand(CraftServe
    r.java:528)
            at net.minecraft.server.v1_6_R3.PlayerConnection.handleCommand(PlayerCon
    nection.java:968)
            at net.minecraft.server.v1_6_R3.PlayerConnection.chat(PlayerConnection.j
    ava:886)
            at net.minecraft.server.v1_6_R3.PlayerConnection.a(PlayerConnection.java
    :837)
            at net.minecraft.server.v1_6_R3.Packet3Chat.handle(SourceFile:49)
            at net.minecraft.server.v1_6_R3.NetworkManager.b(NetworkManager.java:296
    )
            at net.minecraft.server.v1_6_R3.PlayerConnection.e(PlayerConnection.java
    :116)
            at net.minecraft.server.v1_6_R3.ServerConnection.b(SourceFile:37)
            at net.minecraft.server.v1_6_R3.DedicatedServerConnection.b(SourceFile:3
    0)
            at net.minecraft.server.v1_6_R3.MinecraftServer.t(MinecraftServer.java:5
    92)
            at net.minecraft.server.v1_6_R3.DedicatedServer.t(DedicatedServer.java:2
    27)
            at net.minecraft.server.v1_6_R3.MinecraftServer.s(MinecraftServer.java:4
    88)
            at net.minecraft.server.v1_6_R3.MinecraftServer.run(MinecraftServer.java
    :421)
            at net.minecraft.server.v1_6_R3.ThreadServerApplication.run(SourceFile:5
    83)
    Caused by: java.lang.NullPointerException
            at org.bukkit.craftbukkit.v1_6_R3.entity.CraftHumanEntity.openInventory(
    CraftHumanEntity.java:185)
            at potato.kits.Menu.show(Menu.java:243)
            at potato.kits.MenuInv.onCommand(MenuInv.java:36)
            at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44)
            ... 15 more
    Main class
    Code:java
    1. package potato.kits;
    2.  
    3. import org.bukkit.Bukkit;
    4. import org.bukkit.command.Command;
    5. import org.bukkit.command.CommandSender;
    6. import org.bukkit.configuration.file.FileConfiguration;
    7. import org.bukkit.entity.Player;
    8. import org.bukkit.event.Listener;
    9. import org.bukkit.plugin.PluginManager;
    10. import org.bukkit.plugin.java.JavaPlugin;
    11.  
    12. public class MenuInv extends JavaPlugin implements Listener {
    13.  
    14. private Menu menu;
    15. public static FileConfiguration config;
    16.  
    17. public void onEnable() {
    18. menu = new Menu(this);
    19. Bukkit.getServer().getPluginManager().registerEvents(this, this);
    20. config = getConfig();
    21. config.options().copyDefaults(true);
    22. saveConfig();
    23.  
    24. PluginManager pm = getServer().getPluginManager();
    25.  
    26. pm.registerEvents(new Menu(this), this);
    27. pm.registerEvents(new Menu(this), this);
    28. }
    29.  
    30. public boolean onCommand(CommandSender sender, Command cmd, String commandLablel, String[] args) {
    31. if(commandLablel.equalsIgnoreCase("kit")) {
    32. if(sender instanceof Player){
    33. Player player = (Player) sender;
    34. if(sender instanceof Player){
    35. menu.show(player);
    36. }
    37. }
    38. }
    39. return false;
    40. }
    41. }

    Listener Class
    Code:java
    1. package potato.kits;
    2.  
    3. import java.util.Arrays;
    4.  
    5. import org.bukkit.Bukkit;
    6. import org.bukkit.Material;
    7. import org.bukkit.entity.Player;
    8. import org.bukkit.event.EventHandler;
    9. import org.bukkit.event.Listener;
    10. import org.bukkit.event.inventory.InventoryClickEvent;
    11. import org.bukkit.inventory.Inventory;
    12. import org.bukkit.inventory.ItemStack;
    13. import org.bukkit.inventory.meta.ItemMeta;
    14. import org.bukkit.plugin.Plugin;
    15. import org.bukkit.ChatColor;
    16.  
    17.  
    18. public class Menu implements Listener {
    19.  
    20. public static String format(String format){
    21. return ChatColor.translateAlternateColorCodes('&', format);
    22. }
    23.  
    24. MenuInv plugin;
    25.  
    26. public Menu(MenuInv instance) {
    27. plugin = instance;
    28. }
    29.  
    30. private Inventory inv;
    31. private ItemStack a, b, c, d, e, f, g, h, i;
    32.  
    33. public Menu(Plugin p) {
    34.  
    35. inv = Bukkit.getServer().createInventory(null, 9, MenuInv.config.getString("GUIName").replaceAll("&", "§"));
    36. a = createItem(MenuInv.config.getString("Slot1.Item.Name").replaceAll("&", "§"), MenuInv.config.getInt("Slot1.Item.ID"), MenuInv.config.getString("Slot1.Item.Lore").replaceAll("&", "§"), MenuInv.config.getInt("Slot1.Item.DataValue"));
    37. b = createItem1(MenuInv.config.getString("Slot2.Item.Name").replaceAll("&", "§"), MenuInv.config.getInt("Slot2.Item.ID"), MenuInv.config.getString("Slot2.Item.Lore").replaceAll("&", "§"), MenuInv.config.getInt("Slot2.Item.DataValue"));
    38. c = createItem2(MenuInv.config.getString("Slot3.Item.Name").replaceAll("&", "§"), MenuInv.config.getInt("Slot3.Item.ID"), MenuInv.config.getString("Slot3.Item.Lore").replaceAll("&", "§"), MenuInv.config.getInt("Slot3.Item.DataValue"));
    39. d = createItem3(MenuInv.config.getString("Slot4.Item.Name").replaceAll("&", "§"), MenuInv.config.getInt("Slot4.Item.ID"), MenuInv.config.getString("Slot4.Item.Lore").replaceAll("&", "§"), MenuInv.config.getInt("Slot4.Item.DataValue"));
    40. e = createItem4(MenuInv.config.getString("Slot5.Item.Name").replaceAll("&", "§"), MenuInv.config.getInt("Slot5.Item.ID"), MenuInv.config.getString("Slot5.Item.Lore").replaceAll("&", "§"), MenuInv.config.getInt("Slot5.Item.DataValue"));
    41. f = createItem5(MenuInv.config.getString("Slot6.Item.Name").replaceAll("&", "§"), MenuInv.config.getInt("Slot6.Item.ID"), MenuInv.config.getString("Slot6.Item.Lore").replaceAll("&", "§"), MenuInv.config.getInt("Slot6.Item.DataValue"));
    42. g = createItem6(MenuInv.config.getString("Slot7.Item.Name").replaceAll("&", "§"), MenuInv.config.getInt("Slot7.Item.ID"), MenuInv.config.getString("Slot7.Item.Lore").replaceAll("&", "§"), MenuInv.config.getInt("Slot7.Item.DataValue"));
    43. h = createItem7(MenuInv.config.getString("Slot8.Item.Name").replaceAll("&", "§"), MenuInv.config.getInt("Slot8.Item.ID"), MenuInv.config.getString("Slot8.Item.Lore").replaceAll("&", "§"), MenuInv.config.getInt("Slot8.Item.DataValue"));
    44. i = createItem8(MenuInv.config.getString("Slot9.Item.Name").replaceAll("&", "§"), MenuInv.config.getInt("Slot9.Item.ID"), MenuInv.config.getString("Slot9.Item.Lore").replaceAll("&", "§"), MenuInv.config.getInt("Slot9.Item.DataValue"));
    45.  
    46. inv.setItem(0, a);
    47. inv.setItem(1, b);
    48. inv.setItem(2, c);
    49. inv.setItem(3, d);
    50. inv.setItem(4, e);
    51. inv.setItem(5, f);
    52. inv.setItem(6, g);
    53. inv.setItem(7, h);
    54. inv.setItem(8, i);
    55.  
    56.  
    57. Bukkit.getServer().getPluginManager().registerEvents(this, p);
    58. }
    59.  
    60. @SuppressWarnings("deprecation")
    61. private ItemStack createItem(String name, int id, String lore, int sh){
    62. ItemStack i = new ItemStack(Material.getMaterial(id), 1, (short) sh);
    63. ItemMeta im= i.getItemMeta();
    64. im.setDisplayName(name);
    65. im.setLore(Arrays.asList(lore));
    66. i.setItemMeta(im);
    67. return i;
    68. }
    69.  
    70. @SuppressWarnings("deprecation")
    71. private ItemStack createItem1(String name, int id, String lore, int sh){
    72. ItemStack i = new ItemStack(Material.getMaterial(id), 1, (short) sh);
    73. ItemMeta im= i.getItemMeta();
    74. im.setDisplayName(name);
    75. im.setLore(Arrays.asList(lore));
    76. i.setItemMeta(im);
    77. return i;
    78. }
    79.  
    80. private ItemStack createItem2(String name, int id, String lore, int sh){
    81. @SuppressWarnings("deprecation")
    82. ItemStack i = new ItemStack(Material.getMaterial(id), 1, (short) sh);
    83. ItemMeta im= i.getItemMeta();
    84. im.setDisplayName(name);
    85. im.setLore(Arrays.asList(lore));
    86. i.setItemMeta(im);
    87. return i;
    88. }
    89.  
    90. @SuppressWarnings("deprecation")
    91. private ItemStack createItem3(String name, int id, String lore, int sh){
    92. ItemStack i = new ItemStack(Material.getMaterial(id), 1, (short) sh);
    93. ItemMeta im= i.getItemMeta();
    94. im.setDisplayName(name);
    95. im.setLore(Arrays.asList(lore));
    96. i.setItemMeta(im);
    97. return i;
    98. }
    99.  
    100. @SuppressWarnings("deprecation")
    101. private ItemStack createItem4(String name, int id, String lore, int sh){
    102. ItemStack i = new ItemStack(Material.getMaterial(id), 1, (short) sh);
    103. ItemMeta im= i.getItemMeta();
    104. im.setDisplayName(name);
    105. im.setLore(Arrays.asList(lore));
    106. i.setItemMeta(im);
    107. return i;
    108. }
    109.  
    110. private ItemStack createItem5(String name, int id, String lore, int sh){
    111. @SuppressWarnings("deprecation")
    112. ItemStack i = new ItemStack(Material.getMaterial(id), 1, (short) sh);
    113. ItemMeta im= i.getItemMeta();
    114. im.setDisplayName(name);
    115. im.setLore(Arrays.asList(lore));
    116. i.setItemMeta(im);
    117. return i;
    118. }
    119.  
    120. @SuppressWarnings("deprecation")
    121. private ItemStack createItem6(String name, int id, String lore, int sh){
    122. ItemStack i = new ItemStack(Material.getMaterial(id), 1, (short) sh);
    123. ItemMeta im= i.getItemMeta();
    124. im.setDisplayName(name);
    125. im.setLore(Arrays.asList(lore));
    126. i.setItemMeta(im);
    127. return i;
    128. }
    129.  
    130. @SuppressWarnings("deprecation")
    131. private ItemStack createItem7(String name, int id, String lore, int sh){
    132. ItemStack i = new ItemStack(Material.getMaterial(id), 1, (short) sh);
    133. ItemMeta im= i.getItemMeta();
    134. im.setDisplayName(name);
    135. im.setLore(Arrays.asList(lore));
    136. i.setItemMeta(im);
    137. return i;
    138. }
    139.  
    140. @SuppressWarnings("deprecation")
    141. private ItemStack createItem8(String name, int id, String lore, int sh){
    142. ItemStack i = new ItemStack(Material.getMaterial(id), 1, (short) sh);
    143. ItemMeta im= i.getItemMeta();
    144. im.setDisplayName(name);
    145. im.setLore(Arrays.asList(lore));
    146. i.setItemMeta(im);
    147. return i;
    148. }
    149.  
    150. @EventHandler
    151. public void onInventoryClick(InventoryClickEvent e) {
    152. if (!e.getInventory().getName().equalsIgnoreCase(inv.getName())) return;
    153. Player player = (Player) e.getWhoClicked();
    154. if (e.getCurrentItem().hasItemMeta()) {
    155. if (e.getCurrentItem().getItemMeta().getDisplayName().matches(MenuInv.config.getString("Slot1.Item.Name").replaceAll("&", "§"))) {
    156. if(player.hasPermission("essentials.kits." + MenuInv.config.getString("Slot1.Item.Kit"))){
    157. Bukkit.dispatchCommand(player, "kits " + MenuInv.config.getString("Slot1.Item.Kit"));
    158. player.closeInventory();
    159. e.setCancelled(true);
    160. } else {
    161. player.sendMessage(MenuInv.config.getString("Slot1.Item.DenyMessage").replaceAll("&", "§"));
    162. e.setCancelled(true);
    163. }
    164. }
    165. if (e.getCurrentItem().getItemMeta().getDisplayName().matches(MenuInv.config.getString("Slot2.Item.Name").replaceAll("&", "§"))) {
    166. if(player.hasPermission("essentials.kits." + MenuInv.config.getString("Slot2.Item.Kit"))){
    167. Bukkit.dispatchCommand(player, "kits " + MenuInv.config.getString("Slot2.Item.Kit"));
    168. player.closeInventory();
    169. e.setCancelled(true);
    170. } else {
    171. player.sendMessage(MenuInv.config.getString("Slot2.Item.DenyMessage").replaceAll("&", "§"));
    172. e.setCancelled(true);
    173. }
    174. }
    175. if (e.getCurrentItem().getItemMeta().getDisplayName().matches(MenuInv.config.getString("Slot3.Item.Name").replaceAll("&", "§"))) {
    176. if(player.hasPermission("essentials.kits." + MenuInv.config.getString("Slot3.Item.Kit"))) {
    177. Bukkit.dispatchCommand(player, "kits " + MenuInv.config.getString("Slot3.Item.Kit"));
    178. player.closeInventory();
    179. e.setCancelled(true);
    180. } else {
    181. player.sendMessage(MenuInv.config.getString("Slot3.Item.DenyMessage").replaceAll("&", "§"));
    182. e.setCancelled(true);
    183. }
    184. }
    185. if (e.getCurrentItem().getItemMeta().getDisplayName().matches(MenuInv.config.getString("Slot4.Item.Name").replaceAll("&", "§"))) {
    186. if (player.hasPermission("essentials.kits." + MenuInv.config.getString("Slot4.Item.Kit"))) {
    187. Bukkit.dispatchCommand(player, "kits " + MenuInv.config.getString("Slot4.Item.Kit"));
    188. player.closeInventory();
    189. e.setCancelled(true);
    190. } else {
    191. player.sendMessage(MenuInv.config.getString("Slot4.Item.DenyMessage").replaceAll("&", "§"));
    192. e.setCancelled(true);
    193. }
    194. }
    195. if (e.getCurrentItem().getItemMeta().getDisplayName().matches(MenuInv.config.getString("Slot5.Item.Name").replaceAll("&", "§"))) {
    196. if (player.hasPermission("essentials.kits." + MenuInv.config.getString("Slot5.Item.Kit"))) {
    197. Bukkit.dispatchCommand(player, "kits " + MenuInv.config.getString("Slot5.Item.Kit"));
    198. player.closeInventory();
    199. e.setCancelled(true);
    200. } else {
    201. player.sendMessage(MenuInv.config.getString("Slot5.Item.DenyMessage").replaceAll("&", "§"));
    202. e.setCancelled(true);
    203. }
    204. }
    205. if (e.getCurrentItem().getItemMeta().getDisplayName().matches(MenuInv.config.getString("Slot6.Item.Name").replaceAll("&", "§"))) {
    206. if (player.hasPermission("essentials.kits." + MenuInv.config.getString("Slot6.Item.Kit"))) {
    207. player.performCommand("kits " + MenuInv.config.getString("Slot6.Item.Kit"));
    208. e.setCancelled(true);
    209. player.closeInventory();
    210. } else {
    211. player.sendMessage(MenuInv.config.getString("Slot6.Item.DenyMessage").replaceAll("&", "§"));
    212. e.setCancelled(true);
    213. }
    214. }
    215. if (e.getCurrentItem().getItemMeta().getDisplayName().matches(MenuInv.config.getString("Slot7.Item.Name").replaceAll("&", "§"))) {
    216. if (player.hasPermission("essentials.kits." + MenuInv.config.getString("Slot7.Item.Kit"))) {
    217. Bukkit.dispatchCommand(player, "kits " + MenuInv.config.getString("Slot7.Item.Kit"));
    218. player.closeInventory();
    219. e.setCancelled(true);
    220. } else {
    221. player.sendMessage(MenuInv.config.getString("Slot7.Item.DenyMessage").replaceAll("&", "§"));
    222. e.setCancelled(true);
    223. }
    224. }
    225. if (e.getCurrentItem().getItemMeta().getDisplayName().matches(MenuInv.config.getString("Slot8.Item.Name"))) {
    226. if (player.hasPermission("essentials.kits." + MenuInv.config.getString("Slot8.Item.Kit"))) {
    227. Bukkit.dispatchCommand(player, "kits " + MenuInv.config.getString("Slot8.Item.Kit"));
    228. player.closeInventory();
    229. e.setCancelled(true);
    230. } else {
    231. player.sendMessage(MenuInv.config.getString("Slot8.Item.DenyMessage"));
    232. e.setCancelled(true);
    233. }
    234. }
    235. if (e.getCurrentItem().getItemMeta().getDisplayName().matches(MenuInv.config.getString("Slot9.Item.Name").replaceAll("&", "§"))) {
    236. player.closeInventory();
    237. e.setCancelled(true);
    238. }
    239. }
    240. }
    241.  
    242. public void show(Player p) {
    243. p.openInventory(inv);
    244. }
    245. }

    Config.yml
    Code:
    GUIName: "&bKit Selector"
    Slot1:
      Item:
        Name: "Test"
        ID: 1
        DataValue: 0
        Lore: "Test"
        Kit: "Kit"
        DenyMessage: "You must be vip"
    Slot2:
      Item:
        Name: "Test"
        ID: 2
        DataValue: 0
        Lore: "Test"
        Kit: "Kit"
        DenyMessage: "You must be vip"
    Slot3:
      Item:
        Name: "Test"
        ID: 3
        DataValue: 0
        Lore: "Test"
        Kit: "Kit"
        DenyMessage: "You must be vip"
    Slot4:
      Item:
        Name: "Test"
        ID: 4
        DataValue: 0
        Lore: "Test"
        Kit: "Kit"
        DenyMessage: "You must be vip"
    Slot5:
      Item:
        Name: "Test"
        ID: 5
        DataValue: 0
        Lore: "Test"
        Kit: "Kit"
        DenyMessage: "You must be vip"
    Slot6:
      Item:
        Name: "Test"
        ID: 6
        DataValue: 0
        Lore: "Test"
        Kit: "Kit"
        DenyMessage: "You must be vip"
    Slot7:
      Item:
        Name: "Test"
        ID: 7
        DataValue: 0
        Lore: "Test"
        Kit: "Kit"
        DenyMessage: "You must be vip"
    Slot8:
      Item:
        Name: "Test"
        ID: 8
        DataValue: 0
        Lore: "Test"
        Kit: "Kit"
        DenyMessage: "You must be vip"
    #---------------------#
    #  Close the Gui    #
    #---------------------#
    Slot9:
      Item:
        Name: "Exit"
        ID: 9
        DataValue: 0
        Lore: "Close the Gui"
    Plugin.yml
    Code:
    name: Kit
    main: potato.kits.MenuInv
    version: 1
    description:
    Kits
    commands:
    Kit:
      description: Kit Selector
     
  2. Offline

    teej107

  3. Offline

    PotatoLol12321

    teej107 I know how to read it, it goes to the open inv and menu show, but I don't know whats null about the Inv
     
  4. Offline

    tangster132

    Which line gives you the exception?
     
  5. Offline

    PotatoLol12321

    tangster132 " at potato.kits.Menu.show(Menu.java:243) "

    tangster132 which is just p.openInventory(inv);

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

    Rocoty

    PotatoLol12321 There is nothing null about the inventory, because there is no inventory. That is to say, the variable inv is pointing to null i.e. is a null pointer.
     
  7. Offline

    tangster132

    I can't tell from the code lol. Just check whenever you call your show() method if anything could be null.
     
  8. Offline

    PotatoLol12321

    tangster132 I'm not sure what's making it null, it works when I don't pull the strings from the config, but when I print out the strings, it's the ones from the config, but it's not creating the inventory I guess... not sure what I'm doing wrong.
     
  9. In the listener class, Try removing the null part from creating the inv, Might fix the "null" exception

    Code:java
    1. if(sender instanceof Player){
    2. Player player = (Player) sender;
    3. if(sender instanceof Player){
    4. menu.show(player);
    5. }
    6. }


    Change that to this:
    Code:java
    1. if(sender instanceof Player){
    2. Player player = (Player) sender;
    3. menu.show(player);
    4. }


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

    PotatoLol12321

  11. Offline

    Dudemister1999

    PotatoLol12321 <cough> null checks for the config </cough> Sorry, not feeling too well. Think I'm coming down with Sarcasm Syndrome.
     
    mythbusterma likes this.
  12. Offline

    PotatoLol12321

    Dudemister1999 alright, it's printing twice, that's the issue.

    Thanks for the help everyone, i was double registering.

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

    Dudemister1999

  14. Offline

    PotatoLol12321

    Dudemister1999 Wait, its still giving me an error, its only printing once though which is good.

    Code:
    19:28:14 [SEVERE] null
    org.bukkit.command.CommandException: Unhandled exception executing command 'kit'
    in plugin Kit v1
            at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46)
            at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:19
    2)
            at org.bukkit.craftbukkit.v1_6_R3.CraftServer.dispatchCommand(CraftServe
    r.java:528)
            at net.minecraft.server.v1_6_R3.PlayerConnection.handleCommand(PlayerCon
    nection.java:968)
            at net.minecraft.server.v1_6_R3.PlayerConnection.chat(PlayerConnection.j
    ava:886)
            at net.minecraft.server.v1_6_R3.PlayerConnection.a(PlayerConnection.java
    :837)
            at net.minecraft.server.v1_6_R3.Packet3Chat.handle(SourceFile:49)
            at net.minecraft.server.v1_6_R3.NetworkManager.b(NetworkManager.java:296
    )
            at net.minecraft.server.v1_6_R3.PlayerConnection.e(PlayerConnection.java
    :116)
            at net.minecraft.server.v1_6_R3.ServerConnection.b(SourceFile:37)
            at net.minecraft.server.v1_6_R3.DedicatedServerConnection.b(SourceFile:3
    0)
            at net.minecraft.server.v1_6_R3.MinecraftServer.t(MinecraftServer.java:5
    92)
            at net.minecraft.server.v1_6_R3.DedicatedServer.t(DedicatedServer.java:2
    27)
            at net.minecraft.server.v1_6_R3.MinecraftServer.s(MinecraftServer.java:4
    88)
            at net.minecraft.server.v1_6_R3.MinecraftServer.run(MinecraftServer.java
    :421)
            at net.minecraft.server.v1_6_R3.ThreadServerApplication.run(SourceFile:5
    83)
    Caused by: java.lang.NullPointerException
            at org.bukkit.craftbukkit.v1_6_R3.entity.CraftHumanEntity.openInventory(
    CraftHumanEntity.java:185)
            at potato.kits.Menu.show(Menu.java:152)
            at potato.kits.MenuInv.onCommand(MenuInv.java:32)
            at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44)
            ... 15 more
     
  15. Offline

    Dudemister1999

    PotatoLol12321 Can I see line 152 of Menu? I know you posted your code, but the numbering could be off.

    EDIT: And you really do not need createItem, createItem2, createItem3..., just call createItem as many times as you need :/
     
  16. Offline

    PotatoLol12321

  17. Offline

    Dudemister1999

    PotatoLol12321 Really? Because in your original post, it's this:
    Code:java
    1.  
    2. if (!e.getInventory().getName().equalsIgnoreCase(inv.getName())) return;
    3.  
     
  18. Offline

    PotatoLol12321

    Dudemister1999 Yeah that's 152, the error is now :

    Code:
    19:46:47 [SEVERE] null
    org.bukkit.command.CommandException: Unhandled exception executing command 'kit'
    in plugin Kit v1
            at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46)
            at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:19
    2)
            at org.bukkit.craftbukkit.v1_6_R3.CraftServer.dispatchCommand(CraftServe
    r.java:528)
            at net.minecraft.server.v1_6_R3.PlayerConnection.handleCommand(PlayerCon
    nection.java:968)
            at net.minecraft.server.v1_6_R3.PlayerConnection.chat(PlayerConnection.j
    ava:886)
            at net.minecraft.server.v1_6_R3.PlayerConnection.a(PlayerConnection.java
    :837)
            at net.minecraft.server.v1_6_R3.Packet3Chat.handle(SourceFile:49)
            at net.minecraft.server.v1_6_R3.NetworkManager.b(NetworkManager.java:296
    )
            at net.minecraft.server.v1_6_R3.PlayerConnection.e(PlayerConnection.java
    :116)
            at net.minecraft.server.v1_6_R3.ServerConnection.b(SourceFile:37)
            at net.minecraft.server.v1_6_R3.DedicatedServerConnection.b(SourceFile:3
    0)
            at net.minecraft.server.v1_6_R3.MinecraftServer.t(MinecraftServer.java:5
    92)
            at net.minecraft.server.v1_6_R3.DedicatedServer.t(DedicatedServer.java:2
    27)
            at net.minecraft.server.v1_6_R3.MinecraftServer.s(MinecraftServer.java:4
    88)
            at net.minecraft.server.v1_6_R3.MinecraftServer.run(MinecraftServer.java
    :421)
            at net.minecraft.server.v1_6_R3.ThreadServerApplication.run(SourceFile:5
    83)
    Caused by: java.lang.NullPointerException
            at org.bukkit.craftbukkit.v1_6_R3.entity.CraftHumanEntity.openInventory(
    CraftHumanEntity.java:185)
            at potato.kits.Menu.show(Menu.java:147)
            at potato.kits.MenuInv.onCommand(MenuInv.java:32)
            at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44)
            ... 15 more
    So the thing i pasted was the old one i think now it is on 147 sorry about that
     
  19. Offline

    Dudemister1999

    PotatoLol12321 That's fine. Thanks for showing me the new one, because I would've said inv.getName() is null. :p

    As for your error, I think the code in the OP is different than your current code. Could you post the new code (Main plugin & listener).
     
  20. Offline

    PotatoLol12321

    Dudemister1999
    Main
    Code:java
    1. package potato.kits;
    2.  
    3. import org.bukkit.Bukkit;
    4. import org.bukkit.command.Command;
    5. import org.bukkit.command.CommandSender;
    6. import org.bukkit.configuration.file.FileConfiguration;
    7. import org.bukkit.entity.Player;
    8. import org.bukkit.event.Listener;
    9. import org.bukkit.plugin.PluginManager;
    10. import org.bukkit.plugin.java.JavaPlugin;
    11.  
    12. public class MenuInv extends JavaPlugin implements Listener {
    13.  
    14. private Menu menu;
    15. public static FileConfiguration config;
    16.  
    17. public void onEnable() {
    18. menu = new Menu(this);
    19. Bukkit.getServer().getPluginManager().registerEvents(this, this);
    20. config = getConfig();
    21. this.saveDefaultConfig();
    22.  
    23. PluginManager pm = getServer().getPluginManager();
    24.  
    25. pm.registerEvents(new Menu(this), this);
    26. }
    27.  
    28. public boolean onCommand(CommandSender sender, Command cmd, String commandLablel, String[] args) {
    29. if(commandLablel.equalsIgnoreCase("kit")) {
    30. if(sender instanceof Player){
    31. Player player = (Player) sender;
    32. menu.show(player);
    33. }
    34. }
    35. return false;
    36. }
    37. }

    Listener
    Code:java
    1. package potato.kits;
    2.  
    3. import java.util.Arrays;
    4.  
    5. import org.bukkit.Bukkit;
    6. import org.bukkit.Material;
    7. import org.bukkit.entity.Player;
    8. import org.bukkit.event.EventHandler;
    9. import org.bukkit.event.Listener;
    10. import org.bukkit.event.inventory.InventoryClickEvent;
    11. import org.bukkit.event.player.PlayerJoinEvent;
    12. import org.bukkit.inventory.Inventory;
    13. import org.bukkit.inventory.ItemStack;
    14. import org.bukkit.inventory.meta.ItemMeta;
    15. import org.bukkit.plugin.Plugin;
    16.  
    17.  
    18. public class Menu implements Listener {
    19.  
    20. MenuInv plugin;
    21.  
    22. public Menu(MenuInv instance) {
    23. plugin = instance;
    24. }
    25.  
    26. private Inventory inv;
    27. private ItemStack a, b, c, d, e, f, g, h, i;
    28.  
    29. public Menu(Plugin p) {
    30.  
    31. inv = Bukkit.getServer().createInventory(null, 9, MenuInv.config.getString("GUIName").replace('&', '§'));
    32. a = createItem(MenuInv.config.getString("Slot1.Item.Name").replace('&', '§'), MenuInv.config.getInt("Slot1.Item.ID"), MenuInv.config.getString("Slot1.Item.Lore").replace('&', '§'), MenuInv.config.getInt("Slot1.Item.DataValue"));
    33. b = createItem1(MenuInv.config.getString("Slot2.Item.Name").replace('&', '§'), MenuInv.config.getInt("Slot2.Item.ID"), MenuInv.config.getString("Slot2.Item.Lore").replace('&', '§'), MenuInv.config.getInt("Slot2.Item.DataValue"));
    34. c = createItem2(MenuInv.config.getString("Slot3.Item.Name").replace('&', '§'), MenuInv.config.getInt("Slot3.Item.ID"), MenuInv.config.getString("Slot3.Item.Lore").replace('&', '§'), MenuInv.config.getInt("Slot3.Item.DataValue"));
    35. d = createItem3(MenuInv.config.getString("Slot4.Item.Name").replace('&', '§'), MenuInv.config.getInt("Slot4.Item.ID"), MenuInv.config.getString("Slot4.Item.Lore").replace('&', '§'), MenuInv.config.getInt("Slot4.Item.DataValue"));
    36. e = createItem4(MenuInv.config.getString("Slot5.Item.Name").replace('&', '§'), MenuInv.config.getInt("Slot5.Item.ID"), MenuInv.config.getString("Slot5.Item.Lore").replace('&', '§'), MenuInv.config.getInt("Slot5.Item.DataValue"));
    37. f = createItem5(MenuInv.config.getString("Slot6.Item.Name").replace('&', '§'), MenuInv.config.getInt("Slot6.Item.ID"), MenuInv.config.getString("Slot6.Item.Lore").replace('&', '§'), MenuInv.config.getInt("Slot6.Item.DataValue"));
    38. g = createItem6(MenuInv.config.getString("Slot7.Item.Name").replace('&', '§'), MenuInv.config.getInt("Slot7.Item.ID"), MenuInv.config.getString("Slot7.Item.Lore").replace('&', '§'), MenuInv.config.getInt("Slot7.Item.DataValue"));
    39. h = createItem7(MenuInv.config.getString("Slot8.Item.Name").replace('&', '§'), MenuInv.config.getInt("Slot8.Item.ID"), MenuInv.config.getString("Slot8.Item.Lore").replace('&', '§'), MenuInv.config.getInt("Slot8.Item.DataValue"));
    40. i = createItem8(MenuInv.config.getString("Slot9.Item.Name").replace('&', '§'), MenuInv.config.getInt("Slot9.Item.ID"), MenuInv.config.getString("Slot9.Item.Lore").replace('&', '§'), MenuInv.config.getInt("Slot9.Item.DataValue"));
    41.  
    42. inv.setItem(0, a);
    43. inv.setItem(1, b);
    44. inv.setItem(2, c);
    45. inv.setItem(3, d);
    46. inv.setItem(4, e);
    47. inv.setItem(5, f);
    48. inv.setItem(6, g);
    49. inv.setItem(7, h);
    50. inv.setItem(8, i);
    51.  
    52.  
    53. Bukkit.getServer().getPluginManager().registerEvents(this, p);
    54. }
    55.  
    56. @SuppressWarnings("deprecation")
    57. private ItemStack createItem(String name, int id, String lore, int sh){
    58. ItemStack i = new ItemStack(Material.getMaterial(id), 1, (short) sh);
    59. ItemMeta im= i.getItemMeta();
    60. im.setDisplayName(name);
    61. im.setLore(Arrays.asList(lore));
    62. i.setItemMeta(im);
    63. return i;
    64. }
    65.  
    66. @SuppressWarnings("deprecation")
    67. private ItemStack createItem1(String name, int id, String lore, int sh){
    68. ItemStack i = new ItemStack(Material.getMaterial(id), 1, (short) sh);
    69. ItemMeta im= i.getItemMeta();
    70. im.setDisplayName(name);
    71. im.setLore(Arrays.asList(lore));
    72. i.setItemMeta(im);
    73. return i;
    74. }
    75.  
    76. private ItemStack createItem2(String name, int id, String lore, int sh){
    77. @SuppressWarnings("deprecation")
    78. ItemStack i = new ItemStack(Material.getMaterial(id), 1, (short) sh);
    79. ItemMeta im= i.getItemMeta();
    80. im.setDisplayName(name);
    81. im.setLore(Arrays.asList(lore));
    82. i.setItemMeta(im);
    83. return i;
    84. }
    85.  
    86. @SuppressWarnings("deprecation")
    87. private ItemStack createItem3(String name, int id, String lore, int sh){
    88. ItemStack i = new ItemStack(Material.getMaterial(id), 1, (short) sh);
    89. ItemMeta im= i.getItemMeta();
    90. im.setDisplayName(name);
    91. im.setLore(Arrays.asList(lore));
    92. i.setItemMeta(im);
    93. return i;
    94. }
    95.  
    96. @SuppressWarnings("deprecation")
    97. private ItemStack createItem4(String name, int id, String lore, int sh){
    98. ItemStack i = new ItemStack(Material.getMaterial(id), 1, (short) sh);
    99. ItemMeta im= i.getItemMeta();
    100. im.setDisplayName(name);
    101. im.setLore(Arrays.asList(lore));
    102. i.setItemMeta(im);
    103. return i;
    104. }
    105.  
    106. private ItemStack createItem5(String name, int id, String lore, int sh){
    107. @SuppressWarnings("deprecation")
    108. ItemStack i = new ItemStack(Material.getMaterial(id), 1, (short) sh);
    109. ItemMeta im= i.getItemMeta();
    110. im.setDisplayName(name);
    111. im.setLore(Arrays.asList(lore));
    112. i.setItemMeta(im);
    113. return i;
    114. }
    115.  
    116. @SuppressWarnings("deprecation")
    117. private ItemStack createItem6(String name, int id, String lore, int sh){
    118. ItemStack i = new ItemStack(Material.getMaterial(id), 1, (short) sh);
    119. ItemMeta im= i.getItemMeta();
    120. im.setDisplayName(name);
    121. im.setLore(Arrays.asList(lore));
    122. i.setItemMeta(im);
    123. return i;
    124. }
    125.  
    126. @SuppressWarnings("deprecation")
    127. private ItemStack createItem7(String name, int id, String lore, int sh){
    128. ItemStack i = new ItemStack(Material.getMaterial(id), 1, (short) sh);
    129. ItemMeta im= i.getItemMeta();
    130. im.setDisplayName(name);
    131. im.setLore(Arrays.asList(lore));
    132. i.setItemMeta(im);
    133. return i;
    134. }
    135.  
    136. @SuppressWarnings("deprecation")
    137. private ItemStack createItem8(String name, int id, String lore, int sh){
    138. ItemStack i = new ItemStack(Material.getMaterial(id), 1, (short) sh);
    139. ItemMeta im= i.getItemMeta();
    140. im.setDisplayName(name);
    141. im.setLore(Arrays.asList(lore));
    142. i.setItemMeta(im);
    143. return i;
    144. }
    145.  
    146. public void show(Player p) {
    147. p.openInventory(inv);
    148. }
    149.  
    150. @EventHandler
    151. public void onInventoryClick(InventoryClickEvent e) {
    152. if (!e.getInventory().getName().equalsIgnoreCase(inv.getName())) return;
    153. Player player = (Player) e.getWhoClicked();
    154. if (e.getCurrentItem().hasItemMeta()) {
    155. if (e.getCurrentItem().getItemMeta().getDisplayName().matches(MenuInv.config.getString("Slot1.Item.Name").replace('&', '§'))) {
    156. if(player.hasPermission("essentials.kits." + MenuInv.config.getString("Slot1.Item.Kit"))){
    157. Bukkit.dispatchCommand(player, "kits " + MenuInv.config.getString("Slot1.Item.Kit"));
    158. player.closeInventory();
    159. e.setCancelled(true);
    160. } else {
    161. player.sendMessage(MenuInv.config.getString("Slot1.Item.DenyMessage").replace('&', '§'));
    162. e.setCancelled(true);
    163. }
    164. }
    165. if (e.getCurrentItem().getItemMeta().getDisplayName().matches(MenuInv.config.getString("Slot2.Item.Name").replace('&', '§'))) {
    166. if(player.hasPermission("essentials.kits." + MenuInv.config.getString("Slot2.Item.Kit"))){
    167. Bukkit.dispatchCommand(player, "kits " + MenuInv.config.getString("Slot2.Item.Kit"));
    168. player.closeInventory();
    169. e.setCancelled(true);
    170. } else {
    171. player.sendMessage(MenuInv.config.getString("Slot2.Item.DenyMessage").replace('&', '§'));
    172. e.setCancelled(true);
    173. }
    174. }
    175. if (e.getCurrentItem().getItemMeta().getDisplayName().matches(MenuInv.config.getString("Slot3.Item.Name").replace('&', '§'))) {
    176. if(player.hasPermission("essentials.kits." + MenuInv.config.getString("Slot3.Item.Kit"))) {
    177. Bukkit.dispatchCommand(player, "kits " + MenuInv.config.getString("Slot3.Item.Kit"));
    178. player.closeInventory();
    179. e.setCancelled(true);
    180. } else {
    181. player.sendMessage(MenuInv.config.getString("Slot3.Item.DenyMessage").replace('&', '§'));
    182. e.setCancelled(true);
    183. }
    184. }
    185. if (e.getCurrentItem().getItemMeta().getDisplayName().matches(MenuInv.config.getString("Slot4.Item.Name").replace('&', '§'))) {
    186. if (player.hasPermission("essentials.kits." + MenuInv.config.getString("Slot4.Item.Kit"))) {
    187. Bukkit.dispatchCommand(player, "kits " + MenuInv.config.getString("Slot4.Item.Kit"));
    188. player.closeInventory();
    189. e.setCancelled(true);
    190. } else {
    191. player.sendMessage(MenuInv.config.getString("Slot4.Item.DenyMessage").replace('&', '§'));
    192. e.setCancelled(true);
    193. }
    194. }
    195. if (e.getCurrentItem().getItemMeta().getDisplayName().matches(MenuInv.config.getString("Slot5.Item.Name").replace('&', '§'))) {
    196. if (player.hasPermission("essentials.kits." + MenuInv.config.getString("Slot5.Item.Kit"))) {
    197. Bukkit.dispatchCommand(player, "kits " + MenuInv.config.getString("Slot5.Item.Kit"));
    198. player.closeInventory();
    199. e.setCancelled(true);
    200. } else {
    201. player.sendMessage(MenuInv.config.getString("Slot5.Item.DenyMessage").replace('&', '§'));
    202. e.setCancelled(true);
    203. }
    204. }
    205. if (e.getCurrentItem().getItemMeta().getDisplayName().matches(MenuInv.config.getString("Slot6.Item.Name").replace('&', '§'))) {
    206. if (player.hasPermission("essentials.kits." + MenuInv.config.getString("Slot6.Item.Kit"))) {
    207. player.performCommand("kits " + MenuInv.config.getString("Slot6.Item.Kit"));
    208. e.setCancelled(true);
    209. player.closeInventory();
    210. } else {
    211. player.sendMessage(MenuInv.config.getString("Slot6.Item.DenyMessage").replace('&', '§'));
    212. e.setCancelled(true);
    213. }
    214. }
    215. if (e.getCurrentItem().getItemMeta().getDisplayName().matches(MenuInv.config.getString("Slot7.Item.Name").replace('&', '§'))) {
    216. if (player.hasPermission("essentials.kits." + MenuInv.config.getString("Slot7.Item.Kit"))) {
    217. Bukkit.dispatchCommand(player, "kits " + MenuInv.config.getString("Slot7.Item.Kit"));
    218. player.closeInventory();
    219. e.setCancelled(true);
    220. } else {
    221. player.sendMessage(MenuInv.config.getString("Slot7.Item.DenyMessage").replace('&', '§'));
    222. e.setCancelled(true);
    223. }
    224. }
    225. if (e.getCurrentItem().getItemMeta().getDisplayName().matches(MenuInv.config.getString("Slot8.Item.Name"))) {
    226. if (player.hasPermission("essentials.kits." + MenuInv.config.getString("Slot8.Item.Kit"))) {
    227. Bukkit.dispatchCommand(player, "kits " + MenuInv.config.getString("Slot8.Item.Kit"));
    228. player.closeInventory();
    229. e.setCancelled(true);
    230. } else {
    231. player.sendMessage(MenuInv.config.getString("Slot8.Item.DenyMessage"));
    232. e.setCancelled(true);
    233. }
    234. }
    235. if (e.getCurrentItem().getItemMeta().getDisplayName().matches(MenuInv.config.getString("Slot9.Item.Name").replace('&', '§'))) {
    236. player.closeInventory();
    237. e.setCancelled(true);
    238. }
    239. }
    240. }
    241.  
    242. @EventHandler
    243. public void onPlayerJoin(PlayerJoinEvent e) {
    244. Player player = e.getPlayer();
    245. player.sendMessage(MenuInv.config.getString("Slot1.Item.Name"));
    246. player.sendMessage(MenuInv.config.getInt("Slot1.Item.ID") + "");
    247. player.sendMessage(MenuInv.config.getInt("Slot1.Item.DataValue") + "");
    248. player.sendMessage(MenuInv.config.getString("Slot1.Item.Lore"));
    249. player.sendMessage(MenuInv.config.getString("Slot1.Item.Kit"));
    250. player.sendMessage(MenuInv.config.getString("Slot1.Item.DenyMessage"));
    251. }
    252. }
     
  21. Offline

    es359

    PotatoLol12321
    Why do you keep redefining the same method....? That makes no sense... Create one method and just use that one.
     
  22. Offline

    PotatoLol12321

    es359 Yeah I know, I'm gonna fix that up after I fix this.
     
  23. Offline

    es359

    Fix it first. It will make your code a lot cleaner and easier to read.
     
  24. Offline

    PotatoLol12321

    es359 Dudemister1999

    Listener
    Code:java
    1. package potato.kits;
    2.  
    3. import java.util.Arrays;
    4.  
    5. import org.bukkit.Bukkit;
    6. import org.bukkit.Material;
    7. import org.bukkit.entity.Player;
    8. import org.bukkit.event.EventHandler;
    9. import org.bukkit.event.Listener;
    10. import org.bukkit.event.inventory.InventoryClickEvent;
    11. import org.bukkit.event.player.PlayerJoinEvent;
    12. import org.bukkit.inventory.Inventory;
    13. import org.bukkit.inventory.ItemStack;
    14. import org.bukkit.inventory.meta.ItemMeta;
    15. import org.bukkit.plugin.Plugin;
    16.  
    17.  
    18. public class Menu implements Listener {
    19.  
    20. MenuInv plugin;
    21.  
    22. public Menu(MenuInv instance) {
    23. plugin = instance;
    24. }
    25.  
    26. private Inventory inv;
    27. private ItemStack a, b, c, d, e, f, g, h, i;
    28.  
    29. public Menu(Plugin p) {
    30.  
    31. inv = Bukkit.getServer().createInventory(null, 9, MenuInv.config.getString("GUIName").replace('&', '§'));
    32. a = createItem(MenuInv.config.getString("Slot1.Item.Name").replace('&', '§'), MenuInv.config.getInt("Slot1.Item.ID"), MenuInv.config.getString("Slot1.Item.Lore").replace('&', '§'), MenuInv.config.getInt("Slot1.Item.DataValue"));
    33. b = createItem(MenuInv.config.getString("Slot2.Item.Name").replace('&', '§'), MenuInv.config.getInt("Slot2.Item.ID"), MenuInv.config.getString("Slot2.Item.Lore").replace('&', '§'), MenuInv.config.getInt("Slot2.Item.DataValue"));
    34. c = createItem(MenuInv.config.getString("Slot3.Item.Name").replace('&', '§'), MenuInv.config.getInt("Slot3.Item.ID"), MenuInv.config.getString("Slot3.Item.Lore").replace('&', '§'), MenuInv.config.getInt("Slot3.Item.DataValue"));
    35. d = createItem(MenuInv.config.getString("Slot4.Item.Name").replace('&', '§'), MenuInv.config.getInt("Slot4.Item.ID"), MenuInv.config.getString("Slot4.Item.Lore").replace('&', '§'), MenuInv.config.getInt("Slot4.Item.DataValue"));
    36. e = createItem(MenuInv.config.getString("Slot5.Item.Name").replace('&', '§'), MenuInv.config.getInt("Slot5.Item.ID"), MenuInv.config.getString("Slot5.Item.Lore").replace('&', '§'), MenuInv.config.getInt("Slot5.Item.DataValue"));
    37. f = createItem(MenuInv.config.getString("Slot6.Item.Name").replace('&', '§'), MenuInv.config.getInt("Slot6.Item.ID"), MenuInv.config.getString("Slot6.Item.Lore").replace('&', '§'), MenuInv.config.getInt("Slot6.Item.DataValue"));
    38. g = createItem(MenuInv.config.getString("Slot7.Item.Name").replace('&', '§'), MenuInv.config.getInt("Slot7.Item.ID"), MenuInv.config.getString("Slot7.Item.Lore").replace('&', '§'), MenuInv.config.getInt("Slot7.Item.DataValue"));
    39. h = createItem(MenuInv.config.getString("Slot8.Item.Name").replace('&', '§'), MenuInv.config.getInt("Slot8.Item.ID"), MenuInv.config.getString("Slot8.Item.Lore").replace('&', '§'), MenuInv.config.getInt("Slot8.Item.DataValue"));
    40. i = createItem(MenuInv.config.getString("Slot9.Item.Name").replace('&', '§'), MenuInv.config.getInt("Slot9.Item.ID"), MenuInv.config.getString("Slot9.Item.Lore").replace('&', '§'), MenuInv.config.getInt("Slot9.Item.DataValue"));
    41.  
    42. inv.setItem(0, a);
    43. inv.setItem(1, b);
    44. inv.setItem(2, c);
    45. inv.setItem(3, d);
    46. inv.setItem(4, e);
    47. inv.setItem(5, f);
    48. inv.setItem(6, g);
    49. inv.setItem(7, h);
    50. inv.setItem(8, i);
    51.  
    52.  
    53. Bukkit.getServer().getPluginManager().registerEvents(this, p);
    54. }
    55.  
    56. @SuppressWarnings("deprecation")
    57. private ItemStack createItem(String name, int id, String lore, int sh){
    58. ItemStack i = new ItemStack(Material.getMaterial(id), 1, (short) sh);
    59. ItemMeta im= i.getItemMeta();
    60. im.setDisplayName(name);
    61. im.setLore(Arrays.asList(lore));
    62. i.setItemMeta(im);
    63. return i;
    64. }
    65.  
    66. public void show(Player p) {
    67. p.openInventory(inv);
    68. }
    69.  
    70. @EventHandler
    71. public void onInventoryClick(InventoryClickEvent e) {
    72. if (!e.getInventory().getName().equalsIgnoreCase(inv.getName())) return;
    73. Player player = (Player) e.getWhoClicked();
    74. if (e.getCurrentItem().hasItemMeta()) {
    75. if (e.getCurrentItem().getItemMeta().getDisplayName().matches(MenuInv.config.getString("Slot1.Item.Name").replace('&', '§'))) {
    76. if(player.hasPermission("essentials.kits." + MenuInv.config.getString("Slot1.Item.Kit"))){
    77. Bukkit.dispatchCommand(player, "kits " + MenuInv.config.getString("Slot1.Item.Kit"));
    78. player.closeInventory();
    79. e.setCancelled(true);
    80. } else {
    81. player.sendMessage(MenuInv.config.getString("Slot1.Item.DenyMessage").replace('&', '§'));
    82. e.setCancelled(true);
    83. }
    84. }
    85. if (e.getCurrentItem().getItemMeta().getDisplayName().matches(MenuInv.config.getString("Slot2.Item.Name").replace('&', '§'))) {
    86. if(player.hasPermission("essentials.kits." + MenuInv.config.getString("Slot2.Item.Kit"))){
    87. Bukkit.dispatchCommand(player, "kits " + MenuInv.config.getString("Slot2.Item.Kit"));
    88. player.closeInventory();
    89. e.setCancelled(true);
    90. } else {
    91. player.sendMessage(MenuInv.config.getString("Slot2.Item.DenyMessage").replace('&', '§'));
    92. e.setCancelled(true);
    93. }
    94. }
    95. if (e.getCurrentItem().getItemMeta().getDisplayName().matches(MenuInv.config.getString("Slot3.Item.Name").replace('&', '§'))) {
    96. if(player.hasPermission("essentials.kits." + MenuInv.config.getString("Slot3.Item.Kit"))) {
    97. Bukkit.dispatchCommand(player, "kits " + MenuInv.config.getString("Slot3.Item.Kit"));
    98. player.closeInventory();
    99. e.setCancelled(true);
    100. } else {
    101. player.sendMessage(MenuInv.config.getString("Slot3.Item.DenyMessage").replace('&', '§'));
    102. e.setCancelled(true);
    103. }
    104. }
    105. if (e.getCurrentItem().getItemMeta().getDisplayName().matches(MenuInv.config.getString("Slot4.Item.Name").replace('&', '§'))) {
    106. if (player.hasPermission("essentials.kits." + MenuInv.config.getString("Slot4.Item.Kit"))) {
    107. Bukkit.dispatchCommand(player, "kits " + MenuInv.config.getString("Slot4.Item.Kit"));
    108. player.closeInventory();
    109. e.setCancelled(true);
    110. } else {
    111. player.sendMessage(MenuInv.config.getString("Slot4.Item.DenyMessage").replace('&', '§'));
    112. e.setCancelled(true);
    113. }
    114. }
    115. if (e.getCurrentItem().getItemMeta().getDisplayName().matches(MenuInv.config.getString("Slot5.Item.Name").replace('&', '§'))) {
    116. if (player.hasPermission("essentials.kits." + MenuInv.config.getString("Slot5.Item.Kit"))) {
    117. Bukkit.dispatchCommand(player, "kits " + MenuInv.config.getString("Slot5.Item.Kit"));
    118. player.closeInventory();
    119. e.setCancelled(true);
    120. } else {
    121. player.sendMessage(MenuInv.config.getString("Slot5.Item.DenyMessage").replace('&', '§'));
    122. e.setCancelled(true);
    123. }
    124. }
    125. if (e.getCurrentItem().getItemMeta().getDisplayName().matches(MenuInv.config.getString("Slot6.Item.Name").replace('&', '§'))) {
    126. if (player.hasPermission("essentials.kits." + MenuInv.config.getString("Slot6.Item.Kit"))) {
    127. player.performCommand("kits " + MenuInv.config.getString("Slot6.Item.Kit"));
    128. e.setCancelled(true);
    129. player.closeInventory();
    130. } else {
    131. player.sendMessage(MenuInv.config.getString("Slot6.Item.DenyMessage").replace('&', '§'));
    132. e.setCancelled(true);
    133. }
    134. }
    135. if (e.getCurrentItem().getItemMeta().getDisplayName().matches(MenuInv.config.getString("Slot7.Item.Name").replace('&', '§'))) {
    136. if (player.hasPermission("essentials.kits." + MenuInv.config.getString("Slot7.Item.Kit"))) {
    137. Bukkit.dispatchCommand(player, "kits " + MenuInv.config.getString("Slot7.Item.Kit"));
    138. player.closeInventory();
    139. e.setCancelled(true);
    140. } else {
    141. player.sendMessage(MenuInv.config.getString("Slot7.Item.DenyMessage").replace('&', '§'));
    142. e.setCancelled(true);
    143. }
    144. }
    145. if (e.getCurrentItem().getItemMeta().getDisplayName().matches(MenuInv.config.getString("Slot8.Item.Name"))) {
    146. if (player.hasPermission("essentials.kits." + MenuInv.config.getString("Slot8.Item.Kit"))) {
    147. Bukkit.dispatchCommand(player, "kits " + MenuInv.config.getString("Slot8.Item.Kit"));
    148. player.closeInventory();
    149. e.setCancelled(true);
    150. } else {
    151. player.sendMessage(MenuInv.config.getString("Slot8.Item.DenyMessage"));
    152. e.setCancelled(true);
    153. }
    154. }
    155. if (e.getCurrentItem().getItemMeta().getDisplayName().matches(MenuInv.config.getString("Slot9.Item.Name").replace('&', '§'))) {
    156. player.closeInventory();
    157. e.setCancelled(true);
    158. }
    159. }
    160. }
    161.  
    162. @EventHandler
    163. public void onPlayerJoin(PlayerJoinEvent e) {
    164. Player player = e.getPlayer();
    165. player.sendMessage(MenuInv.config.getString("Slot1.Item.Name"));
    166. player.sendMessage(MenuInv.config.getInt("Slot1.Item.ID") + "");
    167. player.sendMessage(MenuInv.config.getInt("Slot1.Item.DataValue") + "");
    168. player.sendMessage(MenuInv.config.getString("Slot1.Item.Lore"));
    169. player.sendMessage(MenuInv.config.getString("Slot1.Item.Kit"));
    170. player.sendMessage(MenuInv.config.getString("Slot1.Item.DenyMessage"));
    171. }
    172. }
     
  25. Offline

    es359


    And what currently, is your problem?
     
  26. Offline

    PotatoLol12321

    es359 When I type /kit it says this error:

    Code:
    21:43:31 [SEVERE] null
    org.bukkit.command.CommandException: Unhandled exception executing command 'kit'
    in plugin Kit v1
            at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46)
            at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:19
    2)
            at org.bukkit.craftbukkit.v1_6_R3.CraftServer.dispatchCommand(CraftServe
    r.java:528)
            at net.minecraft.server.v1_6_R3.PlayerConnection.handleCommand(PlayerCon
    nection.java:968)
            at net.minecraft.server.v1_6_R3.PlayerConnection.chat(PlayerConnection.j
    ava:886)
            at net.minecraft.server.v1_6_R3.PlayerConnection.a(PlayerConnection.java
    :837)
            at net.minecraft.server.v1_6_R3.Packet3Chat.handle(SourceFile:49)
            at net.minecraft.server.v1_6_R3.NetworkManager.b(NetworkManager.java:296
    )
            at net.minecraft.server.v1_6_R3.PlayerConnection.e(PlayerConnection.java
    :116)
            at net.minecraft.server.v1_6_R3.ServerConnection.b(SourceFile:37)
            at net.minecraft.server.v1_6_R3.DedicatedServerConnection.b(SourceFile:3
    0)
            at net.minecraft.server.v1_6_R3.MinecraftServer.t(MinecraftServer.java:5
    92)
            at net.minecraft.server.v1_6_R3.DedicatedServer.t(DedicatedServer.java:2
    27)
            at net.minecraft.server.v1_6_R3.MinecraftServer.s(MinecraftServer.java:4
    88)
            at net.minecraft.server.v1_6_R3.MinecraftServer.run(MinecraftServer.java
    :421)
            at net.minecraft.server.v1_6_R3.ThreadServerApplication.run(SourceFile:5
    83)
    Caused by: java.lang.NullPointerException
            at org.bukkit.craftbukkit.v1_6_R3.entity.CraftHumanEntity.openInventory(
    CraftHumanEntity.java:185)
            at potato.kits.Menu.show(Menu.java:67)
            at potato.kits.MenuInv.onCommand(MenuInv.java:32)
            at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44)
            ... 15 more
     
  27. Offline

    PotatoLol12321

  28. Offline

    CentrumGuy

    If this issue is happening when the item is clicked make sure you add this line of code to the EventInventoryClick:

    if (event.getCurrentItem() == null) return;
     
  29. Offline

    PotatoLol12321

    CentrumGuy No, it won't even open and I already have a itemMeta check on it for nulls
     
  30. Offline

    CentrumGuy

    Okay I'll look into it

    Instead of declaring Inventory inv;
    in the Listeners class, try declaring it as a menu.

    declare it as

    final Inventory inv = Bukkit.getServer().createInventory(null, 9, MenuInv.config.getString("GUIName")).replace('&', '§');

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

Share This Page