⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 icq.java

📁 类似QQ的功能
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
		}		catch (Exception e) {}				sendPacket(new SnacPacket(SnacPacket.CLI_SETUSERINFO_FAMILY, SnacPacket.CLI_SETUSERINFO_COMMAND, 4, new byte[0], packet));		byte[] buf = new byte[4];		Util.putDWord(buf, 0, 0x00040000);		sendPacket(new SnacPacket(SnacPacket.CLI_SETUSERINFO_FAMILY, SnacPacket.CLI_SETUSERINFO_COMMAND, 4, new byte[0], buf));	}		////////////////		// CAPS	public static final byte[] CAP_AIM_ISICQ       = Util.explodeToBytes("09,46,13,44,4C,7F,11,D1,82,22,44,45,53,54,00,00", ',', 16);	public static final byte[] CAP_ICHAT           = Util.explodeToBytes("09,46,00,00,4C,7F,11,D1,82,22,44,45,53,54,00,00", ',', 16);	public static final byte[] CAP_VERSION         = Util.explodeToBytes("*Jimm,20,00,00,00,00,00,00,00,00,00,00,00", ',', 16);	public static final byte[] CAP_MTN             = Util.explodeToBytes("56,3f,c8,09,0b,6f,41,bd,9f,79,42,26,09,df,a2,f3", ',', 16);	public static final byte[] CAP_AIM_SERVERRELAY = Util.explodeToBytes("09,46,13,49,4C,7F,11,D1,82,22,44,45,53,54,00,00", ',', 16);	public static final byte[] CAP_UTF8            = Util.explodeToBytes("09,46,13,4E,4C,7F,11,D1,82,22,44,45,53,54,00,00", ',', 16);	public static final byte[] CAP_UTF8_GUID       = Util.explodeToBytes("7b,30,39,34,36,31,33,34,45,2D,34,43,37,46,2D,31,31,44,31,2D,38,32,32,32,2D,34,34,34,35,35,33,35,34,30,30,30,30,7D", ',', 16);			private static final byte[] CAP_QIPINFIUM      = Util.explodeToBytes("7c,73,75,02,c3,be,4f,3e,a6,9f,01,53,13,43,1e,1a", ',', 16);	private static final byte[] CAP_QIPPDASYM      = Util.explodeToBytes("51,AD,D1,90,72,04,47,3D,A1,A1,49,F4,A3,97,A4,1F", ',', 16);	private static final byte[] CAP_QIPPDAWIN      = Util.explodeToBytes("56,3F,C8,09,0B,6F,41,51,49,50,20,20,20,20,20,21", ',', 16);//	private static final byte[] CAP_QIPPLUGINS     = Util.explodeToBytes("7C,53,3F,FA,68,00,4F,21,BC,FB,C7,D2,43,9A,AD,31", ',', 16);//	private static final byte[] CAP_AUDIO          = Util.explodeToBytes("09,46,01,04,4c,7f,11,d1,82,22,44,45,53,54,00,00", ',', 16);//	private static final byte[] CAP_VIDEO          = Util.explodeToBytes("09,46,01,01,4c,7f,11,d1,82,22,44,45,53,54,00,00", ',', 16);	private static final byte[] CAP_HTMLMESSAGES   = Util.explodeToBytes("01,38,ca,7b,76,9a,49,15,88,f2,13,fc,00,97,9e,a8", ',', 16);//	private static final byte[] CAP_XMultiUserChat = Util.explodeToBytes("67,36,15,15,61,2d,4c,07,8f,3d,bd,e6,40,8e,a0,41", ',', 16);//	private static final byte[] CAP_XtZers         = Util.explodeToBytes("b2,ec,8f,16,7c,6f,45,1b,bd,79,dc,58,49,78,88,b9", ',', 16);	private static final byte[] CAP_IsICQLITE      = Util.explodeToBytes("17,8c,2d,9b,da,a5,45,bb,8d,db,f3,bd,bd,53,a1,0a", ',', 16);	private static final byte[] CAP_MIRANDAIM      = Util.explodeToBytes("4D,69,72,61,6E,64,61,4D,00,00,00,00,00,00,00,00", ',', 16);	private static final byte[] CAP_TRILLIAN       = Util.explodeToBytes("97,b1,27,51,24,3c,43,34,ad,22,d6,ab,f7,3f,14,09", ',', 16);	private static final byte[] CAP_TRILCRYPT      = Util.explodeToBytes("f2,e7,c7,f4,fe,ad,4d,fb,b2,35,36,79,8b,df,00,00", ',', 16);	private static final byte[] CAP_SIM            = Util.explodeToBytes("*SIM client  ,0,0,0,0", ',', 16);	private static final byte[] CAP_SIMOLD         = Util.explodeToBytes("97,b1,27,51,24,3c,43,34,ad,22,d6,ab,f7,3f,14,00", ',', 16);	private static final byte[] CAP_LICQ           = Util.explodeToBytes("*Licq client ',0,0,0,0", ',', 16);	private static final byte[] CAP_KOPETE         = Util.explodeToBytes("*Kopete ICQ  ',0,0,0,0", ',', 16);	private static final byte[] CAP_MICQ           = Util.explodeToBytes("*mICQ ,A9,* R.K. ',0,0,0,0", ',', 16);	private static final byte[] CAP_ANDRQ          = Util.explodeToBytes("*&RQinside,0,0,0,0,0,0,0", ',', 16);	private static final byte[] CAP_QIP            = Util.explodeToBytes("56,3F,C8,09,0B,6F,41,*QIP 2005a", ',', 16);	private static final byte[] CAP_IM2            = Util.explodeToBytes("74,ED,C3,36,44,DF,48,5B,8B,1C,67,1A,1F,86,09,9F", ',', 16);	private static final byte[] CAP_MACICQ         = Util.explodeToBytes("dd,16,f2,02,84,e6,11,d4,90,db,00,10,4b,9b,4b,7d", ',', 16);	private static final byte[] CAP_RICHTEXT       = Util.explodeToBytes("97,b1,27,51,24,3c,43,34,ad,22,d6,ab,f7,3f,14,92", ',', 16);	private static final byte[] CAP_IS2001         = Util.explodeToBytes("2e,7a,64,75,fa,df,4d,c8,88,6f,ea,35,95,fd,b6,df", ',', 16);	private static final byte[] CAP_IS2002         = Util.explodeToBytes("10,cf,40,d1,4c,7f,11,d1,82,22,44,45,53,54,00,00", ',', 16);	private static final byte[] CAP_STR20012       = Util.explodeToBytes("a0,e9,3f,37,4f,e9,d3,11,bc,d2,00,04,ac,96,dd,96", ',', 16);	private static final byte[] CAP_AIMICON        = Util.explodeToBytes("09,46,13,46,4c,7f,11,d1,82,22,44,45,53,54,00,00", ',', 16);	private static final byte[] CAP_AIMIMIMAGE     = Util.explodeToBytes("09,46,13,45,4c,7f,11,d1,82,22,44,45,53,54,00,00", ',', 16);	private static final byte[] CAP_AIMCHAT        = Util.explodeToBytes("74,8F,24,20,62,87,11,D1,82,22,44,45,53,54,00,00", ',', 16);	private static final byte[] CAP_UIM            = Util.explodeToBytes("A7,E4,0A,96,B3,A0,47,9A,B8,45,C9,E4,67,C5,6B,1F", ',', 16);	private static final byte[] CAP_RAMBLER        = Util.explodeToBytes("7E,11,B7,78,A3,53,49,26,A8,02,44,73,52,08,C4,2A", ',', 16);	private static final byte[] CAP_ABV            = Util.explodeToBytes("00,E7,E0,DF,A9,D0,4F,e1,91,62,C8,90,9A,13,2A,1B", ',', 16);	private static final byte[] CAP_NETVIGATOR     = Util.explodeToBytes("4C,6B,90,A3,3D,2D,48,0E,89,D6,2E,4B,2C,10,D9,9F", ',', 16);	private static final byte[] CAP_XTRAZ          = Util.explodeToBytes("1A,09,3C,6C,D7,FD,4E,C5,9D,51,A6,47,4E,34,F5,A0", ',', 16);	private static final byte[] CAP_AIMFILE        = Util.explodeToBytes("09,46,13,43,4C,7F,11,D1,82,22,44,45,53,54,00,00", ',', 16);	private static final byte[] CAP_DIRECT         = Util.explodeToBytes("09,46,13,44,4C,7F,11,D1,82,22,44,45,53,54,00,00", ',', 16);	private static final byte[] CAP_JIMM           = Util.explodeToBytes("*Jimm ", ',', 16);	private static final byte[] CAP_AVATAR         = Util.explodeToBytes("09,46,13,4C,4C,7F,11,D1,82,22,44,45,53,54,00,00", ',', 16);	private static final byte[] CAP_TYPING         = Util.explodeToBytes("56,3f,c8,09,0b,6f,41,bd,9f,79,42,26,09,df,a2,f3", ',', 16);	private static final byte[] CAP_MCHAT          = Util.explodeToBytes("*mChat icq", ',', 16);	private static final byte[] CAP_IMPLUS         = Util.explodeToBytes("8e,cd,90,e7,4f,18,28,f8,02,ec,d6,18,a4,e9,de,68", ',', 16);	private static final byte[] CAP_SMAPER         = Util.explodeToBytes("*Smaper ", ',', 16);	private static final byte[] CAP_JIMM_DICHAT    = Util.explodeToBytes("44,5B,69,5D,43,68,61,74,20", ',', 16);	private static final byte[] CAP_QUTIM          = Util.explodeToBytes("*qutim", ',', 16);	// Arrays for new capability blowup	private static final byte[] CAP_OLD_HEAD = { (byte) 0x09, (byte) 0x46 };	private static final byte[] CAP_OLD_TAIL = Util.explodeToBytes("4C,7F,11,D1,82,22,44,45,53,54,00,00", ',', 16);		private static final byte[] XSTATUS_CONSTS = Util.explodeToBytes(		"63,62,73,37,A0,3F,49,FF,80,E5,F7,09,CD,E0,A4,EE,"+ // 00 SHOPPING		"5A,58,1E,A1,E5,80,43,0C,A0,6F,61,22,98,B7,E4,C7,"+ // 01 DUCK		"83,C9,B7,8E,77,E7,43,78,B2,C5,FB,6C,FC,C3,5B,EC,"+ // 02 TIRED		"E6,01,E4,1C,33,73,4B,D1,BC,06,81,1D,6C,32,3D,81,"+ // 03 PARTY		"8C,50,DB,AE,81,ED,47,86,AC,CA,16,CC,32,13,C7,B7,"+ // 04 BEER		"3F,B0,BD,36,AF,3B,4A,60,9E,EF,CF,19,0F,6A,5A,7F,"+ // 05 THINKING		"F8,E8,D7,B2,82,C4,41,42,90,F8,10,C6,CE,0A,89,A6,"+ // 06 EATING		"80,53,7D,E2,A4,67,4A,76,B3,54,6D,FD,07,5F,5E,C6,"+ // 07 TV		"F1,8A,B5,2E,DC,57,49,1D,99,DC,64,44,50,24,57,AF,"+ // 08 FRIENDS		"1B,78,AE,31,FA,0B,4D,38,93,D1,99,7E,EE,AF,B2,18,"+ // 09 COFFEE		"61,BE,E0,DD,8B,DD,47,5D,8D,EE,5F,4B,AA,CF,19,A7,"+ // 0A MUSIC		"48,8E,14,89,8A,CA,4A,08,82,AA,77,CE,7A,16,52,08,"+ // 0B BUSINESS		"10,7A,9A,18,12,32,4D,A4,B6,CD,08,79,DB,78,0F,09,"+ // 0C CAMERA		"6F,49,30,98,4F,7C,4A,FF,A2,76,34,A0,3B,CE,AE,A7,"+ // 0D FUNNY		"12,92,E5,50,1B,64,4F,66,B2,06,B2,9A,F3,78,E4,8D,"+ // 0E PHONE		"D4,A6,11,D0,8F,01,4E,C0,92,23,C5,B6,BE,C6,CC,F0,"+ // 0F GAMES		"60,9D,52,F8,A2,9A,49,A6,B2,A0,25,24,C5,E9,D2,60,"+ // 10 COLLEGE		"1F,7A,40,71,BF,3B,4E,60,BC,32,4C,57,87,B0,4C,F1,"+ // 11 SICK		"78,5E,8C,48,40,D3,4C,65,88,6F,04,CF,3F,3F,43,DF,"+ // 12 SLEEPING		"A6,ED,55,7E,6B,F7,44,D4,A5,D4,D2,E7,D9,5C,E8,1F,"+ // 13 SURFING		"12,D0,7E,3E,F8,85,48,9E,8E,97,A7,2A,65,51,E5,8D,"+ // 14 INTERNET		"BA,74,DB,3E,9E,24,43,4B,87,B6,2F,6B,8D,FE,E5,0F,"+ // 15 ENGINEERING		"63,4F,6B,D8,AD,D2,4A,A1,AA,B9,11,5B,C2,6D,05,A1,"+ // 16 TYPING		"01,D8,D7,EE,AC,3B,49,2A,A5,8D,D3,D8,77,E6,6B,92,"+ // 17 ANGRY		"2C,E0,E4,E5,7C,64,43,70,9C,3A,7A,1C,E8,78,A7,DC,"+ // 18 UNK		"10,11,17,C9,A3,B0,40,F9,81,AC,49,E1,59,FB,D5,D4,"+ // 19 PPC		"16,0C,60,BB,DD,44,43,F3,91,40,05,0F,00,E6,C0,09,"+ // 1A MOBILE		"64,43,C6,AF,22,60,45,17,B5,8C,D7,DF,8E,29,03,52,"+ // 1B MAN		"16,F5,B7,6F,A9,D2,40,35,8C,C5,C0,84,70,3C,98,FA,"+ // 1C WC		"63,14,36,FF,3F,8A,40,D0,A5,CB,7B,66,E0,51,B3,64,"+ // 1D QUESTION		"B7,08,67,F5,38,25,43,27,A1,FF,CF,4C,C1,93,97,97,"+ // 1E WAY		"DD,CF,0E,A9,71,95,40,48,A9,C6,41,32,06,D6,F2,80,"+ // 1F HEART		"3F,B0,BD,36,AF,3B,4A,60,9E,EF,CF,19,0F,6A,5A,7E,"+ // 20 CIGARETTE		"E6,01,E4,1C,33,73,4B,D1,BC,06,81,1D,6C,32,3D,82,"+ // 21 SEX		"D4,E2,B0,BA,33,4E,4F,A5,98,D0,11,7D,BF,4D,3C,C8,"+ // 22 SEARCH		"00,72,D9,08,4A,D1,43,DD,91,99,6F,02,69,66,02,6F",  // 23 DIARY				/*"64,43,c6,af,22,60,45,17,b5,8c,d7,df,8e,29,03,52,"+ // I'm hight (miranda)		"63,14,36,ff,3f,8a,40,d0,a5,cb,7b,66,e0,51,b3,64,"+ // To be or not to be? (miranda)		"10,11,17,c9,a3,b0,40,f9,81,ac,49,e1,59,fb,d5,d4",  // Cooking (miranda) */		',', 16);	/* Capabilities */	public static final int CAPF_NO_INTERNAL     = 0;      // No capability	public static final int CAPF_AIM_SERVERRELAY = 1 << 0; // Client unterstands type-2 messages	public static final int CAPF_UTF8_INTERNAL   = 1 << 1; // Client unterstands UTF-8 messages	public static final int CAPF_RICHTEXT        = 1 << 2;	public static final int CAPF_AIMICON         = 1 << 3;	public static final int CAPF_AIMCHAT         = 1 << 4;	public static final int CAPF_XTRAZ           = 1 << 5;	public static final int CAPF_AIMFILE         = 1 << 6;	public static final int CAPF_AIMIMIMAGE      = 1 << 7;	public static final int CAPF_AVATAR          = 1 << 8;		public static final int CAPF_DIRECT          = 1 << 9;	public static final int CAPF_TYPING          = 1 << 10;	public static final int CAPF_HTMLMESSAGES    = 1 << 11;	public static final int CAPF_AUDIO           = 1 << 12;	public static final int CAPF_VIDEO           = 1 << 14;	// Client capabilities for detection	private static final long CAPF_MIRANDAIM     = 1l << 32;	private static final long CAPF_TRILLIAN      = 1l << 33;	private static final long CAPF_TRILCRYPT     = 1l << 34;	private static final long CAPF_SIM           = 1l << 35;	private static final long CAPF_SIMOLD        = 1l << 36;	private static final long CAPF_LICQ          = 1l << 37;	private static final long CAPF_KOPETE        = 1l << 38;	private static final long CAPF_MICQ          = 1l << 39;	private static final long CAPF_ANDRQ         = 1l << 40;	private static final long CAPF_QIP           = 1l << 41;	private static final long CAPF_IM2           = 1l << 42;	private static final long CAPF_MACICQ        = 1l << 43;	private static final long CAPF_IS2001        = 1l << 44;	private static final long CAPF_IS2002        = 1l << 45;	private static final long CAPF_STR20012      = 1l << 46;	private static final long CAPF_UIM           = 1l << 47;	private static final long CAPF_RAMBLER       = 1l << 48;	private static final long CAPF_ABV           = 1l << 49;	private static final long CAPF_NETVIGATOR    = 1l << 50;	private static final long CAPF_JIMM          = 1l << 51;	private static final long CAPF_MCHAT         = 1l << 52;	private static final long CAPF_QIPINFIUM     = 1l << 53;	private static final long CAPF_IsICQLITE     = 1l << 54;	private static final long CAPF_QIPPDASYM     = 1l << 55;	private static final long CAPF_QIPPDAWIN     = 1l << 56;	private static final long CAPF_IMPLUS        = 1l << 57;	private static final long CAPF_SMAPER        = 1l << 58;	private static final long CAPF_JIMM_DICHAT   = 1l << 59;	private static final long CAPF_QUTIM         = 1l << 60;//	public static final int CAPF_QIPPLUGINS      = 1l << 60;//	public static final int CAPF_XMultiUserChat  = 1l << 61;//	public static final int CAPF_XtZers          = 1l << 62;	// Client IDs	public static final byte CLI_NONE = 0;	public static final byte CLI_QIP = 1;	public static final byte CLI_MIRANDA = 2;	public static final byte CLI_LICQ = 3;	public static final byte CLI_TRILLIAN = 4;	public static final byte CLI_SIM = 5;	public static final byte CLI_KOPETE = 6;	public static final byte CLI_MICQ = 7;	public static final byte CLI_ANDRQ = 8;	public static final byte CLI_IM2 = 9;	public static final byte CLI_MACICQ = 10;	public static final byte CLI_AIM = 11;	public static final byte CLI_UIM = 12;	public static final byte CLI_WEBICQ = 13;	public static final byte CLI_GAIM = 14;	public static final byte CLI_ALICQ = 15;	public static final byte CLI_STRICQ = 16;	public static final byte CLI_YSM = 17;	public static final byte CLI_VICQ = 18;	public static final byte CLI_LIBICQ2000 = 19;	public static final byte CLI_JIMM = 20;	public static final byte CLI_SMARTICQ = 21;	public static final byte CLI_ICQLITE4 = 22;	public static final byte CLI_ICQLITE5 = 23;	public static final byte CLI_ICQ98 = 24;	public static final byte CLI_ICQ99 = 25;	public static final byte CLI_ICQ2001B = 26;	public static final byte CLI_ICQ2002A2003A = 27;	public static final byte CLI_ICQ2000 = 28;	public static final byte CLI_ICQ2003B = 29;	public static final byte CLI_ICQLITE = 30;	public static final byte CLI_GNOMEICQ = 31;	public static final byte CLI_AGILE = 32;	public static final byte CLI_SPAM = 33;	public static final byte CLI_CENTERICQ = 34;	public static final byte CLI_LIBICQJABBER = 35;	public static final byte CLI_ICQ2GO = 36;	public static final byte CLI_ICQPPC = 37;	public static final byte CLI_STICQ = 38;	public static final byte CLI_MCHAT = 39;	public static final byte CLI_QIPINFIUM = 40;	public static final byte CLI_ICQ6 = 41;	public static final byte CLI_QIPPDASYM = 42;	public static final byte CLI_QIPPDAWIN = 43;	public static final byte CLI_IMPLUS = 44;	public static final byte CLI_SMAPER = 45;	public static final byte CLI_JIMM_DICHAT = 46;	public static final byte CLI_QUTIM = 47;	public static final byte CLI_RANDQ = 48;		private static int[] clientIndexes;	private static int[] clientImageIndexes;	private static String[] clientNames;		private static void initClientIndData()	{		Vector vInd = new Vector();		Vector vImg = new Vector();		Vector vNames = new Vector();		//                    name                      index              image index		initClientIndDataItem("Not detected",           CLI_NONE,          -1, vInd, vImg, vNames);		initClientIndDataItem("QIP",                    CLI_QIP,           1,  vInd, vImg, vNames);		initClientIndDataItem("Miranda",                CLI_MIRANDA,       2,  vInd, vImg, vNames);		initClientIndDataItem("LIcq",                   CLI_LICQ,          26, vInd, vImg, vNames);		initClientIndDataItem("Trillian",               CLI_TRILLIAN,      5,  vInd, vImg, vNames);		initClientIndDataItem("SIM",                    CLI_SIM,           6,  vInd, vImg, vNames);		initClientIndDataItem("Kopete",                 CLI_KOPETE,        7,  vInd, vImg, vNames);		initClientIndDataItem("MICQ",                   CLI_MICQ,          -1, vInd, vImg, vNames);		initClientIndDataItem("&RQ",                    CLI_ANDRQ,         4,  vInd, vImg, vNames);		initClientIndDataItem("IM2",                    CLI_IM2,           29, vInd, vImg, vNames);		initClientIndDataItem("ICQ for MAC",            CLI_MACICQ,        23, vInd, vImg, vNames);		initClientIndDataItem("AIM",                    CLI_AIM,           -1, vInd, vImg, vNames);		initClientIndDataItem("UIM",                    CLI_UIM,           -1, vInd, vImg, vNames);		initClientIndDataItem("WebICQ",                 CLI_WEBICQ,        -1, vInd, vImg, vNames);		initClientIndDataItem("Gaim",                   CLI_GAIM,          24, vInd, vImg, vNames);		initClientIndDataItem("Alicq",                  CLI_ALICQ,         -1, vInd, vImg, vNames);		initClientIndDataItem("StrICQ",                 CLI_STRICQ,        -1, vInd, vImg, vNames);		initClientIndDataItem("YSM",                    CLI_YSM,           -1, vInd, vImg, vNames);		initClientIndDataItem("vICQ",                   CLI_VICQ,          -1, vInd, vImg, vNames);		initClientIndDataItem("Libicq2000",             CLI_LIBICQ2000,    11, vInd, vImg, vNames);		initClientIndDataItem("Jimm",                   CLI_JIMM,           8, vInd, vImg, vNames);		initClientIndDataItem("SmartICQ",               CLI_SMARTICQ,      -1, vInd, vImg, vNames);		initClientIndDataItem("ICQ Lite v4",            CLI_ICQLITE4,      18, vInd, vImg, vNames);		initClientIndDataItem("ICQ Lite v5",            CLI_ICQLITE5,      19, vInd, vImg, vNames);		initClientIndDataItem("ICQ 98",                 CLI_ICQ98,         -1, vInd, vImg, vNames);		initClientIndDataItem("ICQ 99",                 CLI_ICQ99,         -1, vInd, vImg, vNames);		initClientIndDataItem("ICQ 2001b",              CLI_ICQ2001B,      -1, vInd, vImg, vNames);		initClientIndDataItem("ICQ 2002a/2003a",        CLI_ICQ2002A2003A, -1, vInd, vImg, vNames);		initClientIndDataItem("ICQ 2000",               CLI_ICQ2000,       -1, vInd, vImg, vNames);		initClientIndDataItem("ICQ 2003b",              CLI_ICQ2003B,      20, vInd, vImg, vNames);		initClientIndDataItem("ICQ Lite",               CLI_ICQLITE,       17, vInd, vImg, vNames);		initClientIndDataItem("Gnome ICQ",              CLI_GNOMEICQ,      25, vInd, vImg, vNames);		initClientIndDataItem("Agile Messenger",        CLI_AGILE,         10, vInd, vImg, vNames);		initClientIndDataItem("SPAM:)",                 CLI_SPAM,          -1, vInd, vImg, vNames);		initClientIndDataItem("CenterICQ",              CLI_CENTERICQ,     -1, vInd, vImg, vNames);		initClientIndDataItem("Libicq2000 from Jabber", CLI_LIBICQJABBER,  -1, vInd, vImg, vNames);		initClientIndDataItem("ICQ2GO!",                CLI_ICQ2GO,        21, vInd, vImg, vNames);		initClientIndDataItem("ICQ for Pocket PC",      CLI_ICQPPC,        -1, vInd, vImg, vNames);		initClientIndDataItem("StIcq",                  CLI_STICQ,         9,  vInd, vImg, vNames);		initClientIndDataItem("MChat",                  CLI_MCHAT,         22, vInd, vImg, vNames);		initClientIndDataItem("QIP Infium",             CLI_QIPINFIUM,     15, vInd, vImg, vNames);		initClientIndDataItem("ICQ 6",                  CLI_ICQ6,          16, vInd, vImg, vNames);		initClientIndDataItem("QIP Mobile (Symbian)",   CLI_QIPPDASYM,     13, vInd, vImg, vNames);		initClientIndDataItem("QIP PDA (Windows)",      CLI_QIPPDAWIN,     14, vInd, vImg, vNames);		initClientIndDataItem("IM+",                    CLI_IMPLUS,        30, vInd, vImg, vNames);		initClientIndDataItem("Smaper",                 CLI_SMAPER,        31, vInd, vImg, vNames);		initClientIndDataItem("D[i]Chat",               CLI_JIMM_DICHAT,   32, vInd, vImg, vNames);		initClientIndDataItem("qutIM",                  CLI_QUTIM,         33, vInd, vImg, vNames);		initClientIndDataItem("R&Q",                    CLI_RANDQ,         4,  vInd, vImg, vNames);				clientNames = new String[vNames.size()];		vNames.copyInto(clientNames);				clientIndexes = new int[vInd.size()];		for (int i = vInd.size()-1; i >= 0; i--) clientIndexes[i] = ((Integer)vInd.elementAt(i)).intValue();				clientImageIndexes = new int[vImg.size()];		for (int i = vImg.size()-1; i >= 0; i--) clientImageIndexes[i] = ((Integer)vImg.elementAt(i)).intValue();	}		private static void initClientIndDataItem(String name, int index, int imageIndex, Vector vIndexes, Vector vImg, Vector vNames)	{		vNames.addElement(name);		vIndexes.addElement(new Integer(index));		vImg.addElement(new Integer(imageIndex-1));	}		public static int detectStandartXStatus(String data)	{		int idx = data.indexOf("icqmood");		if (idx < 0) return -1;		return Util.strToIntDef(data.substring(idx+7), -1);	}		public static int detectXStatus(byte[] capabilities)	{		int counter;		if (capabilities == null)			return -1;		for (int i = 0; i < capabilities.length; i += 16)		{			for (int j = 0; j < XSTATUS_CONSTS.length; j += 16)			{				counter = 0;				for (int k = 0; k < 16; k++, counter++) 					if (capabilities[i+k] != XSTATUS_CONSTS[j+k]) break;				if (counter == 16) return j/16;			}		}		return -1;	}		public static void detectUserClientAndParseCaps(ContactItem item, int dwFP1, int dwFP2, int dwFP3, byte[] capabilities, int wVersion, boolean statusChange)	{		int client = CLI_NONE;		String szVersion = "";		long caps = CAPF_NO_INTERNAL;		if (capabilities != null)		{			int offset;			//Caps parsing			for (int j = 0; j < capabilities.length / 16; j++)			{				offset = j * 16;				if (Util.byteArrayEquals(capabilities, offset, CAP_AIM_SERVERRELAY, 0, 16))				{					caps |= CAPF_AIM_SERVERRELAY;				}				else if (Util.byteArrayEquals(capabilities, offset, CAP_UTF8, 0, 16))				{					caps |= CAPF_UTF8_INTERNAL;				}				else if (Util.byteArrayEquals(capabilities, offset, CAP_MIRANDAIM, 0, 8))				{					caps |= CAPF_MIRANDAIM;					szVersion = detectClientVersion(capabilities, CLI_MIRANDA, j);				}				else if (Util.byteArrayEquals(capabilities, offset, CAP_TRILLIAN, 0, 16))				{					caps |= CAPF_TRILLIAN;				}				else if (Util.byteArrayEquals(capabilities, offset, CAP_TRILCRYPT, 0, 16))				{					caps |= CAPF_TRILCRYPT;				}				else if (Util.byteArrayEquals(capabilities, offset, CAP_SIM, 0, 0xC))				{					caps |= CAPF_SIM;				}				else if (Util.byteArrayEquals(capabilities, offset, CAP_SIMOLD, 0, 16))				{					caps |= CAPF_SIMOLD;				}				else if (Util.byteArrayEquals(capabilities, offset, CAP_LICQ, 0, 0xC))				{					caps |= CAPF_LICQ;					szVersion = detectClientVersion(capabilities, CLI_LICQ, j);				}				else if (Util.byteArrayEquals(capabilities, offset, CAP_KOPETE, 0, 0xC))				{					caps |= CAPF_KOPETE;					szVersion = detectClientVersion(capabilities, CLI_KOPETE, j);				}				else if (Util.byteArrayEquals(capabilities, offset, CAP_MICQ, 0, 16))				{					caps |= CAPF_MICQ;				}				else if (Util.byteArrayEquals(capabilities, offset, CAP_ANDRQ, 0, 9))				{					caps |= CAPF_ANDRQ;					szVersion = detectClientVersion(capabilities, CLI_ANDRQ, j);				}				else if (Util.byteArrayEquals(capabilities, offset, CAP_QIPPDASYM, 0, 16))				{					caps |= CAPF_QIPPDASYM;				}				else if (Util.byteArrayEquals(capabilities, offset, CAP_QIPPDAWIN, 0, 16))				{					caps |= CAPF_QIPPDAWIN;				}				else if (Util.byteArrayEquals(capabilities, offset, CAP_QIP, 0, 11))				{					caps |= CAPF_QIP;					szVersion = detectClientVersion(capabilities, CLI_QIP, j);				}				else if (Util.byteArrayEquals(capabilities, offset, CAP_IM2, 0, 16))

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -