ItemMail 4 — smart mail system for item trading in Minecraft

ItemMail 4 plugin adds a full-featured mail system to Minecraft servers: send and request items, keep NBT data intact, and sync mailboxes via MySQL.

Download ItemMail

Original name: ItemMail

FileVersionLoaderSize
ItemMail_v0.1.jar6 КБDownload
ItemMail_v0.2.jar7 КБDownload
ItemMail_v0.2.1.jar7 КБDownload
ItemMail_v0.3.jar12 КБDownload
ItemMail.jar19 КБDownload

ItemMail 4: Reliable Mail System for Minecraft Servers

Coordinating trades in Minecraft often feels like herding cats. Players need to be online simultaneously, meet at a specific coordinate, and trust that neither party will log off mid-exchange. This friction discourages commerce and makes gifting nearly impossible. ItemMail 4: Reliable Mail System for Minecraft Servers eliminates this hassle by introducing a fully functional postal network directly into your server. It is not merely a "give item" command; it is a comprehensive ecosystem of packages, requests, and persistent storage that respects the complexity of modern Minecraft items.

What Sets the Fourth Iteration Apart

The jump from previous versions to ItemMail 4 is substantial. The core improvement lies in a completely rewritten item serialization engine. Older systems often mangled data: enchanted books lost their pages, custom leather armor reverted to default colors, and written books arrived blank. This plugin, developed by kill3rtaco, integrates the proprietary TacoSerialization engine. This ensures that every single NBT tag is preserved, from custom display names and lore text to the exact shade of dyed leather and the full content of a signed book. Nothing gets lost in transit.

Database Backend and Cloud Readiness

For server owners running large networks or using cloud-based infrastructure, ItemMail 4 offers native MySQL support. This is a game-changer for multi-node setups. Player mailboxes synchronize across all connected proxies, so a package sent on one server is instantly available on another. The redesigned table structure is more efficient, storing items in a compact serialized blob. This reduces database load and speeds up queries, even when handling thousands of transactions. If you operate a BungeeCord or Velocity network, this integration ensures that players never need to worry about which specific server their recipient is currently on.

Core Functionality and User Experience

The plugin provides a robust set of features designed for both casual servers and large economies. The primary actions are sending and requesting items, but the depth lies in the details.

  • Secure Item Dispatch: Send any item, including those with complex NBT data, to any player on the server.
  • Item Requests: Instead of hoping someone has a diamond pickaxe, you can send a formal request. The recipient can accept or decline with a single command.
  • Friendly Item Names: The plugin decodes raw data into readable text. Instead of seeing "minecraft:wool 14", you see "Red Wool". Potion effects, enchantments, and custom names are displayed clearly.
  • Complete Mail History: Both the mailbox and the request box retain a full log of all transactions, complete with timestamps and sender information.

Installation and Migration Path

Before you begin, ensure you have TacoAPI version 2.4 or higher installed. The installation process is straightforward. Drop the plugin JAR into your /plugins directory and restart the server. ItemMail 4 will automatically generate the necessary MySQL tables if you have configured a database connection. For those upgrading from the third major version, a dedicated migration command exists. Running /im convert in the console or in-game will transfer all unread packages and requests from the legacy format to the new one. This process takes seconds and does not require manual database manipulation, ensuring zero data loss.

Command Reference

The interface is text-based but highly intuitive. Here is a breakdown of the essential commands:

  • /im send <player> [item[:damage]] [amount] — Sends a package. For items with special metadata, hold the item in your hand.
  • /im request <player> <item[:damage]> [amount] — Sends a request for a specific item.
  • /im mb — Opens your main mailbox.
  • /im rb — Opens your request box.
  • /im open [id] — Views a specific letter.
  • /im accept [id] — Accepts a request; the item is automatically deducted from your inventory.
  • /im decline [id/*] — Declines one or all pending requests.
  • /im delete [id/*] — Removes mail from your box.
  • /im mail-info [id] — Displays detailed information about a package.
  • /im request-info [id] — Displays detailed information about a request.

You can use an asterisk (*) in place of an ID to apply an action to all items in that category.

Permission Architecture

ItemMail 4 uses a granular, tree-based permission system. This allows server administrators to fine-tune access for different player ranks. The primary nodes are:

  • ItemMail.general.* — Grants all basic user commands.
  • ItemMail.general.mail.* — Grants all mail-related actions (send, open, delete, info) but not requests.
  • ItemMail.general.request.* — Grants all request-related actions.
  • ItemMail.admin.convert — Allows the use of the migration command.
  • ItemMail.* — Grants full access, including administrative commands.

This granularity is invaluable for large servers. For instance, you can allow moderators to view mail information without granting them the ability to delete other players' messages by simply omitting ItemMail.general.mail.delete. For network-wide setups, integrating these permissions with LuckPerms or a similar group manager is recommended.

Handling Complex Items

One of the most frequent pitfalls with mail plugins is the loss of item metadata. To avoid this, always hold the item you wish to send in your main hand when executing /im send. This is crucial for items with custom names, enchantments, written book content, or dyed leather armor. If you specify only an item ID in the command, the plugin may not capture the full NBT data. The same rule applies to requests: if you are requesting a specific written book, hold a copy in your hand so the plugin can replicate it exactly. The TacoSerialization engine guarantees that every character and color value is preserved perfectly.

Advanced Configuration and Developer Tools

For servers with an international player base, it is wise to adjust the database encoding. In phpMyAdmin, change the collation of the item column to utf8_general_ci. In SQL Buddy, select the utf8 charset in the table structure. This ensures that item names and descriptions display correctly in any language, from Cyrillic to Kanji.

Developers will appreciate the suite of custom events provided by ItemMail 4. Events such as ItemMailSentEvent, ItemMailOpenedEvent, and ItemRequestSentEvent allow for deep integration with other plugins. Additionally, the static method ItemMail.sendUnsafely() enables sending packages without triggering these events, which is perfect for reward systems or automated shop plugins. The source code is open and available on GitHub, with full serialization documentation on the TacoSerialization wiki.

Final Thoughts

ItemMail 4 transforms chaotic player-to-player trading into a structured, secure, and traceable process. Its robust MySQL integration makes it a natural fit for modern cloud server networks, while the advanced serialization engine protects even the most intricate item data. The flexible permission system and developer API ensure it can adapt to any server's needs, from a small survival server to a large competitive network. If you are looking to enhance your server's economy and communication, you can download ItemMail 4: Reliable Mail System for Minecraft Servers and integrate it into your setup. The plugin supports recent Minecraft versions and runs on the Spigot and Paper loaders, making it accessible for most server administrators. For a quick start, consult the official documentation on how to install the plugin and its dependencies. This is a reliable investment in your server's future.