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
A couple of todo notes:
A price for item shipping should be made possible, and collected from the recipient upon /accept' ance. This is separate from the cost of shipping, and is transferred directly to the sender. Or, it may be /refuse'd by the recipient. Probably need another shipping price definition for C.O.D. shipments.
The route editor (/setroute) should be able to move existing points so that a route does not have to be re-defined just to make a mid-route adjustment.
Submitted to Bukkit:
Version 3.1
Major code reorganization and clean up. Citizens2 navigation overhaul. Important navigation settings and switches moved to the configuration file. Option to select Minecraft or new navigation now configurable.
New teleportation command, ‘/go’ consolidates all Postal locations into one command. No parameters infers the central post office. One parameter infers a town or post office location. Two parameters infers a residential address. As always, Postal completes partial names and confirms before invoking. ‘/go’ replaces ‘/gotocentral’, ‘/gotolocal’ and ‘/gotoaddr’, but original commands remain for backward compatability.
The big 3.0 has been submitted to Bukkit. It is available as an, unchecked by Bukkit, pre-release on the Citizens site right now.
Originally, the emphasis of 3.0 was intended to be all about economy, but as things turned out with the long awaited MC 1.6x version, along with evolution of the Citizens2 plugin, 3.0 is as much about npc navigation as it is about economy. Economy in Postal is 'off' by default. It must be turned on in the config file to use.
There are a few new switches in the config file, and they will be added to your existing config file with default values that should not show any noticeable changes going from lower versions of Postal. I would suggest leaving them at the defaults until you know what to do with them.
I am marking Postal 3.0 for CB 1.6x because it think it would be best to use it with the latest Bukkit and Citizens build 881 or greater. And as always, keep your Java current.
For those using the economy, please let me know what is missing. It is 95% done, but I got distracted with MC 1.6. There might be some missing pieces.
@mcfacilitator
Hey mcfacilitator its me...... Love it. Job well done its amazing no issues nothing. Working perfectly fine. Able to create post office addresses. The postman is no longer teleporting to his destination he walks the route and works very well in dynmap. I cannot wait til 3.0.
The latest Citizens builds have changed the default value of 'USE_NEW_PATHFINDER' in the config file from false to true. For the time being, please make sure this switch is set to false.
If you don't you will experience problems of precision causing the postman to get stuck at doors, and other close-quarter situations.
Postal is good to go on CB 1.61
You must use Citizens2 build 874, or higher. The current Postal is fine, and I am going to flag it good for 1.61
I have done some work on the Postal side in preparation for the new Citizens nav system and will place it as a pre-release on the Citizen's site to-morrow, probably. That will be a pre-release 3.0
@mcfacilitator
Thank you very much!
There appears to be navigational changes in Citizens2 for CB 1.61
Just wanted to report that the Postal side is being worked on. Will post here when resolved.
@mcfacilitator
no worries im glad you like it :D glad i could help out :)
@icomputerz
I don't know yet. I'm not sure if Citizens2 is ready yet, and Postal is nothing without the postmen. I see a flurry of activity on the Citizens site, and expect it soon. I will post here when I have it confirmed working.
Anyone else please feel free to beat me to it. I don't know if Postal needs any work.
@Hmmcrunchy
I got the video link and think it is terrific. It has a few instruction issues, but I wouldn't change a thing. It is entertaining, and I like the spontaneity. I will put it on the main page. Thanks.
@Dstates4
The anti-cheat's generally don't like chests being manipulated away from a live player. It would probably take some sort of a mechanism authorizing this activity to the anti-cheat, like another plugin for the anti-cheat. There is an example of one made to authorize Citizens activity for one of the popular anti-cheat plugins.
Doesn't work on 1.6.1 Bukkit release. Update?
@mcfacilitator
Looks good i think it was that setting causing issues, all seems to have resolved itself now.
ps vid uploading ill pm link
Hey mcfacilator : D
Everything is great but there is just a question I have for you and that is I am using the AntiCheat plugin and it seems that it does not like your plugin. I am guessing that for your NPC's you consider Postman's and postmasters as players.
I was hoping you could make this more compatible with AntiCheat.
I get this code constantly whenever postal service is going. It is code from another plugin.
Could not pass event InventoryOpenEvent to AntiCheat v1.5.8-DEV-b490 org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462) at org.bukkit.craftbukkit.v1_5_R3.event.CraftEventFactory.callInventoryOpenEvent(CraftEventFactory.java:553) at net.minecraft.server.v1_5_R3.EntityPlayer.openContainer(EntityPlayer.java:516) at org.bukkit.craftbukkit.v1_5_R3.entity.CraftHumanEntity.openInventory(CraftHumanEntity.java:193) at com.vodhanel.minecraft.va_postal.VA_postal.A0001(VA_postal.java:1001) at com.vodhanel.minecraft.va_postal.VA_postal.A0008(VA_postal.java:855) at com.vodhanel.minecraft.va_postal.VA_postal.A0001(VA_postal.java:237) at com.vodhanel.minecraft.va_postal.VA_postal$2.run(VA_postal.java:201) at org.bukkit.craftbukkit.v1_5_R3.scheduler.CraftTask.run(CraftTask.java:53) at org.bukkit.craftbukkit.v1_5_R3.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:345) at net.minecraft.server.v1_5_R3.MinecraftServer.r(MinecraftServer.java:513) at net.minecraft.server.v1_5_R3.DedicatedServer.r(DedicatedServer.java:226) at net.minecraft.server.v1_5_R3.MinecraftServer.q(MinecraftServer.java:477) at net.minecraft.server.v1_5_R3.MinecraftServer.run(MinecraftServer.java:410) at net.minecraft.server.v1_5_R3.ThreadServerApplication.run(SourceFile:573) Caused by: java.lang.NullPointerException at net.h31ix.anticheat.event.InventoryListener.onInventoryOpen(InventoryListener.java:59) at sun.reflect.GeneratedMethodAccessor270.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425) ... 17 more
I Know that from this code it would probably have you having to redo your code. So I understand if you don't make it more compatible. Just a thought. Thank you
@mcfacilitator
Hi
No worries ill get a how to going
Ill have play with settings and see what happens Thanks for the help
Crunch
@Hmmcrunchy
Sure on the video, maybe something making it easier for folks to get started for the 'getting started' page.
Memory usage does appear out of whack, but I haven't done a lot of testing alongside other Citizen plugin characters aside from npc traders.
There was an earlier report of a rather large scale implementation of Postal cutting down available mob spawning. That was, I think, a 6 gig world.
In the context of other Citizen characters, it would be worth checking the 'Prevent_all_npc_despawn' switch. I think it defaults to true, and what it does is prevent the despawning of other player type, Citizen npc's. I put it in months ago when folks were having general problems with their Citizen characters despawning when there were no players around.
This might be interfering with efficiency mechanisms in Citizens and other dependent plugins. You could simply try setting this switch to 'false' to see if it makes a difference.
I need to make the default setting of this switch 'false', or remove it altogether. It might be obsolete.
The other relevant setting is 'Chunk_overlap', and this should be set to 1 on implementations trying to minimize resource requirements. This switch defines the width of protection on Postal routes, and is a companion to the 'Allow_monster_spawn' switch.
@PhoenixSoftware
Your resources look ok to me. The postmaster behavior is correct. He tp's from post office to post office and waits for the time set in config.yml, then moves on to the next post office. The postman should not be stuck, and this indicates a navigation problem.
Make sure you have speed in config.yml set to 1.2 Also make sure in the Citizens config.yml the switch 'use-new-finder' is set to false. You can enter 'postal wtalk' at the console to see if there is any watchdog chatter, there should be none.
If you are still stuck, I need a pastebin of your server log, and what platform you are using.
Hi mc facilitator Love this plugin, I can help with a how to video if you like :)
Also one issue I have I have denizen and quester on my server It seems postal is causing a lot if ram load on my server, as in 4 players take 11 gb of ram I've had to deactivate at moment and we're back to 800mb
Is there a conflict somewhere ill pm server address if you want to check it out
Hi Plugin Manager: :)
First of all, i just wanted to say that this plugin is a huge hit on my server.
But i do have a technical issue that may be in the plugin department.
I have the latest build. And i have several towns set up. But they all have one common issue.
( i have deleted the entire plugin and all of its data to try to solve the issue )
The issue is the Post-Master at every local post office, Dissapears almost constantly.
And the postman just stands there and there is tons of mail in the post office box, waiting to be delivered.. In my main town i probably have about 13 houses, and they all actively send mail, but the postmaster vanishes, and the postman is clueless and just looks at you lol.
Thanks for any help you can provide, and if i need to post any more information about my server i will. I am running the latest build of citizens 2 and have 6GB of ram in my server. not very many plugins.
Thanks Again!