public void updatePlayerLocation(String UUID, Location location, long time) {
		time %= 1e12; // Not necessary to store so big a value and requires
						// reconfiguring of mysql database.
		_InternalPlayer player = this._watchedPlayers.get(UUID);

		if (player == null) // Log.ConsoleLog("Tried to set data values on player that was not added to watch '"
							// + UUID + "'");
			return;
		try {
			// Minimize unnecessary updating.
			if (player.timeSteps.contains(time)) {
				return;
			}

			int x = location.getBlockX();
			int y = location.getBlockY();
			int z = location.getBlockZ();

			// Minimize unnecsesary updating: Don't update if same location
			if (player.previousPosition != null
					&& player.previousPosition.getBlockX() == x
					&& player.previousPosition.getBlockY() == y
					&& player.previousPosition.getBlockZ() == z) {

				return;
			}
			synchronized (player.timeSteps) {
				player.timeSteps.add(time);
			}
			player.timeXMapping.put(time, x);
			player.timeYMapping.put(time, y);
			player.timeZMapping.put(time, z);
			player.previousPosition = location;
		} catch (IllegalArgumentException e) {
			// player.LastLocation = location;
		}

	}