package jerklib.examples;
import jerklib.ConnectionManager;
import jerklib.Profile;
import jerklib.Session;
import jerklib.events.IRCEvent;
import jerklib.events.JoinCompleteEvent;
import jerklib.events.MotdEvent;
import jerklib.events.IRCEvent.Type;
import jerklib.tasks.TaskImpl;
/**
* An example of how to use tasks.
*
* @author mohadib
*
*/
public class TaskExample
{
public TaskExample()
{
ConnectionManager conman = new ConnectionManager(new Profile("scripy"));
Session session = conman.requestConnection("irc.freenode.net");
/* Add a Task to join a channel when the connection is complete
This task will only ever be notified of ConnectionCompleteEvents */
session.onEvent(new TaskImpl("join_channels")
{
public void receiveEvent(IRCEvent e)
{
e.getSession().join("#jerklib");
}
}, Type.CONNECT_COMPLETE);
/* Add a Task to say hello */
session.onEvent(new TaskImpl("hello")
{
public void receiveEvent(IRCEvent e)
{
JoinCompleteEvent jce = (JoinCompleteEvent)e;
jce.getChannel().say("Hello from JerkLib!");
}
}, Type.JOIN_COMPLETE);
/* Add a Task to be notified on MOTD and JoinComplete events */
session.onEvent(new TaskImpl("motd_join")
{
public void receiveEvent(IRCEvent e)
{
if(e.getType() == Type.MOTD)
{
MotdEvent me = (MotdEvent)e;
System.out.println(me.getMotdLine());
}
else
{
JoinCompleteEvent je = (JoinCompleteEvent)e;
je.getChannel().say("Yay tasks!");
}
}
}, Type.MOTD , Type.JOIN_COMPLETE);
/* Add a Task that will be notified of all events */
session.onEvent(new TaskImpl("print")
{
public void receiveEvent(IRCEvent e)
{
System.out.println(e.getRawEventData());
}
});
}
public static void main(String[] args)
{
new TaskExample();
}
}