public class DefaultClient extends Object implements Client.WithManagement
Client
.Client.Builder, Client.Commands, Client.WithManagement
Constructor and Description |
---|
DefaultClient()
Creates a new default client.
|
Modifier and Type | Method and Description |
---|---|
void |
addChannel(String... channels)
Adds channels to this client.
|
void |
addKeyProtectedChannel(Pair<String,String>... channelsAndKeys)
Adds key-protected channels to this client.
|
void |
addKeyProtectedChannel(String channel,
String key)
Adds a key-protected channel to this client.
|
void |
beginMessageSendingImmediate(Consumer<String> consumer)
Starts the sending of queued 'immediately' messages.
|
Client.Commands |
commands()
Provides access to
Command s. |
void |
connect()
Begin connecting to the server.
|
ActorTracker |
getActorTracker()
Gets the actor tracker.
|
AuthManager |
getAuthManager()
Gets the authentication manager.
|
InetSocketAddress |
getBindAddress()
Gets the bind address
|
CapabilityManager.WithManagement |
getCapabilityManager()
Gets the capability manager.
|
Optional<Channel> |
getChannel(String name)
Gets the named channel.
|
Set<Channel> |
getChannels()
Gets the channels in which the client is currently present.
|
Set<Channel> |
getChannels(Collection<String> channels)
Gets the channels on the given collection in which the client is
currently present.
|
DefaultMessageMap |
getDefaultMessageMap()
Gets the message manager for default messages to reply with
when certain messages are being sent.
|
EventManager |
getEventManager()
Gets the client's event manager.
|
Listener<Exception> |
getExceptionListener()
Gets the exception listener.
|
Listener<String> |
getInputListener()
Gets the currently set input listener.
|
Set<String> |
getIntendedChannels()
Gets the channels the client intends to join.
|
String |
getIntendedNick()
Gets the nickname the client intends to possess.
|
ISupportManager |
getISupportManager()
Gets the manager of ISUPPORT info.
|
Cutter |
getMessageCutter()
Gets the current message cutter for multi-line messages.
|
Function<Client.WithManagement,? extends MessageSendingQueue> |
getMessageSendingQueueSupplier()
Gets the message sending queue supplier.
|
MessageTagManager |
getMessageTagManager()
Gets the message tag manager.
|
String |
getName()
Gets the client name.
|
String |
getNick()
Gets the current nickname the client has.
|
Listener<String> |
getOutputListener()
Gets the currently set output listener.
|
String |
getRequestedNick()
Gets the nickname the client has last requested.
|
Path |
getSecureKey()
Gets the TLS/SSL key.
|
Path |
getSecureKeyCertChain()
Gets the TLS/SSL key certificate chain.
|
String |
getSecureKeyPassword()
Gets the TLS/SSL key password.
|
TrustManagerFactory |
getSecureTrustManagerFactory()
Gets the trust manager factory.
|
InetSocketAddress |
getServerAddress()
Gets the server address
|
ServerInfo.WithManagement |
getServerInfo()
Gets information about the server to which the client is currently
connected.
|
Optional<StsMachine> |
getStsMachine()
Gets the STS machine instance, if one is in use.
|
Optional<User> |
getUser()
Gets the User that the client is represented by.
|
Optional<ModeStatusList<UserMode>> |
getUserModes()
Gets the user's modes.
|
void |
initialize(String name,
InetSocketAddress serverAddress,
String serverPassword,
InetSocketAddress bindAddress,
String nick,
String userString,
String realName,
ActorTracker actorTracker,
AuthManager authManager,
CapabilityManager.WithManagement capabilityManager,
EventManager eventManager,
MessageTagManager messageTagManager,
ISupportManager iSupportManager,
DefaultMessageMap defaultMessageMap,
Function<Client.WithManagement,? extends MessageSendingQueue> messageSendingQueue,
Function<Client.WithManagement,? extends ServerInfo.WithManagement> serverInfo,
Consumer<Exception> exceptionListener,
Consumer<String> inputListener,
Consumer<String> outputListener,
boolean secure,
Path secureKeyCertChain,
Path secureKey,
String secureKeyPassword,
TrustManagerFactory trustManagerFactory,
StsStorageManager stsStorageManager,
String webircHost,
InetAddress webircIP,
String webircPassword,
String webircUser)
Initialize with pre-connection information.
|
boolean |
isSecureConnection()
Gets if the client is configured for a secure connection.
|
void |
knockChannel(String channelName)
KNOCKs on a +i (but not +p) channel, requesting an INVITE.
|
void |
pauseMessageSending()
Pauses message sending, waiting for next successful connection.
|
void |
ping()
Sends a PING.
|
void |
processLine(String line)
Queue up a line for processing.
|
void |
reconnect()
Triggers a reconnect, quitting with the default
DefaultMessageType.RECONNECT message. |
void |
reconnect(String reason)
Triggers a reconnect, quitting with the given reason.
|
void |
removeChannel(String channelName)
Removes a channel from the client, leaving as necessary.
|
void |
removeChannel(String channelName,
String reason)
Removes a channel from the client, leaving as necessary.
|
void |
sendCtcpMessage(String target,
String message)
Sends a CTCP message to a target user or channel.
|
void |
sendCtcpReply(String target,
String message)
Sends a CTCP reply to a target user or channel.
|
void |
sendMessage(String target,
String message)
Sends a message to a target user or channel.
|
void |
sendMultiLineMessage(String target,
String message,
Cutter cutter)
Sends a potentially multi-line message to a target user or channel
using the defined
Cutter . |
void |
sendMultiLineNotice(String target,
String message,
Cutter cutter)
Sends a potentially multi-line notice to a target user or channel
using the defined
Cutter . |
void |
sendNickChange(String newNick)
Sends a nick change request.
|
void |
sendNotice(String target,
String message)
Sends a notice to a target user or channel.
|
void |
sendRawLine(String message)
Sends a raw IRC message.
|
void |
sendRawLineAvoidingDuplication(String message)
Sends a raw IRC message, unless the exact same message is already in
the queue of messages not yet sent.
|
void |
sendRawLineImmediately(String message)
Sends a raw IRC message, disregarding message delays and all sanity.
|
void |
setCurrentNick(String nick)
Sets the current nickname the client knows it has.
|
void |
setDefaultMessageMap(DefaultMessageMap defaults)
Sets the message manager for default messages to reply with
when certain messages are being sent.
|
void |
setExceptionListener(Consumer<Exception> listener)
Sets a listener for all thrown exceptions on this client.
|
void |
setInputListener(Consumer<String> listener)
Sets a listener for all incoming messages from the server.
|
void |
setMessageCutter(Cutter cutter)
Sets the default message cutter to use for multi-line messages.
|
void |
setMessageSendingQueueSupplier(Function<Client.WithManagement,? extends MessageSendingQueue> supplier)
Sets the message sending queue supplier.
|
void |
setNick(String nick)
Sets the nick the client wishes to use.
|
void |
setOutputListener(Consumer<String> listener)
Sets a listener for all outgoing messages to the server.
|
void |
setServerAddress(InetSocketAddress address)
Sets the server address.
|
void |
setUserModes(ModeStatusList<UserMode> userModes)
Sets the client's user modes.
|
void |
shutdown()
Shuts down the client without a quit message.
|
void |
shutdown(String reason)
Shuts down the client.
|
void |
startSending()
Starts sending queued messages.
|
String |
toString() |
void |
updateUserModes(ModeStatusList<UserMode> userModes)
Updates the client's user modes.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
builder, isUser, sendCtcpMessage, sendCtcpReply, sendMessage, sendMultiLineMessage, sendMultiLineMessage, sendMultiLineMessage, sendMultiLineNotice, sendMultiLineNotice, sendMultiLineNotice, sendNotice
public void initialize(@Nonnull String name, @Nonnull InetSocketAddress serverAddress, @Nullable String serverPassword, @Nullable InetSocketAddress bindAddress, @Nonnull String nick, @Nonnull String userString, @Nonnull String realName, @Nonnull ActorTracker actorTracker, @Nonnull AuthManager authManager, @Nonnull CapabilityManager.WithManagement capabilityManager, @Nonnull EventManager eventManager, @Nonnull MessageTagManager messageTagManager, @Nonnull ISupportManager iSupportManager, @Nullable DefaultMessageMap defaultMessageMap, @Nonnull Function<Client.WithManagement,? extends MessageSendingQueue> messageSendingQueue, @Nonnull Function<Client.WithManagement,? extends ServerInfo.WithManagement> serverInfo, @Nullable Consumer<Exception> exceptionListener, @Nullable Consumer<String> inputListener, @Nullable Consumer<String> outputListener, boolean secure, @Nullable Path secureKeyCertChain, @Nullable Path secureKey, @Nullable String secureKeyPassword, @Nullable TrustManagerFactory trustManagerFactory, @Nullable StsStorageManager stsStorageManager, @Nullable String webircHost, @Nullable InetAddress webircIP, @Nullable String webircPassword, @Nullable String webircUser)
Client.WithManagement
initialize
in interface Client.WithManagement
name
- nameserverAddress
- serverAddressserverPassword
- serverPasswordbindAddress
- bindAddressnick
- nickuserString
- userStringrealName
- realNameactorTracker
- actorTrackerauthManager
- authManagercapabilityManager
- capabilityManagereventManager
- eventManagermessageTagManager
- messageTagManageriSupportManager
- iSupportManagerdefaultMessageMap
- defaultMessageMapmessageSendingQueue
- messageSendingQueueserverInfo
- serverInfoexceptionListener
- exceptionListenerinputListener
- inputListeneroutputListener
- outputListenersecure
- securesecureKeyCertChain
- secureKeyCertChainsecureKey
- secureKeysecureKeyPassword
- secureKeyPasswordtrustManagerFactory
- trustManagerFactorystsStorageManager
- stsStorageManagerwebircHost
- webircHostwebircIP
- webircIPwebircPassword
- webircPasswordwebircUser
- webircUserpublic void addChannel(@Nonnull String... channels)
Client
Joins the channels if already connected.
addChannel
in interface Client
channels
- channel(s) to addRequestedChannelJoinCompleteEvent
,
UnexpectedChannelLeaveEvent
public void addKeyProtectedChannel(@Nonnull String channel, @Nonnull String key)
Client
Joins the channels if already connected.
addKeyProtectedChannel
in interface Client
channel
- channel to addkey
- channel keypublic void addKeyProtectedChannel(@Nonnull Pair<String,String>... channelsAndKeys)
Client
Joins the channels if already connected.
addKeyProtectedChannel
in interface Client
channelsAndKeys
- pairs of channel, key@Nonnull public AuthManager getAuthManager()
Client
getAuthManager
in interface Client
@Nonnull public InetSocketAddress getBindAddress()
Client.WithManagement
getBindAddress
in interface Client.WithManagement
@Nonnull public CapabilityManager.WithManagement getCapabilityManager()
Client
getCapabilityManager
in interface Client
getCapabilityManager
in interface Client.WithManagement
@Nonnull public Optional<Channel> getChannel(@Nonnull String name)
Client
getChannel
in interface Client
name
- channel nameClient.getChannels()
@Nonnull public Set<Channel> getChannels()
Client
getChannels
in interface Client
@Nonnull public Set<Channel> getChannels(@Nonnull Collection<String> channels)
Client
getChannels
in interface Client
channels
- collection of channel names to get@Nonnull public DefaultMessageMap getDefaultMessageMap()
Client
getDefaultMessageMap
in interface Client
@Nonnull public EventManager getEventManager()
Client
getEventManager
in interface Client
@Nonnull public Listener<Exception> getExceptionListener()
Client
getExceptionListener
in interface Client
@Nonnull public String getIntendedNick()
Client
Use Client.getNick()
for the current nick.
getIntendedNick
in interface Client
@Nonnull public ISupportManager getISupportManager()
Client
getISupportManager
in interface Client
@Nonnull public Optional<StsMachine> getStsMachine()
Client
getStsMachine
in interface Client
@Nonnull public Cutter getMessageCutter()
Client
getMessageCutter
in interface Client
@Nonnull public Function<Client.WithManagement,? extends MessageSendingQueue> getMessageSendingQueueSupplier()
Client
SingleDelaySender
with a delay of 1200.getMessageSendingQueueSupplier
in interface Client
@Nonnull public MessageTagManager getMessageTagManager()
Client
getMessageTagManager
in interface Client
@Nonnull public String getName()
Client
@Nonnull public String getNick()
Client
@Nonnull public ServerInfo.WithManagement getServerInfo()
Client
ClientNegotiationCompleteEvent
getServerInfo
in interface Client
getServerInfo
in interface Client.WithManagement
@Nonnull public Optional<User> getUser()
Client
Optional.empty()
until the Client is in a Channel for which joining
has completed, meaning full user info is available.@Nonnull public Optional<ModeStatusList<UserMode>> getUserModes()
Client
Optional.empty()
until the
Client has queried this information, which is requested after the
connection registration has completed.getUserModes
in interface Client
public void knockChannel(@Nonnull String channelName)
Client
knockChannel
in interface Client
channelName
- the channel to send the KNOCK for.public void removeChannel(@Nonnull String channelName)
Client
removeChannel
in interface Client
channelName
- channel to leavepublic void removeChannel(@Nonnull String channelName, @Nullable String reason)
Client
removeChannel
in interface Client
channelName
- channel to leavereason
- part reasonpublic void sendCtcpMessage(@Nonnull String target, @Nonnull String message)
Client
Note: CTCP replies should not be sent this way. Catch the message
with the PrivateCtcpQueryEvent
and reply there or use
Client.sendCtcpReply(String, String)
sendCtcpMessage
in interface Client
target
- the destination of the messagemessage
- the message to sendpublic void sendCtcpReply(@Nonnull String target, @Nonnull String message)
Client
sendCtcpReply
in interface Client
target
- the destination of the messagemessage
- the message to sendpublic void sendMessage(@Nonnull String target, @Nonnull String message)
Client
sendMessage
in interface Client
target
- the destination of the messagemessage
- the message to sendpublic void sendMultiLineMessage(@Nonnull String target, @Nonnull String message, @Nonnull Cutter cutter)
Client
Cutter
.
Note that bots may not react appropriately to a message split across multiple lines.
sendMultiLineMessage
in interface Client
target
- the destination of the messagemessage
- the message to sendcutter
- cutter to utilizepublic void sendMultiLineNotice(@Nonnull String target, @Nonnull String message, @Nonnull Cutter cutter)
Client
Cutter
.
Note that bots may not react appropriately to a message split across multiple lines.
sendMultiLineNotice
in interface Client
target
- the destination of the messagemessage
- the message to sendcutter
- cutter to utilize@Nullable public Path getSecureKey()
Client.WithManagement
getSecureKey
in interface Client.WithManagement
@Nullable public Path getSecureKeyCertChain()
Client.WithManagement
getSecureKeyCertChain
in interface Client.WithManagement
@Nullable public String getSecureKeyPassword()
Client.WithManagement
getSecureKeyPassword
in interface Client.WithManagement
@Nullable public TrustManagerFactory getSecureTrustManagerFactory()
Client.WithManagement
getSecureTrustManagerFactory
in interface Client.WithManagement
@Nonnull public InetSocketAddress getServerAddress()
Client.WithManagement
getServerAddress
in interface Client.WithManagement
public void sendNotice(@Nonnull String target, @Nonnull String message)
Client
sendNotice
in interface Client
target
- the destination of the messagemessage
- the message to sendpublic void sendRawLine(@Nonnull String message)
Client
sendRawLine
in interface Client
message
- message to sendpublic void sendRawLineAvoidingDuplication(@Nonnull String message)
Client
sendRawLineAvoidingDuplication
in interface Client
message
- message to sendpublic void sendRawLineImmediately(@Nonnull String message)
Client
sendRawLineImmediately
in interface Client
message
- message to send dangerously, you monsterpublic void setExceptionListener(@Nullable Consumer<Exception> listener)
Client
All exceptions are passed from a single, separate thread.
setExceptionListener
in interface Client
listener
- catcher of throwable objectspublic void setDefaultMessageMap(@Nonnull DefaultMessageMap defaults)
Client
setDefaultMessageMap
in interface Client
defaults
- DefaultMessageMap to setpublic void setInputListener(@Nullable Consumer<String> listener)
Client
All messages are passed from a single, separate thread.
setInputListener
in interface Client
listener
- input listenerpublic void setMessageCutter(@Nonnull Cutter cutter)
Client
setMessageCutter
in interface Client
cutter
- cutter to setpublic void setMessageSendingQueueSupplier(@Nonnull Function<Client.WithManagement,? extends MessageSendingQueue> supplier)
Client
setMessageSendingQueueSupplier
in interface Client
supplier
- the supplierpublic void setNick(@Nonnull String nick)
Client
public void setOutputListener(@Nullable Consumer<String> listener)
Client
All messages are passed from a single, separate thread.
setOutputListener
in interface Client
listener
- output listenerpublic void shutdown()
Client
public void shutdown(@Nullable String reason)
Client
public void processLine(@Nonnull String line)
processLine
in interface Client.WithManagement
line
- line to be processed@Nonnull public ActorTracker getActorTracker()
Client.WithManagement
getActorTracker
in interface Client.WithManagement
@Nonnull public Listener<String> getInputListener()
Client.WithManagement
getInputListener
in interface Client.WithManagement
@Nonnull public Set<String> getIntendedChannels()
Client.WithManagement
getIntendedChannels
in interface Client.WithManagement
@Nonnull public Listener<String> getOutputListener()
Client.WithManagement
getOutputListener
in interface Client.WithManagement
@Nonnull public String getRequestedNick()
Client.WithManagement
getRequestedNick
in interface Client.WithManagement
public void connect()
Client
public void beginMessageSendingImmediate(@Nonnull Consumer<String> consumer)
Client.WithManagement
beginMessageSendingImmediate
in interface Client.WithManagement
consumer
- consumer with which to handle this queuepublic void pauseMessageSending()
Client.WithManagement
pauseMessageSending
in interface Client.WithManagement
public void ping()
Client.WithManagement
ping
in interface Client.WithManagement
public void sendNickChange(@Nonnull String newNick)
Client.WithManagement
sendNickChange
in interface Client.WithManagement
newNick
- new nicknamepublic void setCurrentNick(@Nonnull String nick)
Client.WithManagement
setCurrentNick
in interface Client.WithManagement
nick
- nicknamepublic void setServerAddress(@Nonnull InetSocketAddress address)
Client.WithManagement
setServerAddress
in interface Client.WithManagement
address
- server addresspublic void setUserModes(@Nonnull ModeStatusList<UserMode> userModes)
Client.WithManagement
setUserModes
in interface Client.WithManagement
userModes
- user modes to setpublic void startSending()
Client.WithManagement
startSending
in interface Client.WithManagement
public void updateUserModes(@Nonnull ModeStatusList<UserMode> userModes)
Client.WithManagement
updateUserModes
in interface Client.WithManagement
userModes
- mode changespublic void reconnect()
Client
DefaultMessageType.RECONNECT
message.public void reconnect(@Nullable String reason)
Client
public boolean isSecureConnection()
Client.WithManagement
isSecureConnection
in interface Client.WithManagement
Copyright © 2013–2019 Kitteh. All rights reserved.