📄 qqevent.java
字号:
/*
* LumaQQ - Java QQ Client
*
* Copyright (C) 2004 luma <stubma@163.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
//package edu.tsinghua.lumaqq.qq.events;
import java.util.EventObject;
/**
* <pre>
* QQ事件类。QQ事件是比包事件更高一级的封装。其代表了某个具体动作的发生,包事件是粗粒度的,
* QQ事件是细粒度的。每个QQ事件都有一个相应的包与之关联,这些包中的字段是否可用,要根据
* QQ事件来判断。按理来说是应该写个事件参考手册的。但是懒,就不写了。
* </pre>
*
* @author luma
*/
public class QQEvent extends EventObject {
private static final long serialVersionUID = 3256718502722024499L;
/**
* <code>QQ_LOGIN_SUCCESS</code>事件在登录成功是发生,Source是LoginReplyPacket
*/
public static final int QQ_LOGIN_SUCCESS = 1;
/**
* <code>QQ_LOGIN_ERROR</code>事件在登录错误时发生,Source是LoginReplyPacket
*/
public static final int QQ_LOGIN_PASSWORD_ERROR = 2;
/**
* <code>QQ_LOGIN_UNKNOWN_ERROR</code>事件在登录时发生未知错误时发生,Source是LoginReplyPacket
*/
public static final int QQ_LOGIN_UNKNOWN_ERROR = 3;
/**
* <code>QQ_LOGIN_REDIRECT_NULL</code>事件在重定向到一个0地址时发生,source是
* LoginReplyPacket
*/
public static final int QQ_LOGIN_REDIRECT_NULL = 95;
/**
* <code>QQ_KEEP_ALIVE_SUCCESS</code>事件在Keep Alive包收到确认时发生,source是KeepAliveReplyPacket
*/
public static final int QQ_KEEP_ALIVE_SUCCESS = 4;
/**
* <code>QQ_CONNECTION_LOST</code>事件在连接失去时发生,这种情况一般时Keep Alive包没有反应
* 时触发的,source无用处
*/
public static final int QQ_CONNECTION_LOST = 5;
/**
* <code>QQ_FRIEND_CHANGE_STATUS</code>事件发生在某个好友的状态改变时,source是FriendChangeStatusPacket
*/
public static final int QQ_FRIEND_CHANGE_STATUS = 7;
/**
* <code>QQ_GET_USER_INFO_SUCCESS</code>事件发生在得到用户信息成功时,source是GetUserInfoReplyPacket
*/
public static final int QQ_GET_USER_INFO_SUCCESS = 8;
/**
* <code>QQ_GET_USER_INFO_FAIL</code>事件发生在得到用户信息失败时,可能的原因是数据不
* 对等等,source是GetUserInfoReplyPacket
*/
public static final int QQ_GET_USER_INFO_FAIL = 9;
/**
* <code>QQ_CHANGE_STATUS_SUCCESS</code>事件发生你自己的状态改变成功时,source是ChangeStatusReplyPacket
*/
public static final int QQ_CHANGE_STATUS_SUCCESS = 10;
/**
* <code>QQ_CHANGE_STATUS_FAIL</code>事件发生你自己的状态改变失败时,source是ChangeStatusReplyPacket
*/
public static final int QQ_CHANGE_STATUS_FAIL = 11;
/**
* <code>QQ_GET_FRIEND_LIST_SUCCESS</code>事件发生在得到好友列表成功
* 时,source是GetFriendListReplyPacket,需要检查回复包的标志来判断是否
* 还有更多好友需要得到
*/
public static final int QQ_GET_FRIEND_LIST_SUCCESS = 12;
/**
* <code>QQ_GET_FRIEND_ONLINE_SUCCESS</code>事件在得到在线好友列表成功时发生,source是
* GetOnlineOpReplyPacket,用户应该检查position字段判断是否还有更多在线好友
*/
public static final int QQ_GET_FRIEND_ONLINE_SUCCESS = 14;
/**
* <code>QQ_RECEIVE_SYS_MESSAGE</code>事件在收到一条系统广播消息时发生,
* source是ReceiveIMPacket
*/
public static final int QQ_RECEIVE_SYS_MESSAGE = 15;
/**
* <code>QQ_SEND_IM_SUCCESS</code>事件在发送消息成功时发生,表示消息已经成功发送,source是
* SendIMPacket,注意不是SendIMReplyPacket,这个没什么用
*/
public static final int QQ_SEND_IM_SUCCESS = 16;
/**
* <code>QQ_KICKED_OUT_BY_SYSTEM</code>事件在收到你的QQ号在其他地方登陆导致你被系统踢出时发生,
* source是SystemNotificationPacket。系统通知和系统消息是不同的两种事件,系统通知是对你一个人发
* 出的(或者是和你相关的),系统消息是一种广播式的,每个人都会收到,要分清楚这两种事件。此外
* 系统通知的载体是SystemNotificationPacket,而系统消息是ReceiveIMPacket,ReceiveIMPacket的功
* 能和格式很多。这也是一个区别。注意其后的我被其他人加为好友,验证被通过被拒绝等等,都是系统
* 通知范畴
*/
public static final int QQ_KICKED_OUT_BY_SYSTEM = 17;
/**
* <code>QQ_RECEIVE_NORMAL_IM</code>事件在收到一个普通消息是发生,
* source是ReceiveIMPacket
*/
public static final int QQ_RECEIVE_NORMAL_IM = 18;
/**
* <code>QQ_MODIFY_INFO_FAIL</code>事件在修改用户信息失败时发生,
* source是ModifyInfoPacket,注意不是ModifyInfoReplyPacket,因为
* Reply包毫无价值
*/
public static final int QQ_MODIFY_INFO_FAIL = 19;
/**
* <code>QQ_MODIFY_INFO_SUCCESS</code>事件在修改用户信息成功是发生,source是
* ModifyInfoPacket
*/
public static final int QQ_MODIFY_INFO_SUCCESS = 20;
/**
* <code>QQ_ADDED_BY_OTHERS</code>事件发生在有人将我加为好友时,source是SystemNotificationPacket
*/
public static final int QQ_ADDED_BY_OTHERS = 21;
/**
* <code>QQ_ADDED_BY_OTHERS_EX</code>事件发生在有人将我加为好友时,source是SystemNotificationPacket
*/
public static final int QQ_ADDED_BY_OTHERS_EX = 164;
/**
* <code>QQ_REQUEST_ADD_ME</code>事件发生在有人请求加我为好友时,上面的是我没有设置验证
* 是发生的,这个事件是我如果设了验证时发生的,两者不会都发生。source是SystemNotificationPacket
*/
public static final int QQ_REQUEST_ADD_ME = 22;
/**
* <code>QQ_REQUEST_ADD_ME_EX</code>事件发生在有人请求加我为好友时,source是SystemNotificationPacket。
* 这是QQ_REQUEST_ADD_ME的扩展事件,在2005中使用
*/
public static final int QQ_REQUEST_ADD_ME_EX = 144;
/**
* <code>QQ_REQUEST_ADD_OTHER_APPROVED</code>事件发生在我请求加一个人,
* 那个人同意我加的时候,source是SystemNotificationPacket
*/
public static final int QQ_REQUEST_ADD_OTHER_APPROVED = 23;
/**
* <code>QQ_REQUEST_ADD_OTHER_REJECTED</code>事件发生在我请求加一个人,那个人拒绝时,
* source是SystemNotificationPacket
*/
public static final int QQ_REQUEST_ADD_OTHER_REJECTED = 24;
/**
* <code>QQ_ADD_FRIEND_SUCCESS</code>事件发生在我添加一个好友成功时,
* source是AddFriendExReplyPacket
*/
public static final int QQ_ADD_FRIEND_SUCCESS = 25;
/**
* <code>QQ_ADD_FRIEND_NEED_AUTH</code>事件发生在我添加一个好友,但是对方需要认证时,
* source是AddFriendExReplyPacket
*/
public static final int QQ_ADD_FRIEND_NEED_AUTH = 26;
/**
* <code>QQ_ADD_FRIEND_DENY</code>事件发生在我添加一个好友,但是对方设置了
* 禁止别人把我添加为好友,source是AddFriendExReplyPacket
*/
public static final int QQ_ADD_FRIEND_DENY = 27;
/**
* <code>QQ_ADD_FRIEND_ALREADY</code>事件发生在我添加一个好友,但是
* 对方已经是我的好友,source是AddFriendExReplyPacket
*/
public static final int QQ_ADD_FRIEND_ALREADY = 165;
/**
* <code>QQ_DELETE_FRIEND_SUCCESS</code>事件在删除好友成功时发生,
* source是DeleteFriendPacket,注意不是DeleteFriendReplyPacket,
* 因为Reply包毫无价值
*/
public static final int QQ_DELETE_FRIEND_SUCCESS = 28;
/**
* <code>QQ_DELETE_FRIEND_FAIL</code>事件在删除好友失败是发生,
* source是DeleteFriendPacket
*/
public static final int QQ_DELETE_FRIEND_FAIL = 29;
/**
* <code>QQ_ADD_FRIEND_AUTH_SEND_SUCCESS</code>事件在你发送认证信息给别人成功时发生,
* source是AddFriendAuthPacket,注意不是AddFriendAuthReplyPacket,这个包没用
*/
public static final int QQ_ADD_FRIEND_AUTH_SEND_SUCCESS = 30;
/**
* <code>QQ_ADD_FRIEND_AUTH_SEND_FAIL</code>事件在你发送认证信息给别人失败时发生,
* source是AddFriendAuthPacket
*/
public static final int QQ_ADD_FRIEND_AUTH_SEND_FAIL = 31;
/**
* <code>QQ_ADD_FRIEND_FAIL</code>事件发生在请求信息发送失败时,source是AddFriendPacket
*/
public static final int QQ_ADD_FRIEND_FAIL = 32;
/**
* <code>QQ_OPERATION_TIMEOUT</code>事件在操作超时时发生,也就是请求包没有能收到回复,
* source是要发送的那个包,通知QQEvent的operation字段表示了操作的类型。要注意超时事件和
* Fail事件的不同,超时是指包没有收到任何确认,fail是指确认收到了,并且根据确认包的内容,
* 操作失败了
*/
public static final int QQ_OPERATION_TIMEOUT = 33;
/**
* <code>QQ_REMOVE_SELF_SUCCESS</code>事件在把自己从别人的好友列表中删除成功时发生,
* source是RemoveSelfReplyPacket,不过没什么用
*/
public static final int QQ_REMOVE_SELF_SUCCESS = 34;
/**
* <code>QQ_REMOVE_SELF_FAIL</code>事件在把自己从别人的好友列表中删除失败时发生,
* source是RemoveSelfReplyPacket,不过没什么用
*/
public static final int QQ_REMOVE_SELF_FAIL = 35;
/**
* <code>QQ_SEARCH_USER_SUCCESS</code>事件在搜索在线用户成功时发生,source是SearchUserReplyPacket
*/
public static final int QQ_SEARCH_USER_SUCCESS = 36;
/**
* <code>QQ_SEARCH_USER_END</code>事件在一次搜索已经全部完成时发生,source是SearchUserReplyPacket,
* 但是这个纯粹是通知事件,没有实际数据返回
*/
public static final int QQ_SEARCH_USER_END = 37;
/**
* <code>QQ_SEND_FILE_REQUEST_SEND_SUCCESS</code>事件在传送文件请求发送成功时发生,source是
* SendIMPacket
*/
public static final int QQ_SEND_FILE_REQUEST_SEND_SUCCESS = 38;
/**
* <code>QQ_ACCEPT_SEND_FILE</code>事件在对方接受了自己的传输文件请求时发生,source是ReceiveIMPacket,
* 接到这个包就可以抽出好友的端口开始初始化连接了
*/
public static final int QQ_ACCEPT_SEND_FILE = 39;
/**
* <code>QQ_REJECT_SEND_FILE</code>事件在对方拒绝了自己的传输文件请求时发生,source是ReceiveIMPacket
*/
public static final int QQ_REJECT_SEND_FILE = 40;
/**
* <code>QQ_REQUEST_SEND_FILE</code>事件发生在对方请求向我传送文件时,source是ReceiveIMPacket
*/
public static final int QQ_REQUEST_SEND_FILE = 41;
/**
* <code>QQ_UPLOAD_GROUP_NAME_SUCCESS</code>事件在上传分组名称成功时发生,source是GroupNameOpReplyPacket,
* 但是基本没有什么可用信息,通知事件而已
*/
public static final int QQ_UPLOAD_GROUP_NAME_SUCCESS = 42;
/**
* <code>QQ_DOWNLOAD_GROUP_NAME_SUCCESS</code>事件在下载分组名称成功时发生,source是GroupNameOpReplyPacket
*/
public static final int QQ_DOWNLOAD_GROUP_NAME_SUCCESS = 43;
/**
* <code>QQ_UPLOAD_GROUP_FRIEND_SUCCESS</code>事件在上传分组中的好友列表成功时发生,source是
* UploadGroupFriendPacket,不过没有什么可用信息,通知事件而已
*/
public static final int QQ_UPLOAD_GROUP_FRIEND_SUCCESS = 44;
/**
* <code>QQ_DOWNLOAD_GROUP_FRIEND_SUCCESS</code>事件在下载分组中的好友列表成功时发生,source是
* DownloadGroupFriendReplyPacket
*/
public static final int QQ_DOWNLOAD_GROUP_FRIEND_SUCCESS = 45;
/**
* <code>QQ_DOWNLOAD_GROUP_FRIEND_FAIL</code>事件在下载分组中的好友列表失败时发生,source是
* DownloadGroupFriendReplyPacket
*/
public static final int QQ_DOWNLOAD_GROUP_FRIEND_FAIL = 107;
/**
* <code>QQ_UPLOAD_GROUP_FRIEND_FAIL</code>事件在上传分组好友列表失败时发生,source是
* UploadGroupFriendReplyPacket,通知事件而已
*/
public static final int QQ_UPLOAD_GROUP_FRIEND_FAIL = 46;
/**
* <code>QQ_UPLOAD_FRIEND_REMARK_SUCCESS</code>在上传好友备注信息成功时发生,source是
* FriendDataOpPacket
*/
public static final int QQ_UPLOAD_FRIEND_REMARK_SUCCESS = 47;
/**
* <code>QQ_DOWNLOAD_FRIEND_REMARK_SUCCESS</code>在下载好友备注信息成功时发生,source是
* FriendDataOpReplyPacket
*/
public static final int QQ_DOWNLOAD_FRIEND_REMARK_SUCCESS = 48;
/**
* <code>QQ_BATCH_DOWNLOAD_FRIEND_REMARK_SUCCESS</code>在批量下载好友备注信息成功时发生,source是
* FriendDataOpReplyPacket
*/
public static final int QQ_BATCH_DOWNLOAD_FRIEND_REMARK_SUCCESS = 116;
/**
* <code>QQ_REMOVE_FRIEND_FROM_LIST_SUCCESS</code>在把好友从服务器端列表
* 中删除成功时发生,source是FriendDataOpPacket
*/
public static final int QQ_REMOVE_FRIEND_FROM_LIST_SUCCESS = 106;
/**
* <code>QQ_CANCEL_SEND_FILE</code>在用户取消传送文件操作时发生,source是ReceiveIMPacket
*/
public static final int QQ_CANCEL_SEND_FILE = 49;
/**
* <code>QQ_NOTIFY_FILE_TRANSFER_ARGS</code>在发送文件方通知另一方其IP和端口信息时发生,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -