@Override
	public byte[] invokeRoomChangeGmcp(final Session session, final Map<String,Long> reporteds, final Map<String,Double> supportables)
	{
		try
		{
			if(supportables.containsKey("room.info")||supportables.containsKey("room"))
			{
				final ByteArrayOutputStream bout=new ByteArrayOutputStream();
				final MOB mob=session.mob();
				byte[] buf;
				if(mob!=null)
				{
					final Room room;
					synchronized(mob)
					{
						room = mob.location();
					}
					if(room!=null)
					{
						final Long oldRoomHash=reporteds.get("system.currentRoom");
						if((oldRoomHash==null)||(room.hashCode()!=oldRoomHash.longValue()))
						{
							reporteds.put("system.currentRoom", Long.valueOf(room.hashCode()));
							final String command="room.info";
							final char[] cmd=command.toCharArray();
							buf=processGmcp(session, new String(cmd), supportables);
							if(buf!=null)
								bout.write(buf);
						}
					}
				}
				return (bout.size()==0) ? null: bout.toByteArray();
			}
		}
		catch(final java.io.IOException ioe)
		{
			if(CMSecurity.isDebugging(DbgFlag.TELNET))
				Log.errOut(ioe);
		}
		catch(final Throwable t)
		{
			Log.errOut(t);
		}
		return null;
	}