package dk.thoerup.bukkit.hoeruputils; import java.util.List; import java.util.ArrayList; 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; ArrayList worlds = new ArrayList(); Server server; Plugin plugin; public EternalDayCommand(Plugin plugin) { this.plugin = plugin; server = plugin.getServer(); addWorld( server, "world" ); addWorld( server, "creative" ); } private void addWorld(Server server, String worldName) { World world = server.getWorld( worldName ); if (world != null) { worlds.add( world ); } } @Override public boolean onCommand(final CommandSender sender, Command command, String label, String[] args) { 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"); } return true; } class EternalDayRunner implements Runnable { // 1000=1 hour, 0 is 06:00 so 12000 is 18:00 @Override public void run() { for (World world : worlds) { if (world.getTime() > 12000) { world.setTime(0); String msg = ChatColor.YELLOW + "Eternalday has extended the period of light once again!"; //server.getScheduler().scheduleSyncDelayedTask(plugin, new MessageBroadcaster(server, msg)); Util.broadcastWorld(world, msg); } } } } }