Null Pointer Exception

Discussion in 'Plugin Development' started by Nerdfuryz, Aug 14, 2013.

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

    Nerdfuryz

    I read the stacktrace but I still don't quite understand what is causing the issue.
    Error
    Code:
    2013-08-14 13:48:59 [SEVERE] Could not pass event PlayerInteractEvent to Raiding Tool v1
    org.bukkit.event.EventException
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
        at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:30)
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:478)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:463)
        at org.bukkit.craftbukkit.v1_6_R2.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:209)
        at org.bukkit.craftbukkit.v1_6_R2.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:179)
        at net.minecraft.server.v1_6_R2.PlayerConnection.a(PlayerConnection.java:1021)
        at net.minecraft.server.v1_6_R2.Packet18ArmAnimation.handle(SourceFile:41)
        at org.spigotmc.netty.NettyNetworkManager.b(NettyNetworkManager.java:230)
        at net.minecraft.server.v1_6_R2.PlayerConnection.e(PlayerConnection.java:116)
        at net.minecraft.server.v1_6_R2.ServerConnection.b(SourceFile:37)
        at org.spigotmc.netty.NettyServerConnection.b(NettyServerConnection.java:125)
        at net.minecraft.server.v1_6_R2.MinecraftServer.t(MinecraftServer.java:592)
        at net.minecraft.server.v1_6_R2.DedicatedServer.t(DedicatedServer.java:239)
        at net.minecraft.server.v1_6_R2.MinecraftServer.s(MinecraftServer.java:481)
        at net.minecraft.server.v1_6_R2.MinecraftServer.run(MinecraftServer.java:413)
        at net.minecraft.server.v1_6_R2.ThreadServerApplication.run(SourceFile:582)
    Caused by: java.lang.NullPointerException
        at com.sk89q.worldguard.protection.GlobalRegionManager.canBuild(GlobalRegionManager.java:280)
        at com.sk89q.worldguard.bukkit.WorldGuardPlugin.canBuild(WorldGuardPlugin.java:818)
        at net.nerdfuryz.superpickaxe.SuperPickAxe.onPlayerInteract(SuperPickAxe.java:103)
        at sun.reflect.GeneratedMethodAccessor28.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425)
        ... 17 more
    Main Class:
    Code:java
    1. package net.nerdfuryz.superpickaxe;
    2.  
    3. import java.io.File;
    4. import java.util.ArrayList;
    5. import java.util.logging.Logger;
    6.  
    7. import org.bukkit.Bukkit;
    8. import org.bukkit.ChatColor;
    9. import org.bukkit.Location;
    10. import org.bukkit.Material;
    11. import org.bukkit.block.Block;
    12. import org.bukkit.command.Command;
    13. import org.bukkit.command.CommandSender;
    14. import org.bukkit.configuration.file.FileConfiguration;
    15. import org.bukkit.configuration.file.YamlConfiguration;
    16. import org.bukkit.entity.Player;
    17. import org.bukkit.event.EventHandler;
    18. import org.bukkit.event.Listener;
    19. import org.bukkit.event.block.Action;
    20. import org.bukkit.event.player.PlayerInteractEvent;
    21. import org.bukkit.inventory.ItemStack;
    22. import org.bukkit.plugin.Plugin;
    23. import org.bukkit.plugin.PluginManager;
    24. import org.bukkit.plugin.java.JavaPlugin;
    25.  
    26. import com.massivecraft.factions.entity.BoardColls;
    27. import com.massivecraft.factions.entity.Faction;
    28. import com.massivecraft.mcore.ps.PS;
    29. import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
    30.  
    31. public class SuperPickAxe extends JavaPlugin implements Listener{
    32. public static final Logger logger = Logger.getLogger("Minecraft");
    33. ArrayList<String> spa = new ArrayList<String>();
    34. public static SuperPickAxe instance = null;
    35. public static ArrayList<File> filep = new ArrayList<File>();
    36. public static File config;
    37. public static FileConfiguration configFile;
    38. public void onEnable(){
    39. instance = this;
    40. filep.add(config);
    41. getServer().getPluginManager().registerEvents(this, this);
    42. config = new File(getDataFolder(), "config.yml");
    43. configFile = new YamlConfiguration();
    44. ConfigHandler.checkForConfig(config);
    45. ConfigHandler.loadConfig(configFile, config);
    46. ConfigHandler.saveConfig(configFile, config);
    47. logger.info("[Raiding Tool] Is now enabled!");
    48. if (filep.contains(config)) {
    49. String i = configFile.getString("Blacklist");
    50. configFile.set("Blacklist", String.valueOf(i));
    51. }
    52. if (filep.contains(config)) {
    53. int i = configFile.getInt("GL.Damage");
    54. configFile.set("GL.Damage", Integer.valueOf(i));
    55. }
    56. PluginManager pm = getServer().getPluginManager();
    57.  
    58. pm.registerEvents(this, this);
    59. }
    60.  
    61.  
    62. public void onDisable(){
    63.  
    64. }
    65. private WorldGuardPlugin getWorldGuard() {
    66. Plugin plugin = getServer().getPluginManager().getPlugin("WorldGuard");
    67. if (plugin == null || !(plugin instanceof WorldGuardPlugin)) {
    68. return null; // Maybe you want throw an exception instead
    69. }
    70. return (WorldGuardPlugin) plugin;
    71. }
    72. public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args){
    73. Player player1 = (Player) sender;
    74. if (commandLabel.equalsIgnoreCase("rt")){
    75.  
    76. if(!player1.hasPermission("raidingtool.use") && !player1.isOp()){
    77. Player player2 = (Player) sender;
    78. player2.sendMessage(ChatColor.RED + "You do not have Permission to use this command");
    79. }else if(args.length == 0){
    80. Player player = (Player) sender;
    81. spa.add(player.getName());
    82. player.getItemInHand().getTypeId();
    83. player.sendMessage(ChatColor.RED + "Raiding Tool Enabled");
    84. }else if(args.length >= 1){
    85. if ((cmd.getName().equalsIgnoreCase("rt")) && (args[0].equalsIgnoreCase("remove"))){
    86. Player p1 = (Player) sender;
    87. p1.sendMessage(ChatColor.RED + "Raiding Tool Disabled");
    88. spa.remove(p1.getName());
    89. }else{
    90. player1.sendMessage(ChatColor.RED + "Wrong arguments. Usage /rt <remove>");
    91. }
    92. }
    93.  
    94. }
    95. return false;
    96. }
    97. @EventHandler
    98. public void onPlayerInteract(PlayerInteractEvent e)//Commands Deny
    99. {
    100. Player p = e.getPlayer();
    101. if(spa.contains(p.getName())) {
    102. Player p2 = e.getPlayer();
    103. boolean herp = getWorldGuard().canBuild(p2, e.getClickedBlock());
    104. ItemStack block = p.getItemInHand();
    105. Location location = new Location(Bukkit.getWorld("world"), 1337, 1337, 1337);
    106. Faction faction = BoardColls.get().getFactionAt(PS.valueOf(location));
    107. if(block.getTypeId() == 278 || block.getTypeId() == 274 || block.getTypeId() == 285 || block.getTypeId() == 270){
    108. if (e.getAction() == Action.LEFT_CLICK_BLOCK){
    109. if ((!faction.getName().equalsIgnoreCase("Safezone") && (!faction.getName().equalsIgnoreCase("Warzone") && (herp == true) || (p.hasPermission("raidingtool.bypass")))))
    110. {
    111. Block block1 = e.getClickedBlock();
    112. block1.setType(Material.AIR);
    113. }else{
    114.  
    115. e.setCancelled(true);
    116.  
    117. }
    118. }
    119. }
    120. }
    121. }
    122.  
    123.  
    124. public static SuperPickAxe getInstance() {
    125. // TODO Auto-generated method stub
    126. return instance;
    127. }
    128. }
     
  2. Offline

    monkeymanboy

    I haven't used the worldguard api before so I wouldn't know but its something on this line
    Code:
    boolean herp = getWorldGuard().canBuild(p2, e.getClickedBlock());
     
  3. Offline

    Nerdfuryz

    I thought that but I am not entirely sure what is wrong with it.
     
  4. Offline

    Polaris29

    e.getClickedBlock() is null which means the Player clicked air instead of a Block
     
  5. Offline

    Nerdfuryz

    Oh that makes sense.

    Thanks guys, I got it fixed :).

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

Share This Page