@Override
	public boolean okMessage(Environmental host, CMMsg msg)
	{
		if(!super.okMessage(host,msg))
			return false;
		if(affected instanceof Item)
		{
			if((msg.targetMinor()==CMMsg.TYP_ENTER)
			&&(msg.target() instanceof Room)
			&&(msg.source()==((Item)affected).owner())
			&&(text().startsWith("DST;")))
			{
				if(getAvailableLine(msg.source()).size()==0)
				{
					msg.source().tell(L("You have run out of cloth to make tapline from!  Better put down the cup..."));
					return false;
				}
				int roomsLeft=0;
				final List<String> V=getParsedText();
				if(V.size()>3)
					roomsLeft=CMath.s_int(V.get(3));
				if(roomsLeft<=0)
				{
					msg.source().tell(L("Go any further, and your tap line won't work at all.  Better just put it down here..."));
					return false;
				}
			}
		}
		return true;
	}