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
Is is possible to get more than 1 postman for a single local post office? he's being run ragged and it's taking him over a full game day to make his deliveries.. :/
Latest 3.2 pre-release features a new door navigator, completely re-written and optimized for Postal. Improve efficiency and accuracy. There is a new config file setting, 'strict_door_nav' that may used to further enhance efficiency. If this is set to 'true' Postal will only scan for doors when the waypoints on either side of the door line up properly on either a horizontal or vertical axis. This matches what is illustrated above in the waypoint editor page, and is pretty much what Postal has always expected for doors.
If left 'false' Postal will allow a little slop on door layout, yet Postal still is able to skip the door scan if the door pair is too far out of alignment, so the efficiency is still pretty good, overall.
So, either way, Postal now only scans for doors when the consecutive waypoints are fairly close and on the same axis.
Latest 3.2 cut has a new config file setting 'Private_mailboxes' that limits general mailbox access to as-needed, or owner privileges only.
On the Citizens site, Postal page.
@Proxwian
I could make owned mailboxes private - only viewable by owner, PO owner and admin.
I guess I could only allow a player to open a public mailbox if it contains mail addressed to the player. But, griefers could circumvent that by sending mail addressed to themselves to the mailbox they want access to. I could prevent sending mail to self, but the griefer could have a partner do it. This seems problematic....
I should have a pre-release preventing the /package problem very soon.
edit: A pre-release version 3.2 is available on the Citizens site, Postal page. WG and Towny build permissions are required to use /package command. Postal was already preventing the use of Postal chest anywhere, and this has been made clearer.
I understand the issue better now. You need build permission to place a potential package in the first place, but that doesn't stop mischievous kids from trying to /package any existing chest in sight. Hopefully, this takes care of that problem.
I am going to create a new config file setting option that will keep mailboxes sealed as much as possible. I am still looking for input on mail security. I am interested in simplicity, usability and security.
Postal 3.2 pre-release updates will be kept current, and go by time stamp. I encourage anyone able to use pre-releases to use these cuts because they include a lot of bug fixing resulting from recent code reorganization as well as the MC 1.6 changes and big Postal 3.x release. Bukkit turn-around has been sluggish lately
@mcfacilitator
Yes, add check, when players create packages and do anything with private the mailboxes. It very important for big servers
@Proxwian
I see. creating a package, creates an indestructible object intended to be grief-proof until it is picked up by the postman. If the shipper is never mailed you end up with that break-proof chest just sitting there. So Postal just needs to check WG and Towny build permissions before allowing the /package command? Is that all that is needed there?
I will check out mail security, it might have been disrupted during the recent code reorganization. That's always a bear because it involves testing with different names and permissions. Any help narrowing down specifics would be greatly appreciated.
Postal needs to do mailbox security because the sign is part of the chest/sign/postal-log data object. Any other plugin trying to manage a Postal chest will lose because Postal checks the chests regularly and will repair anything done to the mailboxes ie: a Lockett sign.
@mcfacilitator
I Know about it, but players can make packages in others WG and Towny regions (stay on chest and make package from it, even if it private), its griefing!!! And private system not work: any player can pick mail from any box. I tried to private mailboxes with WG, Lockette or LWC and this didn't work because anyone can open the chest by clicking the sign on it :( Please fix it
@Proxwian
Postal checks build permissions for WG and Towny when using the /accept command to accept a shipment. It should not allow a player to accept a shipment anywhere a player is not allowed to build. Is this not working right, or am I missing something?
As for mail security, Postal allows anyone access to view mail in any chest so they can see who it is for. Mail addressed to a specific player may only be accessed by the sender, the recipient, post office owner or admin. If the mailbox is owned, mail in it may only be accessed by the owner, sender, PO owner or admin. Please let me know if it is not working this way.
The mail sender may secure a letter to another player by using the third parameter in the /addr command, or using the /att command on an addressed letter. A letter addressed thusly should be secure even at a public mailbox. That is why the ability to look in any mailbox is not restricted, so folks can look in general delivery mailboxes for mail addressed to them. They can look, but not necessarily access...
I am open to ideas, but I need more specifications...
New illustration on the waypoint editor page illustrating correct waypoint layout for door navigation.
Please remove Click To open function and add check region (WG and Towny) while creating package. Players steal mail from other players. Or add private support.
P.S. This is GREAT plugin! THX you, you AWESOME!!! P.P.S. Sorry for my English :(
Version 3.15, just submitted to Bukkit:
Compiled under Java 6, Bukkit 1.6, Citizens2 api 209
Fixed a stack trace involving cached npc's when deleting a post office, hot.
Added /move command to the waypoint editor. Facilitates waypoint relocation, out of sequence.
Also added to waypoint editor, HUD display is an elevation reading for the target address. Compliments the compass to help maintain orientation when laying waypoints from the post office to the address in a 3d situation like a big building, or cave system.
Added /cod command enabling C.O.D. shipments to other players.
New configuration file setting to define the COD surcharge to the normal shipping charge.
Improved color visibility for message system.
New config setting controlling whether waypoints are dynamically set in the ground, or first air block above ground.
Fixed problem using /setlocal when name is a subset of an existing name.
Worth noting, as there may be applications for this:
If you don't care how the postman gets from the post office to the address, or about dynamic speed control, or have doors to navigate, you could define a route with just two waypoints. One at the post office, the other at the residence. Make sure alt navigation is false, give it plenty of range and have the npc avoid water. If there is any possible way for the npc to get to the address, it will find a way. It is impressive. This is a relatively new observation I have made in testing all the nav options.
Btw, if you have water, build a bridge - the npc will find it. Like I said, impressive....
Ok. I tried it. No errors. Thx :D
@mcfacilitator
Ok. Ill try that :D
@foreverblu
Bukkit is compiled for 6, but Java 7 is backwards compatible and contains more than a years worth of evolution and improvements. Anyway, I would say that is definitely the problem with Postal.
Try the version 3.15 on the Citizens2 site, Postal page. It is compiled w/Java 6. Postal stays within the Java 6 api.
@mcfacilitator
Ill try to get the latest devoloper build and see. And just some info I use java 6. I downgraded because some software werent compatible.
@foreverblu
I think that is Java. Are you current? Are you running the current developer build of Citizens?
http://ci.citizensnpcs.com/job/Citizens2/901/
2013-07-14 18:09:14 [SEVERE] Could not load 'plugins/va_postal_3_1.jar' in folder 'plugins' org.bukkit.plugin.InvalidPluginException: java.lang.UnsupportedClassVersionError: com/vodhanel/minecraft/va_postal/VA_postal : Unsupported major.minor version 51.0 at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:184) at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:305) at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:230) at org.bukkit.craftbukkit.v1_6_R2.CraftServer.loadPlugins(CraftServer.java:239) at org.bukkit.craftbukkit.v1_6_R2.CraftServer.<init>(CraftServer.java:217) at net.minecraft.server.v1_6_R2.PlayerList.<init>(PlayerList.java:56) at net.minecraft.server.v1_6_R2.DedicatedPlayerList.<init>(SourceFile:11) at net.minecraft.server.v1_6_R2.DedicatedServer.init(DedicatedServer.java:106) at net.minecraft.server.v1_6_R2.MinecraftServer.run(MinecraftServer.java:391) at net.minecraft.server.v1_6_R2.ThreadServerApplication.run(SourceFile:582) Caused by: java.lang.UnsupportedClassVersionError: com/vodhanel/minecraft/va_postal/VA_postal : Unsupported major.minor version 51.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) at java.lang.ClassLoader.defineClass(ClassLoader.java:615) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) at java.net.URLClassLoader.access$000(URLClassLoader.java:58) at java.net.URLClassLoader$1.run(URLClassLoader.java:197) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at org.bukkit.plugin.java.PluginClassLoader.findClass0(PluginClassLoader.java:80) at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:53) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:249) at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:173) ... 9 more
Whats wrong here? I have the latest current Bukkit build...and latest citizens 2.0.9 alpha 2 build...
New 3.15 test cut on Citizens site with new /move command for waypoint editor. It is now possible to relocate mid route waypoints, out of sequence. I have also added single letter aliases for all the editor commands - see waypoint editor page above.
There is a new pre-release Postal 3.15 on the Citizens site, Postal page. Up for testing. It has the new COD (cash on delivery) capability. A shipping method that allows a shipper to charge for a shipment. The recipient may either /accept and pay for the shipment, or /refuse and return the shipment. I will better explain on the economy page above.