Solved Setting value in main class with event doesn't work

Discussion in 'Plugin Development' started by PDKnight, Mar 30, 2015.

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

    PDKnight

    Hi, Bukkit, I need some help. :( I have some integer variables in main class before onEnable() function. But when PlayerInteractEvent is called, errors in show up in console :D ... My code:
    Code:java
    1.  
    2. public int
    3. lc_x = 0,
    4. lc_y = 0,
    5. lc_z = 0,
    6.  
    7. rc_x = 0,
    8. rc_y = 0,
    9. rc_z = 0;
    10.  
    11. //and other onEnable+onDisable+onCommand stuff :p
    12.  
    13. @EventHandler
    14. public void ADClick(PlayerInteractEvent event) {
    15. Action action = event.getAction();
    16. Player player = event.getPlayer();
    17.  
    18. if(player.getItemInHand().getType() == Material.BLAZE_ROD) {
    19. Location l = event.getClickedBlock().getLocation();
    20. if(action == Action.LEFT_CLICK_BLOCK) {
    21. if(rc_x == 0 && rc_y == 0 && rc_z == 0) {
    22. lc_x = l.getBlockX(); // <-- the problem occurs here
    23. lc_y = l.getBlockY();
    24. lc_z = l.getBlockZ();
    25.  
    26. player.sendMessage(ChatColor.GRAY + "[Airdrop] "+ChatColor.GREEN+"First point selected!");
    27. }
    28. }
    29. }
    30.  

    Error in console:
    Code:
    [14:05:27 ERROR]: Could not pass event PlayerInteractEvent to Airdrops v1.0.0 org.bukkit.event.EventException
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:294) ~[craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
            at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:501) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:486) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
            at org.bukkit.craftbukkit.v1_7_R3.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:216) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
            at org.bukkit.craftbukkit.v1_7_R3.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:186) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
            at net.minecraft.server.v1_7_R3.PlayerConnection.a(PlayerConnection.java:992) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
            at net.minecraft.server.v1_7_R3.PacketPlayInArmAnimation.a(SourceFile:43)[craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
            at net.minecraft.server.v1_7_R3.PacketPlayInArmAnimation.handle(SourceFile:9) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
            at net.minecraft.server.v1_7_R3.NetworkManager.a(NetworkManager.java:157)[craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
            at net.minecraft.server.v1_7_R3.ServerConnection.c(SourceFile:134) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
            at net.minecraft.server.v1_7_R3.MinecraftServer.v(MinecraftServer.java:667) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
            at net.minecraft.server.v1_7_R3.DedicatedServer.v(DedicatedServer.java:260) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
            at net.minecraft.server.v1_7_R3.MinecraftServer.u(MinecraftServer.java:558) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
            at net.minecraft.server.v1_7_R3.MinecraftServer.run(MinecraftServer.java:469) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
            at net.minecraft.server.v1_7_R3.ThreadServerApplication.run(SourceFile:628) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
    Caused by: java.lang.NullPointerException
            at me.PDKnight.Airdrops.Airdrops.ADClick(Airdrops.java:174) ~[?:?]
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_71]
            at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_71]
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_71]
            at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_71]
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:292) ~[craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
            ... 15 more
    What am I doing wrong? Help me, please! :(
     
    Last edited: Mar 30, 2015
  2. Offline

    TGRHavoc

    @PDKnight

    Code:
    Caused by: java.lang.NullPointerException
            at me.PDKnight.Airdrops.Airdrops.ADClick(Airdrops.java:174) ~[?:?]
    
    What's on line 174 in your "Airdrops.java" file?
    Add some debug code (System.out.println() / Logger#info() ) to print the values of the variables on the line in question to make sure that nothing is null.
     
  3. Offline

    PDKnight

    @TGRHavoc
    It's
    Code:
    Location l = event.getClickedBlock().getLocation();
    I can't understand...

    Ohhh, solved! The error appears because I want to get location before checking if player didn't click in the air! Thanks!

    <Edited by bwfcwalshy: Merged posts, please use the edit button rather than double posting.>
     
  4. Offline

    TGRHavoc

    @PDKnight

    I don't know if this will affect the outcome but still, worth a shot, try moving that line after the action check (if action == LEFT_CLICK_BLOCK) that way you know the block cannot be null.

    Also, before that line add some debug code (e.g. System.out.println("event.getClickedBlock = " + event.getClickedBlock()); ) to make sure that the variables you're using in that line aren't null.
     
Thread Status:
Not open for further replies.

Share This Page