📄 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协议的一部分,只是我为了让这个包方便被其他GUI重用,加入了
* 这些自定义的事件,通过这些事件为GUI的作者提供存取QQ数据的机会。这个事件的
* 源是某个协议封装类,这些类中都包含了解析好的数据,可以直接使用,当然由于
* QQ的包是比较多,事件也就多。在这之前,我考虑了是把每个事件都做一个方法还
* 是统一做一个方法,用户通过常量判断事件类型。这两种方法各有各的好处,也很难
* 说那种更好,反正事件也有这么多,就这样吧
* </pre>
*
* @author 马若劼
*/
public class QQEvent extends EventObject {
/**
* <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是
* GetFriendOnlineReplyPacket,用户应该检查position字段判断是否还有更多在线好友
*/
public static final int QQ_GET_FRIEND_ONLINE_SUCCESS = 14;
/**
* <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_SYS_MESSAGE</code>事件在收到一条系统广播消息时发生,source是ReceiveIMPacket
*/
public static final int QQ_RECEIVE_SYS_MESSAGE = 38;
/**
* <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,这个包没用
*/
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_REQUEST_ADD_ME</code>事件发生在有人请求加我为好友时,上面的是我没有设置验证
* 是发生的,这个事件是我如果设了验证时发生的,两者不会都发生。source是SystemNotificationPacket
*/
public static final int QQ_REQUEST_ADD_ME = 22;
/**
* <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是AddFriendPacket,
* 注意不是AddFriendReplyPacket,因为Reply包毫无价值
*/
public static final int QQ_ADD_FRIEND_SUCCESS = 25;
/**
* <code>QQ_ADD_FRIEND_NEED_AUTH</code>事件发生在我添加一个好友,但是对方需要认证时,
* source是AddFriendPacket
*/
public static final int QQ_ADD_FRIEND_NEED_AUTH = 26;
/**
* <code>QQ_ADD_FRIEND_FORBIDDEN</code>事件发生在我添加一个好友,但是对方设置了
* 禁止别人把我添加为好友,source是AddFriendPacket
*/
public static final int QQ_ADD_FRIEND_DENY = 27;
/**
* <code>QQ_DELETE_FRIEND_SUCCESS</code>事件在删除好友成功时发生,source是DeleteFriendPacket
* ,注意不是DeleteFriendReplyPacket,这个包没有用
*/
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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -