My GUI Kit command doesnt work

Discussion in 'Plugin Development' started by DerpyLV, Jan 17, 2017.

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

    DerpyLV

    Hello, I have made a GUI Inventory Kit command doesnt work heres the code:
    Code:java
    1.  
    2. package com.weedlvz.nullpl.cmds;
    3.  
    4. import org.bukkit.Bukkit;
    5. import org.bukkit.ChatColor;
    6. import org.bukkit.Material;
    7. import org.bukkit.command.Command;
    8. import org.bukkit.command.CommandExecutor;
    9. import org.bukkit.command.CommandSender;
    10. import org.bukkit.entity.Player;
    11. import org.bukkit.inventory.Inventory;
    12. import org.bukkit.inventory.ItemStack;
    13. import org.bukkit.inventory.meta.ItemMeta;
    14.  
    15. import com.weedlvz.nullpl.NULLpl;
    16.  
    17. public class kit implements CommandExecutor{
    18.  
    19. NULLpl plugin;
    20.  
    21. public kit(NULLpl plugin) {
    22. this.plugin = plugin;
    23. }
    24.  
    25. @SuppressWarnings("unused")
    26. private String tc(String msg) {
    27. return ChatColor.translateAlternateColorCodes('&', msg);
    28. }
    29.  
    30. @Override
    31. public boolean onCommand(CommandSender sender, Command cmd, String label,
    32. String[] args) {
    33. if(cmd.getName().equalsIgnoreCase("kit")){
    34. Player player = (Player) sender;
    35. ItemStack kitpvp = new ItemStack(Material.DIAMOND_SWORD);
    36. ItemMeta kitpvpMeta = kitpvp.getItemMeta();
    37. kitpvpMeta.setDisplayName(tc("&4&lKit PVP"));
    38. kitpvp.setItemMeta(kitpvpMeta);
    39. ItemStack kitfood = new ItemStack(Material.COOKED_BEEF);
    40. ItemMeta kitfoodMeta = kitfood.getItemMeta();
    41. kitfoodMeta.setDisplayName(tc("&6&lKit Food"));
    42. kitfood.setItemMeta(kitfoodMeta);
    43.  
    44. Inventory inv = Bukkit.createInventory(null, 27,
    45. tc("&4&l[NULL] &c&lKits"));
    46. inv.setItem(11, kitfood);
    47. inv.setItem(15, kitpvp);
    48.  
    49. player.openInventory(inv);
    50.  
    51. }
    52. return false;
    53. }
    54.  


    Error in console:
    Code:
    
    [20:14:06 ERROR]: Error occurred while enabling NULLpl v1.0 (Is it up to date?)
    java.lang.NullPointerException
            at com.weedlvz.nullpl.NULLpl.registerCommands(NULLpl.java:105) ~[?:?]
            at com.weedlvz.nullpl.NULLpl.onEnable(NULLpl.java:74) ~[?:?]
            at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:321) ~[craftbukkit.jar:git-Bukkit-18fbb24]
            at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:332) [craftbukkit.jar:git-Bukkit-18fbb24]
            at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:404) [craftbukkit.jar:git-Bukkit-18fbb24]
            at org.bukkit.craftbukkit.v1_8_R3.CraftServer.loadPlugin(CraftServer.java:342) [craftbukkit.jar:git-Bukkit-18fbb24]
            at org.bukkit.craftbukkit.v1_8_R3.CraftServer.enablePlugins(CraftServer.java:314) [craftbukkit.jar:git-Bukkit-18fbb24]
            at org.bukkit.craftbukkit.v1_8_R3.CraftServer.reload(CraftServer.java:720) [craftbukkit.jar:git-Bukkit-18fbb24]
            at org.bukkit.Bukkit.reload(Bukkit.java:544) [craftbukkit.jar:git-Bukkit-18fbb24]
            at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:25) [craftbukkit.jar:git-Bukkit-18fbb24]
            at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:140) [craftbukkit.jar:git-Bukkit-18fbb24]
            at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchCommand(CraftServer.java:620) [craftbukkit.jar:git-Bukkit-18fbb24]
            at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchServerCommand(CraftServer.java:606) [craftbukkit.jar:git-Bukkit-18fbb24]
            at net.minecraft.server.v1_8_R3.DedicatedServer.aO(DedicatedServer.java:372) [craftbukkit.jar:git-Bukkit-18fbb24]
            at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:336) [craftbukkit.jar:git-Bukkit-18fbb24]
            at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:629) [craftbukkit.jar:git-Bukkit-18fbb24]
            at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:537) [craftbukkit.jar:git-Bukkit-18fbb24]
            at java.lang.Thread.run(Unknown Source) [?:1.8.0_112]
    
    I dont see whats the problem.
    If i remove the
    Code:java
    1. getCommand("kit").setExecutor(new kit(this));

    Everyting works perfectly fine,If i add the getCommand back it doesnt work i get that error.
     
    Last edited: Jan 17, 2017
  2. Offline

    timtower Administrator Administrator Moderator

    @DerpyLV Did you register /kit in the plugin.yml?
     
  3. Offline

    DerpyLV

    Yes I did.
    Code:yml
    1.  
    2. main: com.weedlvz.nullpl.NULLpl
    3. version: 1.0
    4. name: NULLpl
    5. depend: [ProtocolLib]
    6. commands:
    7. help:
    8. description: ze zommands
    9. spawn:
    10. description: zeleports u to ze spawn
    11. fly:
    12. description: enables fly for u
    13. heal:
    14. description: heals the player
    15. feed:
    16. description: feeds the player
    17. t:
    18. description: shows u the plugins
    19. kit:
    20. description: Kits
    21.  
     
  4. Offline

    timtower Administrator Administrator Moderator

    @DerpyLV Please post your main class
     
  5. Offline

    Zombie_Striker

    @DerpyLV
    Again, remember to update to 1.11.2

    Something is null on line 105. Is the getCommand line the 105 line? If not, post the whole class/ post that line.
     
  6. Offline

    DerpyLV

    Code:java
    1.  
    2. package com.weedlvz.nullpl;
    3.  
    4. import java.util.HashMap;
    5. import java.util.Map;
    6.  
    7. import org.bukkit.Bukkit;
    8. import org.bukkit.ChatColor;
    9. import org.bukkit.entity.Player;
    10. import org.bukkit.event.EventHandler;
    11. import org.bukkit.event.Listener;
    12. import org.bukkit.event.player.PlayerJoinEvent;
    13. import org.bukkit.plugin.PluginManager;
    14. import org.bukkit.plugin.java.JavaPlugin;
    15. import org.bukkit.scoreboard.DisplaySlot;
    16. import org.bukkit.scoreboard.Objective;
    17. import org.bukkit.scoreboard.Scoreboard;
    18.  
    19. import com.comphenix.protocol.Packets;
    20. import com.comphenix.protocol.ProtocolLibrary;
    21. import com.comphenix.protocol.events.ConnectionSide;
    22. import com.comphenix.protocol.events.PacketAdapter;
    23. import com.comphenix.protocol.events.PacketEvent;
    24. import com.comphenix.protocol.wrappers.WrappedChatComponent;
    25. import com.weedlvz.nullpl.cmds.feed;
    26. import com.weedlvz.nullpl.cmds.fly;
    27. import com.weedlvz.nullpl.cmds.heal;
    28. import com.weedlvz.nullpl.cmds.help;
    29. import com.weedlvz.nullpl.cmds.kit;
    30. import com.weedlvz.nullpl.cmds.t;
    31. import com.weedlvz.nullpl.events.AsyncPlayerChat;
    32. import com.weedlvz.nullpl.events.InventoryClick;
    33. import com.weedlvz.nullpl.events.PlayerInteract;
    34. import com.weedlvz.nullpl.events.PlayerLeft;
    35.  
    36. @SuppressWarnings("deprecation")
    37. public class NULLpl extends JavaPlugin implements Listener {
    38.  
    39. private Scoreboard sb;
    40. private Map<String, Integer> playersOnline = new HashMap<String, Integer>();
    41.  
    42. public void setupScoreBoard() {
    43. sb = Bukkit.getScoreboardManager().getNewScoreboard();
    44.  
    45. Objective players = sb.registerNewObjective("players", "dummy");
    46. players.setDisplayName(tc("&9&lPlayers Online"));
    47. players.setDisplaySlot(DisplaySlot.SIDEBAR);
    48. }
    49.  
    50. public Scoreboard getScoreboard() {
    51. return this.sb;
    52. }
    53.  
    54. @EventHandler
    55. public void onPlayerJoined(PlayerJoinEvent e) {
    56. Player player = (Player) e.getPlayer();
    57. player.setScoreboard(getScoreboard());
    58. player.sendMessage(tc("&9Welcome, " + player.getName()));
    59. int plrs = 0;
    60. if (playersOnline.containsKey(player.getName())) {
    61. plrs = playersOnline.get(player.getName());
    62. }
    63. plrs++;
    64. playersOnline.put(player.getName(), plrs);
    65. getScoreboard().getObjective(DisplaySlot.SIDEBAR).getScore(player)
    66. .setScore(plrs);
    67. }
    68.  
    69. @Override
    70. public void onEnable() {
    71. getConfig().options().copyDefaults(true);
    72. saveDefaultConfig();
    73. getConfig().getString("msg");
    74. registerListeners();
    75. registerCommands();
    76. getServer().getPluginManager().registerEvents(this, this);
    77. setupScoreBoard();
    78.  
    79. ProtocolLibrary.getProtocolManager().addPacketListener(
    80. new PacketAdapter(this, ConnectionSide.SERVER_SIDE,
    81. Packets.Server.CHAT) {
    82. @Override
    83. public void onPacketSending(PacketEvent event) {
    84. String message = event.getPacket().getChatComponents()
    85. .read(0).getJson();
    86.  
    87. // Modify this exact message regardless of the coloring
    88. if (message
    89. .contains("Unknown command. Type \\\"/help\\\" for help.")) {
    90. event.getPacket()
    91. .getChatComponents()
    92. .write(0,
    93. WrappedChatComponent
    94. .fromText(tc("&4&l[NULL]: &6&lUnknown command use /help for commands")));
    95. }
    96. }
    97. });
    98. }
    99.  
    100. public void registerCommands() {
    101. getCommand("fly").setExecutor(new fly(this));
    102. getCommand("feed").setExecutor(new feed(this));
    103. getCommand("heal").setExecutor(new heal(this));
    104. getCommand("t").setExecutor(new t(this));
    105. getCommand("help").setExecutor(new help(this));
    106. getCommand("kit").setExecutor(new kit(this));
    107. //getServer().getPluginManager().registerEvents(this, this);
    108. }
    109.  
    110. @Override
    111. public void onDisable() {
    112. getLogger().info("NULL Plugin is Disabled");
    113. }
    114.  
    115. private String tc(String msg) {
    116. return ChatColor.translateAlternateColorCodes('&', msg);
    117. }
    118.  
    119. public void registerListeners() {
    120. PluginManager pm = getServer().getPluginManager();
    121. //pm.registerEvents(new PlayerJoined(this), this);
    122. pm.registerEvents(new PlayerLeft(this), this);
    123. //pm.registerEvents(new PlayerInteract(this), this);
    124. pm.registerEvents(new InventoryClick(this), this);
    125. pm.registerEvents(new AsyncPlayerChat(this), this);
    126. }
    127.  
    128. }
    129.  

    That's my main class,line 105 is getCommand("kit").setExecutor(new kit(this));

    Can anyone please help?

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

Share This Page