Problem on creating a scheduleSyncDelayedTask

Discussion in 'Plugin Development' started by NNickey, Jun 14, 2012.

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

    NNickey

    Code:
        @Override
        public void onEnable() {
            PluginDescriptionFile pdfFile = this.getDescription();
            this.logger.info(pdfFile.getName() + " has been enabled.");
            plugin.getServer().getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() {
                public void run() {
                    if(plugin.getServer().getWorld("world").hasStorm()==true) {
                        if(day==true){
                            warn=0;
                            plugin.getServer().getWorld("world").setStorm(false);
                            if(msg==true){
                                plugin.getServer().broadcastMessage(ChatColor.GOLD + "[AlwaysDay] Weather turned off.");
                            }
                        } else {
                            if(msg==true) {
                                if(warn!=10) {
                                    warn=warn+1;
                                    plugin.getServer().broadcastMessage(ChatColor.GOLD + "[AlwaysDay] It is storming!");
                                    plugin.getServer().broadcastMessage(ChatColor.GOLD + "[AlwaysDay] Say '/autoday' to activate.");
                                    plugin.getServer().broadcastMessage(ChatColor.GOLD + "[AlwaysDay] " + (10-warn) + " notifycations left.");
                                }
                            }
                        }
                    }
                    if(plugin.getServer().getWorld("world").getTime()>=468000){
                        if(day==true){
                            warn=0;
                            plugin.getServer().getWorld("world").setFullTime(60);
                            if(msg==true){
                                plugin.getServer().broadcastMessage(ChatColor.GOLD + "[AlwaysDay] Time has been set to day. (60)");
                            }
                        } else {
                            if(msg==true) {
                                if(warn!=10) {
                                    warn=warn+1;
                                    plugin.getServer().broadcastMessage(ChatColor.GOLD + "[AlwaysDay] Time is night!");
                                    plugin.getServer().broadcastMessage(ChatColor.GOLD + "[AlwaysDay] Say '/autoday' to activate.");
                                    plugin.getServer().broadcastMessage(ChatColor.GOLD + "[AlwaysDay] " + (10-warn) + " notifycations left.");
                                }
                            }
                        }
                    }
                }
            }
        , 200L);
        }
    Problem..
    Bukkit says line 26 is having a error.

    Line.
    Code:
    plugin.getServer().getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() {
    Bukkit Error.
    Code:
    18:16:16 [SEVERE] Error occurred while enabling AlwaysDay v1.1 (Is it up to date?)
    java.lang.NullPointerException
            at me.NNickey.alwaysday.AlwaysDay.onEnable(AlwaysDay.java:26)
            at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:215)
            at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:336)
            at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:381)
            at org.bukkit.craftbukkit.CraftServer.loadPlugin(CraftServer.java:250)
            at org.bukkit.craftbukkit.CraftServer.enablePlugins(CraftServer.java:232)
            at org.bukkit.craftbukkit.CraftServer.reload(CraftServer.java:543)
            at org.bukkit.Bukkit.reload(Bukkit.java:182)
            at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:22)
            at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:166)
            at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:473)
            at org.bukkit.craftbukkit.CraftServer.dispatchServerCommand(CraftServer.java:469)
            at net.minecraft.server.MinecraftServer.b(MinecraftServer.java:596)
            at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:565)
            at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:449)
            at net.minecraft.server.ThreadServerApplication.run(SourceFile:492)
    
     
  2. Offline

    r0306

    NNickey
    Instead of "plugin," use "this" since it's your main class.
     
  3. Offline

    NNickey

    Helped a little bit there, r0306..
    Error code on reload.
    Code:
    18:27:26 [SEVERE] Error occurred while enabling AlwaysDay v1.1 (Is it up to date?)
    java.lang.NullPointerException
            at me.NNickey.alwaysday.AlwaysDay.onEnable(AlwaysDay.java:26)
            at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:215)
            at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:336)
            at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:381)
            at org.bukkit.craftbukkit.CraftServer.loadPlugin(CraftServer.java:250)
            at org.bukkit.craftbukkit.CraftServer.enablePlugins(CraftServer.java:232)
            at org.bukkit.craftbukkit.CraftServer.reload(CraftServer.java:543)
            at org.bukkit.Bukkit.reload(Bukkit.java:182)
            at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:22)
            at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:166)
            at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:473)
            at org.bukkit.craftbukkit.CraftServer.dispatchServerCommand(CraftServer.java:469)
            at net.minecraft.server.MinecraftServer.b(MinecraftServer.java:596)
            at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:565)
            at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:449)
            at net.minecraft.server.ThreadServerApplication.run(SourceFile:492)
    Error code on restart
    Code:
    18:29:23 [SEVERE] Error occurred while enabling AlwaysDay v1.1 (Is it up to date?)
    java.lang.NullPointerException
            at me.NNickey.alwaysday.AlwaysDay.onEnable(AlwaysDay.java:26)
            at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:215)
            at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:336)
            at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:381)
            at org.bukkit.craftbukkit.CraftServer.loadPlugin(CraftServer.java:250)
            at org.bukkit.craftbukkit.CraftServer.enablePlugins(CraftServer.java:232)
            at net.minecraft.server.MinecraftServer.t(MinecraftServer.java:371)
            at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:358)
            at net.minecraft.server.MinecraftServer.init(MinecraftServer.java:187)
            at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:422)
            at net.minecraft.server.ThreadServerApplication.run(SourceFile:492)
    New code
    Code:
        @Override
        public void onEnable() {
            PluginDescriptionFile pdfFile = this.getDescription();
            this.logger.info(pdfFile.getName() + " has been enabled.");
            plugin.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
                public void run() {
                    if(plugin.getServer().getWorld("world").hasStorm()==true) {
                        if(day==true){
                            warn=0;
                            plugin.getServer().getWorld("world").setStorm(false);
                            if(msg==true){
                                plugin.getServer().broadcastMessage(ChatColor.GOLD + "[AlwaysDay] Weather turned off.");
                            }
                        } else {
                            if(msg==true) {
                                if(warn!=10) {
                                    warn=warn+1;
                                    plugin.getServer().broadcastMessage(ChatColor.GOLD + "[AlwaysDay] It is storming!");
                                    plugin.getServer().broadcastMessage(ChatColor.GOLD + "[AlwaysDay] Say '/autoday' to activate.");
                                    plugin.getServer().broadcastMessage(ChatColor.GOLD + "[AlwaysDay] " + (10-warn) + " notifycations left.");
                                }
                            }
                        }
                    }
                    if(plugin.getServer().getWorld("world").getTime()>=468000){
                        if(day==true){
                            warn=0;
                            plugin.getServer().getWorld("world").setFullTime(60);
                            if(msg==true){
                                plugin.getServer().broadcastMessage(ChatColor.GOLD + "[AlwaysDay] Time has been set to day. (60)");
                            }
                        } else {
                            if(msg==true) {
                                if(warn!=10) {
                                    warn=warn+1;
                                    plugin.getServer().broadcastMessage(ChatColor.GOLD + "[AlwaysDay] Time is night!");
                                    plugin.getServer().broadcastMessage(ChatColor.GOLD + "[AlwaysDay] Say '/autoday' to activate.");
                                    plugin.getServer().broadcastMessage(ChatColor.GOLD + "[AlwaysDay] " + (10-warn) + " notifycations left.");
                                }
                            }
                        }
                    }
                }
            }
        , 200L);
        }
    New code at line
    Code:
            plugin.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
    ------------------------------------------------------------------------------------------------
    Trying this line still errors.
    Code:
            this.getServer().getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() {
    Code:
    18:31:28 [SEVERE] Error occurred while enabling AlwaysDay v1.1 (Is it up to date?)
    java.lang.IllegalArgumentException: Plugin cannot be null
            at org.bukkit.craftbukkit.scheduler.CraftScheduler.scheduleSyncRepeatingTask(CraftScheduler.java:189)
            at org.bukkit.craftbukkit.scheduler.CraftScheduler.scheduleSyncDelayedTask(CraftScheduler.java:180)
            at me.NNickey.alwaysday.AlwaysDay.onEnable(AlwaysDay.java:26)
            at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:215)
            at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:336)
            at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:381)
            at org.bukkit.craftbukkit.CraftServer.loadPlugin(CraftServer.java:250)
            at org.bukkit.craftbukkit.CraftServer.enablePlugins(CraftServer.java:232)
            at org.bukkit.craftbukkit.CraftServer.reload(CraftServer.java:543)
            at org.bukkit.Bukkit.reload(Bukkit.java:182)
            at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:22)
            at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:166)
            at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:473)
            at org.bukkit.craftbukkit.CraftServer.dispatchServerCommand(CraftServer.java:469)
            at net.minecraft.server.MinecraftServer.b(MinecraftServer.java:596)
            at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:565)
            at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:449)
            at net.minecraft.server.ThreadServerApplication.run(SourceFile:492)
    ------------------------------------------------------------------------------------------------
    Trying this line, works but then errors on attempt.
    Code:
            this.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
    Code:
    18:33:24 [WARNING] Task of 'AlwaysDay' generated an exception
    java.lang.NullPointerException
            at me.NNickey.alwaysday.AlwaysDay$1.run(AlwaysDay.java:28)
            at org.bukkit.craftbukkit.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:126)
            at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:517)
            at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:449)
            at net.minecraft.server.ThreadServerApplication.run(SourceFile:492)
    Error at line 28.
    Code:
                    if(plugin.getServer().getWorld("world").hasStorm()==true) {
    ------------------------------------------------------------------------------------------------
    Trying line 28 to
    Code:
                    if(this.getServer().getWorld("world").hasStorm()==true) {
     
  4. Offline

    r0306

    NNickey
    Change everything with "plugin" to "this."
     
  5. Offline

    NNickey

    Ok.

    Cant change line 31,33,39,40,41,46,51,57,58,59 all to same reason

    this.getServer()
    getServer() is undefined to this.
     
  6. Offline

    Sagacious_Zed Bukkit Docs

    NNickey /faceplam
    The 'this' keyword always refers to the current instance of the inner most class. i.e. if your in the new runnable 'this' refers to the instance of the runnable and not the instance of the plugin. Since you have nested anonymous classes you cannot use this.
    If you do not assign the plugin variable with a value it will be null and you cannot call methods on it.
     
  7. Offline

    NNickey

    I do everything on ONE class.. Why does everyone always think I do more classes.. I only have one class.

    (I only show sum{code} so people cant steal it all.)

    If you want to help me with the entire code, make a chat box and lets chat about it.

    Anyway, I found one mistake and it was on my Test Server.. The main map wasent 'world' it was Map. Redoing.

    Help please?
    It still errors.

    19:18:05 [WARNING] Task of 'AlwaysDay' generated an exception
    java.lang.NullPointerException
    at me.NNickey.alwaysday.AlwaysDay$1.run(AlwaysDay.java:28)
    at org.bukkit.craftbukkit.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:126)
    at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:517)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:449)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:492)

    Hello!!
    If Im offline.. That dosent mean it dosent matter that you cant post.. Help me here, because my friend is getting mad on how long its taking me to make this plugin!

    If no one is going to post, ima remake this post!

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

    caldabeast

    It was 50 minutes since you posted. Forum spam is not necessary. Just wait.
     
  9. Offline

    NNickey

    Its been 2 hours since I just made this post......

    And been waiting for 1hour and 20 seconds for a responce.

    Thats it.. Reposting.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 26, 2016
  10. You're persistent and spamming, this is a forum not a chatroom.

    To answer the thread... if you're going to use plugin methods in the main class, just use the methods, drop any plugin. or this. prefixes since they're not required... and remove your "plugin" variable so you can see where you've placed it in the code and so you don't use it in the future because you don't need it for just one class.

    But seriously, beeing pushy doesn't get you attention, it makes people ignore you :)
     
  11. Offline

    NNickey

    Well. Fine.. I`ll do a bunch of debuging.

    Well.. All I got was that it stops when creating the event.

    Well since I will be nice to the forums. I`ma go to sleep, if there is NO fix when I wake back up, I`ll be ****ed.

    6 hours until fix o.o

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

    r0306

    NNickey
    Here, why don't you try this?
    Code:
    @Override
        public void onEnable() {
            PluginDescriptionFile pdfFile = this.getDescription();
            this.logger.info(pdfFile.getName() + " has been enabled.");
            this.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
                public void run() {
                    if(getServer().getWorld("world").hasStorm()==true) {
                        if(day==true){
                            warn=0;
                            getServer().getWorld("world").setStorm(false);
                            if(msg==true){
                                getServer().broadcastMessage(ChatColor.GOLD + "[AlwaysDay] Weather turned off.");
                            }
                        } else {
                            if(msg==true) {
                                if(warn!=10) {
                                    warn=warn+1;
                                    getServer().broadcastMessage(ChatColor.GOLD + "[AlwaysDay] It is storming!");
                                    getServer().broadcastMessage(ChatColor.GOLD + "[AlwaysDay] Say '/autoday' to activate.");
                                    getServer().broadcastMessage(ChatColor.GOLD + "[AlwaysDay] " + (10-warn) + " notifycations left.");
                                }
                            }
                        }
                    }
                    if(getServer().getWorld("world").getTime()>=468000){
                        if(day==true){
                            warn=0;
                            getServer().getWorld("world").setFullTime(60);
                            if(msg==true){
                                getServer().broadcastMessage(ChatColor.GOLD + "[AlwaysDay] Time has been set to day. (60)");
                            }
                        } else {
                            if(msg==true) {
                                if(warn!=10) {
                                    warn=warn+1;
                                    getServer().broadcastMessage(ChatColor.GOLD + "[AlwaysDay] Time is night!");
                                    getServer().broadcastMessage(ChatColor.GOLD + "[AlwaysDay] Say '/autoday' to activate.");
                                    getServer().broadcastMessage(ChatColor.GOLD + "[AlwaysDay] " + (10-warn) + " notifycations left.");
                                }
                            }
                        }
                    }
                }
            }
        , 200L);
        }
     
  13. Offline

    NNickey

    Ok! It now works, now that the 'if its night, turn day' thing wont work
    if(getServer().getWorld("world").getTime()>=468000){

    r0306
    Hey.
    Is it possible to do this below?

    Code:
    public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args){
      Player player = (Player) sender;
      if(player.isOp()==true) {
          if (commandLabel.equalsIgnoreCase("alwaysdayspeed")){
            speed=args[0]
          }
      }
    }
    
    I want to be able to convert args[0] to a number and if a player said "/alwaysdayspeed aswv", it will error and say it needs to be a number? Is that possible?

    Current code ready for value speed

    Code:
    @Override
        public void onEnable() {
            PluginDescriptionFile pdfFile = this.getDescription();
            this.logger.info(pdfFile.getName() + " has been enabled.");
            this.getServer().getScheduler().scheduleSyncRepeatingTask(this, new Runnable() {
                public void run() {
                    if(getServer().getWorld("world").hasStorm()==true) {
                        if(day==true){
                            warn=0;
                            getServer().getWorld("world").setStorm(false);
                            if(msg==true){
                                getServer().broadcastMessage(ChatColor.GOLD + "[AlwaysDay] Weather turned off.");
                            }
                        } else {
                            if(msg==true) {
                                if(warn!=10) {
                                    warn=warn+1;
                                    getServer().broadcastMessage(ChatColor.GOLD + "[AlwaysDay] It is storming!");
                                    getServer().broadcastMessage(ChatColor.GOLD + "[AlwaysDay] Say '/autoday' to activate.");
                                    getServer().broadcastMessage(ChatColor.GOLD + "[AlwaysDay] " + (10-warn) + " notifycations left.");
                                }
                            }
                        }
                    }
                    if(getServer().getWorld("world").getFullTime()>=12550){
                        if(day==true){
                            warn=0;
                            getServer().getWorld("world").setFullTime(0);
                            if(msg==true){
                                getServer().broadcastMessage(ChatColor.GOLD + "[AlwaysDay] Time has been set to day.");
                            }
                        } else {
                            if(msg==true) {
                                if(warn!=10) {
                                    warn=warn+1;
                                    getServer().broadcastMessage(ChatColor.GOLD + "[AlwaysDay] Time is night!");
                                    getServer().broadcastMessage(ChatColor.GOLD + "[AlwaysDay] Say '/autoday' to activate.");
                                    getServer().broadcastMessage(ChatColor.GOLD + "[AlwaysDay] " + (10-warn) + " notifycations left.");
                                }
                            }
                        }
                    }
                }
            }
        , 20L, speed);
        }
    Thanks for your help!!!!! This is my last post, take your time as I will let you re-post for +10 hours!

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 26, 2016
  14. speed=Integer.parseInt(args[0])
     
  15. Offline

    NNickey

    Ill do try.. for making sure if it was not a integer
     
  16. Offline

    jmaster2012

    yeah. people sometimes wait days for answers.
     
  17. Offline

    Cloaking_Ocean

    Well you say here it's giving an error but
    here you say you found the error and it was that you named it wrong. Try learning from your mistakes and possibly changing the:

    if(getServer().getWorld("world").getTime()>=468000)

    to

    if(getServer().getWorld("Map").getTime()>=468000) //Or whatever the name of the world was.
     
Thread Status:
Not open for further replies.

Share This Page