Constants used when scheduling API queries.
Override IRCPlugin.isEnabled
(effectively overriding IRCPluginImpl.isEnabled) and inject a server check, so this plugin only works on Twitch, in addition to doing nothing when TwitchSettings.enabled is false.
The Twitch application ID for kameloso.
How many times to retry a Twitch server query.
Contained state of a channel, so that there can be several alongside each other.
How long a Twitch HTTP query usually takes.
Authorisation token for the "Authorization: Bearer <token>".
Effective bell after kameloso.terminal.isTerminal checks.
Associative array of responses from async HTTP queries.
Custom channel-specific BetterTTV, FrankerFaceZ and 7tv emotes, as fetched via API calls.
Custom global BetterTTV, FrankerFaceZ and 7tv emotes, as fetched via API calls.
Emote counters associative array; counter longs keyed by emote ID string keyed by channel.
Whether or not ecount has been modified and there's a point in saving it to disk.
File to save emote counters to.
The thread ID of the persistent worker thread.
Array of active bot channels' state.
API keys and tokens, keyed by channel.
File to save API keys and tokens to.
File to save stream history to.
All Twitch plugin settings.
The bot's numeric account/ID.
Associative array of viewer times; seconds keyed by nickname keyed by channel.
Whether or not viewerTimesByChannel has been modified and there's a point in saving it to disk.
File to save viewer times to.
Namespace for the alias sequences of all event handler functions in this module, as well as the one of all IRCEventHandler annotations in the module.
Forwards the supplied IRCEvent to IRCPluginImpl.onEventImpl.
Basic constructor for a plugin.
Lets a plugin modify an IRCEvent while it's begin constructed, before it's finalised and passed on to be handled.
Writes plugin resources to disk, creating them if they don't exist.
Loads configuration for this plugin from disk.
Change a plugin's Settings-annotated settings struct member by their string name.
Prints the plugin's Settings-annotated settings struct.
Gathers the configuration text the plugin wants to contribute to the configuration file.
Returns the name of the plugin. (Technically it's the name of the module.)
Compile a list of our a plugin's oneliner commands.
Forwards to IRCPluginImpl.commandsImpl.
Proxies a bus message to the plugin, to let it handle it (or not).
Metadata about a IRCEventHandler.Command- and/or IRCEventHandler.Regex-annotated event handler.
An IRCPluginState instance containing variables and arrays that represent the current state of the plugin. Should generally be passed by reference.
Allows a plugin to modify an event post-parsing.
Called to let the plugin react to a new event, parsed from the server.
Called when the plugin is requested to initialise its disk resources.
Reads serialised configuration text into the plugin's settings struct.
Called to let the plugin contribute settings when writing the configuration file.
Called when we want to change a setting by its string name.
Called at program start but before connection has been established.
Called when connection has been established.
Called when we want a plugin to print its Settings-annotated struct of settings.
Called during shutdown of a connection; a plugin's would-be destructor.
Returns the name of the plugin.
Returns an array of the descriptions of the commands a plugin offers.
Returns an array of the descriptions of the channel-specific commands a plugin offers.
Reloads the plugin, where such is applicable.
Called when a bus message arrives from another plugin.
Returns whether or not the plugin is enabled in its settings.
The Twitch plugin is an example Twitch streamer bot. It contains some basic tools for streamers, and the audience thereof.