	public void everySecondCheck() {
		if (schedulerTaskID != -1) {
			Config.removeBorder(plugin.startPosition.getWorld().getName());
			schedulerTaskID = plugin.getServer().getScheduler().scheduleSyncRepeatingTask(plugin, new Runnable() {
				public void run() {
					switch (gameStatus) {
						case 1:
							if (plugin.debug) {
								plugin.log.info((preGameCountdown - currentLoop) + " seconds until game starts.");
							}
							if ((preGameCountdown - currentLoop % 3600 == 0 || preGameCountdown - currentLoop == 60 || preGameCountdown - currentLoop % 60 == 0 || (preGameCountdown - currentLoop <= 10 && preGameCountdown - currentLoop > 0) || preGameCountdown - currentLoop == 15 || preGameCountdown - currentLoop == 30) && preGameCountdown - currentLoop != 0) {
								plugin.serverwide.sendMessageToAllPlayers(String.format(plugin.strings.get("starttimeleft"), (((preGameCountdown - currentLoop) % 3600) == 0) ? ((preGameCountdown - currentLoop) / 60) + " hour" + ((((preGameCountdown - currentLoop) / 60) == 1) ? "s" : "") : ((preGameCountdown - currentLoop) % 60 == 0 ? (preGameCountdown - currentLoop) / 60 + " minute" + (((preGameCountdown - currentLoop) / 60) == 1 ? "" : "s") : (preGameCountdown - currentLoop) + " second" + ((preGameCountdown - currentLoop != 1) ? "s" : ""))));
							}
							if (currentLoop >= preGameCountdown) {
								if (plugin.debug) {
									plugin.log.info("Attempting to start...");
								}
								if (plugin.serverwide.livingPlayers.size() <= minPlayersToStart) { 
									plugin.serverwide.sendMessageToAllPlayers(plugin.strings.get("startnotenoughplayers"));
								} else { 
									ScheduledTasks.gameStatus = 2;
									plugin.scheduler.startGame();
								}
								currentLoop = -1;
							}
							currentLoop++;
							break;
						case 2:
							if (plugin.debug) {
								plugin.log.info((gameInvincibleCountdown - currentLoop) + " seconds until invincibility ends.");
							}
							if (currentLoop >= gameInvincibleCountdown) {
								if (plugin.debug) {
									plugin.log.info("Invincibility has ended.");
								}
								plugin.serverwide.sendMessageToAllPlayers(plugin.strings.get("invincibilityend"));
								gameStatus = 3;
								currentLoop = -1;
							}
							currentLoop++;
							break;
						case 3:
							if (plugin.debug) {
								plugin.log.info((gameOvertimeCountdown - currentLoop) + " seconds until overtime starts.");
							}
							if ((currentLoop - gameOvertimeCountdown) % 60 == 0 || (((currentLoop - gameOvertimeCountdown) / 60) <= 60 && ((((currentLoop - gameOvertimeCountdown) / 60) == 30 || ((currentLoop - gameOvertimeCountdown) / 60) == 15 || (((currentLoop - gameOvertimeCountdown) / 60) <= 10 && !(((currentLoop - gameOvertimeCountdown) / 60) == 0)))))) {
								if (!((currentLoop - gameOvertimeCountdown) == 0)) {
									plugin.serverwide.sendMessageToAllPlayers( (gameOvertimeCountdown-currentLoop ) % 60 == 0 ? (gameOvertimeCountdown-currentLoop) / 60 + " minutes until overtime starts" : (gameOvertimeCountdown-currentLoop) / 60 +" minutes and " + (gameOvertimeCountdown-currentLoop) % 60 + " seconds until overtime starts.");
								}
							}
							if (currentLoop >= gameOvertimeCountdown) {
								if (plugin.debug) {
									plugin.log.info("Overtime has started.");
								}
								plugin.serverwide.sendMessageToAllPlayers(plugin.strings.get("overtimestart"));
								for (Player p : plugin.getServer().getOnlinePlayers()) {
									if (plugin.serverwide.getArcher(p).isReady) {
										p.teleport(plugin.startPosition);
									}
								}
								Config.setBorder(plugin.startPosition.getWorld().getName(), overtimeWorldRadius, plugin.startPosition.getBlockX(), plugin.startPosition.getBlockZ(), true); 
								gameStatus = 4;
								currentLoop = -1;
							}
							currentLoop++;
							break;
						case 4:
							int alivePlayers = 0;
							for (Player p : plugin.getServer().getOnlinePlayers()) {
								if (Archer.getByName(p.getName()).isAlive()) {
									alivePlayers++;
								}
							}
							if (alivePlayers <= 1) {
								if (plugin.debug) {
									plugin.log.info("Game has ended.");
								}
								plugin.scheduler.endGame();
								currentLoop = -1;
							}
							currentLoop++;
							break;
						case 5:
							if (plugin.debug) {
								plugin.log.info((shutdownTimer - currentLoop) + " seconds until server reboots.");
							}
							if (currentLoop % 5 == 0) {
								plugin.serverwide.sendMessageToAllPlayers(ChatColor.GREEN + "" + plugin.winner + " is the winner!");
							}
							if (currentLoop >= shutdownTimer) {
								if (plugin.debug) {
									plugin.log.info("Kicking all players, then shutting down.");
								}
								for (Player p : plugin.getServer().getOnlinePlayers()) {
									p.kickPlayer(plugin.strings.get("serverclosekick"));
								}
								plugin.getServer().shutdown();
							}
							currentLoop++;
							break;
					}
				}
			}, 20L, 20L);
			if (plugin.debug) {
				plugin.log.info("Task ID is " + schedulerTaskID);
			}
		} else {
			plugin.log.severe("Scheduler task start was attempted, but scheduler task already running!");
		}
	}

	public void everySecondCheck() {
		if (schedulerTaskID != -1) {
			Config.removeBorder(plugin.startPosition.getWorld().getName());
			schedulerTaskID = plugin.getServer().getScheduler().scheduleSyncRepeatingTask(plugin, new Runnable() {
				public void run() {
					switch (gameStatus) {
						case 1:
							if (plugin.debug) {
								plugin.log.info((preGameCountdown - currentLoop) + " seconds until game starts.");
							}
							if ((preGameCountdown - currentLoop % 3600 == 0 || preGameCountdown - currentLoop == 60 || preGameCountdown - currentLoop % 60 == 0 || (preGameCountdown - currentLoop <= 10 && preGameCountdown - currentLoop > 0) || preGameCountdown - currentLoop == 15 || preGameCountdown - currentLoop == 30) && preGameCountdown - currentLoop != 0) {
								plugin.serverwide.sendMessageToAllPlayers(String.format(plugin.strings.get("starttimeleft"), (((preGameCountdown - currentLoop) % 3600) == 0) ? ((preGameCountdown - currentLoop) / 60) + " hour" + ((((preGameCountdown - currentLoop) / 60) == 1) ? "s" : "") : ((preGameCountdown - currentLoop) % 60 == 0 ? (preGameCountdown - currentLoop) / 60 + " minute" + (((preGameCountdown - currentLoop) / 60) == 1 ? "" : "s") : (preGameCountdown - currentLoop) + " second" + ((preGameCountdown - currentLoop != 1) ? "s" : ""))));
							}
							if (currentLoop >= preGameCountdown) {
								if (plugin.debug) {
									plugin.log.info("Attempting to start...");
								}
								if (plugin.serverwide.livingPlayers.size() <= minPlayersToStart) { 
									plugin.serverwide.sendMessageToAllPlayers(plugin.strings.get("startnotenoughplayers"));
								} else { 
									ScheduledTasks.gameStatus = 2;
									plugin.scheduler.startGame();
								}
								currentLoop = -1;
							}
							currentLoop++;
							break;
						case 2:
							if (plugin.debug) {
								plugin.log.info((gameInvincibleCountdown - currentLoop) + " seconds until invincibility ends.");
							}
							if (currentLoop >= gameInvincibleCountdown) {
								if (plugin.debug) {
									plugin.log.info("Invincibility has ended.");
								}
								plugin.serverwide.sendMessageToAllPlayers(plugin.strings.get("invincibilityend"));
								gameStatus = 3;
								currentLoop = -1;
							}
							currentLoop++;
							break;
						case 3:
							if (plugin.debug) {
								plugin.log.info((gameOvertimeCountdown - currentLoop) + " seconds until overtime starts.");
							}
							if ((currentLoop - gameOvertimeCountdown) % 60 == 0 || (((currentLoop - gameOvertimeCountdown) / 60) <= 60 && ((((currentLoop - gameOvertimeCountdown) / 60) == 30 || ((currentLoop - gameOvertimeCountdown) / 60) == 15 || (((currentLoop - gameOvertimeCountdown) / 60) <= 10 && !(((currentLoop - gameOvertimeCountdown) / 60) == 0)))))) {
								if (!((currentLoop - gameOvertimeCountdown) == 0)) {
									plugin.serverwide.sendMessageToAllPlayers( (gameOvertimeCountdown-currentLoop ) % 60 == 0 ? (gameOvertimeCountdown-currentLoop) / 60 + " minutes until overtime starts" : (gameOvertimeCountdown-currentLoop) / 60 +" minutes and " + (gameOvertimeCountdown-currentLoop) % 60 + " seconds until overtime starts.");
								}
							}
							if (currentLoop >= gameOvertimeCountdown) {
								if (plugin.debug) {
									plugin.log.info("Overtime has started.");
								}
								plugin.serverwide.sendMessageToAllPlayers(plugin.strings.get("overtimestart"));
								for (Player p : plugin.getServer().getOnlinePlayers()) {
									if (plugin.serverwide.getArcher(p).isReady) {
										p.teleport(plugin.startPosition);
									}
								}
								Config.setBorder(plugin.startPosition.getWorld().getName(), overtimeWorldRadius, plugin.startPosition.getBlockX(), plugin.startPosition.getBlockZ(), true); 
								gameStatus = 4;
								currentLoop = -1;
							}
							currentLoop++;
							break;
						case 4:
							int alivePlayers = 0;
							for (Player p : plugin.getServer().getOnlinePlayers()) {
								if (Archer.getByName(p.getName()).isAlive()) {
									alivePlayers++;
								}
							}
							if (alivePlayers <= 1) {
								if (plugin.debug) {
									plugin.log.info("Game has ended.");
								}
								plugin.scheduler.endGame();
								currentLoop = -1;
							}
							currentLoop++;
							break;
						case 5:
							if (plugin.debug) {
								plugin.log.info((shutdownTimer - currentLoop) + " seconds until server reboots.");
							}
							if (currentLoop % 5 == 0) {
								plugin.serverwide.sendMessageToAllPlayers(ChatColor.GREEN + "" + plugin.serverwide.winner + " is the winner!");
							}
							if (currentLoop >= shutdownTimer) {
								if (plugin.debug) {
									plugin.log.info("Kicking all players, then shutting down.");
								}
								for (Player p : plugin.getServer().getOnlinePlayers()) {
									p.kickPlayer(plugin.strings.get("serverclosekick"));
								}
								plugin.getServer().shutdown();
							}
							currentLoop++;
							break;
					}
				}
			}, 20L, 20L);
			if (plugin.debug) {
				plugin.log.info("Task ID is " + schedulerTaskID);
			}
		} else {
			plugin.log.severe("Scheduler task start was attempted, but scheduler task already running!");
		}
	}
