Pinboard

Learn more about the Pinboard, a way for community members to recognise their favourite posts.

SajuukBot will be ceasing operations on March 31st 2024, due to a variety of factors. For more information, please refer to the announcement provided on the SajuukBot discord server and your options for migrating to a new bot.

Discord offers a way of pinning messages to the top of channels. While this is a relatively simplistic method of recognising interesting messages, this method has several flaws:

  • Pinned messages are per-channel, making it very difficult to centralise the messages in one location.

  • The pinned messages are rarely read by members, due to their relative "hidden away" nature in the UI.

  • You can only have 50 messages pinned in a channel, restricting what can be pinned.

With all these restrictions, Pinboard was born. This feature offers some unique benefits over just pinning messages normally in Discord:

  • There is no restriction on how many messages can be recognised by members.

  • Members have full control over what is and isn't included there using the defined reaction on messages.

  • It leaves the pinned messages native feature to be for important notifications relevant to the channel they're being pinned in.

Configuration

This section of configuration is a root key, which means it should not be indented and in line with the basic settings like levels, prefix and the like. Please see the full basic configuration for more details on how it should be formatted.

pinboard:
  enabled: false
  self star: false
  channel: 0
  count: 5
  emoji code: ''
  commands:
    add:
      enabled: false
      level: 50
    update:
      enabled: false
      level: 50
    remove:
      enabled: false
      level: 100
    block:
      enabled: false
      level: 50
    unblock:
      enabled: false
      level: 50

Settings

Each tab contains more details on each setting described in the configuration above.

For more information relating to the commands key, please go to the Commands section below.

The emoji code setting given above takes a string value only. Depending on what emoji you're going to use, depends on how you need to format this value.

If you are using a custom emoji that exists in your discord server, then the emoji ID must be passed in string format, NOT as a pure integer. This is to allow valid testing as to whether its a pure integer, or you're using a Unicode/default discord emoji for the reaction.

If you are using a default Discord emoji (eg 👍 or ❤), then you need to provide the Python Unicode Codepoint value for it to be converted into the required emoji object. To find this value, you can search on the Unicode Character Search form at fileformat.info at this URL: http://www.fileformat.info/info/unicode/char/search.htm

When you find the emoji you want to use and you've navigated to the specific emoji character page, you need to copy part of the Python source code value: the section of text that is required to be entered is within the quote marks, but with the backslash at the start NOT included.

So for example, if you were using 👍 as your reaction emoji, you would need to enter U0001F44D into the emoji code setting using normal string formatting requirements.

If you do not understand this configuration requirement, please ask for support on the SajuukBot support server!

Commands

Due to space constraints, the required syntax of commands, and an example of how they work, are given provided after the list of commands and explanations.

Every command follows the exact same formatting:

  • A key called enabled determining if the command is enabled or not.

  • A key called level, determining the minimum level required to use the command

At the root of the pinboard key is an enabled key, which globally controls the commands assigned to this module. If the root key is false, then no command will operate, regardless of whether an individual command is enabled.

All commands are subcommands to the !pins group.

Syntax and Examples

Below are the syntax requirements of the above commands, along with an example to show how it works.

Last updated