
MailMe 1.4.5
Mailboxes | PostOffices | Gui Menus | Database
MailMe is a new mailing system with more capabilities than others! With mailboxes and notifications, allow players to send messages, items and books
Features:
- MySQL Support -> Multiple servers can have a linked mailbox
- Send Preset, predefined Mail to players.
- Find nearby mailboxes
- Well designed UI with filtering and expansion features
- Send to online and offline players.
- Pinging mailbox when you have unread mail
- Asynchronously programmed. All data collection is off thread so your server can run lag free!
- Multiple, per player language support
- Notification settings
- Sending animations
- Mailboxes!
- Postoffices!
- Send Items, Letters and Books!
- More!
Soft Dependencies:
These are optional addons that you can install to enhance your experience with MailMe!
- Vault: Allows you to charge when sending mail
- Holographic Displays: Adds a hologram above players' mailbox.
- DecentHolograms: Adds a hologram above players' mailbox.
config.yml
config-ver: 3
invalid-config-section:
material: STONE
# This is the default global language that is used across the server if one is not selected
# Default "EN"
lang: "EN"
# Turns debug mode on / off
# Default false (off)
debug: false
date-format: "dd-MM-yyyy"
database:
type: "json" # json, mysql
# Drivers
# com.mysql.cj.jdbc.Driver
# com.mysql.jdbc.Driver
driver: "com.mysql.jdbc.Driver"
database_name: "MailMe"
host: "localhost"
port: 3306
username: "root"
password: "administrator"
useSSL: false
additional_url: ""
# In some cases, it can be useful to have a sending delay. Set minutes until players receive mail.
# Default: 0
send-delay: 0
# Useful for when wanting pickup from post offices ONLY.
mailbox-read-only: false
# Can the player send mail to themselves?
can-send-to-self: true
hooks:
vault: true # enabled?
holograms: true
hologram:
type: DEFAULT
# Requires Vault. Cost for each action
cost:
message: 25.00
item: 40.00
book: 30.00
set-mailbox: 100.00
# Here, you may add all variations of mailboxes you'd like to add. In this example, a player can only set a mailbox to be a chest
#valid-mailboxes:
# - CHEST
valid-mailboxes:
- CHEST
# Distance player has to be within for the mailbox to query the database for unread mail
# and play the ping effect.
# Lower distance usually equals better performance and less strain on database.
mailbox-ping-distance: 50
# Similar to ping except just queries the cache -> less expensive and can be safely altered. But beware of render distance.
mailbox-find-distance: 50
# When the delete-all function is used, should it delete the unread mail as well?
can-mass-delete-unreads: true
expiry-time-mins: 43200 # 30 days
# Icons for usage
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━▼━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
#
# Default icons:
# There is no limit to these so you can just add more and it will make new pages like normal.
# If a mistake is made an error will be thrown.
# To add more, simply add another row with your valid material ; modeldata
# If you're not using a custom resource pack, modeldata will not be useful for you and you can set it to 0
# Example: DIRT;0
icons:
- BLACK_BANNER;0
- SEA_PICKLE;0
- ELYTRA;0
- DIAMOND_PICKAXE;0
- EMERALD;0
- MINECART;0
- DIAMOND;0
gui.yml
# Allows very basic gui changes.
# You can change the items in the language files.
# If you exceed gui bounds, the item will disable itself.
# Basic Gui Changes
choose-type-menu:
message:
enabled: true
row: 2
col: 4
items:
enabled: true
row: 2
col: 5
books:
enabled: true
row: 2
col: 6
anonymous:
enabled: true
row: 1
col: 5
console: # Players without permission won't be able to see this icon.
enabled: true
row: 2
col: 1
exit:
enabled: true
row: 3
col: 5
icon-selector-menu:
exit:
enabled: true
row: 3
col: 5
inbox-menu:
default-setting: compact
send-mail:
enabled: true
row: 6
col: 9
expandedRow: 6
expandedCol: 9
read-as-text:
enabled: true
row: 5
col: 4
expandedRow: 5
expandedCol: 4
exit:
enabled: true
row: 6
col: 5
expandedRow: 6
expandedCol: 5
filter:
enabled: true
row: 5
col: 5
expandedRow: 5
expandedCol: 5
remove-filter:
enabled: true
row: 5
col: 6
expandedRow: 5
expandedCol: 6
info:
enabled: true
row: 1
col: 5
expandedRow: 1
expandedCol: 5
item-input-menu:
exit:
enabled: true
row: 5
col: 5
title:
enabled: true
row: 1
col: 5
next-menu:
row: 6
col: 9
recipient-selector-menu:
default-setting: compact
search-players:
enabled: true
row: 4
col: 4
expandedRow: 5
expandedCol: 4
remove-filter:
enabled: true
row: 4
col: 6
expandedRow: 5
expandedCol: 6
next-menu:
enabled: true
row: 6
col: 9
expandedRow: 6
expandedCol: 9
filter-menu:
delete-all:
enabled: true
row: 1
col: 9
unread:
enabled: true
row: 1
col: 1
read:
enabled: true
row: 1
col: 2
archived:
enabled: true
row: 1
col: 3
go-back:
enabled: true
row: 2
col: 5
EN.yml
# EN
# The Value players use to switch language
T: 'EN'
VER: 1.2
cmd:
plugin-disabled: "&cPlugin disabled. You cannot do this action."
read-only: "&e&lMailMe &7▹ &cInbox is read only! Visit the postoffice to claim the rewards."
mailbox-removeall: "&e&lMailMe &7▹ &aRemoved all Mailboxes."
no-space: "&e&lMailMe &7▹ &cYour inventory is full! Make space to claim the items."
not-required: "&e&lMailMe &7▹ &eNot required."
needs-value: "&e&lMailMe &7▹ &cYou need a value e.g key:value"
generic-processing: "&e&l..."
generic-success: "&a&l✔✔✔"
has-unread: "&e&lMailMe &7▹ &eYou have unread mail!"
identifiers: "&e&lMailMe &7▹ &aIdentifiers: &7@identifiers"
reload: "&e&lMailMe &7▹ &aPlugin reloaded."
default-mb-set: "&e&lMailMe &7▹ &aDefault mailbox set!"
no-permission: "&e&lMailMe &7▹ &cYou have insufficient permissions! Permission node: &f@perm"
invalid-preset: "&e&lMailMe &7▹ &cPreset is invalid or does not exist (case sensitive)."
preset-saved: "&e&lMailMe &7▹ &aPreset Saved."
id-taken: "&e&lMailMe &7▹ &cPreset Id already taken."
preset-error: "&e&lMailMe &7▹ &cError occurred with preset."
missing-params-preset: "&e&lMailMe &7▹ &cMissing parameters for preset builder!"
unknown-argument: "&e&lMailMe &7▹ &cUnknown argument!"
must-create-preset-first: "&e&lMailMe &7▹ &cYou must run /mailpreset create first!"
vault-insufficient-funds: '&e&lMailMe &7▹ &cInsufficient funds!'
vault: "&e&lMailMe &7▹ &c-$@amount"
unknown-player: "&e&lMailMe &7▹ &cUnknown player or player hasn't joined before!"
delete:
success: "&e&lMailMe &7▹ &aSuccessfully deleted."
failure: "&e&lMailMe &7▹ &cFailed to delete."
notify:
success: "&e&lMailMe &7▹ &aNotification settings updated!"
failure: "&e&lMailMe &7▹ &cInvalid argument! Must be true or false."
lang:
failure: "&e&lMailMe &7▹ &cLanguage token does not exist!"
success: "&e&lMailMe &7▹ &aLanguage successfully changed!"
help:
- '&7&m--------------------------'
- '&e&lMailMe'
- '&7▹ &e/mailme compose &7- Compose a mail and send'
- '&7▹ &e/mailme inbox &7- Read Mail'
- '&7▹ &e/mailme lang <token> &7- Switches Language'
- '&7▹ &e/mailme notify <true/false> &7- Switches notification settings'
- '&7▹ &e/mailbox &7- Shows mailbox commands'
- '&7▹ &e/mailpreset &7- Shows Preset builder commands'
- '&7▹ &e/postoffice &7- Shows postoffice commands'
- '&7&m--------------------------'
preset-help:
- '&7&m--------------------------'
- '&e&lMailMe'
- '&7▹ &e/mailpreset help &7- Help Menu'
- '&7▹ &e/mailpreset create &7- Begin creation of preset'
- '&7▹ &e/mailpreset edit &7- Show editor for preset'
- "&7▹ &e/mailpreset give <player> <presetId>"
- '&7▹ &e/mailpreset complete &7- Complete your preset'
- '&7▹ &e/mailpreset delete <id> &7- Delete preset'
- '&7&m--------------------------'
mailbox-help:
- '&7&m--------------------------'
- '&e&lMailMe'
- '&7▹ &e/mailbox help &7- Help Menu'
- '&7▹ &e/mailbox add &7- Add a mailbox'
- '&7▹ &e/mailbox remove &7- Remove a mailbox'
- '&7▹ &e/mailbox find &7- Shows particle effects around nearby mailboxes'
- '&7▹ &e/mailbox setdefault &7- Sets a universally accessable mailbox'
- '&7&m--------------------------'
preset-creator:
- '&e&lMailMe'
- '[&7▹ &eSet Sender](suggest: /mailpreset edit sender:|hover: Click to edit)'
- '[&7▹ &eSet Identifier](suggest: /mailpreset edit id:|hover: Click to edit)'
- '[&7▹ &eSet Expiry Time (Mins)](suggest: /mailpreset edit expiry:|hover: Click to edit)'
- '[&7▹ &eSet Icon](command: /mailpreset edit icon|hover: Click to edit)'
- '[&7▹ &eSet Contents](command: /mailpreset edit contents|hover: Click to edit)'
- '[&7▹ &eSet Auto Archive](suggest: /mailpreset edit archived:|hover: Click to edit)'
- '[&7▹ &eSet a Reason](suggest: /mailpreset edit reason:|hover: Click to edit)'
- '[&7▹ &a&lComplete](command: /mailpreset complete|hover: Click to complete)'
requires-written-book: "&e&lMailMe &7▹ &cYou need to click with a written book to compose this mail type!"
hologram-format:
- '&b@name&e''s Mailbox'
- '&e&lRIGHT CLICK'
postoffice-help:
- '&7&m--------------------------'
- '&e&lMailMe'
- '&7▹ &e/postoffice add <inbox/compose> &7- Adds a postoffice at location you''re looking at. Specify type > inbox / compose'
- '&7▹ &e/postoffice remove &7- Removes postoffice at location you''re looking at'
- '&7▹ &e/postoffice removeall &7- Removes all postoffices'
- '&7&m--------------------------'
postoffice:
add: "&e&lMailMe &7▹ &aPost office added at location!"
removed: "&e&lMailMe &7▹ &aPost office removed at location!"
cleared: "&e&lMailMe &7▹ &aAll post offices removed!"
no-po-here: "&e&lMailMe &7▹ &cThere is no post office at this location!"
bad-material: "&e&lMailMe &7▹ &cMaterial cannot be AIR!"
mailbox:
limit-reached: "&e&lMailMe &7▹ &cYou've reached the maximum amount of mailboxes you can own!"
invalid-item: "&e&lMailMe &7▹ &cYour mailbox cannot be this block type!"
location-occupied: "&e&lMailMe &7▹ &cThere is already a mailbox at this location!"
placement-success: "&e&lMailMe &7▹ &aMailbox location added!"
no-mailbox-here: "&e&lMailMe &7▹ &cThere is no mailbox here to remove!"
location-removed: "&e&lMailMe &7▹ &aMailbox location removed!"
highlighted: "&e&lMailMe &7▹ &eMailboxes highlighted if any are in radius."
mail-types:
message: Message
item: Items
book: Book
console: 'Console Cmd'
text:
format:
- '&7&m----------'
- '&7Mail From: &b%sender%'
- '&7Received at: &b%date%'
- '&cExpires: &n%expiry%'
- '&7Contents: %contents%'
- '&e%reason%'
hover: '&cClick to Reply!'
prev-page: '&e<<< Previous Page'
prev-page-hover: '&cClick for the previous page!'
next-page: '&eNext Page >>>'
next-page-hover: '&cClick for the next page!'
mail:
console: "Enter the command to execute on read."
message-contents: "&e&l%sender% &7▹ &e%contents%"
message: "What would you like your letter to say?"
sent: "&e&lMailMe &7▹ &aMail successfully dispatched."
received: "&e&lMailMe &7▹ You've received mail!"
anonymous: "Anonymous"
gui:
search: "Type the name of the player you wish to find. This can be online or offline."
titles:
filters: "Filters"
click-to-send: "Click to Send"
choose-type: "Choose Mail Type"
icon-selector: "Select an Icon!"
recipient-selector: "Choose your recipients"
inbox: "Your Inbox"
item-input: "Input your items"
revealed-contents:
title: '&7From: &e&l%sender%'
lore:
- '&7&m----------'
- '&7Type: &e%type%'
- '&7Received at: &e%date%'
- '&7Archived: &e%archived%'
- '&cExpires: &n%expiry%'
- '&e%reason%'
- '&7&m----------'
- '&eContents: %contents%'
- '&7&m----------'
filler:
title: ''
material: BLACK_STAINED_GLASS_PANE
amount: 1
custom-model-data: 0
glow: false
lore: []
item-input-title:
title: '&e&lInput Your Items'
material: OAK_SIGN
amount: 1
custom-model-data: 0
glow: false
lore: []
close-menu:
title: '&cClose Menu'
material: BARRIER
amount: 1
custom-model-data: 0
lore:
- '&7Click to close'
- '&7the menu!'
glow: true
skull-texture: ''
previous-menu:
title: '&8[&ePrevious Menu&8]'
material: OAK_DOOR
amount: 1
custom-model-data: 0
lore:
- '&7Click to go to'
- '&7the previous menu!'
glow: true
skull-texture: ''
previous-page:
title: '&8[&ePrevious Page&8]'
material: REDSTONE_TORCH
amount: 1
custom-model-data: 0
lore:
- '&7Click to go to'
- '&7the previous page!'
glow: true
skull-texture: ''
next-page:
title: '&8[&eNext Page&8]'
material: REDSTONE_TORCH
amount: 1
custom-model-data: 0
lore:
- '&7Click to go to'
- '&7the next page!'
glow: true
skull-texture: ''
message:
title: '&8[&eMessage Mail&8]'
material: OAK_SIGN
amount: 1
custom-model-data: 0
lore:
- '&7Click to send someone'
- '&7a message mail!'
glow: true
skull-texture: ''
item:
title: '&8[&eItem Mail&8]'
material: CHEST
amount: 1
custom-model-data: 0
lore:
- '&7Click to send someone'
- '&7an item mail!'
glow: true
skull-texture: ''
book:
title: '&8[&eBook Mail&8]'
material: WRITTEN_BOOK
amount: 1
custom-model-data: 0
lore:
- '&e&lClick with a written book'
- '&e<o compose mail with it!'
glow: true
skull-texture: ''
icon-custom:
title: '&8[&cCustom&8]'
material: YELLOW_STAINED_GLASS_PANE
amount: 1
custom-model-data: 0
lore:
- '&7Click with item to have as icon'
- '&7You won''t lose this item.'
glow: true
skull-texture: ''
search-players:
title: '&8[&eSearch&8]'
material: FEATHER
amount: 1
custom-model-data: 0
lore:
- '&7Click to search by'
- '&7player name!'
glow: true
skull-texture: ''
remove-filters:
title: '&8[&dRemove Filter&8]'
material: IRON_BARS
amount: 1
custom-model-data: 0
lore:
- '&7Click to remove any filters'
- '&7on the menu!'
glow: true
skull-texture: ''
read-as-text:
title: '&8[&eRead as Text&8]'
material: MAP
amount: 1
custom-model-data: 0
lore:
- '&7Click to'
- '&7read your mail as text'
glow: true
skull-texture: ''
next-menu:
title: '&a&lClick for the Next Menu!'
material: EMERALD_BLOCK
amount: 1
custom-model-data: 0
lore:
- '&7Click to go to'
- '&7the next menu'
glow: true
skull-texture: ''
expand:
title: '&e&lClick to Expand!'
material: CHEST
amount: 1
custom-model-data: 0
lore:
- '&7Click to get a bigger'
- '&7view of the menu'
glow: true
skull-texture: ''
collapse:
title: '&e&lClick to Collapse!'
material: CHEST
amount: 1
custom-model-data: 0
lore:
- '&7Click to compact the'
- '&7view of the menu'
glow: true
skull-texture: ''
inbox:
title: '&e&lInbox'
material: OAK_SIGN
amount: 1
custom-model-data: 0
lore:
- '&7&nYour Inbox'
- '&eLeft &7click to read'
- '&eShift &7click to archive'
- '&eRight &7click to delete'
glow: true
skull-texture: ''
send-to-mailbox:
title: '&e&lMailbox'
material: PLAYER_HEAD
amount: 1
custom-model-data: 0
lore: []
glow: true
skull-texture: 'eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjI4NDM1ZDc5MWEwMThmY2E3OTI2ODU0Zjc3ZWNkN2RmMmQxZGYwYjFjMWM3ZjlhNjM4YjhhOTMxZGI5NWEifX19'
not-sent:
title: '&c&lNot sent'
material: RED_STAINED_GLASS_PANE
amount: 1
custom-model-data: 0
lore:
- "&7Click to send"
glow: false
skull-texture: ''
sent:
title: '&a&lSent'
material: GREEN_STAINED_GLASS_PANE
amount: 1
custom-model-data: 0
lore: []
glow: false
skull-texture: ''
anonymous:
title: '&eClick to be anonymous'
material: OAK_SIGN
amount: 1
custom-model-data: 0
lore:
- '&7Clicking will make you send'
- '&7this mail anonymously.'
glow: false
skull-texture: ''
are-you-sure:
title: '&aAre you sure?'
material: EMERALD_BLOCK
amount: 1
custom-model-data: 0
glow: true
lore:
- '&7Right clicking again will'
- '&7Delete this mail'
- ''
- '&7Alternatively, left click this to'
- '&7Cancel the operation'
deleted:
title: '&c[&fdeleted&c]'
material: REDSTONE_BLOCK
amount: 1
custom-model-data: 0
glow: true
lore:
- '&7Mail was deleted here'
- '&7Reopen the gui to see changes.'
send-from-inbox:
title: '&e&lSend Mail'
material: OAK_SIGN
amount: 1
custom-model-data: 0
glow: true
lore: []
console:
title: '&e&lConsole Command'
material: COMMAND_BLOCK
amount: 1
custom-model-data: 0
glow: true
lore:
- '&7Executes command on read'
- '&7Visibility: &aHidden'
- '&7Placeholder: &a%player_name%'
filters:
choose-filters:
title: '&e&lChoose Filters'
material: LAVA_BUCKET
amount: 1
custom-model-data: 0
glow: true
lore:
- '&7Click to view your'
- '&7filter options'
delete-all:
title: '&c&lDelete All Selected Mail'
material: LAVA_BUCKET
amount: 1
custom-model-data: 0
glow: true
lore:
- '&7Deletes all mail currently'
- '&7present in your inbox with filters'
- '&7 applied'
delete-all-check:
title: '&c&lARE YOU SURE!'
material: EMERALD_BLOCK
amount: 1
custom-model-data: 0
glow: true
lore:
- '&7This Action cannot be undone'
- '&7mail will be erased.'
- '&7Left click to confirm'
- '&7Right click to abort'
unread:
title: '&e&lFilter Unread Mail'
material: BOOK
amount: 1
custom-model-data: 0
glow: true
lore:
- '&7Click to filter menu'
- '&7to only &eunread &7mail.'
archived:
title: '&e&lView Archived Mail'
material: ARROW
amount: 1
custom-model-data: 0
glow: true
lore:
- '&7Click to view archived'
- '&7mail.'
read:
title: '&e&lView Read Mail'
material: FEATHER
amount: 1
custom-model-data: 0
glow: true
lore:
- '&7Click to view all read'
- '&7mail.'
go-back:
title: '&e&lGo Back'
material: STICK
amount: 1
custom-model-data: 0
glow: true
lore:
- '&7Click to go back to'
- '&7inbox menu.'
For support, please use only resource discussion
Terms of Service
By using this plugin, you agree to the following terms, which may be updated by the author at any time.
- All payments are final and non-refundable.
- Redistribution or resale of this plugin is prohibited.
- You are not permitted to modify, decompile, or extract any part of the plugin's source code.
- Support is provided exclusively to legitimate customers. We cannot offer support for plugins obtained through unauthorized or illegal means.