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 Feb 21, 2013@mcfacilitator
Well i have a Windows 7 64 bit computer running the latest Java, i'm not sure how long it takes until the error comes but it does take some time, and one more the the Postal does not stop, it is kinda like spam. I will try using the citizens dev builds and i will let you know if it works.
-
View User Profile
-
Send Message
Posted Feb 20, 2013@humzaf
The houskeeping routine is an optional routing Postal does to check on the npc health periodically. That is what your stack trace identified as the culprit, so I figured it was worth a try giving you a cut with it taken out. The fact that you are still having issues may imply that there is something going south on your Citizens implementation, since it was telling Postal that an NPC that is suposed to be spawned, isn't. Citizens will do this when players move away from npcs, or logoff. Postal goes to great legths to cancel this automatic despawning. So, that is the apparent cause of that stack trace.
I set up and am running the exact builds you indicated, and all is fine (don't you love to hear that?) So, what java are you running, and on what platform? Don't worry, we will get to the bottom of this.
Also, can you describe how the error emerges? IE: how long does it take(?), How are the npcs moving(?) and, Is Postal stopping, or is this troublesome console spam(?)
I normally use the Citizen dev builds at:
http://ci.citizensnpcs.com/job/Citizens2/
-
View User Profile
-
Send Message
Posted Feb 20, 2013@mcfacilitator
I am still having this problem but i have a question on what you said, first what does the housekeeping routine have to do with the error i'm getting and is there any way i can fix it.
I'm going to tell you her versions of my Postal, CraftBukkit, and Citizens, just in case if it helps: CraftBukkit = Recommended build #2624 Postal = va_postal version 2.9 1.4.5-R1 RB, 1.4.6, 1.4.7 Citizens = 2.0.7 (alpha) for CB 1.4.7-R1.0
If i should change any of these to a specific version can you please tell me, thank you
-
View User Profile
-
Send Message
Posted Feb 20, 2013For anyone using the pre-releases: Please update if older than 2-20. The code that protects item in hand when selecting a postal log wasn't tested using an empty hand. 2-20 and later is fine now.
-
View User Profile
-
Send Message
Posted Feb 20, 2013@humzaf
I don't know if you are still stuck but it was a houskeeping routine that was generating the error. It checks the health of the central npc periodically. The cut from the Citizens site had that commented out but aparently that wasn't the cause of your issue.
The next suspect is the Async thing. After that is your Citizens implementation - there have been a lot of development cuts recently, maybe you have an unstable one.
The next step here, assuming you are stuck, would require more info ie: platform and build numbers for bukkit citizens and java.
-
View User Profile
-
Send Message
Posted Feb 20, 2013@nate149956177
Yes, that was a version mismatch.
You have to go to the Citizens website to get a Postal pre-release, and there is only one right now for 146 and newer.
I'm not sure wich one you are running, nor does it matter because the one here and the one there are equivalent, but I am open to ideas on how to better identify the two diifernt Postal versions here.
-
View User Profile
-
Send Message
Posted Feb 19, 2013Hi everyone,
I am able to start up my server with Postal, but when I do "/postal start", I get this fatal error. Any ideas?
Thanks to anyone that can help!
EDIT: My bad, had to use the pre-release for 1.4.7. You should probably add that to the Download button, very misleading...
-
View User Profile
-
Send Message
Posted Feb 19, 2013@humzaf
Off.
Heart_beat_async: 'false'
-
View User Profile
-
Send Message
Posted Feb 19, 2013@mcfacilitator
The pre-release was no help but can you tell me if i need Async on or off? Thanks
-
View User Profile
-
Send Message
Posted Feb 19, 2013@humzaf
Would you try a pre-release posted at the bottom of the Postal page on Citizens2?
http://wiki.citizensnpcs.com/Postal
Also, I would like to know if Async was turned on. Let me know if that solves your problem. Thanks.
-
View User Profile
-
Send Message
Posted Feb 19, 2013@humzaf
Waypoint spacing is simply the distance in blocks between waypoints. Postal uses an automatic speed controling algorithm that takes the distance from the current position and the next waypoint and gets the speed from a table. The calculated speed will be the average of the current lookup, and the calculated speed for the previouse segment. The averaging provides smoother speed transitions.
This may sound complicated, but it really isn't. Look at it this way; generally, where you want the npc to be moving slowely, the waypoints are close together. An example of this might be doors hallways and tight corners. Longer distaces between waypoints are normally used on highways or open areas, and this is where the npc should run. And the npc will if you space the waypoints out. The waypoints may be optionally located closer than necessary to slow the npc down.
The table goes from 1 to 12. Anything over 12 is flat out running. I will space waypoints out 50 blocks in open areas, and that little guy moves.
Regarding the console messages; I'm goint to look at the source and get back to you. Do you have the Async heartbeat on? If so, turn it off. Async is problematic on some machines, hence the switch in config.yml. It defaults to false.
-
View User Profile
-
Send Message
Posted Feb 19, 2013@SolomonGajda
Yes, I aggree. How about Postal making the player drop anything they might be holding first? The postal log is part of the data model (chest/book/sign) and must remain where it is, yet It should be accessable, sort of like a receipt, or proof of service. Something that will make more sense when economy is implemented.
Edit: There is a pre-release at the bottom of the Postal page on the Citizens2 website that includes that modification. It is for 146 and newer. Let me know if you need 145 or ealier.
http://wiki.citizensnpcs.com/Postal
-
View User Profile
-
Send Message
Posted Feb 19, 2013Whenever anyone clicks on the postal log while holding an item in their hand, they lose that item! This is a significant problem as many of my players have lost items with enchantments that took them many hours to create.
System: CB 1.4.7-R1.0 (#2624) Citizens 2.0.7 Postal 2.9
-
View User Profile
-
Send Message
Posted Feb 19, 2013@mcfacilitator
Ok thanks for the info but i don't know what you mean by "waypoint spacing" do you mind putting up a few photos or somthing? I also have another problem, after i start postal for a while it starts showing this message on my BukkitDev and if you can help me that will be really great:
11:34:04 PM [WARNING] [va_postal] Task #73552 for va_postal v29_146_plus generated an exception java.lang.NullPointerException at com.vodhanel.minecraft.va_postal.common.Citizens.initialize_npc(Citizens.java:76) at com.vodhanel.minecraft.va_postal.VA_postal.ping_central_postmaster_worker(VA_postal.java:691) at com.vodhanel.minecraft.va_postal.VA_postal.ping_central_postmaster(VA_postal.java:613) at com.vodhanel.minecraft.va_postal.VA_postal.heart_beat(VA_postal.java:237) at com.vodhanel.minecraft.va_postal.VA_postal$2.run(VA_postal.java:194) at org.bukkit.craftbukkit.v1_4_R1.scheduler.CraftTask.run(CraftTask.java:53) at org.bukkit.craftbukkit.v1_4_R1.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:344) at net.minecraft.server.v1_4_R1.MinecraftServer.r(MinecraftServer.java:530) at net.minecraft.server.v1_4_R1.DedicatedServer.r(DedicatedServer.java:224) at net.minecraft.server.v1_4_R1.MinecraftServer.q(MinecraftServer.java:494) at net.minecraft.server.v1_4_R1.MinecraftServer.run(MinecraftServer.java:427) at net.minecraft.server.v1_4_R1.ThreadServerApplication.run(SourceFile:849)
-
View User Profile
-
Send Message
Posted Feb 18, 2013@humzaf
The Postal npc's have look-close set on and I doubt that you can override it with the Citizen utilities. I think I will make that an option in config.yml. As for speed control, use waypoint spacing to control the speed. The further apart the waypoints, the faster the postman moves (and vice versa). The 'speed' control is intended more for fine tuning overall speeds. 1.5 is probably way high and causing the Citizens navigator problems.
-
View User Profile
-
Send Message
Posted Feb 18, 2013Hi i have a few problems with the PostMan:
When ever i go near the PostMan his head twitches his head like a crazy man and gets a little off course and then goes back on course, another thing he does is when ever i change the speed factor to something bigger than 1.5 he starts running around in circles. I tried to fix it by doing stuff like /npc lookclose to stop him from looking at me while on the job but it doesn't work.
Please tell me how to fix these problems
-
View User Profile
-
Send Message
Posted Feb 17, 2013Postal version 2.9 is in the Bukkit approval queue. This includes the Dynmap implementation. The version just posted is for Bukkit version 146 and newer.
A cut for Bukkit 145 and earlier will be posted shortly.
-
View User Profile
-
Send Message
Posted Feb 13, 2013@DeathNero
I just want to verify that you are using 146 or 147 and are current on Citizens.
If so, please go to the Postal page on the Citizens2 website and get the pre release at the bottom of the page. And please let me know if this solves your problem. Thanks.
-
View User Profile
-
Send Message
Posted Feb 13, 2013sorry but i get every restart of postal this error:
04:35:53 [WARNING] [va_postal] Task #458 for va_postal v28_146_n_newer generated an exception java.lang.NullPointerException at com.vodhanel.minecraft.va_postal.common.Citizens.initialize_npc(Citizens.java:75) at com.vodhanel.minecraft.va_postal.VA_postal.ping_central_postmaster_worker(VA_postal.java:648) at com.vodhanel.minecraft.va_postal.VA_postal.ping_central_postmaster(VA_postal.java:573) at com.vodhanel.minecraft.va_postal.VA_postal.heart_beat(VA_postal.java:230) at com.vodhanel.minecraft.va_postal.VA_postal$2.run(VA_postal.java:189) at org.bukkit.craftbukkit.v1_4_R1.scheduler.CraftTask.run(CraftTask.java:53) at org.bukkit.craftbukkit.v1_4_R1.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:344) at net.minecraft.server.v1_4_R1.MinecraftServer.r(MinecraftServer.java:530) at net.minecraft.server.v1_4_R1.DedicatedServer.r(DedicatedServer.java:224) at net.minecraft.server.v1_4_R1.MinecraftServer.q(MinecraftServer.java:494) at net.minecraft.server.v1_4_R1.MinecraftServer.run(MinecraftServer.java:427) at net.minecraft.server.v1_4_R1.ThreadServerApplication.run(SourceFile:849)
please fix it fast thanks
-
View User Profile
-
Send Message
Posted Feb 13, 2013For those interested, I have a pre-release for 146 and newer on the Citizens2 website, on the Postal page (bottom). It will use Dynmap if it finds it. I would really appreciate comments on this, and if there are pre 146 users that want this now, please say so. I will keep regular updates there as this new functionality evolves until a release is posted here.
I started out doing a dynmap 'lite' implementation just so I could see where the postmen were, but this has worked out so well, and serves as such an amazing console that I am going to have to do a full implementation, hence my desire for comments. This will be included in the next Postal release as an option in config.yml.
Building dynmap into Postal makes a lot of sense because, internally, Postal is able to very effeciently update real-time information and postmen positions with what probably amounts to about zero overhead. To try to do it from a seperate plugin would just add overhead and complexity.
It will be an option that may be turned off. I think I will have it default to 'on' which only means that it will use Dynmap if it finds it. Anyone using Dynmap is going to want to use this, if no Dynmap, Postal simply turns the feature off retaining the original status quo. In the grand scheme of things with Postal having more than 7000 lines of code, this little addition is only a blip, but I think an important blip.
Speaking of blips; click on the postman at any time to get a real-time update as to what it is doing. The sphere (3d view) expands at stops.