ircbot
Interface IRCBotModule
- Comparable
- AbstractIRCBotModule, AI, Calc, Channels, Echo, Events, Help, Lang, MasterMind, Modules, News, Numbers, Pending, People, Quotes, StenSaxPase, Time, Trivia, Wiki
public interface IRCBotModule
extends Comparable
This interface is used to create modules for the bot. Any module
that wants to be notified with traffic from the IRC network needs
to implement this interface or extend the AbstractIRCModule class.
String | action(IRCMessage message) - action is invoked by the bot when someone types a message starting
with a member of getCommands().
|
String | activateEvent(IRCChannel channel) - Each module can schedule events to occur at some point in the
future.
|
String | getAuthor()
|
Collection | getCommands(Modules.CommandType type) - getCommands is called to get the command line names of all
commands provided by this module.
|
String | getDescription(String topic, Language lang) - getDescription is called to get the information printed by the
!help command.
|
String | getModuleName() - getModuleName is called to get the name of this module.
|
int | getProbability() - getProbability is called to determine which module to choose to
express a random thought whenever the bot feels like doing
that.
|
void | loadState(SaveState state) - loadState is called when a module is loaded into the bot.
|
String | parseMessage(IRCMessage message) - parseMessage is called by the bot with every message that is
sent to the IRC channel with the exception for messages
beginning with a command prefix, and messages sent by the bot
itself.
|
String | randomThought(IRCChannel channel, Person sender) - An IRC bot might think that it has been too quiet in a channel
for too long, or it may just feel like saying something at any
given time.
|
void | saveState(SaveState state) - saveState is called when a module is unloaded from the bot or
whenever the IRC command !save is issued.
|
void | setModuleHandler(Modules handler) - setModuleHandler is called by the module handler when a module
is loaded.
|
action
public String action(IRCMessage message)
action is invoked by the bot when someone types a message starting
with a member of getCommands().
message
- The original message sent to the
channel. Provided if some command needs further information
from it, like for instance the nick of the sender.
- A String containing a message to be sent to the IRC channel
as a reply to the command invocation or null if no reply is needed.
activateEvent
public String activateEvent(IRCChannel channel)
Each module can schedule events to occur at some point in the
future. When the future arrives and it is time for the event to
be executed, this method is called.
channel
- The channel in which the event is about to
occur.
- A String containing the scheduled message to send to the
channel, or null if no message needs to be sent.
getAuthor
public String getAuthor()
getCommands
public Collection getCommands(Modules.CommandType type)
getCommands is called to get the command line names of all
commands provided by this module. An IRC message starting with
a member of getCommands() will invoke this modules action
method. All commands are lower case and begins with the command
prefix (!). Note that a module's action
method is ONLY called for commands returned by getCommands.
type
- The needed privilege level needed to access this
command.
- A Collection of String containing the commands
provided by this module.
getDescription
public String getDescription(String topic,
Language lang)
getDescription is called to get the information printed by the
!help command.
topic
- Either the string returned by
getModuleName().toLowerCase()
or a member of
getCommands()
. The convention says that the call
getDescription(getModuleName().toLowerCase())
should return a brief description about the module. This
information should not overlap with information given by calls
where the topic
is a member of
getCommands()
.lang
- What language to use for the reply.
- A String containing all the info needed to use this
module, tailored to the given topic. If the topic is
unexpected, the return value should be null.
getModuleName
public String getModuleName()
getModuleName is called to get the name of this module. The
name is used when building the list of loaded modules. A module
name may contain capital letters.
- A String containing the name of this module.
getProbability
public int getProbability()
getProbability is called to determine which module to choose to
express a random thought whenever the bot feels like doing
that.
- An integer value between 0 and 100 which represents
the probability (percentage) that this module will be chosen to
express a random thought. If your module has a broad variety of
what is said and can be chosen several times in a row without
getting boring, you should return a high probability (100 or
just below). If your module does not have any random thoughts
return a low probability (0).
loadState
public void loadState(SaveState state)
loadState is called when a module is loaded into the bot. It
should read any settings or other external data needed for its
operation from the provided state. Note that the data to be
read has been saved by the saveState method in the same
class. This method is only supposed to read values that has
been saved by this class! If this module's saveState method
does not save any data, this method should be empty. Data is
read back from the state using the SaveState.get
method.
state
- The state to read from.
parseMessage
public String parseMessage(IRCMessage message)
parseMessage is called by the bot with every message that is
sent to the IRC channel with the exception for messages
beginning with a command prefix, and messages sent by the bot
itself. If the implementing module does not care about the
communication in the channel, this method should immediately
return null without looking at the message.
message
- The message sent to the IRC channel.
- A String containing a reply to the message, or null if
nothing should be sent to the IRC channel.
randomThought
public String randomThought(IRCChannel channel,
Person sender)
An IRC bot might think that it has been too quiet in a channel
for too long, or it may just feel like saying something at any
given time. To get something to say a random module is chosen
and its randomThought is invoked.
channel
- The channel that is too quiet.sender
- The bot who asked for this thought.
- A String containing a random thought or null if this
module has nothing nice to say.
saveState
public void saveState(SaveState state)
saveState is called when a module is unloaded from the bot or
whenever the IRC command !save is issued. Use it to save any
settings or other data needed for this modules operation. If
this module does not keep any data that needs to be stored for
later sessions, this method should be empty.
Use the SaveState.add
method to put new data into
the state. Each data object that is to be stored in the state
should be tagged with a unique identifier. The identifier will
be padded with the name of the module so that identifiers in
different modules will not clash.
state
- The state to write to.
setModuleHandler
public void setModuleHandler(Modules handler)
setModuleHandler is called by the module handler when a module
is loaded.
handler
- The module handler that is loading the module.