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/:
| File | Contents |
|---|---|
mailboxes.yml | Mailboxes: owner, location, name, description, sharing, settings. |
mail.yml | Mail and its attachments. |
groups.yml | Groups, members, and roles. |
players.yml | Known 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.ymland 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) andminemail.soundsaren'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
| Task | How |
|---|---|
| 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 glance | minemail list from the console |
| Investigate missing items or money | /minemail log <player>, then /minemail recover <entryId> |
| Remove a player's mailbox | The owner empties it, then break the barrel |
| Report on all mailboxes | /minemail export |
| Back up mail data | Copy mailboxes.yml, mail.yml, groups.yml, players.yml, and logs/, ideally with the server stopped |