wtanaka.praya.irc
Class IRCClient
java.lang.Object
|
+--wtanaka.praya.Protocol
|
+--wtanaka.praya.irc.IRCClient
- All Implemented Interfaces:
- java.lang.Runnable, java.io.Serializable
- public class IRCClient
- extends Protocol
- implements java.lang.Runnable
- Version:
- $Name: $ $Date: 2002/07/14 23:34:51 $
- Author:
- $Author: wtanaka $
- See Also:
- Serialized Form
|
Constructor Summary |
IRCClient()
|
IRCClient(java.lang.String server,
java.lang.String nick,
java.lang.String realName,
java.lang.String username)
|
IRCClient(java.lang.String server,
java.lang.String nick,
java.lang.String realName,
java.lang.String username,
int port,
java.lang.String awayReason)
|
|
Method Summary |
protected void |
addRecipient(Recipient r,
Status s)
Override visibility to let in IRCReplyParser |
void |
checkForNewMessages(boolean isAutomatic)
This shouldn't do anything, messages are received by my thread. |
void |
connect()
Connects to the network, if that makes any sense. |
CommandInterface[] |
consoleCommands()
Text based IRC-specific command interpreter. |
void |
disconnect()
Disconnects from the network, if that makes any sense. |
private void |
doQuit()
|
java.lang.String |
getAwayReason()
|
ConfigItem[] |
getConfiguration()
|
java.lang.String |
getCurrentChannel()
|
Recipient |
getDefaultRecipient()
|
static java.awt.Image |
getIcon()
|
java.lang.String |
getNick()
|
int |
getPort()
|
static java.lang.String |
getProtocolDescription()
Used to describe the class of this protocol, before any
instances have been created. |
java.lang.String |
getRealName()
|
java.lang.String |
getServer()
|
java.lang.String |
getUserName()
|
boolean |
isConnected()
Returns if the protocol is connected right now. |
void |
join(java.lang.String channel)
|
void |
leave(java.lang.String channel)
|
private java.lang.String |
readLineFrom(java.io.InputStream input)
Reads a line terminated by \r or \n |
void |
run()
|
private void |
sendAway(java.lang.String message)
|
private void |
sendJoinCommand(java.lang.String channel,
java.lang.String key)
|
void |
sendMessage(IRCSelfChannelMessage m)
|
void |
sendMessage(IRCSelfPrivMessage m)
|
private void |
sendNickCommand(java.lang.String nickName)
|
private void |
sendPartCommand(java.lang.String channel)
|
(package private) void |
sendPongMessage(java.lang.String pongParam)
|
private void |
sendPrivMessage(java.lang.String[] recipients,
java.lang.String text)
|
private void |
sendPrivMessageOneLine(java.lang.String arg1,
java.lang.String arg2)
This should only be called from sendPrivMessage |
private void |
sendQuit()
|
private void |
sendUnaway()
|
private void |
sendUserCommand(java.lang.String username,
java.lang.String realname)
|
private void |
sendWhoisMessage(java.lang.String nickMask)
|
private void |
sendWhoMessage(java.lang.String name,
boolean opsOnly)
|
void |
setAwayReason(java.lang.String reason)
|
private void |
setNick(java.lang.String newNick)
|
void |
setServer(java.lang.String newServer,
int port)
|
void |
setStatus(Status status)
Sets the currently connected user's status to the given status. |
void |
setUsername(java.lang.String newUsername)
|
private java.lang.String[] |
splitLine(java.lang.String line,
char splitChar)
|
private void |
updateDescription()
|
void |
who(java.lang.String channel)
|
void |
whois(java.lang.String nick)
|
| Methods inherited from class wtanaka.praya.Protocol |
addDescriptionListener, addListener, addRecipientListener, changeRecipientStatus, clearBuddyList, console, fireDescriptionChanged, fireRecipientAppeared, fireRecipientChanged, fireRecipientDisappeared, getBuddies, getConfigPanelInstance, getCurrentDescription, getObjInstance, getStatusForBuddy, initialize, isGarbage, markAsGarbage, pushMessage, readObject, removeDescriptionListener, removeListener, removeRecipient, removeRecipientListener, setCurrentDescription, writeObject |
| Methods inherited from class java.lang.Object |
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait |
serverSocket
private java.net.Socket serverSocket
socketInputStream
private java.io.InputStream socketInputStream
socketOutputStream
private java.io.OutputStream socketOutputStream
myThread
private java.lang.Thread myThread
currentChannel
private java.lang.String currentChannel
CONF_NICK
private static final int CONF_NICK
CONF_SERVER
private static final int CONF_SERVER
CONF_PORT
private static final int CONF_PORT
CONF_REALNAME
private static final int CONF_REALNAME
CONF_AWAYREASON
private static final int CONF_AWAYREASON
CONF_USERNAME
private static final int CONF_USERNAME
CONF_STATUS
private static final int CONF_STATUS
CONF_ITEM_COUNT
private static final int CONF_ITEM_COUNT
IRC_STATUS_ONLINE
private static final java.lang.String IRC_STATUS_ONLINE
IRC_STATUS_AWAY
private static final java.lang.String IRC_STATUS_AWAY
IRC_STATUS_OFFLINE
private static final java.lang.String IRC_STATUS_OFFLINE
s_statusList
public static final java.lang.String[] s_statusList
m_configItems
private ConfigItem[] m_configItems
m_parser
private IRCReplyParser m_parser
IRCClient
public IRCClient()
IRCClient
public IRCClient(java.lang.String server,
java.lang.String nick,
java.lang.String realName,
java.lang.String username)
IRCClient
public IRCClient(java.lang.String server,
java.lang.String nick,
java.lang.String realName,
java.lang.String username,
int port,
java.lang.String awayReason)
checkForNewMessages
public void checkForNewMessages(boolean isAutomatic)
- This shouldn't do anything, messages are received by my thread.
- Overrides:
checkForNewMessages in class Protocol
- Following copied from class:
wtanaka.praya.Protocol
- Parameters:
isAutomatic - true if the check is generated automatically with a
timer. false if the check is generated manually by the user.
addRecipient
protected void addRecipient(Recipient r,
Status s)
- Override visibility to let in IRCReplyParser
- Overrides:
addRecipient in class Protocol
sendMessage
public void sendMessage(IRCSelfPrivMessage m)
throws java.io.IOException
sendMessage
public void sendMessage(IRCSelfChannelMessage m)
throws java.io.IOException
setServer
public void setServer(java.lang.String newServer,
int port)
getAwayReason
public java.lang.String getAwayReason()
setAwayReason
public void setAwayReason(java.lang.String reason)
setUsername
public void setUsername(java.lang.String newUsername)
getCurrentChannel
public java.lang.String getCurrentChannel()
getUserName
public java.lang.String getUserName()
getRealName
public java.lang.String getRealName()
getNick
public java.lang.String getNick()
setNick
private void setNick(java.lang.String newNick)
throws java.io.IOException
getServer
public java.lang.String getServer()
getPort
public int getPort()
connect
public void connect()
throws java.io.IOException
- Description copied from class:
Protocol
- Connects to the network, if that makes any sense. skip if it does
not.
- Overrides:
connect in class Protocol
- Following copied from class:
wtanaka.praya.Protocol
- Throws:
java.io.IOException - if the connection fails due to an I/O error.java.lang.InterruptedException - todo, why does it throw this?
isConnected
public boolean isConnected()
- Description copied from class:
Protocol
- Returns if the protocol is connected right now. Good for telling if
you need to call connect() again after the connection dies.
- Overrides:
isConnected in class Protocol
disconnect
public void disconnect()
- Description copied from class:
Protocol
- Disconnects from the network, if that makes any sense. skip if it
does not.
- Overrides:
disconnect in class Protocol
setStatus
public void setStatus(Status status)
throws java.io.IOException
- Description copied from class:
Protocol
- Sets the currently connected user's status to the given status.
- Overrides:
setStatus in class Protocol
join
public void join(java.lang.String channel)
throws java.io.IOException
leave
public void leave(java.lang.String channel)
throws java.io.IOException
splitLine
private java.lang.String[] splitLine(java.lang.String line,
char splitChar)
whois
public void whois(java.lang.String nick)
throws java.io.IOException
who
public void who(java.lang.String channel)
throws java.io.IOException
readLineFrom
private java.lang.String readLineFrom(java.io.InputStream input)
throws java.io.IOException
- Reads a line terminated by \r or \n
updateDescription
private void updateDescription()
run
public void run()
- Specified by:
run in interface java.lang.Runnable
sendNickCommand
private void sendNickCommand(java.lang.String nickName)
throws java.io.IOException
- Throws:
java.io.IOException - if the client is not connected
sendUserCommand
private void sendUserCommand(java.lang.String username,
java.lang.String realname)
throws java.io.IOException
sendJoinCommand
private void sendJoinCommand(java.lang.String channel,
java.lang.String key)
throws java.io.IOException
- Parameters:
key - the key to join the channel with, null if none
sendPartCommand
private void sendPartCommand(java.lang.String channel)
throws java.io.IOException
sendPrivMessageOneLine
private void sendPrivMessageOneLine(java.lang.String arg1,
java.lang.String arg2)
throws java.io.IOException
- This should only be called from sendPrivMessage
sendPrivMessage
private void sendPrivMessage(java.lang.String[] recipients,
java.lang.String text)
throws java.io.IOException
sendPongMessage
void sendPongMessage(java.lang.String pongParam)
throws java.io.IOException
sendWhoisMessage
private void sendWhoisMessage(java.lang.String nickMask)
throws java.io.IOException
sendWhoMessage
private void sendWhoMessage(java.lang.String name,
boolean opsOnly)
throws java.io.IOException
sendUnaway
private void sendUnaway()
throws java.io.IOException
sendAway
private void sendAway(java.lang.String message)
throws java.io.IOException
sendQuit
private void sendQuit()
throws java.io.IOException
doQuit
private void doQuit()
throws java.io.IOException
consoleCommands
public CommandInterface[] consoleCommands()
- Text based IRC-specific command interpreter.
/HELP : this message
/SERVER [hostname[:port]] : view/switch IRC server (does
not reconnect)
/QUOTE COMMAND PARAMS : send COMMAND PARAMS to IRC
server verbatim
/NICK [nickname] : view/change nickname
/JOIN <channel> : join a channel
/LEAVE <channel> : leave a channel
/CHANNEL [channel] : make channel current
/SERVERHELP : asks for help from server
/WHO [<name> [<o>]] : looks for users matching name
/WHOIS [server] <nickmask,..> : gives information on users
/WHOWAS nick [count [server]] : gives information on users
/AWAY [message] : sets you unaway/away
/KICK #ch nick [message] : kicks nick out of #ch
/QUIT : disconnect
- Overrides:
consoleCommands in class Protocol
getDefaultRecipient
public Recipient getDefaultRecipient()
- Overrides:
getDefaultRecipient in class Protocol
getProtocolDescription
public static java.lang.String getProtocolDescription()
- Used to describe the class of this protocol, before any
instances have been created.
getConfiguration
public ConfigItem[] getConfiguration()
- Overrides:
getConfiguration in class Protocol
- Following copied from class:
wtanaka.praya.Protocol
- Returns:
- (self != null) list of configuration items for this protocol.
getIcon
public static java.awt.Image getIcon()