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

📄 msndaemon.java

📁 java实现的msn机器人
💻 JAVA
字号:
package demo;

import rath.msnm.MSNMessenger;
import rath.msnm.SwitchboardSession;
import rath.msnm.UserStatus;
import rath.msnm.entity.MsnFriend;
import rath.msnm.event.MsnAdapter;
import rath.msnm.msg.MimeMessage;

/**
 * 
 * <p>Title: MSNDaemon.java</p>
 * <p>Description: </p>
 * <p>Copyright:OnewaveInc Copyright (c) 2007</p>
 * <p>Company: OnewaveInc</p>
 * @author Zhengrw
 * @version 3.0
 */
public class MSNDaemon extends Thread {
	private static MSNMessenger msn;

	public static void main(String[] args) {
		msn = new MSNMessenger("btfeifei@163.com", "19841028");
		msn.setInitialStatus(UserStatus.ONLINE);
		msn.addMsnListener(new MSNAdapter(msn));
		msn.login();
		System.out.println("Waiting for the response....");
		//捕捉Ctrl+C的输入以便注销MSN的登录
		Runtime.getRuntime().addShutdownHook(new MSNDaemon());
	}

	/**
	 * 用户中止程序执行
	 */
	public void run() {
		msn.logout();
		System.out.println("MSN Logout OK");
	}
}

/**
 * MSN消息事件处理类
 * @author Liudong
 */
class MSNAdapter extends MsnAdapter {
	MSNMessenger messenger;

	public MSNAdapter(MSNMessenger messenger) {
		this.messenger = messenger;
	}

	/**
	 * 某人正在输入信息
	 */
	public void progressTyping(SwitchboardSession ss, MsnFriend friend,
			String typingUser) {
		System.out.println(friend.getLoginName() + "正在输入信息...");
	}

	/**
	 * 收到消息的时候执行该方法
	 */
	public void instantMessageReceived(SwitchboardSession ss, MsnFriend friend,
			MimeMessage mime) {
		System.out.print("接收到消息:" + friend.getFriendlyName() + "->");
		System.out.println(mime.getMessage());
		try {
			//发送相同的回复信息给发送者
			messenger.sendMessage(friend.getLoginName(), mime);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/**
	 * 登录成功后执行该方法
	 */
	public void loginComplete(MsnFriend own) {
		System.out.println(own.getLoginName() + " Login OK");
	}

	/**
	 * 登录失败后执行该方法
	 */
	public void loginError(String header) {
		System.out.println("Login Failed: " + header);
	}

	/**
	 * 好友离线时执行该方法
	 */
	public void userOffline(String loginName) {
		System.out.println("USER " + loginName + " Logout.");
	}

	/**
	 * 好友上线时执行该方法
	 */
	public void userOnline(MsnFriend friend) {
		System.out.println("USER " + friend.getFriendlyName() + " Login.");
	}

	/**
	 * 有人加我为好友时执行
	 */
	public void whoAddedMe(MsnFriend friend) {
		System.out.println("USER " + friend.getLoginName() + " Addme.");
		try {
			messenger.addFriend(friend.getLoginName());
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/**
	 * 有人把我从好友列表中删除时执行
	 */
	public void whoRemovedMe(MsnFriend friend) {
		System.out.println("USER " + friend.getLoginName() + " Remove me.");
		try {
			messenger.removeFriend(friend.getLoginName());
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

⌨️ 快捷键说明

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