~nova/fletcher

619fd76f6baeed610034176b8e368a9dd53ce875 — Ivy Choy a year ago 33702ec
Rewrote bridging instructions, added command docs, fixed grammar errors
3 files changed, 13 insertions(+), 22 deletions(-)

M bridge.md
M commands.md
M permissions.md
M bridge.md => bridge.md +4 -15
@@ 1,6 1,6 @@
# Bridging Channels

Three things are required to set up synchronization: Fletcher must be granted permission to use Discord features on both servers, configured to synchronize both servers, and webhooks must be created such that Fletcher can detect the channels. Note that this can be used for unidirectional sync, and both the input and output server could be the same.
Bridging two channels means that Fletcher sends any message sent in one to the other, and vice versa (unless the bridge is unidirectional). To bridge channels, Fletcher must have the correct permissions (most relevantly, `Send Messages` and `Manage Webhooks`).

## Bridge Configuration
 To bridge a channel, send `!bridge servername:channelname`, in the channels you want bridged to each other.


@@ 33,7 33,7 @@ Discord-Discord sync requires the *Read Messages*, *Read Message History*, and *
For a full discussion of the permissions that Fletcher requires, see [Permissions granted via the OAuth screen](permissions.md).

## Fletcher Configuration
In the each server configuration file, set the `synchronize` preference to `on`. Fletcher must be reloaded or restarted for these changes to take effect.
In each server configuration file, set the `synchronize` preference to `on`. Fletcher must be reloaded or restarted for these changes to take effect (this happens automatically every 15 minutes).

Configuration example: this is a fletcherrc configuration entry for a server that has synchronization scanning on.



@@ 41,17 41,6 @@ Configuration example: this is a fletcherrc configuration entry for a server tha
[Guild 000000000000000001]
synchronize = on
```
 
You must also set the `botNavel` key in the main configuration file. If your Fletcher administrator has not provided you with this key, it is probably ƒ.
## Expected behavior
In a bridged channel, message edits will be respected and transferred, and replies will be bridged (viewable as embeds of the message link from the other side of the bridge). However, message deletions currently are not bridged.

Configuration example: this is a fletcherrc configuration entry of setting the botNavel.

```
[discord]
botNavel = ƒ
```
 
## Channel Configuration
In this configuration, we will refer to #aleph and #beta on server Guild.

In the settings for #aleph, navigate to Webhooks. Create a webhook with the name `botNavel (ServerName:TargetChannelName)` (i.e. `ƒ (Guild:beta)`). Repeat this for the corresponding channel for the reverse sync. Reload the server, and test that the sync now works.

M commands.md => commands.md +2 -0
@@ 437,3 437,5 @@ Ex:
 Replace `seconds` with a number and Fletcher will count down for you.
## Weather (`!weather`)
 Get the weather for your location after setting `!preference weather lat,long` where `lat` and `long` are replaced by your coordinates.
## Dubs (`:die:`)
 Based off the <a href=https://en.wiktionary.org/wiki/dubs>imageboard joke</a>, prefacing a message with :die: or sending the emoji by itself will prompt Fletcher to send the message ID of your message.

M permissions.md => permissions.md +7 -7
@@ 10,7 10,7 @@ This is required for the `!snooze` and `!part` self-managed permissions system.

## Kick Members

This is required for the `!kick` command, which kicks a user with a message sent to them, with no risk of accidentally deleting their messages from the server..
This is required for the `!kick` command, which kicks a user with a message sent to them, with no risk of accidentally deleting their messages from the server.

## Manage Nicknames



@@ 18,11 18,11 @@ The Save/Restore Roles Join Behavior uses this to restore nickname along with ro

## Manage Webhooks

This is for the Discord-Discord sync, it's used to scan the list for any webhooks that belong to it.
This is for the bridging channels, used to create webhooks for Fletcher to enable message sync.

## Read Messages

Allow triggering commands in channels. Read messages is vital.
Allows commands to be used in channels. Read messages is vital.

## Send Messages



@@ 31,7 31,7 @@ Without this, the bot can only respond in PMs, which breaks notably teleports.
## Manage Messages

Spoilers are autoremoved using this permission. Also, if the bot is in `snappy` mode, then command triggers get removed in a few other places including teleports.
Lets it delete webhook messages which is vital if the Discord-Discord sync gets used.
Lets it delete webhook messages which is vital if channels are being bridged.

## Embed Links



@@ 39,15 39,15 @@ Needed for teleports and most functionality involving messages.

## Attach Files

Used for !scramble ing images and message previews.
Used for `!scramble`ing images and message previews.

## Read Message History

Link previews depend on this to scan history for the message in question. Discord-Discord sync requires it for old message edits.
Link previews depend on this to scan history for the message in question. Channel bridging requires it for old message edits.

## Add Reactions

Many functions react to their own messages so folks can easily respond without having to search for emoji. Not strictly necessary, but !spoiler and !rot13 get harder to use.
Many functions react to their own messages so folks can easily respond without having to search for emoji. Not strictly necessary, but `!spoiler` and `!rot13` get harder to use.

## Use External Emojis