com.web_visage.ircha.services
Class IChatIRCGateService

java.lang.Object
  extended by org.jibble.pircbot.PircBot
      extended by com.web_visage.ircha.services.IChatIRCGateService
All Implemented Interfaces:
IChatMessageConstants, BroadcastMessageListener, ConnectListener, ConnectMessageListener, DisconnectListener, DisconnectMessageListener, MeMessageListener, PrivateMessageListener, PublicMessageListener, RenameMessageListener, ShutdownListener, StatusReqMessageListener, org.jibble.pircbot.ReplyConstants

public class IChatIRCGateService
extends org.jibble.pircbot.PircBot
implements PublicMessageListener, StatusReqMessageListener, IChatMessageConstants, PrivateMessageListener, ConnectMessageListener, DisconnectMessageListener, ConnectListener, DisconnectListener, RenameMessageListener, BroadcastMessageListener, MeMessageListener, ShutdownListener

IRC bot that serves as a gate between IRC and iChat.

Currently the gate is organised on a bot-bot basis. Threre are two bots connected to the both networks and passing every message to the other network.

Author:
K.Baturytski

Field Summary
 
Fields inherited from class org.jibble.pircbot.PircBot
VERSION
 
Fields inherited from interface com.web_visage.ichat.IChatMessageConstants
BEGIN_END_MARKER, COMMON_LINE, ICHAT_TAG, PRIVATE_TAG, SEPARATOR, WILDCARD
 
Fields inherited from interface org.jibble.pircbot.ReplyConstants
ERR_ALREADYREGISTRED, ERR_BADCHANMASK, ERR_BADCHANNELKEY, ERR_BANNEDFROMCHAN, ERR_CANNOTSENDTOCHAN, ERR_CANTKILLSERVER, ERR_CHANNELISFULL, ERR_CHANOPRIVSNEEDED, ERR_ERRONEUSNICKNAME, ERR_FILEERROR, ERR_INVITEONLYCHAN, ERR_KEYSET, ERR_NEEDMOREPARAMS, ERR_NICKCOLLISION, ERR_NICKNAMEINUSE, ERR_NOADMININFO, ERR_NOLOGIN, ERR_NOMOTD, ERR_NONICKNAMEGIVEN, ERR_NOOPERHOST, ERR_NOORIGIN, ERR_NOPERMFORHOST, ERR_NOPRIVILEGES, ERR_NORECIPIENT, ERR_NOSERVICEHOST, ERR_NOSUCHCHANNEL, ERR_NOSUCHNICK, ERR_NOSUCHSERVER, ERR_NOTEXTTOSEND, ERR_NOTONCHANNEL, ERR_NOTOPLEVEL, ERR_NOTREGISTERED, ERR_PASSWDMISMATCH, ERR_SUMMONDISABLED, ERR_TOOMANYCHANNELS, ERR_TOOMANYTARGETS, ERR_UMODEUNKNOWNFLAG, ERR_UNKNOWNCOMMAND, ERR_UNKNOWNMODE, ERR_USERNOTINCHANNEL, ERR_USERONCHANNEL, ERR_USERSDISABLED, ERR_USERSDONTMATCH, ERR_WASNOSUCHNICK, ERR_WILDTOPLEVEL, ERR_YOUREBANNEDCREEP, ERR_YOUWILLBEBANNED, RPL_ADMINEMAIL, RPL_ADMINLOC1, RPL_ADMINLOC2, RPL_ADMINME, RPL_AWAY, RPL_BANLIST, RPL_CHANNELMODEIS, RPL_CLOSEEND, RPL_CLOSING, RPL_ENDOFBANLIST, RPL_ENDOFINFO, RPL_ENDOFLINKS, RPL_ENDOFMOTD, RPL_ENDOFNAMES, RPL_ENDOFSERVICES, RPL_ENDOFSTATS, RPL_ENDOFUSERS, RPL_ENDOFWHO, RPL_ENDOFWHOIS, RPL_ENDOFWHOWAS, RPL_INFO, RPL_INFOSTART, RPL_INVITING, RPL_ISON, RPL_KILLDONE, RPL_LINKS, RPL_LIST, RPL_LISTEND, RPL_LISTSTART, RPL_LUSERCHANNELS, RPL_LUSERCLIENT, RPL_LUSERME, RPL_LUSEROP, RPL_LUSERUNKNOWN, RPL_MOTD, RPL_MOTDSTART, RPL_MYPORTIS, RPL_NAMREPLY, RPL_NONE, RPL_NOTOPIC, RPL_NOUSERS, RPL_NOWAWAY, RPL_REHASHING, RPL_SERVICE, RPL_SERVICEINFO, RPL_SERVLIST, RPL_SERVLISTEND, RPL_STATSCLINE, RPL_STATSCOMMANDS, RPL_STATSHLINE, RPL_STATSILINE, RPL_STATSKLINE, RPL_STATSLINKINFO, RPL_STATSLLINE, RPL_STATSNLINE, RPL_STATSOLINE, RPL_STATSQLINE, RPL_STATSUPTIME, RPL_STATSYLINE, RPL_SUMMONING, RPL_TIME, RPL_TOPIC, RPL_TOPICINFO, RPL_TRACECLASS, RPL_TRACECONNECTING, RPL_TRACEHANDSHAKE, RPL_TRACELINK, RPL_TRACELOG, RPL_TRACENEWTYPE, RPL_TRACEOPERATOR, RPL_TRACESERVER, RPL_TRACEUNKNOWN, RPL_TRACEUSER, RPL_UMODEIS, RPL_UNAWAY, RPL_USERHOST, RPL_USERS, RPL_USERSSTART, RPL_VERSION, RPL_WHOISCHANNELS, RPL_WHOISCHANOP, RPL_WHOISIDLE, RPL_WHOISOPERATOR, RPL_WHOISSERVER, RPL_WHOISUSER, RPL_WHOREPLY, RPL_WHOWASUSER, RPL_YOUREOPER
 
Constructor Summary
IChatIRCGateService(IChatServiceBot anIChatBot, GateProperties aProperties, IChatMessageFactory messageFactory)
          Constructor.
 
Method Summary
 void onIChatConnected()
          Starts virtual users refreshing and send message board text on connect.
 void onIChatDisconnected()
          Stops the virtual users refreshing and tryes to reconnect to the iChat server.
 void onIChatShutdown()
          Additional shutdown cleanup.
 void processBroadcastMessage(IChatTextMessage aMessage)
          Sends an iChat broadcast message into the IRC network.
 void processConnectMessage(IChatConnectMessage aMessage)
          Sends notification about the iChat's user connection and emulates virtual users connections for this user, sends message board text to the newely connected user.
 void processDisconnectMessage(IChatDisconnectMessage aMessage, IChatUserInfo aUserInfo)
          Sends notification about iChat's user disconnection to the IRC network.
 void processMeMessage(IChatMeMessage aMessage)
          Sends iChat's /me message into the IRC network.
 void processPrivateMessage(IChatTextMessage aMessage)
          Tries to send private message to the IRC network.
 void processPublicMessage(IChatTextMessage aMessage)
          Sends public message to the IRC network.
 void processRenameMessage(IChatRenameMessage aMessage, java.lang.String anOldNickname)
          Sends a notification message about user name change to the IRC network.
 void processStatusReqMessage(IChatStatusReqMessage aMessage)
          Sends our status on request.
 void updateUsers()
          Triggers users update sequence.
 
Methods inherited from class org.jibble.pircbot.PircBot
ban, changeNick, connect, connect, connect, dccSendChatRequest, dccSendFile, deOp, deVoice, disconnect, dispose, equals, getChannels, getDccInetAddress, getDccPorts, getEncoding, getFinger, getInetAddress, getLogin, getMaxLineLength, getMessageDelay, getName, getNick, getOutgoingQueueSize, getPassword, getPort, getServer, getUsers, getVersion, hashCode, ipToLong, isConnected, joinChannel, joinChannel, kick, kick, listChannels, listChannels, log, longToIp, op, partChannel, partChannel, quitServer, quitServer, reconnect, sendAction, sendCTCPCommand, sendInvite, sendMessage, sendNotice, sendRawLine, sendRawLineViaQueue, setAutoNickChange, setDccInetAddress, setDccPorts, setEncoding, setMessageDelay, setMode, setTopic, setVerbose, startIdentServer, toString, unBan, voice
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

IChatIRCGateService

public IChatIRCGateService(IChatServiceBot anIChatBot,
                           GateProperties aProperties,
                           IChatMessageFactory messageFactory)
Constructor.

Parameters:
anIChatBot - - iChat service bot framework
aProperties - - bot properties
Method Detail

processPublicMessage

public void processPublicMessage(IChatTextMessage aMessage)
Sends public message to the IRC network.

Specified by:
processPublicMessage in interface PublicMessageListener
See Also:
PublicMessageListener.processPublicMessage(IChatTextMessage)

processStatusReqMessage

public void processStatusReqMessage(IChatStatusReqMessage aMessage)
Sends our status on request.

Specified by:
processStatusReqMessage in interface StatusReqMessageListener
See Also:
StatusReqMessageListener.processStatusReqMessage(IChatStatusReqMessage)

processPrivateMessage

public void processPrivateMessage(IChatTextMessage aMessage)
Tries to send private message to the IRC network.

Specified by:
processPrivateMessage in interface PrivateMessageListener
See Also:
PrivateMessageListener.processPrivateMessage(IChatTextMessage)

processConnectMessage

public void processConnectMessage(IChatConnectMessage aMessage)
Sends notification about the iChat's user connection and emulates virtual users connections for this user, sends message board text to the newely connected user.

Specified by:
processConnectMessage in interface ConnectMessageListener
See Also:
ConnectMessageListener.processConnectMessage(IChatConnectMessage)

processDisconnectMessage

public void processDisconnectMessage(IChatDisconnectMessage aMessage,
                                     IChatUserInfo aUserInfo)
Sends notification about iChat's user disconnection to the IRC network.

Specified by:
processDisconnectMessage in interface DisconnectMessageListener
aUserInfo - - an information about the user being disconnected. Can be null in case of "precautios" disconnect messages.
See Also:
com.web_visage.ichat.listeners.DisconnectMessageListener#processDisconnectMessage(com.web_visage.ichat.IChatMessage)

onIChatConnected

public void onIChatConnected()
Starts virtual users refreshing and send message board text on connect.

Specified by:
onIChatConnected in interface ConnectListener
See Also:
ConnectListener.onIChatConnected()

onIChatDisconnected

public void onIChatDisconnected()
Stops the virtual users refreshing and tryes to reconnect to the iChat server.

Specified by:
onIChatDisconnected in interface DisconnectListener
See Also:
DisconnectListener.onIChatDisconnected()

processRenameMessage

public void processRenameMessage(IChatRenameMessage aMessage,
                                 java.lang.String anOldNickname)
Sends a notification message about user name change to the IRC network.

Specified by:
processRenameMessage in interface RenameMessageListener
anOldNickname - - the old user's nickname
See Also:
RenameMessageListener.processRenameMessage(IChatRenameMessage, java.lang.String)

processBroadcastMessage

public void processBroadcastMessage(IChatTextMessage aMessage)
Sends an iChat broadcast message into the IRC network.

Specified by:
processBroadcastMessage in interface BroadcastMessageListener
See Also:
BroadcastMessageListener.processBroadcastMessage(com.web_visage.ichat.messages.IChatTextMessage)

processMeMessage

public void processMeMessage(IChatMeMessage aMessage)
Sends iChat's /me message into the IRC network.

Specified by:
processMeMessage in interface MeMessageListener
See Also:
MeMessageListener.processMeMessage(com.web_visage.ichat.messages.IChatMeMessage)

updateUsers

public void updateUsers()
Triggers users update sequence.


onIChatShutdown

public void onIChatShutdown()
Additional shutdown cleanup.

Specified by:
onIChatShutdown in interface ShutdownListener