Ensures a IRCChannel exists in the IRCPlugin's IRCPluginState.channels associative array.
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.
Catches the room ID from a ROOMSTATE event.
Detects moderator-ness from a USERSTATE event. Broadcasters are also moderators.
Catch a user from normal Twitch events.
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; import kameloso.plugins.common.mixins.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 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.