@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
	public void onBlockFromTo(BlockFromToEvent e) {
		CBlock conBlock = parent.getControllerBlockFor(null, e.getToBlock()
				.getLocation(), null, Boolean.valueOf(true));
		if (conBlock == null) {
			return;
		}
		if (conBlock.isBeingEdited()) {
			if (!parent.blockPhysicsEditCheck) {
				return;
			}
			Player player = getPlayerEditing(conBlock);
			parent.log
					.debug("Block at "
							+ Util.formatLocation(e.getToBlock().getLocation())
							+ " was drowned while editing and removed from a controller");
			conBlock.delBlock(e.getToBlock());
			player.sendMessage("Removing block due to change while editing "
					+ Util.formatBlockCount(conBlock));
		} else {
			BlockProtectMode protect = (BlockProtectMode) parent.getConfigu()
					.getOpt(Config.Option.BlockFlowProtectMode);
			if (protect.equals(BlockProtectMode.protect)) {
				e.setCancelled(true);
			} else if (protect.equals(BlockProtectMode.remove)) {
				conBlock.delBlock(e.getBlock());
			}
		}
	}