/* * (c) 2000-2009 Carlos G�mez Rodr�guez, todos los derechos reservados / all rights reserved. * Licencia en license/bsd.txt / License in license/bsd.txt */ package eu.irreality.age.irc; import java.util.*; //import irc.*; import eu.irreality.age.i18n.UIMessages; public class IrcBot implements IrcListener , IrcDccListener { protected IrcSocket ircSocket; private final boolean ACCEPT_DCC_CHAT = true; public IrcBot( String server, int port, String nick, String name , List channels ) throws Exception { ircSocket = new IrcSocket(server,port,this); ircSocket.login(nick,name); Thread.sleep(2000); ircSocket.setNick(nick); Thread.sleep(1000); for ( int i = 0 ; i < channels.size() ; i++ ) { String channel = (String) channels.get(i); //ircSocket.joinChannel("#aetheria"); //ircSocket.setChannelTopic("#aetheria","buenas"); //ircSocket.setMode("#p","[\\AxMan\\]","+o"); //ircSocket.sendChannel("#aetheria", UIMessages.getInstance().getMessage("irc.bot.intro.channel") ); ircSocket.joinChannel(channel); ircSocket.sendChannel(channel, UIMessages.getInstance().getMessage("irc.bot.intro.channel") ); } //for ( ; ; ) { Thread.sleep(120000); try { //ircSocket.sendPrivate ( "EthErwAvE" , "re1" ); IrcDccChatSocket idcs = ircSocket.sendDccChatRequest ( "EthErwAvE" , IrcSocket.DCC_ANY , this ); //ircSocket.sendPrivate ( "EthErwAvE" , "re2" ); } catch ( Exception e ) { System.out.println("Exc " + e); e.printStackTrace(); } } //ircSocket.joinChannel("#murcia"); //ircSocket.joinChannel("#cieza"); //ircSocket.joinChannel("#escalada"); //ircSocket.setAway("estudiando"); //ircSocket.setMode("#ia","iSotOpe","+o"); } public void channelMsg (String sender, String channel, String message) { System.out.println("("+channel+") "+sender+": "+message); }; public void channelAction (String sender, String channel, String message) { System.out.println("("+channel+") "+sender+" [action]: "+"message"); }; public void serverMsg (String message) { System.out.println("MOTD: "+message); }; public void privateMsg (String sender, String message) { /* na, en extension if ( message.equalsIgnoreCase("DCC") ) { send } */ if (!(sender.equals("NiCK")|sender.equals("agenda")|sender.equals("MeMo"))) { ircSocket.sendPrivate(sender,UIMessages.getInstance().getMessage("irc.bot.intro.1")); ircSocket.sendPrivate(sender, UIMessages.getInstance().getMessage("irc.bot.intro.2")); ircSocket.sendPrivate(sender,UIMessages.getInstance().getMessage("irc.bot.intro.3", "$url", UIMessages.getInstance().getMessage("age.download.url"))); } System.out.println(sender+": "+message); }; public void privateAction (String sender, String message) { System.out.println(sender+" [action]: "+message); }; public void dccMsg ( String sender , String message ) { System.out.println("[DCC] "+sender+": "+message); } public void dccDisconnection ( String sender ) { System.out.println("Desconectado de " + sender); } public void dccConnection ( String sender ) { System.out.println("Conectado a " + sender); } public void privateAwayMsg (String sender, String reason) { System.out.println(sender+" is away: "+reason); } public void channelAwayMsg (String channel, String from, String reason) { System.out.println("("+channel+") "+from+" is away: "+reason); } public void noticeMsg (String sender, String message) { System.out.println(sender+" (notice): "+message); }; public void changeMode (String from, String target, String mode) { System.out.println(from+" sets mode "+mode+" to "+target); }; public void quitMsg (String who, String reason) { System.out.println(who+" quits: "+reason); }; public void channelTopic (String channel, String topic) { System.out.println("Topic "+channel+": "+topic); }; public void notOnChannel (String channel) { System.out.println("not on channel "+channel); }; public void notChannelOp (String channel) { System.out.println("not a channel operator of "+channel); }; public void topicSetBy (String channel, String nick, String date) { System.out.println("Topic of "+channel+" set by "+nick+" on "+date); }; public void kick (String channel, String who, String target, String reason) { System.out.println(who+" kicks "+target+" from channel "+channel+" because :"+reason); }; public void topicChange (String channel, String nick, String newTopic) { System.out.println(nick+" sets "+channel+" topic: "+newTopic); }; public void channelJoin (String channel, String nick) { //if (channel.equals("#ia")&&nick.toLowerCase().equals("isotope")) // ircSocket.setMode(channel, nick,"+o"); System.out.println(nick+" joins channel "+channel); }; public void channelPart (String channel, String nick) { System.out.println(nick+" parts from channel "+channel); }; public void nickChange (String oldNick, String newNick) { System.out.println(oldNick+" changes nick to "+newNick); }; public void ping(String from) { System.out.println("ping: "+from); }; public void ctcpPing(String from,String arg) { System.out.println("ctcp ping: "+from+"["+arg+"]"); }; public void nickList(String channel, String nicks) { System.out.println("nicks in "+channel+": "+nicks); }; public void unknownMsg(String message) { System.out.println("Unknown message: "+message); }; public void dccChatRequest(String nick , java.net.InetAddress ip , short port ) { if ( ACCEPT_DCC_CHAT ) { try { ircSocket.acceptDccChatRequest ( nick , ip , port , this ); ircSocket.sendPrivate ( nick , UIMessages.getInstance().getMessage("irc.accepting.dcc") ); } catch ( Exception e ) { ircSocket.sendPrivate ( nick , UIMessages.getInstance().getMessage("irc.cannot.accept.dcc") ); } } } // main method /* public static void main(String [] args) { try { IrcBot ircBot = new IrcBot("denebola",6667,"Jerk0","TestBot for Irc written in Java"); } catch(Exception e) { System.out.println(e); e.printStackTrace(); } } */ }