public void stop()
	{
		if (state < 2) return;
		if (Score.size() < settings.getInt(Setting.MinimumPlayers))
		{
			String message = settings.getString(Setting.FinishMessageNotEnoughPlayers);
			message = message.replace("<World>", name);
			Util.Broadcast(message);
		}
		else
		{
			RewardManager.RewardWinners(this);
		}
		for (Entry<Player, Location> e : tplocations.entrySet())
		{
			Player player = e.getKey();
			if (player == null || !player.isOnline()) continue;
			player.teleport(e.getValue());
		}
		state = 0;
			for (String i : Score.keySet())
			{
				Integer hs = InputOutput.getHighScore(i);
				if (hs == null) hs = 0;
				int score = Score.get(i);
				if (score > hs)
				{
					InputOutput.UpdateHighScore(i, score);
					Player player = MonsterHunt.instance.getServer().getPlayer(i);
					if (player != null) 
					{
						String message = settings.getString(Setting.HighScoreMessage);
						message = message.replace("<Points>", String.valueOf(score));
						Util.Message(message, player);
					}
				}
			}
		
		lastScore.putAll(Score);
		Score.clear();
		properlyspawned.clear();
	}