Courier
Courier
A player to player mail system for Bukkit Minecraft servers
by defxor
Allows creation of text note items and sending of letters to players no matter if they're online or offline. The letters are delivered by postmen at intervals specified in the config file, and letters can be stored and handled as any other item for later reading. We wanted something that not only allowed us to pass notes to each other, but also felt like it was part of the regular Minecraft environment.
We believe we succeeded.
- - -=< Latest version >=-=< Videos >=-=< Tickets >=-=< Forum >=-=< Source >=- - -


Usage
- /letter [text]
- Creates a Courier Letter with the supplied text. Hold the Letter in your hands and write /letter [text] again to add more text to the Letter. Use &nl or \n to insert newlines. Multiple page Letters are supported, use right-click and left-click to turn the page.
- /post [playername]
- Sends the Letter held in your hands to another player, name verified to be a player on the server. Depending on the config, the received Letter will be privacy-locked to that player (can be unlocked by simply adding text to it with /letter).
- /courier fees
- Lists the fees, if any, that apply for sending mail or creating letters
- /courier unread
- Requests re-delivery of all unread mail, even if they have been delivered to you before. Courier knows the difference between a mail having been delivered and actually read, and this is meant to be used in the cases where you've managed to misplace the Letter without having read it first.
- /postman
- Intended for OPs only, if postman delivery happens seldom and you want to force one to appear. NOT NEEDED in actual gameplay.
To receive messages, simply poke the friendly postman when he appears or right-click him to receive the message directly into your hands or inventory.
The strings "%loc" and "%pos" will be replaced with the current X,Y,Z position in any Letters written, if surrounded by spaces.
Permissions
Quick version: Give your players courier.write, courier.send and courier.list
Long version:
- courier.write
- Allows players to create Letters (default: op)
- courier.send
- Allows players to send Letters to other players (default: op)
- courier.list
- Allow players to see name suggestions if there's more than one match when sending (default: op)
- courier.info
- Allows seeing command help, fee structure and requesting of re-delivery (default: true)
- courier.theonepercent
- Allows posting of mail even if you have no credits and Economy support has been activated (default: false)
- courier.privacyoverride
- Allows the player to read privacy locked Letters (default: false)
- courier.useitemframes
- Allows the player to put Letters into ItemFrames (default: true)
(For anything but the defaults a Superperms compatible permissions plugin needs to be installed)
Configuration options
- Privacy.SealedEnvelope
- Whether Letters that have been Posted to another player should only be possible to read by that player. If you want to change this option, please read this forum thread. (default: true)
- UseFees
- Whether Courier should activate and require Economy support through Vault. (default: false)
- Fee.Send
- The postal fee withdrawn from the player if UseFees is set to true (default: 10)
- Fee.BankAccount
- The Bank or Player account fees will be deposited into (default: none)
- UpdateInterval
- The interval between checks towards dev.bukkit.org to see if there's a new version of Courier available. A value of 0 disables. (default: 18000 seconds)
- Route.InitialWait
- How long will Courier wait until sending out the first postman after players have started joining the server (default: 10 seconds)
- Route.NextRoute
- How long between rounds. This is the maximum amount of time a delivery can take between two online players (default: 60 seconds)
- Route.WalkToPlayer
- Currently not functioning due to changes in Minecraft.
If friendly postmen (Villager) should walk up to players or not. Unfriendly mobs (Enderman) ignore this setting and never do. (default: true)
- Postman.Type
- Which Minecraft Creature to use as Postman. Courier will accept all valid Creatures but only 'Enderman' and 'Villager' are supported. (default: 'Enderman'). Note: This setting is case sensitive! 'villager' does not work, 'Villager' does.
- Postman.QuickDespawn
- How quickly will a postman despawn after having taken damage or delivered the mail (default: 3 seconds)
- Postman.Despawn
- For how long will a postman stay around each round waiting for the player to take his mail (default: 20 seconds)
- Postman.SpawnDistance
- What's the maximum line of sight distance a postman will spawn in front of a player (default: 10 blocks)
- Postman.BreakSpawnProtection
- Whether Courier should try to override mobspawn protection in order to spawn its Postman (default: true)
- Postman.VanishDistance
- The distance a Postman will check to see if a vanished player would be betrayed by appearing within (default: 20 blocks square)
- Postman.CreativeDelivery
- Whether Postmen should deliver mail to Players who are in Creative mode (default: true)
- Letter.ShowDate
- Whether to display the date a Letter was sent or not (default: true)
- Letter.FreeLetter
- If players should receive free Letters or if they need to have the necessary resources (default: true)
- Letter.Resources
- List of resources needed if FreeLetter is set to false. Example: [CobbleStone, Paper, CobbleStone] (default: [Coal, Paper])
- Letter.RequiresCrafting
- Whether Courier should just deduct the resources or if players need to manually craft letters (default: false)
- Letter.Frameable
- Should it be possible to put Courier Letters into ItemFrames - in effect creating posters/flyers (default: true)
In addition to the above all user visible strings can be edited. Some translated configs are available in the translations folder as well in the plugin data folder. Move and rename them to 'config.yml' to use.
Trivia
As you've understood (and seen if you've looked at the in-game images) I use Maps to render Courier Letters. If you're a plugin developer and your plugin handles maps and you either want to make sure your map system isn't screwed up by Courier Letters, or maybe if you want to handle Courier Letters in a special way, you can easily identify them:
The actual Maps used by Courier to render Letters ALWAYS have their X coordinate set to 2147087904 (or INT_MAX - 395743, if you want).
The ItemStacks(Material.MAP) that point to those Maps are Enchanted with DURABILITY and the enchantment level is used as a database key to find the matching text.
Release history
- 2015-05-14: v1.2.1 uploaded
- 2015-05-09: v1.2.0 uploaded
- 2013-01-16: v1.1.9 uploaded
- 2012-12-30: v1.1.8 uploaded
- 2012-12-20: v1.1.7 uploaded
- 2012-03-04: v1.1.6 uploaded
- 2012-02-25: v1.1.5 uploaded
- 2012-02-13: v1.1.1 uploaded
- 2012-01-31: v1.1.0 uploaded
- 2012-01-15: v1.0.0 uploaded
- 2012-01-02: v0.9.6 uploaded
- 2011-12-30: v0.9.5 uploaded
- 2011-12-27: v0.9.2 uploaded
- 2011-12-26: v0.9.1 uploaded
- 2011-12-23: v0.9.0 uploaded. This page created.
(see the Changelog for detailed information)
Known issues
- Moving Letters between slots in creative mode (/gamemode 1) causes them to become empty later (eg. after logout/login)
- This seems to be a Bukkit issue, please do not handle Courier Letters in creative mode until this is better understood.
- Courier does not support extended character sets, it will skip such input when writing Letters.
- This is due to Bukkit Maps only supporting the 'old' standard Minecraft Font. If support is extended in Bukkit I will implement it into Courier as well.
- ... and all open tickets and issues, of course.
Future development
This plugin is looking for a new maintainer. The original author does not play Minecraft any longer. The update to Minecraft v1.8 could only be made thanks to a pull request having been made at Github. Do not expect any future development until a new maintainer can be found.
-
View User Profile
-
Send Message
Posted May 13, 2012With the new books coming in the next Minecraft, can you update this plugin to just use the native book functionality, and simply send the book items instead of the letters?
Should simplify things dramatically.
-
View User Profile
-
Send Message
Posted May 8, 2012@AkiraShirou
Yee but that is a fixed point with no couriers, I would prefer a more dynamic and rpg sort of feel for item pakaging, and its out of date
-
View User Profile
-
Send Message
Posted May 7, 2012@Sirdabalot
i think theres already a plugin that does that http://dev.bukkit.org/server-mods/mailbox-plugin/
-
View User Profile
-
Send Message
Posted May 5, 2012I'm not sure if this has been suggested before but, could you add the ability to package items to people somehow?
-
View User Profile
-
Send Message
Posted May 4, 2012How would I set an Iron Golem as the postman, because "Iron Golem" and "IronGolem" are invalid?
-
View User Profile
-
Send Message
Posted May 3, 2012@Homzar
What would be the point then? It's a book, not a letter or a note :P
-
View User Profile
-
Send Message
Posted Apr 30, 2012when the update comes out will you change the map to a book.
-
View User Profile
-
Send Message
Posted Apr 29, 2012Hello, my players love this plugin on my server. But, i don't want the endermen bringing mail into creative. Which is a problem because i have a creative world in my server. Maybe you could and this in the config:
disable-courier-in-otherworlds: <worldname here>
This would be very helpful. Is it doable?
-Leithal
-
View User Profile
-
Send Message
Posted Apr 23, 2012@gido12
I did think about pictures, but unless I implement a client mod to access the screenshot functionality the raytracing and re-building of what you're looking at - including mapping that to the limited resolution and color depth of the map canvas - would need to be a separate project in itself :)
@ChrissWR1
There must be some really strange clash between Courier and another plugin on your server for that to happen. Basically Courier won't spawn an Enderman ever without at the same time telling it to hold a Bookshelf. Something else must interfere with the mob spawning Courier does.
@tmad40blue
Sorry, someone else will have to do letter censoring. I'm Swedish - the whole concept of "but think of the children!" is quite alien to us ;) I'd just ban anyone that doesn't act nicely and be done with it.
However, it is a valid request upon Courier to not write content directly into the database but to use an event that others can trigger upon and change (filter). I'll have it in mind, but I'm currently spending way too little time on getting the next Courier version out and that has to be the highest priority ..
@TehScaryDoor
You can always edit messages.yml directly, but you'll have to reload Courier for changes to take effect (I think). However - it's a YAML file only for now, the next version will use an SQLite database instead. There are currently no plans for an external API, although if anyone feels like hooking into Courier directly there is a well separated internal one already.
-
View User Profile
-
Send Message
Posted Apr 22, 2012Does anyone know if there's a way to write/spawn letters out of game, in one of the config files or some such?
-
View User Profile
-
Send Message
Posted Apr 16, 2012It would be AWESOME to get a way to censor letters. I run a family-friendly server and don't want to have letters become a way to bypass language censoring.
Sound doable? If so I would install this in a heartbeat :)
-
View User Profile
-
Send Message
Posted Apr 11, 2012i tihnk you should be able to set a chest as a mailbox so instead of being delevered by testificate its put in ches if you havent assigned a chest get deliverved by testificate.
-
View User Profile
-
Send Message
Posted Apr 9, 2012Hi guys,
I have a huge problem: Courier works realy fine, but if the Endermen spawns on me, because it has a mail for me, it doesn't hold an bookshelf and I can't click on it to get the mail.
ChrissWR1
-
View User Profile
-
Send Message
Posted Apr 5, 2012add pictures that you kan add pictures to it
-
View User Profile
-
Send Message
Posted Apr 4, 2012@MolaynoxX
Courier spawns one Enderman per player with undelivered mail per the Route.NextRoute setting (default 60 sec). Those Endermen are then despawned after Postman.Despawn (default 20) seconds if no one interacts with them (if so, they despawn sooner).
If you have other plugins that interfere with spawning/despawning that could be the cause of what you're seeing.
(I'm assuming among the thousands of servers using Courier someone must be using MultiVerse, but I haven't tested it myself)
-
View User Profile
-
Send Message
Posted Apr 4, 2012Lol. It crashed my Server. Does it work with MultiVerse? In Another world spawned more than 1000 Endermen and caused a mega lag.
-
View User Profile
-
Send Message
Posted Apr 3, 2012@krisdestruction
Well, the thoughts are found on the forum :)
I tend to prioritize bug reports over feature suggestions, but I go through those as well every few weeks. A month might be stretching it though, thanks for the reminder.
@ntrixter
Not yet, but it's a planned feature.
@Mr_H4mm3r
I've seen a few server owners who use another plugin to make some action happen when you type a command. If that action was to make another command consisting of "/letter text etc" then that's what would happen :)
@Soxra
Please see the forum thread on v1.2.0.
-
View User Profile
-
Send Message
Posted Apr 3, 2012Hey defxor, do you mind keeping up with tickets? Maybe post your thoughts and opinions on features/tickets and the future direction of the plugin? I see you haven't updated any ticket past Mar 6 so I thought this plugin was gonna be inactive. Comments proved differently of course :P
-
View User Profile
-
Send Message
Posted Apr 1, 2012Is it possible to send an Admin message to all players?
-
View User Profile
-
Send Message
Posted Apr 1, 2012I saw on a server that when I typed a command I got a letter with info in it? How can I do that? :-)