Adds the modes of a channel to a tracked channel's mode list.
Stores the timestamp of when a channel was created.
Adds a user as being part of a channel when they join it.
Sets a mode for a channel.
Adds users of a certain "list" mode to a tracked channel's list of modes (banlist, exceptlist, invitelist, etc).
Adds users as being part of a channel upon receiving the reply from the request for a list of all the participants.
Upon someone changing nickname, update their entry in the IRCPluginState.users
associative array to point to the new nickname.
Removes a user from being part of a channel when they leave it.
Removes a user from all tracked channels if they disconnect.
Create a new IRCChannel in the the IRCPlugin's IRCPluginState.channels
associative array when the bot joins a channel.
Removes an IRCChannel from the internal list when the bot leaves it.
Update the entry for an IRCChannel if someone changes the topic of it.
Adds a user as being part of a channel upon receiving the reply from the request for info on all the participants.
Replays any queued Replays awaiting the result of a WHOIS query. Before that, records the user's services account by saving it to the user's IRCClient in the IRCPlugin's IRCPluginState.users associative array.
Clears all queued Replays if the server says it doesn't support WHOIS at all.
Catch a user from normal Twitch events.
Adds a user to the IRCPlugin's IRCPluginState.users array, potentially including their services account name.
Catches a user's information and saves it in the plugin's IRCPluginState.users
array of IRCUsers.
Rehashes, or optimises, the IRCPlugin's IRCPluginState.users
associative array upon the end of a WHO or a NAMES list.
Catch users in a reply for the request for a NAMES list of all the participants in a channel.
Upon someone changing nickname, update their entry in the IRCPlugin's IRCPluginState.users
array to point to the new nickname.
Removes a user's IRCUser entry from a plugin's user list upon them disconnecting.
Implements *channel awareness* in a plugin module.
Implements triggering of queued events in a plugin module, based on user details such as account or hostmask.
No-op mixin of version !TwitchSupport TwitchAwareness.
Implements *user awareness* in a plugin module.
import kameloso.plugins.common; import kameloso.plugins.common.awareness; @Settings struct FooSettings { /* ... */ } @(IRCEventHandler() .onEvent(IRCEvent.Type.CHAN) .permissionsRequired(Permissions.anyone) .channelPolicy(ChannelPolicy.home) .addCommand( IRCEventHandler.Command() .word("foo") .policy(PrefixPolicy.prefixed) ) ) void onFoo(FooPlugin plugin, const ref IRCEvent event) { // ... } mixin UserAwareness; mixin ChannelAwareness; final class FooPlugin : IRCPlugin { FooSettings fooSettings; // ... mixin IRCPluginImpl; }
Awareness mixins, for plugins to mix in to extend behaviour and enjoy a considerable degree of automation.
These are used for plugins to mix in book-keeping of users and channels.