-
Notifications
You must be signed in to change notification settings - Fork 2
Built in Behaviors
Rowboat has the following built-in Behavior types. You can have Rowboat load a Behavior by declaring it in config.yaml
.
You can also create your own!
For full details on parameters use the command line argument:
node . --behaviorTypes [NAME]
Users (and permission providers)
An internal user account system for Rowboat capable of associating each account with a username, Environment-specific identification masks, permissions and metadata. It can be used explicitly or implicitly when cross-platform user account support is required.
A system for registering callbacks for text chat-based commands. It has a built-in help system and alias support, and integrates with Users for permission-locking commands and providing account information to callbacks.
Cross-environment Behavior that registers users' latest activity and provides !seen
and !last
commands.
Allows users to create rules for receiving alerts via private message when Rowboat sends messages matching custom regular expression filters.
Bridges a multi-channel Discord server with a single IRC channel. This is a smart bridge that translates style codes, mentions, etc.
A straightforward bridge that can be used to connect any two Environments.
Implements a game that allows users to input dictionary entries and then randomly queries users on those entires against a timer. For assistance with language learning.
A Commands
extension that lets users dynamically create custom chat commands for other others. Custom commands support randomized custom replies, argument substitution and statistics tracking (useful for polling).
Behavior for logging events that functions separately from the internal Logger. By default provides logging for Joins, Parts and Messages, but other Behaviors can use it for logging additional event types. Commands can use it for logging command usage as well.
Cross-environment system for storing messages that will be delivered to another user on activity, using the !memo
command. Supports Users accounts.
Tracks RSS or Atom feeds and sends new entries as messages to an Environment. Supports Embeds when used with Discord Environments.
Warning: This Behavior can be resource intensive and slow down the node process.
A Users add-on that lets users manually register their own accounts or link identities across multiple Environments. Adds the commands !register
, !link
and !whoami
.
Lets users register a political timezone for themselves (from the tz database), see other users' local time and compare their time offsets.
Perform a DuckDuckGo search using the !duck
command. Supports image and video searches and several filter options.
Perform a Google search using the !google
command. Requires a valid Google API key. Supports passthrough of some API parameters.
Generate random numbers, roll dice and shuffle lists using !random
, !roll
, !shuffle
and !pick
.
Adds !netwhois
, which returns information on Registered Internet Resources using the Whois protocol. Supports custom servers.
Generate a JSON backup of a Discord channel's entire text message history using !download
and attach it to a DM. Includes a HTML viewer that replicates Discord's basic look and feel, with support for dark mode and image loading.
Coarse utility for measuring the latency between Rowboat and Discord. While in use, updates a message dynamically with the current results.
Rule-based utility for announcing updates to user presence in a Discord channel, such as when playing a game or streaming. Contains a default rule for announcing Twitch streams.
Monitors reactions to control messages in order to toggle user access to channels on an off by manipulating the VIEW_CHANNEL permission directly for the user.
Ranks Discord channel messages (over the channel's entire history) by reactions of a given symbol.
Monitors reactions to control messages in order to toggle user roles on and off. Supports constraints between roles (requirement, add as consequence and remove as consequence). Roles are grouped by color.
Create a temporary voice channel associated with the text channel in which the command is used, and with the requested as moderator. The channel is junked once it's no longer in use.
A Time
add-on that assigns and unassigns roles to users based on their current timezone.
Toggles user access to a text channel on and off depending on whether the user is connected to a certain voice channel, by manipulating the VIEW_CHANNEL permission directly for the user.
Grabber and SongRanking
The Grabber Behavior will monitor one or more channels in an Environment for music, cache that music and index it with its metadata. It's capable of scanning a channel's past message history, converting between mp3, pcm (wav) and flac, normalizing song volume, splitting chapters, cropping and more.
A !song
command is provided for searching the index and manually setting or adjusting metadata.
The SongRanking Behavior is an add-on to Grabber
that allows users to add a personal score to songs in the index using !song like
or by reacting to messages.
A Grabber
add-on that will make Rowboat connect to a voice channel and play a music radio using songs listed in the index. Songs are selected automatically based on several criteria, including requests, past history/statistics, song length, SongRanking
likes and dislikes (if present), etc.
Rowboat instance owners can deploy a webpage for browsing the Grabber library and seeing Radio statistics. The files can be found in extra/radio
.
This Behavior authenticates with the VRChat backend (including support for 2FA through e-mail OTP) and is capable of polling endpoints and emitting websocket events for other Behaviors.
Additionally, it lets users assign Discord accounts to VRChat accounts in order to: Synchronize display names, announce when they go online/offline, list profile and recently seen world information in Discord channels, and deliver instance invites to VRChat users in response to Discord button clicks.
An add-on to VRChat
that adds support for Groups integration. Features include announcing group member arrival/departure, showing group member online/representing status, and synchronizing group and discord roles.
An add-on to VRChat
that manages an unsynchronized list of worlds. World URLs or IDs sent to the managed channel are replaced with an embed containing the world thumbnail, description, tags and invite buttons. Provides a command for generating a backup of the contents and commands for selecting random entries based on a filter.
An add-on to VRChat
that manages a channel with images that are meant to be photos or screenshots captured in VRChat. Supports extracting and displaying metadata from the (now-defunct) Lag-Free Screenshots and from (still extant) VRCX.
The following Behaviors used to exist in previous versions of Rowboat, but are currently retired or pending reimplementation:
- Alpha: Wolfram Alpha integration.
- AOW: PBEM Age of Wonders alerts provider.
- DiscordChannels: Dynamic channel system for older versions of Discord.
- DynamicConfig: Commands for editing the Rowboat v1 configuration file without restarting.