[Now with NPE's!]Teleport player to "the end"? Then back to spwan in 5 minutes

Discussion in 'Plugin Development' started by calebbfmv, Aug 10, 2012.

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

    calebbfmv

    Throwing some together for the server I dev for because Limbo was having problems (dont know why, only know they need a new one) So I threw this together, but it doesn't seem to work right.
    Code:
    package com.craft.hammer.Lim;
    
    import java.util.logging.Logger;
    
    import org.bukkit.Location;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerRespawnEvent;
    import org.bukkit.plugin.java.JavaPlugin;
    
    public class Bo extends JavaPlugin implements Listener {
        
        public Logger log = Logger.getLogger("Minecraft");
        
            @Override    
            public void onEnable() {
            log.info("================================");
            log.info("CraftHammer Limbo is now enabled");
            log.info("================================");
            getServer().getPluginManager().registerEvents(this, this);
        }
            @Override
            public void onDisable() {
                log.info("=================================");
                log.info("CraftHammer Limbo is now disbaled");
                log.info("=================================");
            }
            
            @EventHandler
            public void playerDeath(PlayerRespawnEvent event, Location location){
                Player p = event.getPlayer();
                Location loc = new Location(getServer().getWorld("world_the_end"), -5, 67, -5);
                p.teleport(loc); 
            }
           
    
    }
    
    If i am derping here, my bad. Also need to add a 5 minute timer, but that is later.

    P.S This needs to be finished in 2 hours
     
  2. Offline

    evilmidget38

    Set the PlayerDeathEvent to cancelled.
     
  3. Offline

    calebbfmv

    Dont have playerdeath.

    Sorry if this is to soon, but I need to get this done in 30 mins, I am working trying to figure it out.

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

    Firefly

    Why do you have Location location passed as a parameter in the event? Try removing that. As far as I can tell, you don't even use the variable.
     
  5. Offline

    calebbfmv

    Ah, didn't see that. Removed
     
  6. Offline

    Firefly

    Does it work now?
     
  7. Offline

    evilmidget38

    Ah, I was confused by your naming of the method.
     
  8. Offline

    calebbfmv

    No worries :) I have 30 more minutes

    Trying to get this to work, nothing happens, any help?

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

    Taco

    final Player p = null;
    Location loc = new Location(getServer().getWorld("world"), 29, 135, -64);
    p.teleport(loc);


    Here's a major error I see at first glance.
     
  10. Offline

    calebbfmv

    Ohhh null shouldn't be there right? Derp, regardless, without it nothing works still
     
  11. Offline

    Taco

    The whole statement shouldn't be there. You already have Player p defined above, just make that final and use it.
     
  12. Offline

    calebbfmv

    I have gotten rid of that ugly code, and am now sticking with and editing this:
    Code:
    package com.craft.hammer.Lim;
     
    import java.util.logging.Logger;
     
    import org.bukkit.Location;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerRespawnEvent;
    import org.bukkit.plugin.java.JavaPlugin;
     
    public class Bo extends JavaPlugin implements Listener {
     
    public Logger log = Logger.getLogger("Minecraft");
     
            @Override
            public void onEnable() {
      log.info("================================");
      log.info("CraftHammer Limbo is now enabled");
      log.info("================================");
      getServer().getPluginManager().registerEvents(this, this);
    }
            @Override
            public void onDisable() {
            log.info("=================================");
            log.info("CraftHammer Limbo is now disbaled");
            log.info("=================================");
            }
           
            @EventHandler
            public void CHL(PlayerRespawnEvent event){
                Player p = event.getPlayer();
                Location loc = new Location(getServer().getWorld("world_the_end"), -5, 67, -5);
                p.teleport(loc);
               
            }
         
     
    }
    
     
  13. Offline

    Courier

    Use:
    Code:java
    1. event.setRespawnLocation(loc);
    instead.
     
  14. Offline

    calebbfmv

    OK
    Code:
    16:33:41 [WARNING] Task of 'CH Limbo' generated an exception
    java.lang.NullPointerException
            at com.craft.hammer.Lim.Bo$1.run(Bo.java:37)
            at org.bukkit.craftbukkit.scheduler.CraftScheduler.mainThreadHeartbeat(C
    raftScheduler.java:126)
            at net.minecraft.server.MinecraftServer.q(MinecraftServer.java:512)
            at net.minecraft.server.DedicatedServer.q(DedicatedServer.java:212)
            at net.minecraft.server.MinecraftServer.p(MinecraftServer.java:476)
            at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:408)
            at net.minecraft.server.ThreadServerApplication.run(SourceFile:539)
    16:33:59 [WARNING] Task of 'CH Limbo' generated an exception
    java.lang.NullPointerException
            at com.craft.hammer.Lim.Bo$2.run(Bo.java:70)
            at org.bukkit.craftbukkit.scheduler.CraftScheduler.mainThreadHeartbeat(C
    raftScheduler.java:126)
            at net.minecraft.server.MinecraftServer.q(MinecraftServer.java:512)
            at net.minecraft.server.DedicatedServer.q(DedicatedServer.java:212)
            at net.minecraft.server.MinecraftServer.p(MinecraftServer.java:476)
            at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:408)
            at net.minecraft.server.ThreadServerApplication.run(SourceFile:539)
    
    ^^ Error code
    Source
    Code:
    package com.craft.hammer.Lim;
     
    import java.util.logging.Logger;
     
    import org.bukkit.Location;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerRespawnEvent;
    import org.bukkit.plugin.java.JavaPlugin;
     
    public class Bo extends JavaPlugin implements Listener {
     
    public Logger log = Logger.getLogger("Minecraft");
     
            @Override
            public void onEnable() {
      log.info("================================");
      log.info("CraftHammer Limbo is now enabled");
      log.info("================================");
      getServer().getPluginManager().registerEvents(this, this);
      this.getServer().getScheduler()
      .scheduleSyncDelayedTask(this, new Runnable() {
    
       @SuppressWarnings({ "unused", "null" })
    @Override
       @EventHandler
       public void run() {
        boolean closeDoor;
        
        //X =29 Y = 135 Z = -64
        {
         PlayerRespawnEvent event;
         Location location;
         final Player p = null;
         Location loc = new Location(getServer().getWorld("world"), 29, 135, -64);
         p.teleport(loc);
          }
         }
      
       }
      , 6000L);
    }
            @Override
            public void onDisable() {
            log.info("=================================");
            log.info("CraftHammer Limbo is now disbaled");
            log.info("=================================");
            }
         
            @EventHandler
            public void CHL( PlayerRespawnEvent event){
                Location loc =  new Location(getServer().getWorld("world_the_end"), -5, 67, -5);
                event.setRespawnLocation(loc);   
                this.getServer().getScheduler()
                .scheduleSyncDelayedTask(this, new Runnable() {
    
                 @SuppressWarnings({ "unused", "null" })
                @Override
                 @EventHandler
                 public void run() {
                  boolean closeDoor;
                  
                  //X =29 Y = 135 Z = -64
                  {
                   PlayerRespawnEvent event;
                   Location location;
                   final Player p = null;
                   Location loc = new Location(getServer().getWorld("world"), 29, 135, -64);
                   p.teleport(loc);
                    }
                   }
                
                 }
                , 6000L);
            }
    }
    
    
    LegoPal92

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

    evilmidget38

    Code:
        final Player p = null;
     
  16. Offline

    calebbfmv

    Yes that is a line of code

    That doesn't fix anything

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

    evilmidget38

    If the player is null, it's going to throw a null pointer exception when you try to teleport them.
     
  18. Offline

    calebbfmv

    Yes yes, but without it, Errors galore. What do you propose I change it to? I cannot fix it, and I am going insane
     
  19. Offline

    evilmidget38

    Code:
    final Player p = event.getPlayer();
     
  20. Offline

    calebbfmv

    Now event is the same thing make it final as well?
     
  21. Offline

    Firefly

    Ya. You also put final Player p = event.getPlayer() before you schedule the task.
     
  22. Offline

    calebbfmv

    OK, I dont know if I am derping or what, but I cannot seem to fix this.....
     
  23. Offline

    travja

    Explain what you need done more clearly, is it an error in the code or do you actually still need them teleported back to spawn after 5 mins?
     
  24. Offline

    Firefly

    Latest code?
     
  25. Offline

    calebbfmv

    OK explanation: I get it to tp the player to spawn :D. To be done, teleport the player back.

    Latest code:
    Code:
    package com.craft.hammer.Lim;
     
    import java.util.logging.Logger;
     
    import org.bukkit.Location;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerRespawnEvent;
    import org.bukkit.plugin.java.JavaPlugin;
     
    public class Bo extends JavaPlugin implements Listener {
     
    public Logger log = Logger.getLogger("Minecraft");
     
            @Override
            public void onEnable() {
      log.info("================================");
      log.info("CraftHammer Limbo is now enabled");
      log.info("================================");
      getServer().getPluginManager().registerEvents(this, this);
      this.getServer().getScheduler()
      .scheduleSyncDelayedTask(this, new Runnable() {
    
       @SuppressWarnings({ "unused", "null" })
    @Override
       @EventHandler
       public void run() {
        boolean closeDoor;
        
        //X =29 Y = 135 Z = -64
        {
         PlayerRespawnEvent event;
         Location location;
         final Player p = event.getPlayer();
         Location loc = new Location(getServer().getWorld("world"), 29, 135, -64);
         p.teleport(loc);
          }
         }
      
       }
      , 6L);
    }
            @Override
            public void onDisable() {
            log.info("=================================");
            log.info("CraftHammer Limbo is now disbaled");
            log.info("=================================");
            }
         
            @EventHandler
            public void CHL( PlayerRespawnEvent event){
                Location loc =  new Location(getServer().getWorld("world_the_end"), -5, 67, -5);
                event.setRespawnLocation(loc);   
                @SuppressWarnings("unused")
                final Player p = event.getPlayer();
                this.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
    
                 @SuppressWarnings({ "unused", "null" })
                @Override
                 @EventHandler
                 public void run() {
                  boolean closeDoor;
                  
                  //X =29 Y = 135 Z = -64
                  {
                   final PlayerRespawnEvent event;
                   Location location;
                   final Player p = event.getPlayer();
                   Location loc = new Location(getServer().getWorld("world"), 29, 135, -64);
                   p.teleport(loc);
                    }
                   }
                
                 }
                , 6L);
            }
    }
    
    Thaank you guys so much. And I am going to get this thing!!!

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

    Firefly

    Code:
    getServer().getPluginManager().registerEvents(this, this);
      this.getServer().getScheduler()
      .scheduleSyncDelayedTask(this, new Runnable() {
     
      @SuppressWarnings({ "unused", "null" })
    @Override
      @EventHandler
      public void run() {
        boolean closeDoor;
     
        //X =29 Y = 135 Z = -64
        {
        PlayerRespawnEvent event;
        Location location;
        final Player p = event.getPlayer();
        Location loc = new Location(getServer().getWorld("world"), 29, 135, -64);
        p.teleport(loc);
          }
        }
     
      }
      , 6L);
    }
    Whaaaaaaaat the heck are you trying to do here? @EventHandler inside a task, with a random PlayerRespawnEvent variable that's unused as well as a closeDoor boolean that's never used. The event variable is never initialized, so event.getPlayer() is useless. I sure do hope your IDE is throwing some serious errors.

    I'm honestly at a loss as to what is trying to be attempted here.
     
    WarmakerT likes this.
  27. Offline

    travja

    I don't quite understand, You've teleported them to the spawn of the end and you need to teleport them back to their deathpoint or what after 5 mins?
     
  28. Offline

    calebbfmv

    *FACEPALM!!!!* My friend made the timer part of the code, and I didn't even look it over, I feel so stupid!!!!
    What might I need to do?
    travja
    Teleoprt them to the spawn of the Main world, at the coords I made. More clear?
     
  29. Offline

    Firefly

    Delete that task, it seems like you do the same thing in an actual event handler further down in the code.
     
  30. Offline

    calebbfmv

    Done
     
Thread Status:
Not open for further replies.

Share This Page