My class: Code: package com.boss86741.plugins.allday; import java.util.List; import org.bukkit.World; import org.bukkit.plugin.java.JavaPlugin; public class AllDay extends JavaPlugin { public List<World> adanWorlds; long repeat; public void timechk() { for (World w : adanWorlds) { Long now = w.getTime(); Long dawn = getConfig().getLong("worlds." + w.getName() + ".dawn"); Long dusk = getConfig().getLong("worlds." + w.getName() + ".dusk"); if (now < dawn || now > dusk) { w.setTime(dawn); } } } @Override public void onEnable() { getLogger().info("Enabled!"); getLogger().info("It will now always be day."); getServer().getScheduler().scheduleSyncRepeatingTask(this, new Runnable() { public void run() { timechk(); } }, 60L, repeat); } } My error: Code: 07:59:23 [WARNING] [AllDay] Task #16 for AllDay v1.0 generated an exception java.lang.NullPointerException at com.boss86741.plugins.allday.AllDay.timechk(AllDay.java:13) at com.boss86741.plugins.allday.AllDay$1.run(AllDay.java:29) at org.bukkit.craftbukkit.v1_4_6.scheduler.CraftTask.run(CraftTask.java:53) at org.bukkit.craftbukkit.v1_4_6.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:345) at net.minecraft.server.v1_4_6.MinecraftServer.r(MinecraftServer.java:530) at net.minecraft.server.v1_4_6.DedicatedServer.r(DedicatedServer.java:224) at net.minecraft.server.v1_4_6.MinecraftServer.q(MinecraftServer.java:494) at net.minecraft.server.v1_4_6.MinecraftServer.run(MinecraftServer.java:427) at net.minecraft.server.v1_4_6.ThreadServerApplication.run(SourceFile:849)
boss86741 Can you post the lines: 13 and 29? boss86741 Ah I see, on line 13 you're looping through a List what's null. That causes a nullPointerExeption. I would recommend first checking if the list is not null and than loop through it. EDIT by Moderator: merged posts, please use the edit button instead of double posting.
Simply initialize your adanWorlds member in onEnable: Code: adanWorlds = new ArrayList<World>(); You don't need to check for adanWorlds being null, as it will always have a reference when your plugin is enabled. Btw, i would suggest you to save the world names instead of the world objects in your List and retrieve the worlds in the loop, by using: Code: World w = getServer().getWorld(worldName) That'll avoid memory leaks and that you are working with an outdated World object. Be sure to check if w is null and use continue; to skip the current iteration if the world with the given name can't be found. EDIT by Moderator: merged posts, please use the edit button instead of double posting.
Code: 17:05:53 [WARNING] [AllDay] Task #2 for AllDay v1.0 generated an exception java.lang.NullPointerException at com.boss86741.plugins.allday.AllDay.timechk(AllDay.java:13) at com.boss86741.plugins.allday.AllDay$1.run(AllDay.java:29) at org.bukkit.craftbukkit.v1_4_R1.scheduler.CraftTask.run(CraftTask.java:53) at org.bukkit.craftbukkit.v1_4_R1.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:344) at net.minecraft.server.v1_4_R1.MinecraftServer.r(MinecraftServer.java:530) at net.minecraft.server.v1_4_R1.DedicatedServer.r(DedicatedServer.java:224) at net.minecraft.server.v1_4_R1.MinecraftServer.q(MinecraftServer.java:494) at net.minecraft.server.v1_4_R1.MinecraftServer.run(MinecraftServer.java:427) at net.minecraft.server.v1_4_R1.ThreadServerApplication.run(SourceFile:849) Anyone? EDIT by Moderator: merged posts, please use the edit button instead of double posting.