Package listeners

Source Code of listeners.RoomListener

/*
* @author Kyle Kemp
*/
package listeners;

import org.pircbotx.hooks.events.JoinEvent;
import org.pircbotx.hooks.events.KickEvent;
import org.pircbotx.hooks.events.ModeEvent;
import org.pircbotx.hooks.events.PartEvent;
import org.pircbotx.hooks.events.TopicEvent;

import connection.Connection;
import connection.KEllyBot;

import shared.Message;
import ui.room.Room;

/**
* The listener interface for receiving room events.
* The class that is interested in processing a room
* event implements this interface, and the object created
* with that class is registered with a component using the
* component's <code>addRoomListener<code> method. When
* the room event occurs, that object's appropriate
* method is invoked.
*
* @see RoomEvent
*/
public class RoomListener extends ConnectionListener{

  /**
   * Instantiates a new room listener.
   *
   * @param nc the nc
   */
  public RoomListener(Connection nc) {
    super(nc);
  }

  /* (non-Javadoc)
   * @see org.pircbotx.hooks.ListenerAdapter#onJoin(org.pircbotx.hooks.events.JoinEvent)
   */
  @Override
  public void onJoin(JoinEvent<KEllyBot> event) throws Exception {
    if(botEqualsUser(event.getUser())){
      nc.createRoom(event.getChannel().getName(), Room.IO | Room.TOPIC | Room.WHO, event.getChannel());
    }
    super.onJoin(event);
    queueMessage(new Message(nc, event.getUser().getNick()+" has joined.", event.getChannel().getName(), event.getChannel().getName(), Message.CONSOLE));
    updateWho(event.getChannel());
  }

  /* (non-Javadoc)
   * @see org.pircbotx.hooks.ListenerAdapter#onMode(org.pircbotx.hooks.events.ModeEvent)
   */
  @Override
  public void onMode(ModeEvent<KEllyBot> event) throws Exception {
    super.onMode(event);
    updateWho(event.getChannel());
    queueMessage(new Message(nc, event.getMode()+" by "+event.getUser().getNick(), event.getChannel().getName(), event.getChannel().getName(), Message.CONSOLE));
  }

  /* (non-Javadoc)
   * @see org.pircbotx.hooks.ListenerAdapter#onPart(org.pircbotx.hooks.events.PartEvent)
   */
  @Override
  public void onPart(PartEvent<KEllyBot> event) throws Exception {
    super.onPart(event);
    updateWho(event.getChannel());
    queueMessage(new Message(nc, event.getUser().getNick()+" has parted.", event.getChannel().getName(), event.getChannel().getName(), Message.CONSOLE));
  }

  /* (non-Javadoc)
   * @see org.pircbotx.hooks.ListenerAdapter#onKick(org.pircbotx.hooks.events.KickEvent)
   */
  @Override
  public void onKick(KickEvent<KEllyBot> event) throws Exception {
    super.onKick(event);
    updateWho(event.getChannel());
    queueMessage(new Message(nc, event.getRecipient().getNick()+" was kicked by "+event.getSource().getNick()+(event.getReason() != null?" ["+event.getReason()+"]" : ""), event.getChannel().getName(), event.getChannel().getName(), Message.CONSOLE));
  }

  /* (non-Javadoc)
   * @see org.pircbotx.hooks.ListenerAdapter#onTopic(org.pircbotx.hooks.events.TopicEvent)
   */
  @Override
  public void onTopic(TopicEvent<KEllyBot> event) throws Exception {
    super.onTopic(event);
    nc.updateTopic(event.getChannel().getName());
    if(event.getDate() < System.currentTimeMillis()){
      //topic was set already
      queueMessage(new Message(nc, event.getTopic(), event.getChannel().getName(), event.getChannel().getName(), Message.CONSOLE));
      queueMessage(new Message(nc, "Topic set by: "+event.getUser().getNick(), event.getChannel().getName(), event.getChannel().getName(), Message.CONSOLE));
    } else {
      //topic was changed
      queueMessage(new Message(nc, event.getUser().getNick()+" changed the topic.", event.getChannel().getName(), event.getChannel().getName(), Message.CONSOLE));
    }
  }

}
TOP

Related Classes of listeners.RoomListener

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.