public void run() {

		World world;
		Location blockLocation;
		BaseBlock testBlock;

		// if(delaysTillBlockPlace <= building.getBuildSpeed()) {
		if (delaysTillBlockPlace <= 1) {
			delaysTillBlockPlace++;
		} else {
			delaysTillBlockPlace = 0;
			world = player.getWorld();
			blockLocation = new Location(world,
					blockVector.getBlockX() + width, blockVector.getBlockY()
							+ 1 + height, blockVector.getBlockZ() + length);
			testBlock = clipBoard.getPoint(new Vector(width, height, length));
			while (testBlock.getId() == Material.AIR.getId()) {
				world.getBlockAt(blockLocation).setTypeIdAndData(
						testBlock.getId(), (byte) testBlock.getData(), false);
				building.blockSet();
				length++;
				if (length == clipBoard.getLength()) {
					length = 0;
					width++;
				}
				if (width == clipBoard.getWidth()) {
					width = 0;
					height++;
				}
				if (height == clipBoard.getHeight()) {

					Location minLoc = new Location(world,
							blockVector.getBlockX() - 1,
							blockVector.getBlockY() + 1,
							blockVector.getBlockZ() - 1);
					Location maxLoc = new Location(world,
							blockVector.getBlockX() - 1 + clipBoard.getWidth(),
							blockVector.getBlockY() + clipBoard.getHeight(),
							blockVector.getBlockZ() - 1 + clipBoard.getLength());
					BuildingBuiltEvent builtEvent = new BuildingBuiltEvent(
							minLoc, maxLoc, player);
					Bukkit.getPluginManager().callEvent(builtEvent);

					this.cancel();
					return;
				}
				blockLocation = new Location(world, blockVector.getBlockX()
						+ width, blockVector.getBlockY() + 1 + height,
						blockVector.getBlockZ() + length);
				testBlock = clipBoard
						.getPoint(new Vector(width, height, length));
			}
			world.getBlockAt(blockLocation).setTypeIdAndData(testBlock.getId(),
					(byte) testBlock.getData(), false);
			building.blockSet();

			length++;
			if (length == clipBoard.getLength()) {
				length = 0;
				width++;
			}
			if (width == clipBoard.getWidth()) {
				width = 0;
				height++;
			}
			if (height == clipBoard.getHeight()) {

				Location minLoc = new Location(world,
						blockVector.getBlockX() - 1,
						blockVector.getBlockY() + 1,
						blockVector.getBlockZ() - 1);
				Location maxLoc = new Location(world, blockVector.getBlockX()
						- 1 + clipBoard.getWidth(), blockVector.getBlockY()
						+ clipBoard.getHeight(), blockVector.getBlockZ() - 1
						+ clipBoard.getLength());
				BuildingBuiltEvent builtEvent = new BuildingBuiltEvent(minLoc,
						maxLoc, player);
				Bukkit.getPluginManager().callEvent(builtEvent);

				this.cancel();
			}
		}

	}