package dk.thoerup.bukkit.hoeruputils; import java.util.List; import org.bukkit.ChatColor; import org.bukkit.Server; import org.bukkit.World; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.plugin.Plugin; import dk.thoerup.bukkit.hoeruputils.utils.MessageBroadcaster; public class EternalDayCommand implements CommandExecutor { int taskId = -1; List worlds; Server server; Plugin plugin; public EternalDayCommand(Plugin plugin) { this.plugin = plugin; server = plugin.getServer(); worlds = server.getWorlds(); } @Override public boolean onCommand(final CommandSender sender, Command command, String label, String[] args) { //debug System.out.println("world count " + worlds.size()); try { if (taskId == -1) { taskId = server.getScheduler().scheduleSyncRepeatingTask(plugin, new EternalDayRunner(), 2*20, 60*20); server.broadcastMessage(ChatColor.YELLOW + "Eternal day is enabled - have a nice long day"); } else { server.getScheduler().cancelTask(taskId); taskId = -1; server.broadcastMessage(ChatColor.YELLOW + "Eternal day is disabled - watch out for zombies"); } } catch (Exception e) { e.printStackTrace(); } return true; } class EternalDayRunner implements Runnable { // 1000=1 hour, 0 is 06:00 so 12000 is 18:00 @Override public void run() { try { for(World world : worlds) { System.out.println(" >" + world.getName() + " : " + world.getTime() ); if (world.getTime() > 12000) { world.setTime(0); server.getScheduler().scheduleSyncDelayedTask(plugin, new MessageBroadcaster(server, ChatColor.YELLOW + "Eternalday has extended the period of light once again!")); } } } catch (Exception e ){ e.printStackTrace(); } } } }