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 8, 2013<<reply 1400422="">>
Yes. Postal is not affected by Bukkit versioning. There is only an api split late 145. I maintain two cuts, and have been keeping them both at the same Postal version. I am not leaving anyone behind.
Citizens2 is very much out of the Bukkit api, and is easily mismatched.
-
View User Profile
-
Send Message
Posted Apr 8, 2013@josht1711 I'm having the same problem. And the console fills with error messages when the Postal mod is on. My craftbukkit version is the 1.5.1 Beta build (#2735) I also have the post office's routes plotted out. The only npc that spawns is the Post Master at the central post office. Is it updated for 1.5.1? It does not seem like it is.
-
View User Profile
-
Send Message
Posted Apr 8, 2013@mcfacilitator
Started working just had to re install the plugin
-
View User Profile
-
Send Message
Posted Apr 7, 2013Hi, can I ask whether Postal works in 1.5.1 yet? I see the published build is for 1.4.x still.
-
View User Profile
-
Send Message
Posted Apr 7, 2013<<reply 1400231="">>
I am going to need more info. CraftBukkit version. Citizens build. Any stack traces on the console, or in the server log? Can you be more specific about 'null'. Do your post offices have routes? Assuming dev, latest version of Citizens, have you set speed to 1.2?
I am happy to help.
-
View User Profile
-
Send Message
Posted Apr 7, 2013Im getting a null for the npcs in all of my post offices they show up in one but they just stand there. The rest of my post dont have anything and mail is not being sent or received because of this any help? And i have the latest version of citizens 2.
-
View User Profile
-
Send Message
Posted Apr 5, 2013<<reply 1391731="">>
As morlanius indicated, that is the default behaviour for the posmaster. In fact if what you want is regular postal presence, the default is about what you want since it has the postmen taking 10 second breaks, and has them continuously walking all the routes.
If they are not all being walked, something is wrong and we can work through that. If you are running a current Citizens build, you need to set 'speed' to about 1.2 in config.yml to compensate for recent Citizens2 speed changes.
As for the book not being picked up; Did you address the letter with /addr before mailing?
-
View User Profile
-
Send Message
Posted Apr 5, 2013@fatmarleys
check the routes to the addresses. (/setroute command)
and the postmaster only ever stays a few seconds to move the out of town mail then hes gone again. thats normal. try /postal talk to see if there is a route he cant get to. it also says it in console when you do a /postal restart
-
View User Profile
-
Send Message
Posted Apr 4, 2013Curious question. I have made to local offices and one main office...The postmaster rotates between these locations? Cuase i only see the postmaster for like 10 secs and then he is gone.
Then the postman, he has 3 routes setup right now, but he is only going to the one over and over..I posted a letter to my neighbor and it is sitting in the local office chest and the postman keeps checking the chest and leaving without it...Maybe I have missed something in the config?
Advice on optimizing my postal system? I would like to have a postmaster in each town with a local office and then one postman PER town with the postman rotating through addresses frequently.
-
View User Profile
-
Send Message
Posted Apr 4, 2013<<reply 1391324="">>
Affirmative.
-
View User Profile
-
Send Message
Posted Apr 4, 2013is this up to date?
-
View User Profile
-
Send Message
Posted Apr 4, 2013<<reply 1389577="">>
Waypoint spacing. Just remember that this is your speed control. The more distance between waypoints, the faster the npc goes. One or two block spacing will cause the npc to walk very slowly. Anything 12 blocks or over is running flat out.
Postal completely manages its own postmen. This was a design decision based on making Postal easier to use, and having one less thing to go wrong. Citizens is extremely configurable, and if the postmen design were not under Postal control, I think the support problems would become unmanageable. I have been responding to requests, however – ie: uniform, lookclose, what the postman says, etc…. Traits(?) maybe later. That involves more dependancies, and there are more essential things to work on.
Btw, I have never done anything but player type npcs using Citizens.
-
View User Profile
-
Send Message
Posted Apr 4, 2013@mcfacilitator
changing the speeds helps alot. Mainly its a matter of setting good waypoints, i find more is better and when doing corners putting one on the corner apex and one 3 or blocks in the exit direction helps,
as for the milkman, was just a funny idea lol. traiting the postman could be interesting lol. Would it mess with the plugin if i added a denizen script to a patman? i see they are dynamicly generated but do they retain the same ID's for the same postmen or are new ones generated each init?
my postmen are at 1.4 (large cities) the postmaster is set to only 1 min breaks, and the postman is set to 30 secs. It works well when we set it to 5 mins. but sometimes he doesnt interrupt his break to send mail if its not come from outside the town. but thats random. Mainly we just like to see Pat.
one thing, do you know the npc type for a tamed cat, the black and white one? I'm going to write a denizen script to act out Jess.
-
View User Profile
-
Send Message
Posted Apr 3, 2013<<reply 1386822="">>
Milkman - ha. I would need a better watch dog.... How about sentry traited postmen for the bad neighborhoods, or 18-Wheeler for the big shipments....
Timeout problems that you describe are generally indicative of a navigational problem and are often associated with a bad Citizens build. The latest Citizens builds have undergone navigational refinements that, as relates to Postal, cause the npcs to move slower. This is a relatively new developement. I made a comment here indicating that the speed setting should be set to 1.2 or so in config.yml. I should post it on the main page. This may very well be your issue. I just haven't had any feedback on this yet.
The watchdog timeout is calculated using the distance and anticipated speed. The config setting is designed for this purpose, and will correct any timeout issues once it is right. Anyway, that is worth trying first. Let me know if that doesn't fix it. 'postal wtalk' at the console should not show watchdog activity unless they are obvious problems.
-
View User Profile
-
Send Message
Posted Apr 3, 2013@mcfacilitator
sounds good. or just not allow written books in a package could be one way around it.
I love the way you are keeping the data internal to the game to keep your data secured that way, esp when an xml/yml can get outdated or something, last thing needed is for someone to type /postal restart when pat has a book in hand, and then causing a mismatch in the db when he delivers other books after a restart.
You could just have a check in the /package command that detects written books that gives the player a message like "You need to post books with the /addr command" then return out of the sub.
Is there a way to set a maxtimeout for each towns routes? that would be useful, like if the postie takes too long to get to a wp it fails and goes back to the PO and hits the next one on the list.
Ive noticed that sometimes he will skip a wp, not normally a problem as he just takes shortcuts. I know thats a citizens issue not your plugin, but a sanity check would be useful, perhaps definable for each town /routetimeout [value] [town]
Also, ok, i know this is real silly, and would only really be a novelty. But we were laughing about the other night, saying. What if there was a milkman too. he could hook into everything in postal, he wouldnt even need config. he just follows each owned address route and if he find empty buckets in a chest he replaces them with milk_buckets. Perhaps only if there is a gold nugget in there as payment.
Only a silly thing but it could be a bit of a laugh. lol
Keep up the good work, sounds like you are properly on the ball.
:)
Mor
-
View User Profile
-
Send Message
Posted Apr 2, 2013@mcfacilitator
I think I finally realize how item shipping, by way of written book should go. I want the shipping label, or written book to contain everything required to build detailed items for the recipient. I want it to be free standing and not dependant on info stashed in some proprietary Postal database. Free from other possible sever glitches and data/database mismatches. Other plugins will be able to use it.
A single chest has 27 slots. A written book may have 50 pages. So I can do a cover page and reserve 4 pages for a personal shipping note and shipping summary. Slot details can start on page 6, and get a full page for each slot.
The shipping of written books is a little more complicated, but fortunately, there is only one for each slot. Each book, theoretically, may have 50 pages. So, by definition, I would not be able to ship even one maxed out written book in a written book envelope. But, written books are often one or two pages. So, written books can go after the normal item stack pages in a variable page format. I could accomodate, maybe, 15 pages of written books in a shipment.
I need more coffee....
-
View User Profile
-
Send Message
Posted Apr 2, 2013@quickclay
Postal is actually designed with the admins in mind. It probably doesn't show right now because there is no economy implemented yet. This is reserved for the 3.0 version of Postal, and notice... I am running out of 2.x numbers :-)
All an admin needs to do right now is assign an address to a specific player. Once that ownersip is in place, the player may take it from there. Designing and changing routes is one of the privileges of ownership.
So, right now an admin creates an address with /setaddr, and then assigns it to a player with /owneraddr. The admin is then finished. The owner may then use /setroute to create the new route, or modify the existing route as property improvements continue.
-
View User Profile
-
Send Message
Posted Apr 2, 2013It would be fantastic if this hooked in with Residence, where a player could just set a flag GetMail:yes and now his residence is on the postal route. Maintaining this as a server op would become a fulltime job very quickly I think.
-
View User Profile
-
Send Message
Posted Apr 1, 2013@morlanius
I appreciate the Towny suggestions. They are good ones, and fit my general desire to automate stuff like that when it makes sense. I haven't studied the Towny api past what I needed to extact the build permissions. It is a bear, btw. I couldn't find the Towny api laid out and documented anywhere. I had to study available source code to get what I needed.
I'm sure what is needed to implement what you suggest is there, and I would expect to get Postal updated with it soon. The item detaling too, but that is a bigger job, and part of new infrastructure. I have to do it right. The consequences of not doing so would take the fun out of it for me, and anyone using the plugin. But it is next, after Towny.
-
View User Profile
-
Send Message
Posted Apr 1, 2013@mcfacilitator
aah ok, thats awesome i didnt know about that. thanks.
and when you hook the owneraddr from towny, the flag for_sale, unowned etc should make the mailbox default back to server.
Hows the townyowner and datavalues coming along? we're all exited to start out mail trades lol.
:)
mors