protected PlayerLibrary.ThinPlayer parseThinUser(ResultSet R)
	{
		try
		{
			final PlayerLibrary.ThinPlayer thisUser=new PlayerLibrary.ThinPlayer();
			thisUser.name=DBConnections.getRes(R,"CMUSERID");
			String cclass=DBConnections.getRes(R,"CMCLAS");
			final int x=cclass.lastIndexOf(';');
			CharClass C=null;
			if((x>0)&&(x<cclass.length()-2))
			{
				C=CMClass.getCharClass(cclass.substring(x+1));
				if(C!=null) cclass=C.name();
			}
			thisUser.charClass=(cclass);
			final String rrace=DBConnections.getRes(R,"CMRACE");
			final Race R2=CMClass.getRace(rrace);
			if(R2!=null)
				thisUser.race=(R2.name());
			else
				thisUser.race=rrace;
			final List<String> lvls=CMParms.parseSemicolons(DBConnections.getRes(R,"CMLEVL"), true);
			thisUser.level=0;
			for(final String lvl : lvls)
				thisUser.level+=CMath.s_int(lvl);
			thisUser.age=(int)DBConnections.getLongRes(R,"CMAGEH");
			final MOB M=CMLib.players().getPlayer(thisUser.name);
			if((M!=null)&&(M.lastTickedDateTime()>0))
				thisUser.last=M.lastTickedDateTime();
			else
				thisUser.last=DBConnections.getLongRes(R,"CMDATE");
			final String lsIP=DBConnections.getRes(R,"CMLSIP");
			thisUser.email=DBConnections.getRes(R,"CMEMAL");
			thisUser.ip=lsIP;
			thisUser.exp=CMath.s_int(DBConnections.getRes(R,"CMEXPE"));
			thisUser.expLvl=CMath.s_int(DBConnections.getRes(R,"CMEXLV"));
			return thisUser;
		}catch(final Exception e)
		{
			Log.errOut("MOBloader",e);
		}
		return null;
	}