protected void handleBeingItemLookedAt(CMMsg msg)
	{
		final MOB mob=msg.source();
		final Item item=(Item)msg.target();
		if(!CMLib.flags().canBeSeenBy(item,mob))
		{
			mob.tell(L("You can't see that!"));
			return;
		}

		final StringBuilder buf=new StringBuilder("");
		if(mob.isAttributeSet(MOB.Attrib.SYSOPMSGS))
		{
			StringBuilder spells=new StringBuilder("");
			for(Enumeration<Ability> a=item.effects();a.hasMoreElements();)
			{
				final Ability A=a.nextElement();
				if((!A.isSavable())||(A.canBeUninvoked()))
					spells.append(A.ID()).append(" ");
			}
			buf.append(L("\n\r"
					+ "Type  : @x1\n\r"
					+ "Rejuv : @x2\n\r"
					+ "Uses  : @x3\n\r"
					+ "Height: @x4\n\r"
					+ "Weight: @x5\n\r"
					+ "Abilty: @x6\n\r"
					+ "Level : @x7\n\r"
					+ "Expire: @x8\n\r"
					+ "Capaci: @x9\n\r"
					+ "Affect: @x10\n\r"
					+ "Misc  : @x11\n\r"
					+ "@x12",
					item.ID(),
					""+item.basePhyStats().rejuv(),
					""+item.usesRemaining(),
					""+item.basePhyStats().height(),
					""+item.basePhyStats().weight(),
					""+item.basePhyStats().ability(),
					""+item.basePhyStats().level(),
					dispossessionTimeLeftString(item),
					((item instanceof Container)?(L("\n\rCapac.: ")+((Container)item).capacity()):""),
					spells.toString(),
					""+item.text().length(),
					item.text()
					));
		}
		if(item.description(mob).length()==0)
			buf.append(L("You don't see anything special about @x1",item.name()));
		else
			buf.append(item.description(mob));
		if((msg.targetMinor()==CMMsg.TYP_EXAMINE)&&(!item.ID().endsWith("Wallpaper")))
			buf.append(examineItemString(mob,item));
		if(item instanceof Container)
		{
			buf.append("\n\r");
			final Container contitem=(Container)item;
			if((contitem.isOpen())
			&&((contitem.capacity()>0)
				||(contitem.hasContent())
				||((contitem instanceof Drink)&&(((Drink)contitem).liquidRemaining()>0))))
			{
				buf.append(item.name()+" contains:^<!ENTITY container \""+CMStrings.removeColors(item.name())+"\"^>"+(mob.isAttributeSet(MOB.Attrib.COMPRESS)?" ":"\n\r"));
				final Vector<Item> newItems=new Vector<Item>();
				if((item instanceof Drink)&&(((Drink)item).liquidRemaining()>0))
				{
					final RawMaterial l=(RawMaterial)CMClass.getItem("GenLiquidResource");
					final int myResource=((Drink)item).liquidType();
					l.setMaterial(myResource);
					((Drink)l).setLiquidType(myResource);
					l.setBaseValue(RawMaterial.CODES.VALUE(myResource));
					l.basePhyStats().setWeight(1);
					final String name=RawMaterial.CODES.NAME(myResource).toLowerCase();
					l.setName(L("some @x1",name));
					l.setDisplayText(L("some @x1 sits here.",name));
					l.setDescription("");
					CMLib.materials().addEffectsToResource(l);
					l.recoverPhyStats();
					newItems.addElement(l);
				}

				if(item.owner() instanceof MOB)
				{
					final MOB M=(MOB)item.owner();
					for(int i=0;i<M.numItems();i++)
					{
						final Item item2=M.getItem(i);
						if((item2!=null)&&(item2.container()==item))
							newItems.addElement(item2);
					}
					buf.append(CMLib.lister().lister(mob,newItems,true,"CMItem","",false,mob.isAttributeSet(MOB.Attrib.COMPRESS)));
				}
				else
				if(item.owner() instanceof Room)
				{
					final Room room=(Room)item.owner();
					if(room!=null)
					for(int i=0;i<room.numItems();i++)
					{
						final Item item2=room.getItem(i);
						if((item2!=null)&&(item2.container()==item))
							newItems.addElement(item2);
					}
					buf.append(CMLib.lister().lister(mob,newItems,true,"CRItem","",false,mob.isAttributeSet(MOB.Attrib.COMPRESS)));
				}
			}
			else
			if((contitem.hasADoor())&&((contitem.capacity()>0)||(contitem.hasContent())))
				buf.append(item.name()+" is closed.");
		}
		if(!msg.source().isMonster())
			buf.append(CMLib.protocol().mxpImage(item," ALIGN=RIGHT H=70 W=70"));
		mob.tell(buf.toString());
	}