πŸ”₯Join our Discord for support, updates, and custom commissions.
Polaroid Studio Logo
PolaroidSTUDIO
DiscordLog In

🧰 Staff Tools

Announcements

announcements.yml. Things the server says on a timer.

enabled: true
interval: 300        # seconds between them
rotation: SEQUENTIAL # or RANDOM

SEQUENTIAL goes in order of priority, wrapping around. RANDOM picks one and ignores priority.

One announcement

announcements:
  discord_invite:
    enabled: true
    priority: 1
    worlds: []                  # [] is every world
    permission_required: false  # true needs polaroidchat.announcement.discord_invite
    minecraft:
      enabled: true             # turns off every channel below at once
      channels:
        chat:
          enabled: true
          lines:
            - '<center><#E9FDFB>[<gradient:#5865F2:#7289DA>DISCORD</gradient><#E9FDFB>] …'

Beyond chat an announcement can also reach players by actionbar, title, bossbar, toast and sound β€” every channel that is on fires. A player turns any of them off with /polaroidchat toggle announcements.

A line starting with <center> is centred on the chat width.

The same announcement in Discord

Each one has a discord: block of its own, with its own webhook:

    discord:
      enabled: false
      webhook: ''
      style: embed      # text | embed | components
      text: '**Are you in the community yet?**'
      embed:
        title: 'Join the community'
        description: 'discord.gg/…'
        color: '#5865F2'

text is one plain line, embed the classic card, and components Discord's newer layout β€” built from a list of blocks, each a line of text or a separator.

Announcements you add are yours: they survive an upgrade untouched.

The private-message spy

Staff holding polaroidchat.msgspy read private messages with /msgspy.

msgspy_webhook in config.yml posts them to Discord as well, so they can be read without being online:

msgspy_webhook:
  enabled: false
  url: ''
  style: embed      # text | embed | components
  timeout: 5
  server_name: 'Survival'

server_name stands in for %server%, for when several servers post to the same channel. The wording is in the language file under msgspy.discord.

The webhook URL is a password. Anyone holding it can post to your channel as that webhook. Keep it out of anything you share, and generate a new one in Discord if it ever leaks.

Channels have their own spy_webhook β€” see Channels.

Clearing chat

/clearchat sends blank lines until what was there is out of sight.

Nothing is deleted. A client keeps what it was sent, and scrolling brings it back. How many lines is chat.clear_lines in config.yml. polaroidchat.clearchat.exempt keeps a player's view as it was.

Setting things for someone else

Every toggle has an .others counterpart, so staff can turn a player's mentions or private messages off for them:

/polaroidchat toggle msg all false Steve

Needs polaroidchat.toggle.msg.others. The full list is under Commands.

Nicks work the same way: /polaroidchat changenick <player> <name> with polaroidchat.nick.set.others.

Finding out who someone is

/polaroidchat realname <nick> with polaroidchat.realname.

Hidden players

Where a vanish plugin is hiding someone, the plugin honours it β€” they are not in the receiver list and cannot be messaged. polaroidchat.vanish.bypass lets staff reach them anyway.