NPE On Death Event With Packets

Discussion in 'Plugin Development' started by BajanAmerican, Dec 15, 2013.

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

    BajanAmerican

    I am trying to do an auto-respawn action with my plugin and it is not working. Yes, everything is registered as a listener, for every event in this class works and this event works, but it gives me an NPE on this part:
    Code:java
    1. ((CraftPlayer) player).getHandle().playerConnection.a(packet);


    And this is the code for the respawn:
    Code:java
    1. final Player player = event.getEntity();
    2. plugin.getServer().getScheduler().scheduleSyncDelayedTask(plugin, new Runnable()
    3. {
    4. public void run()
    5. {
    6. if(player.isDead()){
    7. Field a = null;
    8. PacketPlayInClientCommand packet = new PacketPlayInClientCommand();
    9. try {
    10. a = PacketPlayInClientCommand.class.getDeclaredField("a");
    11. } catch (NoSuchFieldException e) {
    12. // TODO Auto-generated catch block
    13. e.printStackTrace();
    14. } catch (SecurityException e) {
    15. // TODO Auto-generated catch block
    16. e.printStackTrace();
    17. }
    18. a.setAccessible(true);
    19. a.equals(1);
    20. ((CraftPlayer) player).getHandle().playerConnection.a(packet);
    21. }
    22. }
    23. }, 2);


    And this is the error:
    Code:
    [00:33:41 WARN]: [CauldronWars] Task #33 for CauldronWars v1.0 generated an exception
    java.lang.NullPointerException
            at net.minecraft.server.v1_7_R1.PlayerConnection.a(PlayerConnection.java:1105) ~[craftbukkit.jar:git-Bukkit-1.6.4-R2.0-49-g5a2dda2-b2957jnks]
            at me.BajanAmerican.CauldronWars.CauldronWarsListener$5.run(CauldronWarsListener.java:3637) ~[?:?]
            at org.bukkit.craftbukkit.v1_7_R1.scheduler.CraftTask.run(CraftTask.java:53) ~[craftbukkit.jar:git-Bukkit-1.6.4-R2.0-49-g5a2dda2-b2957jnks]
            at org.bukkit.craftbukkit.v1_7_R1.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:345) [craftbukkit.jar:git-Bukkit-1.6.4-R2.0-49-g5a2dda2-b2957jnks]
            at net.minecraft.server.v1_7_R1.MinecraftServer.u(MinecraftServer.java:587) [craftbukkit.jar:git-Bukkit-1.6.4-R2.0-49-g5a2dda2-b2957jnks]
            at net.minecraft.server.v1_7_R1.DedicatedServer.u(DedicatedServer.java:250) [craftbukkit.jar:git-Bukkit-1.6.4-R2.0-49-g5a2dda2-b2957jnks]
            at net.minecraft.server.v1_7_R1.MinecraftServer.t(MinecraftServer.java:545) [craftbukkit.jar:git-Bukkit-1.6.4-R2.0-49-g5a2dda2-b2957jnks]
            at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java:457) [craftbukkit.jar:git-Bukkit-1.6.4-R2.0-49-g5a2dda2-b2957jnks]
            at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:617) [craftbukkit.jar:git-Bukkit-1.6.4-R2.0-49-g5a2dda2-b2957jnks]
    
    If anyone can help me out, thanks!
     
  2. Offline

    pope_on_dope

    'a' could be null, make a check for it
     
  3. Offline

    xTrollxDudex

    BajanAmerican
    A is never initialized in the class as you can see in the source, you'd have to do
    PHP:
    a.setInt(packet1);
     
Thread Status:
Not open for further replies.

Share This Page