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

πŸ“œ Commands & Permissions

Players

CommandWhat it does
/mailOpen your inbox
/mail block <player>Refuse player mail from them
/mail unblock <player>Accept it again

Staff

CommandWhat it doesConsole
/mail servermail <audience> <id>Send a pre-written server mailβœ”
/mail servermail <audience>Open the compose screen to write oneβ€”
/mail open <player>Open that player's inbox on their screenβœ”
/mail give-mailbox <player>Give one placeable mailboxβœ”
/mail admin player:<name>Inspect that player's full mail historyβ€”
/mail admin globalEvery player's mail history at onceβ€”
/mail reloadRe-read every config fileβœ”

The commands marked Console work from console, command blocks and other plugins. The rest need a player, because they open a screen for somebody.

That split is why the two servermail forms differ: with an id nothing is drawn on anyone's screen, so it runs anywhere. Without one the compose screen has to open in front of somebody.

/mail open and /mail give-mailbox need the target online β€” one shows a screen, the other hands over an item. Everything else works against players who are offline, including sending them mail and blocking them.

Permissions

NodeDefaultGrants
polaroidmail.useeveryone/mail and the block commands
polaroidmail.adminopEvery staff command
polaroidmail.bypassdelayopSkip the delivery delay
polaroidmail.bypasscostopSend for free

The two bypass nodes are only names β€” the actual node checked is whatever you put in bypass-permission in config.yml.


/mail servermail

/mail servermail <audience> [mail-id]

Audience is always prefixed:

PrefixReaches
server:allEveryone the server has ever seen
server:onlineWhoever is connected right now
player:SteveOne player, online or not

The prefix is not decoration. all and online are both legal Minecraft names, so a bare keyword could never be told apart from a player called that.

With a mail id it sends that entry from server-mail.yml immediately, from anywhere β€” console, a command block, a scheduler, another plugin:

/mail servermail server:all welcome
/mail servermail player:Steve compensation

That is the hook to use for vote listeners, crate rewards and scheduled events. %player%-style substitution belongs to the plugin calling it; run the command with the name already filled in.

Without one the compose screen opens so you can write a one-off. This form needs a player:

/mail servermail server:online

Server mail ignores subject and message length limits, is never delayed, costs nothing, and always gets through β€” a player cannot block it.

/mail admin

/mail admin player:Steve   that player's history
/mail admin global         every player's, newest first

A read-only mirror: received, claimed and deleted, all of it. The target is namespaced for the same reason the servermail audience is β€” global is a legal Minecraft name, so a bare word could not be told apart from a player called that.

global is the view for hunting a single mail when you do not know whose it is: a duplication report, a missing reward, a compensation that never arrived. It is capped by log.inspect-entries, and every row names both ends β€” who sent it and who received it.

ClickDoes
LeftTake a copy of the contents. The player keeps theirs. This is logged
Shift + LeftDelete the mail permanently. Cannot be undone

Everything here is written to the transfer log, including who did it.

Anonymous mail is unmasked here. Both admin views show Anonymous (Steve) where a player would only see Anonymous. Anonymity is a promise to the recipient, not a place to hide from moderation β€” the real name was stored all along and only hidden at render time.

/mail block

One-directional and player mail only.

  • Blocking someone does not stop you from mailing them.
  • Server mail always arrives. Otherwise a player could opt out of staff compensations and announcements.
  • The sender is told the mail was refused and gets their items and money back β€” a silent failure would destroy them.
  • You can block someone who is offline, which is usually when you want to.