Constructor taking a connection ID uint.
Bitfield enum of what member of an instance of IRCPluginState was updated (if any).
Numeric ID of the current connection, to disambiguate between multiple connections in one program run. Accessor.
Updates the saved UNIX timestamp of when the next scheduled Fiber or delegate should be triggered.
Numeric ID of the current connection, to disambiguate between multiple connections in one program run. Private value.
Pointer to the global abort bool.
The list of awaiting void delegate(IRCEvent) delegates, keyed by IRCEvent.Type.
The list of awaiting Fibers, keyed by IRCEvent.Type.
The current IRCBot, containing information pertaining to the bot in the context of an IRC bot.
Hashmap of IRC channels.
The current IRCClient, containing information pertaining to the bot in the context of a client connected to an IRC server.
The current program-wide ConnectionSettings.
This plugin's array of DeferredActions.
Whether or not pendingReplays has elements (i.e. is not empty).
Messages for the main thread to take action on.
The UNIX timestamp of when the next scheduled ScheduledFiber or delegate should be triggered.
Events to send to the IRC server.
Queued IRCEvents to replay.
A copy of the main thread's previousWhoisTimestamps associative arrays of UNIX timestamps of when someone had a WHOIS query aimed at them, keyed by nickname.
Messages for the main thread to take action on with a higher priority.
Replays primed and ready to be replayed.
The list of scheduled delegate, UNIX time tuples.
The list of scheduled Fiber, UNIX time tuples.
The current IRCServer, containing information pertaining to the bot in the context of an IRC server.
The current program-wide CoreSettings.
Bitfield of in what way the plugin state was altered during postprocessing or event handler execution.
Hashmap of IRC user details.
An aggregate of all variables that make up the common state of plugins.
This neatly tidies up the amount of top-level variables in each plugin module. This allows for making more or less all functions top-level functions, since any state could be passed to it with variables of this type.
Plugin-specific state should be kept inside the IRCPlugin subclass itself.