Changed examples to be consistent, added results, fixed timezone

This commit is contained in:
Sai 2023-03-24 17:28:32 +00:00 committed by GitHub
parent df4ad90563
commit a063b7abc8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -21,6 +21,8 @@ Once you go through the wizard, the bot account will automatically join the serv
## System management ## System management
In order to do most things with the PluralKit bot, you'll need to have a system registered with it. A *system* is a collection of *system members* that may be used by one or more *Discord accounts*. In order to do most things with the PluralKit bot, you'll need to have a system registered with it. A *system* is a collection of *system members* that may be used by one or more *Discord accounts*.
These examples are for the user `@Craig#5432`, who has headmates Alice, Craig Johnson (formerly Craig Smith), Joanne (formerly John, aka Jo), Skyler, and Unknown.
### Creating a system ### Creating a system
If you do not already have a system registered, use the following command to create one: If you do not already have a system registered, use the following command to create one:
@ -34,7 +36,7 @@ Optionally, you can attach a *system name*, which will be displayed in various i
To view information about your own system, simply type: To view information about your own system, simply type:
pk;system pk;system
To view information about *a different* system, there are a number of ways to do so. You can either look up a system by @mention, by account ID, or by system ID. For example: To view information about *a different* system, there are a number of ways to do so. You can either look up a system by @mention, by account ID, or by system ID. For example:
pk;system @Craig#5432 pk;system @Craig#5432
@ -67,19 +69,17 @@ a system tag. Note that emojis *are* supported! To set one, use the `pk;system t
pk;system tag | The Boys pk;system tag | The Boys
pk;system tag (Test System) pk;system tag (Test System)
pk;system tag 🛰️ pk;system tag 🛰️
If you want to remove your system tag, just type `pk;system tag` with no extra parameters. If you want to remove your system tag, just type `pk;system tag` with no extra parameters.
**NB:** When proxying, the *total webhook username* must be 32 characters or below. As such, if you have a long system name, your tag might be enough **NB:** When proxying, the *total webhook username* must be 32 characters or below. As such, if you have a long system name, your tag might be enough
to bump it over that limit. PluralKit will warn you if you have a member name/tag combination that will bring the combined username above the limit. to bump it over that limit. PluralKit will warn you if you have a member name/tag combination that will bring the combined username above the limit.
You can either make the member name or the system tag shorter to solve this. You can either make the member name or the system tag shorter to solve this.
### System server tags #### System server tags
If you'd like to set a system tag (as above), but only for a specific server, you can set the *system server tag*. This will override the global system tag, but only in the server you set it in. For example: If you'd like to set a system tag (as above), but only for a specific server, you can set the *system server tag*. This will override the global system tag, but only in the server you set it in. For example:
``` pk;system servertag 🛰️
pk;system servertag 🛰️
```
The server tag applies to the same server you run the command in, so this command doesn't function in DMs. The server tag applies to the same server you run the command in, so this command doesn't function in DMs.
@ -110,19 +110,19 @@ You may not remove the only account linked to a system, as that would leave the
### Setting a system time zone ### Setting a system time zone
PluralKit defaults to showing dates and times in [UTC](https://en.wikipedia.org/wiki/Coordinated_Universal_Time). PluralKit defaults to showing dates and times in [UTC](https://en.wikipedia.org/wiki/Coordinated_Universal_Time).
If you'd like, you can set a *system time zone*, and as such every date and time displayed in PluralKit If you'd like, you can set a *system time zone*, and as such every date and time displayed in PluralKit
(on behalf of your system) will be in the system time zone. To do so, use the `pk;system timezone` command, like so: (on behalf of your system) will be in the system time zone. To do so, use the `pk;config timezone` command with a time zone name, time zone code, country code, or country emoji, like so:
pk;system timezone Europe/Copenhagen pk;config timezone Europe/Copenhagen
pk;system timezone America/New_York pk;config timezone America/New_York
pk;system timezone DE pk;config timezone DE
pk;system timezone 🇬🇧 pk;config timezone 🇬🇧
You can specify time zones in various ways. In regions with large amounts of time zones (eg. the Americas, Europe, etc), You can specify time zones in various ways. In regions with large amounts of time zones (eg. the Americas, Europe, etc),
specifying an exact time zone code is the best way. To get your local time zone code, visit [this site](https://xske.github.io/tz). specifying an exact time zone code is the best way. To get your local time zone code, visit [this site](https://xske.github.io/tz).
You can see the full list [here, on Wikipedia](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) (see the column *TZ database name*). You can see the full list [here, on Wikipedia](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) (see the column *TZ database name*).
You can also search by country code, either by giving the two-character [*ISO-3166-1 alpha-2* country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements) (e.g. `GB` or `DE`), or just by a country flag emoji (e.g. `:flag_gb:` 🇬🇧 or `:flag_de:` 🇩🇪). You can also search by country code, either by giving the two-character [*ISO-3166-1 alpha-2* country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements) (e.g. `GB` or `DE`), or just by a country flag emoji (e.g. `:flag_gb:` 🇬🇧 or `:flag_de:` 🇩🇪).
To clear a time zone, type `pk;system timezone` without any parameters. To clear a time zone, type `pk;config timezone` without any parameters.
### Deleting a system ### Deleting a system
If you want to delete your own system, simply use the command: If you want to delete your own system, simply use the command:
@ -135,7 +135,7 @@ You will need to verify by typing the system's ID when the bot prompts you to -
In order to do most things related to PluralKit, you need to work with *system members*. In order to do most things related to PluralKit, you need to work with *system members*.
Most member commands follow the format of `pk;member MemberName verb Parameter`. Note that if a member's name has multiple words, you'll need to enclose it in "double quotes" throughout the commands below. Most member commands follow the format of `pk;member MemberName verb Parameter`. Note that if a member's name has multiple words, you'll need to enclose it in "double quotes" throughout the commands below (_except_ for `pk;member new`).
### Creating a member ### Creating a member
You can't do much with PluralKit without having registered members with your system, but doing so is quite simple - just use the `pk;member new` command followed by the member's name, like so: You can't do much with PluralKit without having registered members with your system, but doing so is quite simple - just use the `pk;member new` command followed by the member's name, like so:
@ -143,8 +143,14 @@ You can't do much with PluralKit without having registered members with your sys
pk;member new John pk;member new John
pk;member new Craig Smith pk;member new Craig Smith
pk;member new Alice pk;member new Alice
pk;member new Unknown
As the one exception to the rule above, if the name consists of multiple words you must *not* enclose it in double quotes. pk;member new Skyler
`@PluralKit` will respond with a confirmation and the member ID code, like so:
PluralKit: ✅ Member "John" (qazws) registered!
⚠️ As the one exception to the rule above, if the name consists of multiple words you must *not* enclose it in double quotes.
### Looking up member info ### Looking up member info
To view information about a member, there are a couple ways to do it. Either you can address a member by their name (if they're in your own system), by their 5-character *member ID*, or by their *display name*, like so: To view information about a member, there are a couple ways to do it. Either you can address a member by their name (if they're in your own system), by their 5-character *member ID*, or by their *display name*, like so:
@ -161,7 +167,15 @@ To list all the members in a system, use the `pk;system list` command. This will
pk;system list pk;system list
pk;system @Craig#5432 list pk;system @Craig#5432 list
pk;system qazws list pk;system qazws list
If you run `pk;system info @Craig#5432` after the example setup so far, `@PluralKit` will output something like this:
My System Name
| Tag | Linked accounts | Members (5) |
|-----|-----------------------|-------------|
| 🛰️ | Craig#5432 (@Craig 🛰️) | (see pk;system abcde list or pk;system abcde list full) |
System ID: abcde | Created on 2023-03-16 00:01:52 GMT
If you want a more detailed list, with fields such as pronouns and description, add the word `full` to the end of the command, like so: If you want a more detailed list, with fields such as pronouns and description, add the word `full` to the end of the command, like so:
pk;system list full pk;system list full
@ -173,7 +187,7 @@ If you want to change the name of a member, you can use the `pk;member rename` c
pk;member John rename Joanne pk;member John rename Joanne
pk;member "Craig Smith" rename "Craig Johnson" pk;member "Craig Smith" rename "Craig Johnson"
### Member display names ### Member display names
Normally, when proxying a member, the name displayed in the proxied message will be the member's name. However, in some cases Normally, when proxying a member, the name displayed in the proxied message will be the member's name. However, in some cases
you may want to display a different name. For example, you may want to include a member's pronouns inside the proxied name, you may want to display a different name. For example, you may want to include a member's pronouns inside the proxied name,
@ -182,95 +196,95 @@ indicate a subsystem, include emojis or symbols that don't play nice with the co
In such cases you can set the member's *display name*. Which will, well, display that name instead. You can set In such cases you can set the member's *display name*. Which will, well, display that name instead. You can set
a display name using the `pk;member displayname` command, like so: a display name using the `pk;member displayname` command, like so:
pk;member John displayname Jonathan pk;member Joanne displayname Jo
pk;member Robert displayname Bob (he/him) pk;member Skyler displayname Sky (they/them)
To remove a display name, just use the same command with no last parameter, eg: To remove a display name, just use the same command with no last parameter, eg:
pk;member John displayname pk;member Joanne displayname
This will remove the display name, and thus the member will be proxied with their canonical name. This will remove the display name, and thus the member will be proxied with their canonical name.
### Member server display names #### Member server display names
If you'd like to set a display name (as above), but only for a specific server, you can set the member's *server display name*. If you'd like to set a display name (as above), but only for a specific server, you can set the member's *server display name*.
This functions just like global display names, but only in the same server you set them in. For example: This functions just like global display names, but only in the same server you set them in. For example:
pk;member John servername AdminJohn pk;member Joanne servername AdminJo
The server name applies to the same server you run the command in, so naturally this command doesn't function in DMs (as you cannot proxy in DMs). The server name applies to the same server you run the command in, so naturally this command doesn't function in DMs (as you cannot proxy in DMs).
### Member description ### Member description
In the same way as a system can have a description, so can a member. You can set a description using the `pk;member description` command, like so: In the same way as a system can have a description, so can a member. You can set a description using the `pk;member description` command, like so:
pk;member John description John is a very cool person, and you should give him hugs. pk;member Joanne description Joanne is a very cool person, and you should give them hugs.
As with system descriptions, the member description has a 1000 character length limit. As with system descriptions, the member description has a 1000 character length limit.
To clear a member description, use the command with no additional parameters (eg. `pk;member John description`). To clear a member description, use the command with no additional parameters (eg. `pk;member Joanne description`).
### Member color ### Member color
A system member can have an associated color value. A system member can have an associated color value.
This color is *not* displayed as a name color on proxied messages due to a Discord limitation, This color is *not* displayed as a name color on proxied messages due to a Discord limitation,
but it's shown in member cards, and it can be used in third-party apps, too. but it's shown in member cards, and it can be used in third-party apps, too.
To set a member color, use the `pk;member color` command with [a hexadecimal color code](https://htmlcolorcodes.com/), like so: To set a member color, use the `pk;member color` command with [a hexadecimal color code](https://htmlcolorcodes.com/), like so, using either the member name or display name:
pk;member John color #ff0000 pk;member Jo color #ff0000
pk;member John color #87ceeb pk;member Skyler color #87ceeb
To clear a member color, use the command with no color code argument (eg. `pk;member John color`). To clear a member color, use the command with no color code argument (eg. `pk;member Joanne color`).
### Member avatar ### Member avatar
If you want your member to have an associated avatar to display on the member information card and on proxied messages, you can set the member avatar. To do so, use the `pk;member avatar` command. You can either supply it with an direct URL to an image, or attach an image directly. For example. If you want your member to have an associated avatar to display on the member information card and on proxied messages, you can set the member avatar. To do so, use the `pk;member avatar` command. You can either supply it with an direct URL to an image, or attach an image directly. For example.
pk;member John avatar http://placebeard.it/512.jpg pk;member Jo avatar http://placebeard.it/512.jpg
pk;member "Craig Johnson" avatar (with an attached image) pk;member "Craig Johnson" avatar (with an attached image)
To preview the current avatar (if one is set), use the command with no arguments: To preview the current avatar (if one is set), use the command with no arguments:
pk;member John avatar pk;member Joanne avatar
To clear your avatar, use the subcommand `avatar clear` (eg. `pk;member John avatar clear`). To clear your avatar, use the subcommand `avatar clear` (eg. `pk;member Joanne avatar clear`).
### Member proxy avatar #### Member proxy avatar
If you want your member to have a different avatar for proxies messages than the one displayed on the member card, you can set a proxy avatar. To do so, use the `pk;member proxyavatar` command, in the same way as the normal avatar command above: If you want your member to have a different avatar for proxies messages than the one displayed on the member card, you can set a proxy avatar. To do so, use the `pk;member proxyavatar` command, in the same way as the normal avatar command above:
pk;member John avatar pk;member Joanne avatar
pk;member John proxyavatar http://placebeard.it/512.jpg pk;member Joanne proxyavatar http://placebeard.it/512.jpg
pk;member "Craig Johnson" proxyavatar (with an attached image) pk;member "Craig Johnson" proxyavatar (with an attached image)
### Member server avatar #### Member server avatar
You can also set an avatar for a specific server. This will "override" the normal avatar, and will be used when proxying messages and looking up member cards in that server. To do so, use the `pk;member serveravatar` command, in the same way as the normal avatar command above: You can also set an avatar for a specific server. This will "override" the normal avatar, and will be used when proxying messages and looking up member cards in that server. To do so, use the `pk;member serveravatar` command, in the same way as the normal avatar command above:
pk;member John serveravatar pk;member Joanne serveravatar
pk;member John serveravatar http://placebeard.it/512.jpg pk;member Joanne serveravatar http://placebeard.it/512.jpg
pk;member "Craig Johnson" serveravatar (with an attached image) pk;member "Craig Johnson" serveravatar (with an attached image)
pk;member John serveravatar clear pk;member Joanne serveravatar clear
### Member pronouns ### Member pronouns
If you want to list a member's preferred pronouns, you can use the pronouns field on a member profile. This is a free text field, so you can put whatever you'd like in there (with a 100 character limit), like so: If you want to list a member's preferred pronouns, you can use the pronouns field on a member profile. This is a free text field, so you can put whatever you'd like in there (with a 100 character limit), like so:
pk;member John pronouns he/him pk;member Joanne pronouns she/them
pk;member "Craig Johnson" pronouns anything goes, really pk;member "Craig Johnson" pronouns anything goes, really
pk;member Skyler pronouns xe/xir or they/them pk;member Skyler pronouns xe/xir or they/them
To remove a member's pronouns, use the command with no pronoun argument (eg. `pk;member John pronouns`). To remove a member's pronouns, use the command with no pronoun argument (eg. `pk;member Jo pronouns`).
### Member birthdate ### Member birthdate
If you want to list a member's birthdate on their information card, you can set their birthdate through PluralKit using the `pk;member birthdate` command. Please use [ISO-8601 format](https://xkcd.com/1179/) (`YYYY-MM-DD`) for best results, like so: If you want to list a member's birthdate on their information card, you can set their birthdate through PluralKit using the `pk;member birthdate` command. Please use [ISO-8601 format](https://xkcd.com/1179/) (`YYYY-MM-DD`) for best results, like so:
pk;member John birthdate 1996-07-24 pk;member Jo birthdate 1996-07-24
pk;member "Craig Johnson" birthdate 2004-02-28 pk;member "Craig Johnson" birthdate 2004-02-28
You can also set a birthdate without a year, either in `MM-DD` format or `Month Day` format, like so: You can also set a birthdate without a year, either in `MM-DD` format or `Month Day` format, like so:
pk;member John birthdate 07-24 pk;member Joanne birthdate 07-24
pk;member "Craig Johnson" birthdate Feb 28 pk;member "Craig Johnson" birthdate Feb 28
To clear a birthdate, use the command with no birthday argument (eg. `pk;member John birthdate`). To clear a birthdate, use the command with no birthday argument (eg. `pk;member Joanne birthdate`).
### Deleting members ### Deleting members
If you want to delete a member, use the `pk;member delete` command, like so: If you want to delete a member, use the `pk;member delete` command, like so:
pk;member John delete pk;member Joanne delete
You'll need to confirm the deletion by replying with the member's ID when the bot asks you to - this is to avoid accidental deletion. You'll need to confirm the deletion by replying with the member's ID when the bot asks you to - this is to avoid accidental deletion.
@ -287,15 +301,9 @@ To set a proxy tag, use the `pk;member proxy` command on the member in question.
For example, if you want square brackets, the proxy example must be `[text]`. If you want a letter or emoji prefix, make it something like `A:text` or `🏳️‍🌈:text`. For example: For example, if you want square brackets, the proxy example must be `[text]`. If you want a letter or emoji prefix, make it something like `A:text` or `🏳️‍🌈:text`. For example:
pk;member Alice proxy ✨:text pk;member Alice proxy ✨:text
pk;member Alice proxy A:text
pk;member "Craig Johnson" proxy {text} pk;member "Craig Johnson" proxy {text}
pk;member John proxy [text] pk;member Jo proxy [text]
pk;member John proxy J:text pk;member Skyler proxy S:text
You can now type a message enclosed in your proxy tags, and it'll be deleted by PluralKit and reposted with the appropriate member name and avatar (if set).
**NB:** If you want `<angle brackets>` as proxy tags, there is currently a bug where custom server emojis will (wrongly)
be interpreted as proxying with that member (see [issue #37](https://github.com/PluralKit/PluralKit/issues/37)). The current workaround is to use different proxy tags.
### Using multiple distinct proxy tag pairs ### Using multiple distinct proxy tag pairs
If you'd like to proxy a member in multiple ways (for example, a name or a nickname, uppercase and lowercase variants, etc), you can add multiple tag pairs. If you'd like to proxy a member in multiple ways (for example, a name or a nickname, uppercase and lowercase variants, etc), you can add multiple tag pairs.
@ -303,18 +311,32 @@ When proxying, you may then use any of the tags to proxy for that specific membe
To add a proxy tag to a member, use the `pk;member proxy add` command: To add a proxy tag to a member, use the `pk;member proxy add` command:
pk;member John proxy add {text} pk;member Alice proxy add A:text
pk;member Joanne proxy add J:text
pk;member Craig proxy add C:text pk;member Craig proxy add C:text
pk;member Unknown proxy add ?text?
pk;member Unknown proxy add 🤷text
To make proxy tags case-insensitive, use:
pk;config proxy case off
You can now type a message enclosed in / prefixed by your proxy tags, and it'll be deleted by PluralKit and reposted with the appropriate member name and avatar (if set).
**NB:** If you want `<angle brackets>` as proxy tags, there is currently a bug where custom server emojis will (wrongly)
be interpreted as proxying with that member (see [issue #37](https://github.com/PluralKit/PluralKit/issues/37)). The current workaround is to use different proxy tags.
### Removing tags
To remove a proxy tag from a member, use the `pk;member proxy remove` command: To remove a proxy tag from a member, use the `pk;member proxy remove` command:
pk;member John proxy remove {text} pk;member Joanne proxy remove [text]
pk;member Craig proxy remove C:text pk;member "Craig Johnson" proxy remove C:text
### Keeping your proxy tags ### Keeping your proxy tags
If you'd like your proxied messages to include the proxy tags, you can enable the "keep proxy tags" option for a given member, like so: If you'd like your proxied messages to include the proxy tags, you can enable the "keep proxy tags" option for a given member, like so:
pk;member John keepproxy on pk;member Joanne keepproxy on
Turning the option off is similar - replace "on" with "off" in the command. The default value for every member is off. When proxying Turning the option off is similar - replace "on" with "off" in the command. The default value for every member is off. When proxying
a member with multiple proxy tags, the proxy tag used to trigger a given proxy will be included. a member with multiple proxy tags, the proxy tag used to trigger a given proxy will be included.
@ -323,6 +345,54 @@ The practical effect of this is:
* **Keep proxy tags on:** `[Message goes here]` -> [Message goes here] * **Keep proxy tags on:** `[Message goes here]` -> [Message goes here]
* **Keep proxy tags off:** `[Message goes here]` -> Message goes here * **Keep proxy tags off:** `[Message goes here]` -> Message goes here
## Results so far
Using the examples so far (ignoring the remove commands), if you run `pk;system list @Craig#5432`, `@PluralKit` will now output something like this:
Members of My System Name (abcde)
[eafas] Alice (✨:text, A:text)
[bjeoi] Craig Johnson ({text}, C:text)
[qazws] Joanne (tags [text], J:text)
[wefje] Skyler (S:text)
[nxzpa] Unknown (?text?, 🤷text)
Sorting by name. 4 results.
and `pk;system list full @Craig#5432` will output something like this:
Members of My System Name (abcde)
Alice
ID: eafas
Proxy tags: ✨:text, A:text
Craig Johnson
ID: bjfeoi
Pronouns: anything goes, really
Birthdate: 2004-02-28
Proxy tags: {text}, C:text
Joanne
ID: qazws
Display name: Jo
Pronouns: she/them
Birthdate: 1996-07-24
Proxy tags: tags [text], J:text
Skyler
ID: wefje
Display name: Sky (he/him)
Pronouns xe/xir or they/them
Proxy tags: S:text
Unknown
ID: nxzpa
Proxy tags: ?text?, 🤷text
Sorting by name. 5 results.
## Interacting with proxied messages
### Querying message information ### Querying message information
If you want information about a proxied message (eg. for moderation reasons), you can query the message for its sender account, system, member, etc. If you want information about a proxied message (eg. for moderation reasons), you can query the message for its sender account, system, member, etc.
@ -361,13 +431,13 @@ To disable autoproxy for a single message, add a backslash (`\`) to the beginnin
::: :::
#### Front mode #### Front mode
This autoproxy mode will proxy messages as the current *first* fronter of the system. If you register a switch with `Alice` and `Bob`, messages without proxy tags will be autoproxied as `Alice`. This autoproxy mode will proxy messages as the current *first* fronter of the system. If you register a switch with `Alice` and `Skyler`, messages without proxy tags will be autoproxied as `Alice`.
To enable front-mode autoproxying for a given server, use the following command: To enable front-mode autoproxying for a given server, use the following command:
pk;autoproxy front pk;autoproxy front
#### Latch mode #### Latch mode
This autoproxy mode will essentially "continue" previous proxy tags. If you proxy a message with `Alice`'s proxy tags, messages posted afterwards will be proxied as Alice. Proxying again with someone else's proxy tags, say, `Bob`, will cause messages *from then on* to be proxied as Bob. This autoproxy mode will essentially "continue" previous proxy tags. If you proxy a message with `Alice`'s proxy tags, messages posted afterwards will be proxied as Alice. Proxying again with someone else's proxy tags, say, `Skyler`, will cause messages *from then on* to be proxied as Skyler.
In other words, it means proxy tags become "sticky". This will carry over across all channels in the same server. In other words, it means proxy tags become "sticky". This will carry over across all channels in the same server.
To enable latch-mode autoproxying for a given server, use the following command: To enable latch-mode autoproxying for a given server, use the following command:
@ -376,23 +446,6 @@ To enable latch-mode autoproxying for a given server, use the following command:
To set the latched member, use their proxy tags. To disable autoproxy for a single message, start a message with one backslash (`\`). To clear the current latched member, start a message with two backslashes (`\\`). To set the latched member, use their proxy tags. To disable autoproxy for a single message, start a message with one backslash (`\`). To clear the current latched member, start a message with two backslashes (`\\`).
For example, using [Alice and John in the setup example above](#setting-up-proxy-tags):
pk;autoproxy latch
I haven't used a tag yet, so this message comes from @Craig#5432
✨: hello, this is Alice via autoproxy (using an explicit prefix tag)
this is still Alice (using latch without tag)
\I'm sending this message one-off as @Craig#5432, without proxy
but I'm still latched! (this also is sent from Alice via autoproxy)
[hello, this is John, using autoproxy and a surround tag]
still John on latch!
J: I could use my prefix or surround tags if I want, but don't have to
because the last time I used a tag, I used mine (John's)
\\now I'm clearing latch; this is from @Craig#5432
and now new messages will be from @Craig#5432 because latch is cleared
A: but autoproxy is still on
so now I'm back to Alice
#### Member mode #### Member mode
This autoproxy mode will autoproxy for a specific selected member, irrelevant of past proxies or fronters. This autoproxy mode will autoproxy for a specific selected member, irrelevant of past proxies or fronters.
@ -440,6 +493,41 @@ To re-enable autoproxy for the current account, use the following command:
This subcommand can also be run in DMs. This subcommand can also be run in DMs.
::: :::
### Example usage
For example, using [the setup example above](#setting-up-proxy-tags), `@Craig#5432` can type this:
pk;autoproxy latch
I haven't used a tag yet, so this message comes from @Craig#5432
✨: hello, this is Alice via autoproxy (using an explicit prefix tag)
this is still Alice (using latch without tag)
\I'm sending this message one-off as @Craig#5432, without proxy
but I'm still latched! (this also is sent from Alice via autoproxy)
[hello, this is Joanne, using autoproxy and a surround tag]
still Jo on latch!
J: I could use my prefix or surround tags if I want, but don't have to
because the last time I used a tag, I used mine (Jo's)
\\now I'm clearing latch; this is from @Craig#5432
and now new messages will be from @Craig#5432 because latch is cleared
🤷 but autoproxy is still on
so this is Unknown
and the result will look like this:
@Craig#5432: pk;autoproxy latch
@Craig#5432: I haven't used a tag yet, so this message comes from @Craig#5432
Alice: hello, this is Alice via autoproxy (using an explicit prefix tag)
Alice: this is still Alice (using latch without tag)
@Craig#5432: I'm sending this message one-off as @Craig#5432, without proxy
Alice: but I'm still latched! (this also is sent from Alice via autoproxy)
Jo: hello, this is Joanne, using autoproxy and a surround tag
Jo: still Jo on latch!
Jo: I could use my prefix or surround tags if I want, but don't have to
Jo: because the last time I used a tag, I used mine (Jo's)
@Craig#5432: now I'm clearing latch; this is from @Craig#5432
@Craig#5432: and now new messages will be from @Craig#5432 because latch is cleared
Unknown: but autoproxy is still on
Unknown: so this is Unknown
## Managing switches ## Managing switches
PluralKit allows you to log member switches through the bot. PluralKit allows you to log member switches through the bot.
@ -449,8 +537,8 @@ You can then view the list of switches and fronters over time, and get statistic
### Logging switches ### Logging switches
To log a switch, use the `pk;switch` command with one or more members. For example: To log a switch, use the `pk;switch` command with one or more members. For example:
pk;switch John pk;switch Joanne
pk;switch "Craig Johnson" John pk;switch "Craig Johnson" Joanne
Note that the order of members are preserved (this is useful for indicating who's "more" at front, if applicable). Note that the order of members are preserved (this is useful for indicating who's "more" at front, if applicable).
If you want to specify a member with multiple words in their name, remember to encase the name in "double quotes". If you want to specify a member with multiple words in their name, remember to encase the name in "double quotes".
@ -534,15 +622,15 @@ This will create a new group. Groups all have a 5-letter ID, similar to systems
### Adding and removing members to groups ### Adding and removing members to groups
To add a member to a group, use the `pk;group <group> add` command, eg: To add a member to a group, use the `pk;group <group> add` command, eg:
pk;group MyGroup add Craig pk;group MyGroup add "Craig Johnson"
You can add multiple members to a group by separating them with spaces, eg: You can add multiple members to a group by separating them with spaces, eg:
pk;group MyGroup add Bob John Charlie pk;group MyGroup add Joanne Skyler Alice
Similarly, you can remove members from a group, eg: Similarly, you can remove members from a group, eg:
pk;group MyGroup remove Bob Craig pk;group MyGroup remove Skyler
### Listing members in a group ### Listing members in a group
To list all the members in a group, use the `pk;group <group> list` command. To list all the members in a group, use the `pk;group <group> list` command.
@ -628,9 +716,9 @@ where `<member>` is the name or the id of a member in your system, `<subject>` i
For example: For example:
pk;member John privacy visibility private pk;member Joanne privacy visibility private
pk;member "Craig Johnson" privacy description public pk;member "Craig Johnson" privacy description public
pk;member Robert privacy birthday public pk;member Alice privacy birthday public
pk;member Skyler privacy all private pk;member Skyler privacy all private
## Importing and exporting data ## Importing and exporting data