Skip to content

Built in Environments

Protected edited this page Nov 8, 2023 · 3 revisions

Rowboat has the following built-in Environment types. You can have Rowboat connect to any amount of each by declaring Environments with the corresponding type and the name of your choice in config.yaml.

You can also create your own!

For full details on parameters use the command line argument:

node . --environmentTypes [NAME]

Discord

Discord Environments are virtual environments that manage the interaction between Rowboat and a Discord server (also known as Guild). They use the discord.js SDK.

Features include:

  • Client and Guild access: Behavior developers can find the DiscordClient wrapper instance at EnvDiscord.client. The managed server (as a discord.js SDK Guild) can be found at EnvDiscord.server.

  • Event passthrough: The DiscordClient module will emit a subset of discord.js SDK events. Listeners can be registered using EnvDiscord.client.on.

  • Message batching: Messages will be intelligently batched through concatenation and aggregation of text, attachments, embeds, etc. in order to minimize the amount of messages sent to Discord.

  • Delay queue: A built in rate control queue to prevent rate limiting from the Discord backend.

Some important parameters are:

  • token: Generated in the Discord dev portal for your bot account. All Discord Environments will share the same underlying Discord client, and thus should have the same token.

  • server: The ID of the server that the environment will communicate with.

  • privatemessages: Set to "true" if you want the environment to receive events for DMs. To prevent duplicate behavior, only one of your Discord Environment instances should have privatemessages set to true.

IRC

Each IRC Environment instance will maintain a connection to an IRC server. They make use of the matrix-org-irc package, maintained by the matrix project.

Features include:

  • Tracking visible people: This environment keeps an internal list of visible users and their modes and attributes.

  • mIRC-style formatting codes: Capable of converting to and from formatting codes of the type described here.

  • Nickserv support: EnvIRC can identify with Nickserv or attempt to retake its nickname back when it's in use.

Some important parameters are:

  • serverhost and port: Where to connect to.

  • nickname: The desired nickname for Rowboat.

  • channels: A list of channels to join.

  • nickservnick and nickpass: Used for identifying with Nickserv or equivalent.

Clone this wiki locally