package automenta.spacenet.plugin.comm.irc; import jerklib.Channel; import jerklib.ConnectionManager; import jerklib.Profile; import jerklib.Session; import jerklib.events.IRCEvent; import jerklib.events.IRCEvent.Type; import jerklib.events.JoinCompleteEvent; import jerklib.events.listeners.IRCEventListener; public abstract class IRCAgent implements IRCEventListener { public IRCAgent(String networkHost) { super(); ConnectionManager conman = new ConnectionManager(new Profile() { @Override public String getActualNick() { return "IRCSpace"; } @Override public String getFirstNick() { return "IRCSpace"; } @Override public String getSecondNick() { return "IRCSpace_"; } @Override public String getThirdNick() { return "IRCSpace__"; } @Override public String getName() { return "automenta.IRCSpace"; } }); conman.requestConnection(networkHost).addIRCEventListener(this); } @Override public void recieveEvent(IRCEvent e) { if (e.getType() == Type.CONNECT_COMPLETE) { onConnected(e.getSession()); } else if (e.getType() == Type.JOIN_COMPLETE) { JoinCompleteEvent jce = (JoinCompleteEvent) e; onJoined(e.getSession(), jce.getChannel()); } else { onEvent(e); } } protected abstract void onConnected(Session session); // { // session.joinChannel("#automenta"); // } protected abstract void onJoined(Session session, Channel channel); // { // channel.say("Sup' Metaverse?"); // } protected abstract void onEvent(IRCEvent e); }