Constructor taking an args string array.
No-param constructor used in unit tests.
Initialises all plugins' resource files.
Initialises all plugins, calling any module-level .initialise functions.
Reloads all plugins by calling any module-level reload functions.
Sets up all plugins, calling any module-level setup functions. This happens after connection has been established.
Returns a const slice of the command-line arguments passed to the program.
Propagates updated bots, clients, servers and/or settings, to this, parser, and to all plugins.
Collects all channels from all plugins.
Numeric ID of the current connection, to disambiguate between multiple connections in one program run. Accessor.
Generates a new connection ID.
Instantiates and *minimally* initialises all plugins.
Issues a call to all plugins, where such a call is one of "initialise", "setup", "start", "initResources" or "reload". This invokes their module-level functions of the same name, where available.
Propagates an updated struct, to this, parser, and to each plugins' IRCPluginStates, overwriting existing such.
Teardown plugins and connection.
Tears down all plugins, deinitialising them and having them save their settings for a clean shutdown. Calls module-level teardown functions.
Takes one or more lines from the passed buffer and sends them to the server.
A record of a successful connection.
Aggregate of values and state needed to rate-limit outgoing messages.
Transient state variables, aggregated in a struct.
Command-line arguments passed to the program.
Numeric ID of the current connection, to disambiguate between multiple connections in one program run. Private value.
When this is set by signal handlers, the program should exit. Other parts of the program will be monitoring it.
Buffer of outgoing background message strings.
IRC bot values and state.
Flag to keep record of whether or not the program is run under the Callgrind profiler.
The Connection that houses and wraps the socket we use to connect to, write to and read from the server.
Settings relating to the connection between the bot and the IRC server.
History records of established connections this execution run.
Custom settings specified at the command line with the --set parameter.
Buffer of outgoing fast message strings, used on Twitch servers.
Buffer of outgoing message strings to be sent immediately.
Associative array of string arrays of unexpected configuration entries that did not belong.
Associative array of string arrays of expected configuration entries that were missing.
Buffer of outgoing message strings.
Parser instance.
A runtime array of all plugins. We iterate these when we have finished parsing an IRCEvent, and call the relevant event handlers of each.
An associative array of when a nickname was last issued a WHOIS query for, UNIX timestamps by nickname key, for hysteresis and rate-limiting.
Buffer of outgoing priority message strings.
Pointer to the program-wide settings global.
Values and state needed to throttle sending messages.
Transient state of this Kameloso instance.
Main class.