Postal
There is no substitute for personal service.
New
- GPS address plotting and compass navigation, Detailed item shipment.
- New WorldGuard, Towny and Dynmap support. New bulk mailing capability.
Introduction
Postal is a Craftbukkit plugin dependant on Citizens2. It is a messaging system making it possible for Minecraft players to communicate with one another using the book and quill, written book item. These written communications may span worlds. Postal is an animated postal presence that may be added to any Minecraft town, settlement or mailroom. Chests are used as residence mailboxes as well as mail storage in local post offices.
Postal Pages | ||
|---|---|---|
| Getting Started | Permissions | Economy Support |
| Towny Support | WayPoint Editor | System Notes |
| Postal Wiki |
Postal Crew
Citizen2 based NPC’s are the Postal crew. They are the postmen spawned and dispatched by Postal. These NPC postmen walk regular routes in towns serviced by Postal post offices. A central post office connects all of the local post offices by teleporting a NPC worker called the PostMaster from town to town, or world to world. This central NPC continually monitors and moves out of town mail to the appropriate destination. The local NPC postman takes it from there. Pickups and deliveries are done on foot, cheerfully. They know how to open and close doors, and they are a wonder on stairs. They are polite.
Addresses
Postal has a two part address system it uses to plot the location of the mailbox it services, as well as define the post office that services the address. A typical address looks like this:
<PostOffice [Address]>
Postal commands generally accept addresses as one word, or two words. If one word is indicated as an address, it is assumed that the subject is a post office. A two word address is a complete address indicating a specific residential mailbox.
The exceptions to this rule of thumb are commands that imply a residence but accept a two word address specifying the post office. /setaddr is an example of this. Invoked with a one word parameter implies that the one word is an address name and Postal is to choose the post office.
There is no built in limit on how many post offices a server may have. The Postal system typically traverses worlds.
New post offices and addresses are created and deleted on the fly. These addresses and post offices are part of a tightly written, hierarchically-structured database. This database is designed to meet the requirements of a dispatcher bent on getting mail delivered efficiently. The post man likes to walk around the town when there is nothing better to do, but get out of his way if there is mail to pick up or deliver.
Geo-Aware
Postal always knows what post office or address you are close to when invoking commands and will be as helpful as possible to relieve you of name details. This help is contextual in nature which makes it possible to use commands without any parameters simply based on your location. Complimenting this ease of use is a command-confirm system that makes it possible for Postal to safely attempt to complete complicated names with just a few characters. This is because you have an opportunity to confirm the completed command with a single ‘/’. If the command didn’t come out right you can simply try again without confirming.
For Towny users, Postal always knows when it is on Towny soil and will defer to Towny hierarchy. All appropriate Postal commands are Towny aware and try to accommodate what Towny players need when used
Creating Addresses
The geographic awareness built into Postal makes it easy to create new addresses. To define a new address the only parameter required is the name you would like to use since Postal will automatically find the closest post office for you. Designing the route for the postman is even easier because Postal will figure out everything based on where you are standing. On a new address you will be teleported to the servicing post office, the beginning of the route, and given a compass pointing to your address. A modern HUD display is included to provide helpful stats while clicking on waypoints. Once you double click the final waypoint the postman will automatically appear using the route you just defined to initialize your mail box.
Finding Addresses
- / TLIST Short for town-list, will present the player with a formatted, alphabetical list of towns when entered without parameters. The closest 3 towns, in order of distance, are also shown. If entered with enough characters to identify a particular town, the addresses of that town are listed.
- / ALIST Short for address-list, will list the addresses of the closest town when entered without parameters. Like /tlist, it will list the addresses of a particular town if entered with enough characters to identify it. The two commands complement each other including details that the other doesn’t.
- / PLIST Short for player-list, lists the closes 8 players, in order of distance when entered without parameters. Along with the listed player is the Postal address he/she is closest to with the compass heading required to get there. If entered with enough characters to complete a player name, Postal will list any Postal addresses or post offices owned by the player.
- / GPS Lists the closest 8 post offices or addresses with their respective compass headings when entered without parameters. /gps may also be given the name of a post office, or an address pair to set your compass to this location.
- / GO Teleports to Postal locations. The type type of location is determined by the number of parameters entered. Entered with no parameters assumes the central post office. One parameter assumes a local post office or town. Two parameters indicates a full residential address. Complicated names are automatically completed, and full named locations, as completed by Postal, are displayed for confirmation before teleportation. These location types may be secured or require owner permission to use.
- Dynmap Postal uses Dynmap if it is installed. All addresses and post offices are plotted and labeled. The active routes and post man locations are shown in real-time.
Navigation
Your compass is calibrated to line up with the standard, Minecraft coordinate system when listing headings with the above commands. These are the same compass directions shown when pressing [F3]. So, with your calibrated compass and the distance and heading combination from the list, you have what you need to navigate to it. This is the way compasses are normally used outside of Minecraft. The benefit of navigating to a destination is that you remain aware of where you are in relation to all the listed destinations, as well as other distance and heading destinations received from other plugins ie: GPS, Pplot and gpsTowny.
Mail and Shipping
Postal letters are based on the written book item. This book will handle up to 50 pages of written correspondence. Item shipping is done with single chests. The two commands used for this have the built-in address finding and completing capabilities described above. Indicating desired addresses is done with the minimum amount of typing. The two commands are: /addr <PO [Address]> and /package <PO [Address]>
On servers that have economy turned on, both of these commands tell you the price of the postage or shipping and give you a chance to confirm it.
Once addressed, letters may be put in any accessible Postal mailbox, and Postal will take it from there. Shipments involve the creation of a shipping label which may be mailed like any letter. Once packaged, the shipment is sign-sealed and indestructible until the post man picks up the shipping label. The post man removes the chest at that point for transport to the recipient.
The recipient of a shipment may refuse the shipment. If refused, the shipment is returned to the sender.
Mass mailings sent to entire towns, even worlds are available to administrators, Towny mayors and post office owners. The /distr command facilitates this.
Capacity Management
Full mail boxes are managed. If the chest is full, the postman will delete the oldest junk mail if he finds one. If that doesn't create the room he needs, he will look for a non-book to delete. If unable to find room in a mailbox, the postman will continue trying to deliver until successful. Mail is otherwise held at the local post office.
Bulk distributions available to post office owners, Towny mayors, and administrators are sent with an expiration date. Regular information mailings therefore do not back up and become undesired clutter
Dispatcher
The NPC dispatcher provides regular coverage and route-walking, oldest next. This dispatcher is also preemptive in that it recognizes mail waiting to be delivered or picked up. The dispatcher manages the route walking schedule to favor actual mail movement over route-walking, or postal presence. Both the post men and the PostMaster are preemptively dispatched to keep the mail moving efficiently.
Chunk Manager
Postal has a chunk manager that monitors chunks required for postal routes. These chunks are automatically loaded and kept loaded. This makes it possible for NPC's to continue doing their job when there is no player in sight. NPC's have a tendency to go to sleep when no player is around. This chunk manager also facilitates the control of spawning monsters on Postal routes. There is a switch in the config file that controls this. By default, Postal routes are kept monster free.
WatchDog
Postal has an evolved watchdog, monitoring system. The Postal workers are vigilantly monitored. It is capable of respawning a NPC worker if something happens to it. It can restart itself if needed. Mail is always backed up. A Server crash or NPC griefing should not result in lost mail. The Citizens NPC’s are pretty reliable on their own.
General Notes
The Bukkit versioning that started early December 2012, applies to all plugins that go outside the Bukkit api to reach the Minecraft api. This started with 145.R1, the first recommended build for 145.
Coincidently, and the cause for much confusion here, The Bukkit api was expanded to include dealing with Book and Quill items. Pre 145.R1 Postal does go beyond the Bukkit api to deal with written books because it has to. Post 145.Ri uses the Bukkit api instead and is therefore exempt from the Bukkit versioning restrictions.
There are only two versions of Postal, delineated by an api improvement not a versioning requirement.
Citizens2 Note: At Citizens build 762 the NPCs underwent navigational, speed refinement. As this relates to Postal there is a modest speed change. It causes the NPCs to move a little slower. It can trigger watchdog activity by Postal since the NPCs don't seem to be on schedule. The fix is simple. Just change the Speed setting in 'Config.yml' from 1.0 to 1.2
Videos
YouTube Getting Started by Hmmcrunchy
-
View User Profile
-
Send Message
Posted Apr 1, 2013<<reply 1379522="">>
Do you know about this recent addition?
added to Versiom 2.8
New command /distr <all owners=""> [town] [expiration_days] This is an op or admin tool. It facilitates the instant distribution of a written book in the player's hand to Postal addresses. Distribution may be to all addresses, or just owned addresses. The distribution may be further filtered by a town name. Distributions include a cover page indicating general information including the original title and author of the written book. The title, as delivered will be [Distribution] and the author field will contain a number ie: '1234567890' that may be used to uniquely identify the document. This number also represents the expiration, in Unix time, of the document. This command does not require the Postal dispatcher to be running. Distributions trigger new mail indicators for both player login and mailboxes.
-
View User Profile
-
Send Message
Posted Mar 31, 2013@mcfacilitator
ok, i know im coming up with lots and lots of ideas here, but what about a mailing list system, or just say a message sent to town, all gets sent to everyone if the player has a permission.
So you could have people acting as journalists or something. Once itemdata is in I intend to setting up a mail order catalog in my town lol.
Mors
-
View User Profile
-
Send Message
Posted Mar 31, 2013<<reply 1378318="">>
Not a bad idea, especially since I have already hooked into the Towny api. I am probably going to have to create a Towny config section and make this optional. Maybe default 'true'.
-
View User Profile
-
Send Message
Posted Mar 31, 2013@mcfacilitator
These additions work great! great job.
Cant wait for item data to be in there. Trapped chests work great too. There is one thing that is something that would make it much easier to manage with towns would be for the mailbox to update its owner depending on the owner of the plot its on. Like add a chest for plot-owner when pat checks the box,
if (mailbox.owner != plot.owner) { mailbox.owner=plot.owner }
if you get what i mean.
mors
-
View User Profile
-
Send Message
Posted Mar 30, 2013<<reply 1373643="">>
There is a pre release for 146 and newer on the Citizens2 site. If anyone needs a pre release for the earlier Bukkit versions let me know. Here are the release notes (so far)
Versiom 2.94
New soft depends on Towny and WorldGuard.
If WorldGuard or Towny are installed, item shipments may only be accepted in regions that the player has build permissions. This may be overridden with the node 'postal.accept.bypass'
Acceptable mailbox chests now include trapped chests.
-
View User Profile
-
Send Message
Posted Mar 29, 2013@mcfacilitator
this is great news!
Also, the thing with regions isnt that bad but its Towny thats causing the headache. If your town doesnt allow build to all its residents then they can basicly place chests in those places.
-
View User Profile
-
Send Message
Posted Mar 29, 2013<<reply 1372478="">>
Use WG flags to restrict '/accept' and '/postal accept' commands in regions you don't want shipments placed.
The absence of extended item attributes was originally a design decision based on having a clean statement. Item costs need to be incorporated into the statement for the economy implementation. Therefore, I have decided to include the item details, as well. So it is on the list.
I don't see any problem with trapped chests off the top of my head.
-
View User Profile
-
Send Message
Posted Mar 29, 2013@mcfacilitator
Aah ok, that makes sense.
ill re-explain, i dont always make myself easily understood, too much of a gook i guess.
Packages place them sleves where a player can cave no privs.
There is no itemdata, eg: i post someone pink dye they get an ink sack, posting any wool will go white, enchanted, renamed or custom items loose all data. I'm suggesting you use later pages in the book as an array to store that data for recall when the items are set into the destination chest.
and have him recognize trap chests (redstone signal chests) so we can hook them to noteblock circuits etc for a natty alarm system.
-
View User Profile
-
Send Message
Posted Mar 28, 2013<<reply 1370632="">>
I need to digest the bulk of your message, but wanted to tell you that is the Central or Postmaster's job to handle inter world mail distribution. You can only define one. You only need one.
I use both Towny and WG, and haven't had a problem, but I guess I need to test with lower privileges.
-
View User Profile
-
Send Message
Posted Mar 28, 2013@mcfacilitator
This seems to work great, using the latest pre-release on 1.5.1.
I do have a suggestion and a question.
data values is a biggie for us, could you have it record data values, custom names and lore meta in the packages? I see how you are using the book to track the contents. so if you added a page like a few pages on from the last one with data values on, in the order they are listed so you can call them back. then have a start page, say 30, and have names and lore on each page, so the iterator could be something like
Ok obviously thats not real code, but you get what i mean.
Also, if using more than one world, do you need to have a central on each world or does the 1 handle them all?
and if you have 1 on each, you can send mail across worlds?
Making them recognize trap chests would be very handy too so we can set a noteblock or light with a d-latch or something.
Lastly,
can you add hooks into towny and worldguard for the placement of packages on the /accept command, players can use this to dump thei chests anywhere, and if in a town and switch is off they cant access it. i think a check to see if the player has build/construct in the destination block would help alot.
Thanks for the superb plugin (i get a kick out of just watching PostManPat go about his rounds hahaha!!)
Mors
-
View User Profile
-
Send Message
Posted Mar 15, 2013Bukkit 1.5 and Citizens starting at build 768 look good with Postal. I recommend setting Settings.Speed to 1.2 to compensate for recent refinements made to the Citizens2 pathing. My most recent pre-release build is on the Postal wiki of the Citizens site. Enjoy!
-
View User Profile
-
Send Message
Posted Mar 13, 2013For those wanting to use extended cooling periods for the postmen and postmaster, there is a new pre-release on the Postal wiki (Citizens2 site). I have a cut for 146 and newer. If anyone needs one for 145 and earlier, just let me know.
A lot of work has gone into the dispatcher, and mail actually moves faster, even if you have the postman and postmaster take 5 or 10 minute breaks. This is because they will interrupt their break to move mail that needs moving. The Postal union won't like this, but our servers need this. :-)
Edit: I am going to add.... This is the recommended way to govern Postal resource usage. This will be formally tested by us. Setting long breaks for the postmen can potentially turn most of the resources used by Postal off. The postmen will walk their routes only when there is mail to pickup or deliver, aside from the occasional walk they will take when the long break is up. For example, in 'config.yml'
-
View User Profile
-
Send Message
Posted Mar 13, 2013@fatmarleys
Maybe I should just leave the current structure as is, and create separate files for each post office. Actually, I think that is what you just said :-)
The post offices in Postal are synonymous, or interchangeable with towns. I use Towny too, anf the post offices have the same name as the towns. Post offices, like addresses may be owned, and can be profit centers, bankers or be service oriented enterprises in themselves. I do think that they would make intuitive, pieces comprising a complete economy with the Postmaster as the Feds.
-
View User Profile
-
Send Message
Posted Mar 13, 2013I would almost suggest that you do change it and make the configs linked to the corresponding mailrooms. In my case, I use towny and each town has a mailroom, if the address were sorted by the mailroom they were created in, accessing them and even manipulating them for either economy, bugs or just tracking would be easier.
Once you make the leap to economy, the next request will most likely be...'Can I charge different amounts blah blah' Seperate configs by mailrooms and linked address would make this easier, I would think.
Please note, I am VERY new to your plugin and most of what I have said was not based on experience, but assumption.
-
View User Profile
-
Send Message
Posted Mar 12, 2013Right now Postal puts everything into one file: 'config.yml'
It has the settings, post office names and locations, address names locations and route waypoints, and, it contains the dispatcher section at the bottom. The dispatcher is rebuilt from scratch every time Postal starts, or is restarted and purposely placed at the bottom for this reason. I don't force writes to the dispatcher section as it changes because it is easily rebuilt. Anything above it such as addresses, etc.. is flushed to file immediately.
I am thinking about separating these sections, by file and adding one more for the purpose of language translation. This is a very difficult decision for me because the current arrangement is very reliable. I have not had even one hiccup or data loss. The yaml is very fast an always delivers what it is supposed to.
Maybe someone can talk me out of this. You know what they say.... 'If it ain't broke, don't fix it'
Assuming I do this, it would mean a fairly painless cut and past from 'config.yml' to a new, separated format, to continue using existing data.
-
View User Profile
-
Send Message
Posted Mar 12, 2013Just a few thoughts about Postal, and where it is going. Minecraft 1.5 will be here before you know it. I know this because my hands are starting to tremble. With excitement! Don't think for a minute it has anything to do with gettings things to work again after a big release :-)
I have been saving version number 3.0 for the version of Postal that has economy implemented in it. Postal is at 2.92, I am running out of version numbers...
Every aspect of Postal has been designed with economy in mind. The actual implementation of it feels huge to me but maybe I can get things started by, optionally, making it possible to charge for sending mail, and incorporate the concept of stamps into the scheme. And also, start with a simple server based bank - where the money spent on stamps goes.
Item shipping will have to include the item cost in the statement, by line detail, so, since I need to expand the details on items, I may as well include the child data required to send items like specific potions.
Then there is Dynmap. Maybe what is there now is just a start. I look at the map and think it would be nice to click on addresses and post offices and set things like the owner or priority from a drop-down list. Click on address and send a letter there. Or, make changes to a route. I want to make Dynmap into a control console. Dynmap is a big distraction for me :-)
I want to make it very clear that I do welcome comments from the folks using the system. I naturally defer to requests that fit the general design of Postal. And, as I have said before, user comments always make me feel less like a canary talking to itself in the mirror.
-
View User Profile
-
Send Message
Posted Mar 11, 2013Postal 2.92 cuts, covering all compatable Citizens2 versions are in the Bukkit approval queue.
Here are the release notes:
Clicking on a postal log formally drops any item the player may have in hand before putting the postal log in the player's hand. This prevents loss of player inventory. The same safety precaution has been applied to shipping labels before they are placed in the player's hand.
New config.yml setting 'lookclose_on_route'. 'true' is the default. 'true' makes the postman aware of other players while walking his route. He will look at the player and appear a little distracted by other players, but stays on route. Seems more human and less programmed. 'false' causes the postman to be more focused, and generally does not acknowledge the existence of players aside from mouse clicks. In the postoffice, waiting for the next route lookclose is turned on regardless of this setting.
Fixed bug with /package command excluding items when itemized on the shipping label. Pages on the written book were exceeding their character capacity and being truncated when many items with long names were on the same page. Item names were also being unnecessarily padded with trailing spaces.
Double chests are now formally rejected as shipping containers.
Stamped statement now replaces the un-accepted statement in player's hand on /accept instead of going into the accepted chest. This facilitates the sending of completely full chests and is probably more intuitive to the player.
/accepted chest no longer identified with a sign when accepted. It is not necessary. It was also, upon opening, being incorrectly labeled as a Postal mailbox.
The general system watchdog was not allowing for extended cooling intervals set for postmen with the settings.postman_cool_sec setting in config.yml. This was fixed by using the value in this setting to make sure the system setting is long enough to allow for anything set here. The individual postmen and postmaster watchdogs are not affected since they have flags indicating cooling periods, periods ignored by the watchdog.
-
View User Profile
-
Send Message
Posted Mar 11, 2013@IrusVirus
OK, I think I have this figured out. I don't need anything else. The main dispatcher controlling all the postmen is not allowing enough time to cover the relatively long break the postman takes in his postoffice. This is the same issue with the extended breaks that we already fixed. So, either I didn't get that last fix uploaded to the pre-release link, or you are not running the latest pre-release.
I will update the pre-release right now. A little later today, I will put new Postal cuts with the latest bug fixes, etc... into the Bukkit approval queue.
One little detail of your route that distracted me was the fact that it is 99 waypoints long. Not 100, or 92, but 99! When I see a number like that I immediately wonder if something is happening going from two digits to three. But I was able to confirm that that is just the way it worked out, and is the correct route length. IrusVirus - don't do that again :-)
Btw, I thought I had a pretty good acid test with a postman walking the stairs in the Empire State Building to the basement - 55 waypoints.
-
View User Profile
-
Send Message
Posted Mar 10, 2013@mcfacilitator
Alright sounds good. Just making sure :) Thanks again for speedy replies!
-
View User Profile
-
Send Message
Posted Mar 10, 2013@IrusVirus
Got the pastebins - thanks. I didn't see the problem with a quick look. I will take a better look to-morrow.
I may wan't to run this. If you are able to zip up 'world' or a section that covers the route, that might be helpful. Email