Skip to main content

Admin & Maintenance

MineMail's admin tools need the minemail.admin permission (op by default). Every admin command except inspect also works from the console.

Reloading Configuration​

/minemail reload

Reloads config.yml and messages.yml and restarts the particle and expiration tasks. economy.enabled and storage.auto-save-interval still need a restart; see Configuration.


Cleaning Up Holograms​

/minemail cleanupholograms

Removes every MineMail hologram in all loaded worlds, then rebuilds them for mailboxes in loaded chunks and reports both counts. Holograms are built in (Paper text displays) and aren't saved with the world. MineMail already clears and rebuilds them on startup, chunk load, and shutdown, so you'll mostly need this after changing the hologram settings.


Inspecting a Mailbox​

/minemail inspect <player> [mailbox]

Opens a player's mailbox read-only: you can see its mail and attachments, but can't collect, delete, reply, forward, or change what's been read. If the player has several mailboxes and you don't name one, you're asked to pick. In-game only.

You get the same read-only view by right-clicking someone else's mailbox barrel, or by picking their mailbox in /minemail directory. Players without minemail.admin see "No Access" instead.


Transaction Log​

/minemail log <player> [page]

Shows a player's history, newest first: mail sent and received, attachments and currency collected, mail deleted, expired and returned, mailboxes created and deleted, extra slots bought, and recoveries. Each entry has an ID for /minemail recover. The page size is logging.transactions.page-size (default 10).

The log is stored as append-only JSON lines in plugins/MineMail/logs/transactions-YYYY-MM.jsonl, one file per month. It's on by default (logging.transactions.enabled).

Recovering Lost Contents​

/minemail recover <entryId>

Restores the items and currency recorded in a log entry for a deleted, expired, or returned mail. They're delivered as a new "Recovered: ..." mail to the original mailbox, or to the owner's first mailbox if that one is gone.

Recovery is refused if the entry was already recovered, if anything was collected from that mail after the entry, if the mail still exists, or if the target mailbox is full.


Listing Every Mailbox​

minemail list

Run from the console, list prints every mailbox on the server, sorted by owner then name, with the total first. Each line shows the owner, mailbox name, world and coordinates, mail and unread counts, and group. Mailboxes in worlds that aren't loaded are listed too, marked "world not loaded". In-game, /minemail list only lists your own mailboxes.

Exporting Mailboxes​

/minemail export

Writes plugins/MineMail/exports/mailboxes_<yyyy-MM-dd_HH-mm-ss>.csv with one row per mailbox, including mailboxes in worlds that aren't loaded. Columns: username, mailbox_name, world, x, y, z, mail_count, unread, group, status.

Item Self-Test​

/minemail itemtest

Stores an enchanted, renamed item with lore and custom data using the same format as mail attachments, loads it back, and reports whether it survived unchanged. Useful after a server update to confirm attachments still load correctly.


Removing a Player's Mailbox​

Admins can break any player's mailbox barrel. As for owners, the break is blocked while the mailbox holds mail. Since admins can't collect from other players' mailboxes, have the owner empty it first.

/minemail delete <name> -f only works on your own mailboxes. It lets an admin delete one of their own mailboxes that still holds mail. The delete is recorded in the transaction log.


Data Files​

Everything is stored as YAML in plugins/MineMail/:

FileContents
mailboxes.ymlMailboxes: owner, location, name, description, sharing, settings.
mail.ymlMail and its attachments.
groups.ymlGroups, members, and roles.
players.ymlKnown player names, purchased slots, receipt settings, and anything waiting to be delivered on next join.
logs/The monthly transaction logs.
exports/CSV exports.

Each change is written within storage.save-debounce-millis (1.5 seconds by default). Files are written to a temporary file and then swapped in, so a crash mid-write can't corrupt them. A full save also runs every storage.auto-save-interval minutes as a safety net, and on shutdown.

MineMail also keeps data it can't use right now instead of dropping it:

  • Mailboxes in a world that isn't loaded are kept and come back when the world loads.
  • Attachments that can't be read (for example after a server update removed an item) are kept untouched in mail.yml and locked so they can't be collected. A warning is logged at startup.
  • Items in an open compose menu are saved, so a crash returns them on the player's next join.

Mailbox Tours​

MineMail offers every mailbox to RallyPoint as a tour stop. With both plugins installed, an admin can run /rally tour load minemail to build a tour of every mailbox on the server. Every mailbox is included; there's no per-mailbox opt-out yet.

For plugin developers, the stops come from MineMail#tourStops(), a list of maps with the keys id, name, owner, description, world, x, y, z, and group. It uses JDK types only, so there's no MineMail API to compile against.


Operational Notes​

  • Economy: mailbox and mail costs, currency attachments, and paid extra slots need Vault and an economy plugin. Without them, costs are waived and an error is logged at startup.
  • Unfinished features: custom mailbox icons (minemail.mailbox.icon) and minemail.sounds aren't functional yet.
  • Sharing permission: the Manage Access menu lets owners add viewers without minemail.mailbox.share. Only the commands check it. See Permissions.

Maintenance Checklist​

TaskHow
Apply config or messages changes/minemail reload
Fix duplicate, missing, or stale holograms/minemail cleanupholograms
Check a player's mailbox/minemail inspect <player>, or right-click their barrel
See every mailbox at a glanceminemail list from the console
Investigate missing items or money/minemail log <player>, then /minemail recover <entryId>
Remove a player's mailboxThe owner empties it, then break the barrel
Report on all mailboxes/minemail export
Back up mail dataCopy mailboxes.yml, mail.yml, groups.yml, players.yml, and logs/, ideally with the server stopped