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
@HammerHedd
The dispatcher queues and tasks are the only things that get rebuilt on startup, or restart. They are at the very bottom of the file and normally not seen. The config data should be stable. Do you stop the server properly? Ie: type 'stop' at the console. Never stop the server by closing the parent window.
Other than that, I need more info on platform and versions to try to help...
Is there a proper place to submit a ticket?
Each time I restart my server (every 6 hours), the config.yml seems to be rebuilding itself, and thereby deleting the central post office, etc. Have I done something wrong somewhere in a config for postal or citizens?
Just to continue the talk concerning competing protection plugins also using a sign to identify the object of protection. The example presented to me below is the first that demonstrates that Postal can unintentionally affect data objects other than Postal chests, so I have decided to just do what I can to protect them. For a start, I will have Postal ignore chests with a sign containing "[private]" on the first line. Maybe that is all that is needed. I will probably make this a config file option, and it will appeare in the pending pre-release soon.
Anyone feeling like helping here, please refer authors of other sign based protection plugins to my last paragraph here.
Edit: More sign notes; I haven't been able to take over a Postal chest with Lockette, as Postal seems to effectively override any activity on the front of the chest, so that is one less griefer hole to worry about. I'm glad this issue came up because it made me aware of yet another way Postal can assist griefers. I am not going to spell it out here. I did notice on a double chest belonging to Postal, if a sign were placed on the other half of the chest, the Postal heading, complete with color formatters is put on this second sign. Postal is not doing this, and this is probably helping to confuse issues.
The algorithm Postal is going to use can be a little simpler; if a chest has a sign anywhere on it, and it does not belong to Postal, Postal will not use it or do anything with it, regardless of what is written on any of the signs. That would probably be a good rule of thumb for other plugin authors, if they are not already doing this. IE: Before using chest, and already know it is not yours - check N,S,E,W for a sign and don't use if a sign found. If inventory slots > 27, find other half, and do the same thing.
@Hmmcrunchy
Need to narrow down the problem. I don't see any evidence (yet) of this issue having anything to do with Towny support. This seems to be a general problem with the chest/mailbox identification process. Postal may accept a properly ID'd chest past that search_distance if it finds one, I need to study the source. So you may be dealing with ruminants of the original problem.
How far away are these wrong chests that are being converted?
I haven't tried Deadbolt, and will give it a look soon.
Just to clarify the chest initialization; when the route is created new, Postal sync's the location where /setaddr was marked with the last waypoint of the route defined for it. This is done to remove any ambiguity between the end of a route and the defined location of the address. Postal expects to find a chest there, and this becomes the new, formal address location. If the mailbox is moved, and /setroute is used to relocate the final part of the path to the mailbox, the address will follow this new, last waypoint. Postal does limit the distance a mailbox may be moved to prevent wild problems, 10 blocks I think.
The best thing to do if you get screwed up over this route/address definition is to just /deleteaddr and do it again (and clean up any wrong marked chests using the same name). Also, it is a good practice to put the chest down first, then, standing in front of it, do /setaddr and /setroute. I should make this a requirement when using /setaddr for a new route.
Edit: Yes, Postal was accepting properly ID'd chests past search_distance. I changed that to strictly honor this setting. The current pre-release (3.3) has this change.
Had a look at Deadbolt. I have to be careful about what I do to protect such chests because I could easily compromise Postal security. If I simply had Postal ignore chests with '[private]' on the top line, anyone with Deadbolt permissions may simply override any Postal mailbox and take it over. If that were done right now to a Postal mailbox, Postal will automatically fix it, and that might be what you are experiencing. You now have the ability to strictly limit Postal's range for a chest, and Postal would never go any further anyway upon discovering the first named chest that matches what is defined in yaml.
The bottom line is that both plugins use the sign as part of the data object. Both plugins probably need to specifically respect the other as the best solution. I need to think about this a little, and am wide open to ideas.
@mcfacilitator
dont think so as i havent opted in to it
ive also lowered the search distance to 3, but it seems to be grabbing chests in other towns which don't have a post office or any address anywhere near.
the current guy im trying to sort has no boxes near at all, and all his house chests are turning into mail chests, and just found out that it is removing the deadbolt protections when it does that too which is a bit of an issue
is it a clash with deadbolt?
@tjjerome
I'm not familiar with DonationCraft.. If you give me a little more info about what is desired, I will certainly consider it.
@Hmmcrunchy
Are you sure the chests are being assimilated under Towny definitions? For example, are Towny mayors or staff names ending up on Postal chests?
If you have opted out of Towny, this should not happen, and if it is, I need to fix it.
Postal uses the last waypoint of a route as the starting point to find the Postal chest. If the intended chest is not close to this point it will look for it up to the search_distance value set in the config file. If this is the problem you can reduce that search_distance value to minimize the search reach, and keep the last waypoint of the route near the mailbox. Let me know..
@xanderortiz
I don't see anything wrong with the Bukkit build number. Are you current on Citizens? Any other info you can give me about how the error comes up ie: immediate, or after a while... will help me. And, does Postal run at all, or not?...
The offending line calls the routine that controls the central Postmaster.
Have you considered adding a console command to give kits to players through plugins like DonationCraft?
hi MC :) just a little issue i don't have towny feature turned on on my server although postal seems to be assimilating nearby chests into the postal collective.
ie player has mailbox at front door, chest storeroom at back, the chests in the back room are gradually turning into postal chests, with all their kit in. they need an admin to break them to get the stuff out, we're not adding any more routes or chests once all house have post boxes.
any help is, as always, appreciated :)
@mcfacilitator
Help with this error please? And my server has 5 GB RAM and is suddenly down to less than 400 MB at all times since this error spams the console. I'm using version 3.25 with Bukkit 1.6.2 dev build #2824. Thanks:
05.08 00:07:03 [Server] INFO ... 20 more 05.08 00:07:03 [Server] INFO at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425) 05.08 00:07:03 [Server] INFO at java.lang.reflect.Method.invoke(Method.java:606) 05.08 00:07:03 [Server] INFO at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 05.08 00:07:03 [Server] INFO at sun.reflect.GeneratedMethodAccessor105.invoke(Unknown Source) 05.08 00:07:03 [Server] INFO at com.gmail.nossr50.listeners.PlayerListener.onPlayerTeleport(PlayerListener.java:79) 05.08 00:07:03 [Server] INFO Caused by: java.lang.NullPointerException 05.08 00:07:03 [Server] INFO at net.minecraft.server.v1_6_R2.ThreadServerApplication.run(SourceFile:582) 05.08 00:07:03 [Server] INFO at net.minecraft.server.v1_6_R2.MinecraftServer.run(MinecraftServer.java:419) 05.08 00:07:03 [Server] INFO at net.minecraft.server.v1_6_R2.MinecraftServer.s(MinecraftServer.java:486) 05.08 00:07:03 [Server] INFO at net.minecraft.server.v1_6_R2.DedicatedServer.t(DedicatedServer.java:226) 05.08 00:07:03 [Server] INFO at net.minecraft.server.v1_6_R2.MinecraftServer.t(MinecraftServer.java:522) 05.08 00:07:03 [Server] INFO at org.bukkit.craftbukkit.v1_6_R2.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:345) 05.08 00:07:03 [Server] INFO at org.bukkit.craftbukkit.v1_6_R2.scheduler.CraftTask.run(CraftTask.java:53) 05.08 00:07:03 [Server] INFO at com.vodhanel.minecraft.va_postal.common.VA_Dispatcher$2.run(VA_Dispatcher.java:43) 05.08 00:07:03 [Server] INFO at com.vodhanel.minecraft.va_postal.common.VA_Dispatcher.A0001(VA_Dispatcher.java:79) 05.08 00:07:03 [Server] INFO at com.vodhanel.minecraft.va_postal.common.VA_Ping.A0003(VA_Ping.java:185) 05.08 00:07:03 [Server] INFO at com.vodhanel.minecraft.va_postal.common.VA_Ping.A0001(VA_Ping.java:270) 05.08 00:07:03 [Server] INFO at com.vodhanel.minecraft.va_postal.common.VA_Ping.A0001(VA_Ping.java:344) 05.08 00:07:03 [Server] INFO at net.citizensnpcs.npc.CitizensNPC.spawn(CitizensNPC.java:187) 05.08 00:07:03 [Server] INFO at net.citizensnpcs.npc.AbstractEntityController.spawn(AbstractEntityController.java:28) 05.08 00:07:03 [Server] INFO at net.citizensnpcs.npc.entity.HumanController.createEntity(HumanController.java:25) 05.08 00:07:03 [Server] INFO at org.bukkit.craftbukkit.v1_6_R2.entity.CraftEntity.teleport(CraftEntity.java:198) 05.08 00:07:03 [Server] INFO at org.bukkit.craftbukkit.v1_6_R2.entity.CraftPlayer.teleport(CraftPlayer.java:375) 05.08 00:07:03 [Server] INFO at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462) 05.08 00:07:03 [Server] INFO at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477) 05.08 00:07:03 [Server] INFO at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) 05.08 00:07:03 [Server] INFO at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427) 05.08 00:07:03 [Server] INFO org.bukkit.event.EventException
I have noticed my routes getting longer and more detailed, some over 50 waypoints. This motivated me to do some more work on the waypoint editor. This will be welcome news to anyone else that needs to manage long, detailed routes.
Here are the release notes so far for 3.3, available for pre-release testing:
Version 3.3 The /gps command was configured to override any competing /gps commands, for the sake of consistency. If GPS or gpsTowny is being used, use the alternate commands /gpse and /gpst, respectively. Both are my own plugins, so I am entitled to assign which plugin owns the ‘/gps’ command. Postal was first, so….
Distributions, or mass mailings were changed so not to trigger new-mail flags on the last version. This change was not entirely incorporated. While the mailbox sign was fixed not to show new-mail, the yaml database was still being flagged, thus causing undesired new-mail notifications. Now fixed.
More detailed door articulation added to the npc as it navigates through doors. The npc now looks at the door as it opens and closes the door. This appears more natural. This feature requires the absolute latest version of Citizens2.
Owned mailboxes not properly clearing new-mail indicator on Postal sign. Fixed. ‘[Postal_Mail]’ on the top line of a Postal sign’ed mailbox is normally green. When the mailbox contains unread mail, it turns red. This should clear when the chest is opened by a qualified player. Owned mailboxes can only be cleared by the owner (not even an admin can clear it), Server mailboxes may be cleared by anyone.
Waypoint editor expansion. Complementing the recent /move command facilitating mid route moving of waypoints, out of sequence, are two new commands: /insert and /remove. As they imply, these commands may be used anywhere on a route. A good example of where /insert is very valuable is a long, detailed route where the point between door pairs was forgotten. In previous versions of Postal one would have to sequentially backup until the desired part of the route is reached, and add the waypoint, then do the route again.
Also added to the route editor is a waypoint inquiry command which is just the ‘/’ (forward slash) alone. Once invoked, left clicking existing waypoints will report the formal sequence number. Dense and complicated routes sometimes get disorienting, this is a good tool to verify sequence.
The waypoint editor has basic /first /mid and /last commands to roughly position on a route. Complimenting these is a new ‘/pos <sequence number>’ command facilitating precise positioning, instantly via teleport.
/setroute behavior has been modified. If invoked using the proximity sensing by simply invoking it without parameters, near an address, it will only move the player to the last sequence number if the route is not complete, or new. Invoking /setroute with parameters will only move the player closer to the route if he/she beyond visible range of the nearest waypoint on the route, or if the route is not complete. While the sequence control of waypoints is crucial, the editing methods are now not sequential, thus eliminating the need to start players at the end of a route.
Version 3.25 Submitted to Bukkit:
Postal is starting to feel less like a technical marvel that is surprising even works, and more like a commodity that works as expected. I consider this cut to be about where this concept starts. I had a false alarm with the last cut because of one missing line of code, and the recent addition of api support served to slow down getting to this point, but I believe it is here. This cut has a lot of reorganization and improvements made with the benefit of a better understanding of where Postal can fit into the Minecraft/Bukkit system.
Navigation has been pretty much re-written from scratch, and supports advanced Citizens2 capabilities. Mail and mailbox security has been overhauled and made more complete. Commands have been consolidated and simplified, and, they take advantage of player proximity, where applicable.
I am going to create a ‘what’s new’ section above and document the new feature so folks don’t have to sift through the release notes to figure it out.
Version 3.25
Geographic distances changed from 2D distances to 3D distances to accommodate accurate proximity readings in structures or caves.
New smart player command '/setowner'. Will automatically determine the Postal object by the number of parameters used with the command. Used with no parameters assumes that the nearest Postal object will relinquish current ownership. Used with one parameter, the parameter is assumed to be a player name and Postal will find the closest post office or address and use it. Two parameters assumes a post-office and player-name. Three parameters assume a two part Postal address and a player name. This command consolidates '/ownerlocal' and '/owneraddr' into one easier-to-use command. '/setowner' also fits nicely into the Postal '/setxxx' family of commands and is easier to remember. The proximity feature is only valid within 10 blocks of the PO or address.
Fixed door sound effect so not to duplicate redundant door open/close effects issued by the watchdog system.
New mail check expanded to, in addition to checking at player join, check new mail for online players at a defined interval. This interval is set in the configuration file and defaults to every five minus (300 seconds). Set to zero to disable this notification. The configuration node is: 'settings.new_mail_secs' Players receive a notification only if there is new, unread mail at an address they own. This is one of the privileges of ownership, Mail sent to a specific player that does not own the receiving address will not be notified. Such mail is still secured, but there will be no notifications. Distributions (junk mail) no longer trigger new-mail flags. The thought is that mass mailings should not be treated the same as personally addressed mail. Besides, such mail eventually expires and could potentially leave phantom new-mail flags set. Last re-organization of mail security left the new-mail clearing mechanism out of the loop. Now fixed.
Npc was not reliably carrying in his hand the book or chest when delivering. Fixed. Like Pickup, the npc shows what he is carrying on delivery.
Missed a line of code that broke the dispatcher on 3.2 Promoted schedules were not being reset, thus preventing the npc from progressing to his next route. There is no point in leaving a version of Postal out that has a flaky delivery system....
Refinement made to player listeners, particularly the player interaction listener to prevent unnecessary security processing of player type npc's (postmen).
New-mail flag now only clears when mailbox owner opens the mailbox. Formerly, anyone opening the mailbox would clear the new-mail flag. Server owned mailboxes still clear when chest is opened by anyone.
New console monitor to observe permission activity on the console. Type 'postal ptalk' at the console to toggle it on and off. Shows the origin of allowed access, where applicable ie: Vault, Bukkit, Towny, or Postal. Postal owner permissions are detailed with everything Postal uses to decide owner access. This should be a big help in debugging permissions as well as understanding what Postal is doing.
Post office chests have been made accessible even when the private mailbox option is set. This gives a Postal users a place to mail letters if they don't own a mailbox. In non-private mode, the default, access is unhindered and players may deposit or retrieve mail items they have access to.
In private mode, post office chests will accept mail, but that is all. They are otherwise locked down to all players but admins and PO owners. Once a letter or shipment is put into a post office chest, like a real mailbox, it may not be taken back out.
Basic security flaw (hole) with double chest mailboxes identified, and fixed. This was the cause of much security confusion. The new permission console helped identify and fix this issue.
Version 3.2 (pulled)
Dynmap stack trace on postal restart. Recursive use of resetting routine not stopped at the appropriate time, now fixed.
Route editor listener priority re-sequenced. Code re-arrangement from a recent version went from a single player interaction listener to two, but priority was not correctly defined. The symptom was an occasional inability to mark waypoints in the route editor.
Door scanner completely re-written. Improvements made to efficiency, accuracy and range.
WG and Towny build permission now required where /package command is used, where applicable. Added for grief prevention.
New config file setting 'Private_mailboxes' can limit general mailbox access to as-needed, or owner privileged. More grief prevention.
General overhaul of mail security system to reflect clearer goals resulting from normal plugin evolution.
Big work done on navigation. Along with the new door scanner, better articulated door navigation was put into place. Replaced the built-in StuckAction handler in Citizens2 with one designed for Postal. This replaces the old, detailed npc watchdog. Npc's quickly recover from most challenges, including door navigation problems without the need to teleport. Along with better navigation controls, the emphasis of the recent navigation work in Postal was efficiency.
The overall speeds have been re-calibrated to match the current version of Citizens. It is recommended that the speed setting in 'config.y
@tjjerome
Yes, it would seem so. Originally Postal was capped at 10 post offices because of this concern.
As it turned out, the cap was removed because it was not necessary. I can't even say where the practical limits are. I just keep adding post offices and the ticks keep coming up 20. I have a 3 gig world, Earth, with about 25 post offices.
That is my experience, and I would encourage you to give it a try and tell me yours. Postal is designed to be efficient, as is Citizens2 and Bukkit. I still look at the complexity of all this and am amazed that it all works as well as it does.
How intensive is this on the server? The chunk management feature seems like it would take up a lot of RAM.
OK, 3.25 is back up for pre-release testing. I will sit on it a little bit before re-submitting to Bukkit. That will teach me not to feed my monks...
Version 3.25
Geographic distances changed from 2D distances to 3D distances to accommodate accurate proximity readings in structures or caves.
New smart player command '/setowner'. Will automatically determine the Postal object by the number of parameters used with the command. Used with no parameters assumes that the nearest Postal object will relinquish current ownership. Used with one parameter, the parameter is assumed to be a player name and Postal will find the closest post office or address and use it. Two parameters assumes a post-office and player-name. Three parameters assume a two part Postal address and a player name. This command consolidates '/ownerlocal' and '/owneraddr' into one easier-to-use command. '/setowner' also fits nicely into the Postal '/setxxx' family of commands and is easier to remember. The proximity feature is only valid within 10 blocks of the PO or address.
Fixed door sound effect so not to duplicate redundant door open/close effects issued by the watchdog system.
New mail check expanded to, in addition to checking at player join, check new mail for online players at a defined interval. This interval is set in the configuration file and defaults to every five minus (300 seconds). Set to zero to disable this notification. The configuration node is: 'settings.new_mail_secs' Players receive a notification only if there is new, unread mail at an address they ownn. This is one of the privileges of ownership, Mail sent to a specific player that does not own the receiving address will not be notified. Such mail is still secured, but there will be no notifications.
Distributions (junk mail) no longer trigger new-mail flags. The thought is that mass mailings should not be treated the same as personally addressed mail. Besides, such mail eventually expires and could potentially leave phantom new-mail flags set.
Last re-organization of mail security left the new-mail clearing mechanism out of the loop. Now fixed.
Npc was not reliably carrying in his hand the book or chest when delivering. Fixed. Like a pickup, the npc shows what he is carrying on delivery.
Missed a line of code that broke the dispatcher on 3.2 Promoted schedules were not being reset, thus preventing the npc from progressing to his next route. There is no point in leaving a version of Postal out that has a flaky delivery system....
I had to pull 3.2 because I inadvertently broke the dispatcher and didn't know it. Will be replaced with 3.25, ASAP
There are many big improvements and I want to get them out. Please stay on 3.15 in the meantime.
I have been told that Postal should do more to inform players of new, unread mail addressed to them, or in a mailbox owned by them.
Should Postal periodically inform players of new mail while they are online?
Postal 3.2 just submitted to Bukkit
In one word 3.2 is all about Navigation.
Efficiency, Elegance and Effectiveness
It is a product of immersion. 10 monks were locked up and not fed until they finished this. They did, and they are fine (now).
Here are the release notes:
Version 3.2
Dynmap stack trace on postal restart. Recursive use of resetting routine not stopped at the appropriate time, now fixed.
Route editor listener priority re-sequenced. Code re-arrangement from a recent version went from a single player interaction listener to two, but priority was not correctly defined. The symptom was an occasional inability to mark waypoints in the route editor.
Door scanner completely re-written. Improvements made to efficiency, accuracy and range.
WG and Towny build permission now required where /package command is used, where applicable. Added for grief prevention.
New config file setting 'Private_mailboxes' can limit general mailbox access to as-needed, or owner privileged. More grief prevention.
General overhaul of mail security system to reflect clearer goals resulting from normal plugin evolution.
Big work done on navigation. Along with the new door scanner, better articulated door navigation was put into place. Replaced the built-in StuckAction handler in Citizens2 with one designed for Postal. This replaces the old, detailed npc watchdog. Npc's quickly recover from most challenges, including door navigation problems without the need to teleport. Along with better navigation controls, the emphasis of the recent navigation work in Postal was efficiency.
The overall speeds have been re-calibrated to match the current version of Citizens. It is recommended that the speed setting in 'config.yml' is set to '1.0'
@Sylevar
The best strategy for a lot of mail traffic is more post offices. Bear in mind that I am talking about actual mail movement when I say 'traffic'.
If there is not a lot of actual mail traffic, one Postman can service quite a few addresses because he will prioritize the actual deliveries and pickups. The Postmaster does the same thing. Even if you have them take long breaks at the post office, they will interrupt their break to deliver or pickup. So, if you had 50 addresses for one postman, he may not get around to walking all the routes in a day, but, depending on the traffic scale, he might handle what is actually mailed just fine.
My best advice is to build a lot of post offices. Postal is designed for this.