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(@NonNull String channel,
@NonNull String key)
Adds a key-protected channel to this client.
|
void |
beginMessageSendingImmediate(@NonNull Consumer<String> consumer)
Starts the sending of queued 'immediately' messages.
|
@NonNull Client.Commands |
commands()
Provides access to
Commands. |
void |
connect()
Begin connecting to the server.
|
@NonNull ActorTracker |
getActorTracker()
Gets the actor tracker.
|
@NonNull AuthManager |
getAuthManager()
Gets the authentication manager.
|
@NonNull InetSocketAddress |
getBindAddress()
Gets the bind address
|
CapabilityManager.WithManagement |
getCapabilityManager()
Gets the capability manager.
|
@NonNull Optional<Channel> |
getChannel(@NonNull String name)
Gets a snapshot of known information about a named channel, if the
channel is being tracked by the client.
|
@NonNull Set<Channel> |
getChannels()
Gets the channels in which the client is currently present.
|
@NonNull Set<Channel> |
getChannels(@NonNull Collection<String> channels)
Gets the channels on the given collection in which the client is
currently present.
|
@NonNull DefaultMessageMap |
getDefaultMessageMap()
Gets the message manager for default messages to reply with
when certain messages are being sent.
|
@NonNull EventManager |
getEventManager()
Gets the client's event manager.
|
@NonNull Listener<Exception> |
getExceptionListener()
Gets the exception listener.
|
@NonNull Listener<String> |
getInputListener()
Gets the currently set input listener.
|
@NonNull Set<String> |
getIntendedChannels()
Gets the channels the client intends to join.
|
@NonNull String |
getIntendedNick()
Gets the nickname the client intends to possess.
|
@NonNull ISupportManager |
getISupportManager()
Gets the manager of ISUPPORT info.
|
@NonNull Cutter |
getMessageCutter()
Gets the current message cutter for multi-line messages.
|
@NonNull Function<Client.WithManagement,? extends MessageSendingQueue> |
getMessageSendingQueueSupplier()
Gets the message sending queue supplier.
|
@NonNull MessageTagManager |
getMessageTagManager()
Gets the message tag manager.
|
@NonNull String |
getName()
Gets the client name.
|
@NonNull NetworkHandler |
getNetworkHandler()
Gets the network handler.
|
@NonNull String |
getNick()
Gets the current nickname the client has.
|
@NonNull Listener<String> |
getOutputListener()
Gets the currently set output listener.
|
@NonNull Optional<HostWithPort> |
getProxyAddress()
Gets the proxy address
|
@NonNull Optional<ProxyType> |
getProxyType()
Gets if the client is configured to use a proxy.
|
@NonNull String |
getRequestedNick()
Gets the nickname the client has last requested.
|
@Nullable Path |
getSecureKey()
Gets the TLS key.
|
@Nullable Path |
getSecureKeyCertChain()
Gets the TLS key certificate chain.
|
@Nullable String |
getSecureKeyPassword()
Gets the TLS key password.
|
@Nullable TrustManagerFactory |
getSecureTrustManagerFactory()
Gets the trust manager factory.
|
@NonNull HostWithPort |
getServerAddress()
Gets the server address
|
ServerInfo.WithManagement |
getServerInfo()
Gets information about the server to which the client is currently
connected.
|
@NonNull Optional<StsMachine> |
getStsMachine()
Gets the STS machine instance, if one is in use.
|
@NonNull Optional<User> |
getUser()
Gets the User that the client is represented by.
|
@NonNull Optional<ModeStatusList<UserMode>> |
getUserModes()
Gets the user's modes.
|
void |
initialize(@NonNull String name,
@NonNull NetworkHandler networkHandler,
@NonNull HostWithPort serverAddress,
@Nullable String serverPassword,
@Nullable InetSocketAddress bindAddress,
@Nullable HostWithPort proxyAddress,
@Nullable ProxyType proxyType,
@NonNull String nick,
@NonNull String userString,
@NonNull String realName,
@NonNull ActorTracker actorTracker,
@NonNull AuthManager authManager,
CapabilityManager.WithManagement capabilityManager,
@NonNull EventManager eventManager,
@NonNull List<EventListenerSupplier> listenerSuppliers,
@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 webircGateway)
Initialize with pre-connection information.
|
boolean |
isConnectionAlive()
Gets if the connection is alive.
|
boolean |
isSecureConnection()
Gets if the client is configured for a secure connection.
|
void |
knockChannel(@NonNull 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(@NonNull String line)
Queue up a line for processing.
|
void |
reconnect()
Triggers a reconnect, quitting with the default
DefaultMessageType.RECONNECT message. |
void |
reconnect(@Nullable String reason)
Triggers a reconnect, quitting with the given reason.
|
void |
removeChannel(@NonNull String channelName)
Removes a channel from the client, leaving as necessary.
|
void |
removeChannel(@NonNull String channelName,
@Nullable String reason)
Removes a channel from the client, leaving as necessary.
|
void |
sendCtcpMessage(@NonNull String target,
@NonNull String message)
Sends a CTCP message to a target user or channel.
|
void |
sendCtcpReply(@NonNull String target,
@NonNull String message)
Sends a CTCP reply to a target user or channel.
|
void |
sendMessage(@NonNull String target,
@NonNull String message)
Sends a message to a target user or channel.
|
void |
sendMultiLineMessage(@NonNull String target,
@NonNull String message,
@NonNull Cutter cutter)
Sends a potentially multi-line message to a target user or channel
using the defined
Cutter. |
void |
sendMultiLineNotice(@NonNull String target,
@NonNull String message,
@NonNull Cutter cutter)
Sends a potentially multi-line notice to a target user or channel
using the defined
Cutter. |
void |
sendNickChange(@NonNull String newNick)
Sends a nick change request.
|
void |
sendNotice(@NonNull String target,
@NonNull String message)
Sends a notice to a target user or channel.
|
void |
sendRawLine(@NonNull String message)
Sends a raw IRC message.
|
void |
sendRawLineAvoidingDuplication(@NonNull String message)
Sends a raw IRC message, unless the exact same message is already in
the queue of messages not yet sent.
|
void |
sendRawLineImmediately(@NonNull String message)
Sends a raw IRC message, disregarding message delays and all sanity.
|
void |
setCurrentNick(@NonNull String nick)
Sets the current nickname the client knows it has.
|
void |
setDefaultMessageMap(@NonNull DefaultMessageMap defaults)
Sets the message manager for default messages to reply with
when certain messages are being sent.
|
void |
setExceptionListener(@Nullable Consumer<Exception> listener)
Sets a listener for all thrown exceptions on this client.
|
void |
setInputListener(@Nullable Consumer<String> listener)
Sets a listener for all incoming messages from the server.
|
void |
setMessageCutter(@NonNull Cutter cutter)
Sets the default message cutter to use for multi-line messages.
|
void |
setMessageSendingQueueSupplier(@NonNull Function<Client.WithManagement,? extends MessageSendingQueue> supplier)
Sets the message sending queue supplier.
|
void |
setNetworkHandler(@NonNull NetworkHandler networkHandler)
Sets the network handler, for the next time a connection is made.
|
void |
setNick(@NonNull String nick)
Sets the nick the client wishes to use.
|
void |
setOutputListener(@Nullable Consumer<String> listener)
Sets a listener for all outgoing messages to the server.
|
void |
setServerAddress(@NonNull HostWithPort address)
Sets the server address.
|
void |
setUserModes(@NonNull ModeStatusList<UserMode> userModes)
Sets the client's user modes.
|
void |
shutdown()
Shuts down the client without a quit message.
|
void |
shutdown(@Nullable String reason)
Shuts down the client.
|
void |
startSending()
Starts sending queued messages.
|
@NonNull String |
toString() |
void |
updateUserModes(@NonNull ModeStatusList<UserMode> userModes)
Updates the client's user modes.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitbuilder, getClient, isUser, sendCtcpMessage, sendCtcpReply, sendMessage, sendMultiLineMessage, sendMultiLineMessage, sendMultiLineMessage, sendMultiLineNotice, sendMultiLineNotice, sendMultiLineNotice, sendNoticepublic void initialize(@NonNull String name, @NonNull NetworkHandler networkHandler, @NonNull HostWithPort serverAddress, @Nullable String serverPassword, @Nullable InetSocketAddress bindAddress, @Nullable HostWithPort proxyAddress, @Nullable ProxyType proxyType, @NonNull String nick, @NonNull String userString, @NonNull String realName, @NonNull ActorTracker actorTracker, @NonNull AuthManager authManager, CapabilityManager.WithManagement capabilityManager, @NonNull EventManager eventManager, @NonNull List<EventListenerSupplier> listenerSuppliers, @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 webircGateway)
Client.WithManagementinitialize in interface Client.WithManagementname - namenetworkHandler - networkHandlerserverAddress - serverHostWithPortserverPassword - serverPasswordbindAddress - bindAddressproxyAddress - proxyAddressproxyType - proxyTypenick - nickuserString - userStringrealName - realNameactorTracker - actorTrackerauthManager - authManagercapabilityManager - capabilityManagereventManager - eventManagerlistenerSuppliers - listenerSuppliersmessageTagManager - messageTagManageriSupportManager - iSupportManagerdefaultMessageMap - defaultMessageMapmessageSendingQueue - messageSendingQueueserverInfo - serverInfoexceptionListener - exceptionListenerinputListener - inputListeneroutputListener - outputListenersecure - securesecureKeyCertChain - secureKeyCertChainsecureKey - secureKeysecureKeyPassword - secureKeyPasswordtrustManagerFactory - trustManagerFactorystsStorageManager - stsStorageManagerwebircHost - webircHostwebircIP - webircIPwebircPassword - webircPasswordwebircGateway - webircUserpublic void addChannel(String... channels)
ClientJoins the channels if already connected.
addChannel in interface Clientchannels - channel(s) to addRequestedChannelJoinCompleteEvent,
UnexpectedChannelLeaveEventpublic void addKeyProtectedChannel(@NonNull String channel, @NonNull String key)
ClientJoins the channels if already connected.
addKeyProtectedChannel in interface Clientchannel - channel to addkey - channel keypublic void addKeyProtectedChannel(Pair<String,String>... channelsAndKeys)
ClientJoins the channels if already connected.
addKeyProtectedChannel in interface ClientchannelsAndKeys - pairs of channel, keypublic @NonNull AuthManager getAuthManager()
ClientgetAuthManager in interface Clientpublic @NonNull InetSocketAddress getBindAddress()
Client.WithManagementgetBindAddress in interface Client.WithManagementpublic CapabilityManager.WithManagement getCapabilityManager()
ClientgetCapabilityManager in interface ClientgetCapabilityManager in interface Client.WithManagementpublic @NonNull Optional<Channel> getChannel(@NonNull String name)
ClientgetChannel in interface Clientname - channel nameClient.getChannels()public @NonNull Set<Channel> getChannels()
ClientgetChannels in interface Clientpublic @NonNull Set<Channel> getChannels(@NonNull Collection<String> channels)
ClientgetChannels in interface Clientchannels - collection of channel names to getpublic @NonNull DefaultMessageMap getDefaultMessageMap()
ClientgetDefaultMessageMap in interface Clientpublic @NonNull EventManager getEventManager()
ClientgetEventManager in interface Clientpublic @NonNull Listener<Exception> getExceptionListener()
ClientgetExceptionListener in interface Clientpublic @NonNull String getIntendedNick()
Client
Use Client.getNick() for the current nick.
getIntendedNick in interface Clientpublic @NonNull ISupportManager getISupportManager()
ClientgetISupportManager in interface Clientpublic @NonNull Optional<StsMachine> getStsMachine()
ClientgetStsMachine in interface Clientpublic @NonNull Cutter getMessageCutter()
ClientgetMessageCutter in interface Clientpublic @NonNull Function<Client.WithManagement,? extends MessageSendingQueue> getMessageSendingQueueSupplier()
ClientSingleDelaySender
with a delay of 1200.getMessageSendingQueueSupplier in interface Clientpublic @NonNull MessageTagManager getMessageTagManager()
ClientgetMessageTagManager in interface Clientpublic @NonNull String getName()
Clientpublic @NonNull String getNick()
Clientpublic @NonNull NetworkHandler getNetworkHandler()
Client.WithManagementgetNetworkHandler in interface Client.WithManagementpublic ServerInfo.WithManagement getServerInfo()
ClientClientNegotiationCompleteEventgetServerInfo in interface ClientgetServerInfo in interface Client.WithManagementpublic @NonNull Optional<User> getUser()
ClientOptional.empty() until the Client is in a Channel for which joining
has completed, meaning full user info is available.public @NonNull Optional<ModeStatusList<UserMode>> getUserModes()
ClientOptional.empty() until the
Client has queried this information, which is requested after the
connection registration has completed.getUserModes in interface Clientpublic void knockChannel(@NonNull String channelName)
ClientknockChannel in interface ClientchannelName - the channel to send the KNOCK for.public void removeChannel(@NonNull String channelName)
ClientremoveChannel in interface ClientchannelName - channel to leavepublic void removeChannel(@NonNull String channelName, @Nullable String reason)
ClientremoveChannel in interface ClientchannelName - 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 Clienttarget - the destination of the messagemessage - the message to sendpublic void sendCtcpReply(@NonNull String target, @NonNull String message)
ClientsendCtcpReply in interface Clienttarget - the destination of the messagemessage - the message to sendpublic void sendMessage(@NonNull String target, @NonNull String message)
ClientsendMessage in interface Clienttarget - the destination of the messagemessage - the message to sendpublic void sendMultiLineMessage(@NonNull String target, @NonNull String message, @NonNull Cutter cutter)
ClientCutter.
Note that bots may not react appropriately to a message split across multiple lines.
sendMultiLineMessage in interface Clienttarget - the destination of the messagemessage - the message to sendcutter - cutter to utilizepublic void sendMultiLineNotice(@NonNull String target, @NonNull String message, @NonNull Cutter cutter)
ClientCutter.
Note that bots may not react appropriately to a message split across multiple lines.
sendMultiLineNotice in interface Clienttarget - the destination of the messagemessage - the message to sendcutter - cutter to utilizepublic @Nullable Path getSecureKey()
Client.WithManagementgetSecureKey in interface Client.WithManagementpublic @Nullable Path getSecureKeyCertChain()
Client.WithManagementgetSecureKeyCertChain in interface Client.WithManagementpublic @Nullable String getSecureKeyPassword()
Client.WithManagementgetSecureKeyPassword in interface Client.WithManagementpublic @Nullable TrustManagerFactory getSecureTrustManagerFactory()
Client.WithManagementgetSecureTrustManagerFactory in interface Client.WithManagementpublic @NonNull HostWithPort getServerAddress()
Client.WithManagementgetServerAddress in interface Client.WithManagementpublic @NonNull Optional<ProxyType> getProxyType()
Client.WithManagementgetProxyType in interface Client.WithManagementtrue if configured for proxypublic @NonNull Optional<HostWithPort> getProxyAddress()
Client.WithManagementgetProxyAddress in interface Client.WithManagementpublic void sendNotice(@NonNull String target, @NonNull String message)
ClientsendNotice in interface Clienttarget - the destination of the messagemessage - the message to sendpublic void sendRawLine(@NonNull String message)
ClientsendRawLine in interface Clientmessage - message to sendpublic void sendRawLineAvoidingDuplication(@NonNull String message)
ClientsendRawLineAvoidingDuplication in interface Clientmessage - message to sendpublic void sendRawLineImmediately(@NonNull String message)
ClientsendRawLineImmediately in interface Clientmessage - message to send dangerously, you monsterpublic void setExceptionListener(@Nullable Consumer<Exception> listener)
ClientAll exceptions are passed from a single, separate thread.
setExceptionListener in interface Clientlistener - catcher of throwable objectspublic void setDefaultMessageMap(@NonNull DefaultMessageMap defaults)
ClientsetDefaultMessageMap in interface Clientdefaults - DefaultMessageMap to setpublic void setInputListener(@Nullable Consumer<String> listener)
ClientAll messages are passed from a single, separate thread.
setInputListener in interface Clientlistener - input listenerpublic void setMessageCutter(@NonNull Cutter cutter)
ClientsetMessageCutter in interface Clientcutter - cutter to setpublic void setMessageSendingQueueSupplier(@NonNull Function<Client.WithManagement,? extends MessageSendingQueue> supplier)
ClientsetMessageSendingQueueSupplier in interface Clientsupplier - the supplierpublic void setNetworkHandler(@NonNull NetworkHandler networkHandler)
Client.WithManagementsetNetworkHandler in interface Client.WithManagementnetworkHandler - new network handlerpublic void setNick(@NonNull String nick)
Clientpublic void setOutputListener(@Nullable Consumer<String> listener)
ClientAll messages are passed from a single, separate thread.
setOutputListener in interface Clientlistener - output listenerpublic void shutdown()
Clientpublic void shutdown(@Nullable String reason)
Clientpublic void processLine(@NonNull String line)
processLine in interface Client.WithManagementline - line to be processedpublic @NonNull ActorTracker getActorTracker()
Client.WithManagementgetActorTracker in interface Client.WithManagementpublic boolean isConnectionAlive()
Client.WithManagementisConnectionAlive in interface Client.WithManagementpublic @NonNull Listener<String> getInputListener()
Client.WithManagementgetInputListener in interface Client.WithManagementpublic @NonNull Set<String> getIntendedChannels()
Client.WithManagementgetIntendedChannels in interface Client.WithManagementpublic @NonNull Listener<String> getOutputListener()
Client.WithManagementgetOutputListener in interface Client.WithManagementpublic @NonNull String getRequestedNick()
Client.WithManagementgetRequestedNick in interface Client.WithManagementpublic void connect()
Clientpublic void beginMessageSendingImmediate(@NonNull Consumer<String> consumer)
Client.WithManagementbeginMessageSendingImmediate in interface Client.WithManagementconsumer - consumer with which to handle this queuepublic void pauseMessageSending()
Client.WithManagementpauseMessageSending in interface Client.WithManagementpublic void ping()
Client.WithManagementping in interface Client.WithManagementpublic void sendNickChange(@NonNull String newNick)
Client.WithManagementsendNickChange in interface Client.WithManagementnewNick - new nicknamepublic void setCurrentNick(@NonNull String nick)
Client.WithManagementsetCurrentNick in interface Client.WithManagementnick - nicknamepublic void setServerAddress(@NonNull HostWithPort address)
Client.WithManagementsetServerAddress in interface Client.WithManagementaddress - server addresspublic void setUserModes(@NonNull ModeStatusList<UserMode> userModes)
Client.WithManagementsetUserModes in interface Client.WithManagementuserModes - user modes to setpublic void startSending()
Client.WithManagementstartSending in interface Client.WithManagementpublic void updateUserModes(@NonNull ModeStatusList<UserMode> userModes)
Client.WithManagementupdateUserModes in interface Client.WithManagementuserModes - mode changespublic void reconnect()
ClientDefaultMessageType.RECONNECT message.public void reconnect(@Nullable String reason)
Clientpublic boolean isSecureConnection()
Client.WithManagementisSecureConnection in interface Client.WithManagementpublic @NonNull Client.Commands commands()
ClientCommands.Copyright © 2013–2021 Kitteh. All rights reserved.