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.
@com_BOY
Hi,
That's incredibly strange. Could you please create a ticket and add more details as to what operating system you're running, what text editor you use to make the changes, what locale you're in etc?
(It sounds as if Courier fails loading your edited config, and my immediate guess is that you're changing the encoding of the file to something it cannot understand)
It works, but I can't change config trough it ALWAYS generates a new config.yml even if there is already one, overwriting your settings. Pretty annoying, trough I can't set villager postman now.
Great work however!
@defxor
Ok thx. I will start using it if that update is out. And i think i will use somthing like a villager as postman then. Keep up the good work!!
@fondelaar
Hi,
Postmen cannot be killed, they will just drop the letters and despawn if hit. If you don't want postmen, I suggest not setting the permission courier.send. Your players can still create Letters and pass them around themselves, or send them using other plugins that allow the sending of Items.
Letters to new players will come in v1.2.0.
i tested it for my server, but i dont think the postman works, since most ppl just kill all mobs... can i turn the postman off? and can i set a new-guy letter wich will be given to every new player?
many thanks, fondelaar
(People, I'm soonish going to need beta testers for v1.2.0. While beta testing always carries the risk of running something that doesn't work perfectly, not having enough beta testers also means that I have to do a lot more sanity testing myself which delays the release .. ;) PM if you're interested)
@mcvereor
Removing a certain number of characters sounds both complicated to use and not very immersive. Dipping a letter in water (right-clicking water) might however wash away the coal from the parchment. I'll create a ticket off your comment and think about it :)
In v1.2.0 it will be possible to delete letters (both via command and immersively in-game).
@dunem666
Absolutely. It's not planned for the next version, yet, although maybe I need to include it since it would require changes to the database format anyway. We'll see.
A command to be able to clear a letter would be good too, or a command to remove a certain number of characters. Right now if you make a typo, I think the only option is to start a new letter. Also reusing old letters might be useful too.
thanks for this plugin, its been great so far.
can i make a suggestion please for future releases?
an op only commands to allow /post everyone so everyone can read the same letter?
like a newsletter :p
@Karl77
Courier v1.2.0 will have a config option to run completely without a permission plugin, as well as using Vault for legacy permission systems if found.
@Eghad2
I've sent you a PM.
@IGLusty
You know, the first place I would look when it comes to changing the config would be the section Configuration options on this page ;)
How do i change the postman? i dont want a bloody enderman!
:( is maybe one of my plugins conflicting? maps still aren't working :(
@aehooo
the map requires the plugin, I believe.
I am serching for a plugin to write on maps. Just this. Nothing more.
I tried this plugin, it works, but when I remove it the map text is gone. So I guess it does not write on the map directly right?
Does anybody knows a solution for me? I am using a mod to create the map file and then I copy/paste it into my world folder, but i really would like to do it ingame.
Hi all,
Since Bukkit 1.1-R4 was just released I've uploaded v1.1.1 of Courier. It fixes the long standing issue with Enderman-Postman teleporting away, and also a client exception "crash". I know it's a minor upgrade - I'm spending all my time on v1.2.0 which is soon to go into beta test ;) (and as always, let me know in pm if you want to be a beta tester).
@Karl77
Sorry, but Courier requires usage of the built in permission system in Bukkit through a SuperPerms compatible plugin. I use bPermissions myself, I find it very easy to setup.
Hi defxor,
really great plugin, I love it!
One quick question: I don't have a permission system or plugin on my little private server and it isn't really needed. Is there a simple and quick way to enable Courier for all Players without giving them op status? That would be really nice.
@denxerator
Hey, and thanks!
Since v1.1.0 you can now choose any Minecraft Creature to be the Postman, although I only test with Enderman and Villager. I suggest fire proof armor if choosing Blaze :P
With regards to receiving mail it's either right-clicking the Postman to get it directly into the inventory that's the easiest, or, which I've seen some RP servers do and which is very intended from Courier's point of view, disable /post altogether by not giving players the courier.send permission and then using another plugin for the actual transportation of Courier Letters.
When choosing between quick commands and in-game immersiveness Courier will almost always go for immersiveness, when possible.
Hi, great plugin,
Does the postman HAVE to be an enderman? is there a way to just receive mail by saying /accept letter or something of that matter?
@defxor okay then. Maybe I'll try reloading a few things. Maybe reinstall plugin. Probably just a bug.
@blokzeil1
Yes, it's not obvious but it's part of this ticket which I'm planning on getting done for v1.2.0 :)
"There will also be some more immersive in-game ways of doing this (throwing letters in fires, burning them in furnaces etc)"
@dexfor Thanks that you have looked to vanish problem, But the command /burn post? will you add this?
and is it possible, when new players connect they get automatice a post with text?