Notes

System Notes

Config.yml

'Concurrent_postmen' in config.yml controls the route scheduling. Set to 'true' to have all post offices run concurrently. The postmen run their routes continuously, oldest route, next. However, Mailed books are detected when mailed, and preempt the regular routes. Actual mail always takes precedence over general, route walking. A post office with 30 routes will still move the mail along efficiently.

This 'Concurrent_postmen' setting defaults to ‘false’ for conservative reasons. The original intention was to provide a way to dumb down Postal for performance reasons, but frankly, I just haven’t seen performance impacted by having many post offices running simultaneously. I would love to take credit for this, but it goes to the Citizens2 builders, and of course Bukkit & Minecraft. I’m just the messenger… My suggestion is to set it to ‘true’ unless there is another reason besides performance to slow things down. The most noticeable impact of leaving it ‘false’, besides slower mail processing, would be having the postman spend more time in the post office. ‘postal conc’ at the console turns this feature on and off.

The ‘Speed’ setting is an overall speed scaling factor applied to the NPC postmen. The dynamically calculated speed Postal comes up with is multiplied by this factor. The allowed range is 0.5 to 2.0. In other words you can cut the speed in half or double it. Anything outside this range will be discarded, and default to 1.0. This factor may also be experimented with live using ‘postal speed <factor>’ Waypoint spacing is the primary speed control facilitating desired speed variation where needed. Use this setting to make general speed adjustments affecting all post offices. If there are variations in actual speed from system to system, this is a way to compensate for it.

Route Editor

One person may use the route editor at a time. Postal will enforce this, and even tell you who is using the editor if it is occupied.

Route Control

‘postal start/stop’ besides the obvious administrative use, provide what is needed for controlling the route walking schedule. There have been requests for this, but that might be a good job for another scheduler plugin. This provides a way to turn the automatic system on and off. /expedite makes it possible to prioritize routes while retaining the existing, preemptive mail servicing built into Postal. The /openxxx family of commands make it possible to open and close addresses as well as an entire post office and the routes it serves. Mail will still be delivered and held at the post office, it just won't be delivered to the address.

Route Management

/deletelocal will delete a post offices along with all of the addresses it services. /deleteaddr will delete a single address. Current versions of Postal allow this to be don hot, without the need to restart Postal.

Console Monitors

There is a set of console monitors that may be very helpful for troubleshooting. They all default to off. When 'Concurrent_postmen' is true, there is just too much general activity taking place to try to report in general. These monitors allow progress information to be separated, categorically. They can also be mixed and matched any way desired. They are my primary diagnostic tools, even more important than the server log.

‘postal wtalk’ turns the watchdog monitor on. Postal will print console messages about NPC navigation problems as they occur. If you see nothing – congratulations, that is perfect and not unusual. You will see messages when NPC’s have trouble walking their routes. I hate to say it, but it is this monitor that is the first to alert me of griefing, like someone blowing up a city ;-) The NPC’s make quite a fuss when they can’t find their mailboxes or walk paths. It also serves as a very good barometer indicating the Citizens2 navigation performance of a particular build. If there is a navigation issue with a particular build, I will see it here. I won’t even have to enter the game.

If there is ever a mystery concerning why the postman is selecting a particular chest, use ‘postal cstalk’ to monitor the dynamic chest decision making. ‘postal chests’ will give you a live list of post office chest locations. There is no such list for residence mailboxes because the postman has no pre-conceived notion about its location. Residents are constantly making property improvements and relocating their mailboxes. The postman just hopes it is within 10 blocks of the last waypoint.

‘postal qtalk’ turns on the queue monitor. This gives you a waypoint by waypoint breakdown of navigation progress, and queue status with the queue/task queue-pair. As is true for all of these console monitors, this one is much easier to follow when 'Concurrent_postmen' is false.

Use ‘postal mtalk 2’ to broadcast all mail movement. The journey of a letter from pickup to postmaster handling to delivery is announced. Other than diagnostics, this may be desireable on smaller sytems not using address ownership to keep the players informed of mail that might be for them.

Release Notes

Version 3.3

The /gps command was configured to override any competing /gps commands, for the sake of consistancey. 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.

Postal was accepting correctly id’d chests past the defined search_dist in the config file. Changed to strictly honor this setting.

New config file setting ‘allowed_geo_proximity’ specifies the maximum distance a player may be away from a Postal object when invoking a command using proximity sensing. Ie: /setroute, /showroute, /setowner….

/setaddr and /setlocal commands changed to enforce placing chest to be the mailbox or mail storage, first. A better practice, and eliminates potential confusion during route definition.

/setroute and /expedite now automatically open the indicated route, if currently closed. Often the dispatcher will close a route while it is being worked on because it is found invalid. Now the finishing of a route or the explicit /expediting of a route implies that the route should be open.

Additional change to /setaddr and /setlocal commands. Sign is placed on the chest immediately upon successful completion of the command. This is another measure designed to further decrease potential confusion about who, or what plugin owns the chest. /setaddr now requires the target chest to be placed in advance, and the player must be within a couple of blocks of the chest. This is the best time for Postal to claim ownership of the chest. There are further restrictions placed on what constitutes a valid chest described below.

In consideration of other plugins that use signs to manage chests, Postal now checks the validity of a target chest before it will attempt to use or manipulate it in any way. if a chest has a sign anywhere on it or adjacent to 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. IE: Before using chest, and already known that it is not Postal’s - check N,S,E,W,U, D for a sign and don't use if a sign found. If inventory slots > 27, find other half, and do the same thing.

Added to the /package blacklist is any chest with a sign on it, or adjacent to a sign. This is griefer prevention.

Distributions were unnecessarily being protected. Fixed. Now available to anyone with mailbox access.

Postal shipments not effectively sealed. Fixed. Shipments are inaccessible and unbreakable to everyone unless the original shipper is in hand.

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 user 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.yml' be set to '1.0'

Version 3.15

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.

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.

Version 3.0

An economy implementation has been added. Vault is used to facilitate the economy. The economy must have bank support. There is a new economy section in config.yml, and it must be opted-in to use. It defaults to 'false'.

POSTAGE: Postage is collected at the time a letter is addressed, or a shipping label is created. This is facilitated by the /addr and /package commands. Rates may defined for letter or package, and local and out of town.

PURCHASED ADDRESS: The cost of an address is defined. Address owners enjoy pickup and delivery at their own mailbox, located where they put it. Owner's mail is secured and they get personal notifications of new mail, either online, or upon joining. Owners show up in the /plist address book.

Towny plot owners automatically receive this if the funds are successfully withdrawn. Postal address owners pay for their address when the /owneraddr command is successfully applied with their name.

The proceeds of the address payment is divided equally between the post office the address is serviced by, and the central post office. Note that the post office may be owned, which means the owner has access to the funds, otherwise, the intrinsic value of a server PO/bank appreciates.

PURCHASED POST OFFICE: The cost of a post office is defined. The gross cost of a post office includes any balance it may be carrying, but the owner has access to the PO bank, therefore, that portion is less of a cost and more of a proof of financial stability.

Towny mayors automatically become the post office owners if the funds are successfully withdrawn from their town. Note that they can always transfer the funds back to the town after the ownership transfer takes place. Postal PO owners become such with the successful completion of the /ownerlocal command.

The proceeds of the post office payment goes to the central PO/bank. That includes only the price of the PO, and not any part of a balance that may have been part of the payment.

Postage for letters and shipments is divided equally between the parties involved in the pickup and final delivery of the letter or shipment. The local PO and postmaster are always involved because it could be a local correspondence with the local postman doing both the pickup and delivery. The postmaster is involved because he does the dispatching making sure local mail moves efficiently. So, it will be at least a 2 way split. Out of town postage involves another post office, thus becoming a 3 way spit. The price of postage may reflect this.

This postage revenue is the basis for post office ownership. Post office owners have a profit center that is capable of more than offsetting the purchase price. The profitability of a post office is based on how much it gets used. How popular a post office is should have a lot to do with a strategic location and promotion.

The central post office is like a federal reserve. Balances here are available for general infrastructure improvements and for NPC training. It is a server bank.

DISTRBUTIONS: The price of mass mailings is defined. The proceeds are divided up the same way postage is. Bukkit admins and post office owners, including Towny mayors, have access to distributions. The player is charged when using the /dist command.

/showroute, like /setroute, may optionally be invoked without parameters to have Postal select the closest address, within 50 blocks, automatically.

/setaddr expanded to allow one parameter. One parameter indicates to Postal that the closest PO is inferred.

Chunk manager expanded to manage added chunks used by new addresses added hot. The chunk manager also defines thr monster free zone if that switch in config.yml is on.

Version 2.995

Fix a nagging class-not-found problem when run without Towny or WG installed. Shows up on the /accept command.

General code clean up and optimization.

Hopefully the last pre-3.0 maintenance cut. That is; Postal without economy support.

Version 2.99

The most recent cut of Postal with the economy work stripped out. It has been successfully tested on various combinations of soft-depend plugins installed and not installed.

/setroute ceases installing the first point and chest, if one was not detected. It is not necessary with the new dispatcher, and was a source of other problems.

/setaddr does not allow the address to have the same name as a post office.

Quitting game while editing route caused a stack trace and loss of player quickbar as well as the route being edited. All fixed.

Set a limit on how close a player needs to be to an address to use the /setroute command without parameters. Player needs to be within 10 blocks of an address.

HUD display added to the route editor using the Scoreboard api. The player designing a route gets real-time updates of distances from the address, the PO and the last waypoint, as well as the total wayponts defined and the name of the address being designed. Postal checks to make sure the ScoreBoard class exists before using it to maintain backwards compatibility. There is also a switch in config.yml allowing the use of it to be turned off. The default is on.

Version 2.965

Bug preventing Towny opt-in from properly taking hold, fixed.

Work done on dispatcher to make it capable of creating new routes and PO's as well as deleting them, hot. Postal restart is no longer required for these types of changes.

Dynmap support, like the dispatcher, no longer needs to restart Postal to update addresses or PO markers. Changes affecting Dynmap now take place as they occur. Labels for post offices and addresses have a different format when in a Towny town.

Other improvements: /setroute no longer needs parameters. It will automatically select the address the player is closest to. The route editor now clears the quickbar so that you have nothing clunky in your hands while designing routes. It places a compass in the middle slot, which points to the address the player is designing the route for. Exiting the route editor restores the quickbar the way it was.

More geographic awareness implemented to the info listing commands. For example, /plist, without parameters, in addition to listing online players, now shows the distance and the compass heading to each player, as well as the closest Postal address or post office each player is near. The compass is always lined up with Minecraft coordinates to make the compass useful. [F3] is an alternative. Players listed this way only include the ones in the same world.

Version 2.96

Postal log kept out of general player hands to prevent using copies as a trade commodity.

Breaking a target mailbox after the postman left the postoffice was causing a non-serious stack trace. Now handled.

Aliases set up for the often used commands, documented on the help screens found by typing /postal without parameters. Also documented in plugin.yml, the source.

Item shipping with the /package command now includes extended definitions of items that carry details of the item type in the damage integer. Items like potion, that would be recieved as a water bottle, and colored wool that came as white wool. The written book is a free standing data container holding everything required to re-create the stocked chest it defines.

General tightening up of '/postal restart' to reinitialize all arrays and make sure outlaw goals for deleted npcs are cleared. These un-cleared goals were causing non- fatal, but messy stack traces that were hard to decipher. The cooling time for restart was extended to 10 seconds, from 5 seconds.

Dynamic waypoint adjustment now uses an expanded lookup table of blocks treated like air. ie: tall grass is not air, but it should be treated like air for the purpose of finding the actual waypoint block fed to the npc navigator. There are currently 34 of these types of blocks, up from around 10.

Geographical awareness implemented in commands like /tlist and /alist as well as the helper system designed to help a player locate and complete a desired address. For example, if /alist is entered without a parameter, the closest town will be selected and it's addresses listed instead of being shown a help screen. /tlist with no arguments displays the town list alphabetically as usual, but now includes the towns or post offices in the same world at the bottom of the list, by distance, so the player may be aware of what he/she is close to. The block distance and compass direction to the town are included.

Compass direction info now included in address and post office lists complementing the general, geographic info displayed. The compass directions are given in the standard Minecraft, compass directions [F3], and the compass automatically aligns itself to this coordinate system so that it may be used.

A new command: '/gps <PostOffice> [Address]' and perm node 'postal.gps'. This command sets the player's compass to either a post office location, or a two part address.

Version 2.95

Route and post office closing system implemented a few versions ago refined and expanded. POs or routes opened or closed with the /openxxx and /closexxx commands now stay that way through a server restart. This status is now in the database.

Upon startup, Postal now checks the defined post offices, addresses and central and determines if it has the bare minimum to start. If so, and configured to automatically start, it will proceed. Postal no longer refuses to start if it finds problems like an address without a route. It simply closes the route with a message and continues.

Address listing with /tlist as well as the command infrastructure is now Towny aware and responds to different contexts. Post offices in Towny towns are now considered children of that town. Post offices outside of Towny behave as they always have. What the player sees in messages changes depending on whether he/she is located in a Towny town. Console output reflects the Towny opt_in setting. Opted in clearly shows Postal post offices as children of a particular towny town, or Postal. The two part address remains the same and can be thought of as [PostOffice] and [address] pairs instead of the former [town] and [address]. Post offices in a Towny town will naturally be named something reflecting a part of the town. Outside of Towny, post office names will probably sound more like cities. It makes no difference to Postal. Postal concerns itself mostly with making the address, any address, easy to find, and getting mail and shipments there.

New config setting, 'Setings.Wpnt_hilite_id' contains a block id type, an integer below 256, decimal. This is the block type the waypont editor uses to highlight existing waypoints, and waypoints in progress. Thw waypoint editor now uses a lookup table containing valid block surfaces for waypoint marking. Nothing else is permitted. The highlighting method has changed. Postal formally marked waypoints with redstone dust. This became problematic in certain situations where the surface would not tolerated it, or an adjacent block lke a chest with a sign on it would not permit it since the sign is actually occupying the block above the desired waypoint block.

Postal now tightly controls the block type that may be used to mark waypoints. Highlighting may be safely done by temporarily replacing the marked block with something visible. The default is redstone block. There are no competing entities when the highlight is the surface block itself. The material type as well as the extended data are saved so that the original blocks are restored the way they were upon highlite removal.

This cut of Postal marks a deep integration with Towny. On Towny turf, Postal follows everything appropriate, as defined in Towny. There is nothing to do in Postal for Towny integration other than to opt in the 'config.yml' file. Postal updates itself as mayors and homeowners come and go. Even the names displayed on mailboxes and post office chests are kept current.

Towny owners and town staff automatically have the same privileges of ownership Postal owners have. Growth control based on a percentage of town blocks prevents misuse or abuse of Postal resources. Configurable in the configuration file.

Version 2.941

Location used to determine the owner of a Towny plot changed from the last waypoint on a route to the location of the mailbox chest.

Refinements to the Towny plugin detection to hopefully eliminate false positives on the status of the plugin.

Towny support expanded to automatically assign post office, ownership privileges to the mayor of the town the post office is located in. Like Towny owned plot integration, 'settings.towny' in 'config.yml' must be set to 'true' for this to be in effect.

Assistants to the mayor with the rank of 'postal' have admin privileges for the post office(s) in their town.

Postal automatically verifies and permits mayor, or ranked assistants to use the /setlocal command in their town to create one or mor post offices.

Defining new addresses with the '/setaddr' limitted to the mayor, or ranked assistants.

Towny plot owner may define their own, new route to the post office, but must be standing on own plot when invoking '/setroute' for the first time. This is not necessary for editing existing routes.

Subsequent changes in town mayor or plot owners are automatically registered by Postal. The absence of a mayor or plot owner results in 'Server' ownership. Ownership is verified and updated each visit to an address by postmen, and each visit to the post office by the postmaster.

Version 2.94

New soft depends on Towny and WorldGuard.

If WorldGuard or Towny are installed, item shipments may only be accepted in regions that the player has build permissions. This may be overridden with the node 'postal.accept.bypass'

Acceptable mailbox chests now include trapped chests.

New setting in 'config.yml', 'settings.towny'. It defaults to 'false'. When set to true any mailbox determined to be on a Towny plot will have the plot owner's name put on the mailbox. Towny plot owners will automatically enjoy the normal Postal ownership privileges. Unowned Towny plots will revert to 'Server' as the name on the mailbox. This applies only to Towny plots, and will override the Postal /owneraddr setting. Leaving 'settings.towny' at 'false' maintains the current behaviour.

Version 2.93

On server startup, postmen and postmaster cooling settings set to 10 seconds. When all of the postmen have been initialized, the settings in 'config.yml' are applied.

Mailed letter listener modified to not only prioritize the route it is on, but to also take the postman off his break defined by 'settings.postman_cool_sec'. As the number of post offices or towns continue to increase, admins may choose to define longer cooling periods for the postman to spend in the post office. This change will make the length of the postman's break irrelevant to the overall speed of the mail delivery because the postman will interrupt his break to pickup a letter that was mailed.

Postmaster preemptive mail handler modified to cut his break short for the same reason above.

Postal looks for the Citizens api class on startup and aborts with a message if not found instead emitting a stack trace. Of course, if the reason Postal can't find the Citizens class is because it is not installed, CraftBukkit will make a fuss about running a plugin without a declared dependency. :-)

Tweaked door navigation to synchronize with Citizens2 build 760 path'ing refinements.

Stopped making duplicate copy of the shipping label and inserting into the shipping container when /package'ing. It is not necessary anymore since the shipping label, when /accept'ed is stamped as received and placed directly in the player's hand. /refuse still removes original statement from player's hand, stamps it refused, and puts it in the shipment returned to sender.

Replaced deprecated Bukkit, door class with direct, bit manipulations to the state of door blocks.

Version 2.92

Clicking on a postal log formally drops any item the player may have in hand before putting the postal log in the player's hand. This prevents loss of player inventory. The same safety precaution has been applied to shipping labels before they are placed in the player's hand.

New config.yml setting 'lookclose_on_route'. 'true' is the default. 'true' makes the postman aware of other players while walking his route. He will look at the player and appear a little distracted by other players, but stays on route. Seems more human and less programmed. 'false' causes the postman to be more focused, and generally does not acknowledge the existence of players aside from mouse clicks. In the postoffice, waiting for the next route lookclose is turned on regardless of this setting.

Fixed bug with /package command excluding items when itemized on the shipping label. Pages on the written book were exceeding their character capacity and being truncated when many items with long names were on the same page. Item names were also being unnecessarily padded with trailing spaces.

Double chests are now formally rejected as shipping containers.

Stamped statement now replaces the un-accepted statement in player's hand on /accept instead of going into the accepted chest. This facilitates the sending of completely full chests and is probably more intuitive to the player.

/accepted chest no longer identified with a sign when accepted. It is not necessary. It was also, upon opening, being incorrectly labeled as a Postal mailbox.

The general system watchdog was not allowing for extended cooling intervals set for postmen with the settings.postman_cool_sec setting in config.yml. This was fixed by using the value in this setting to make sure the system setting is long enough to allow for anything set here. The individual postmen and postmaster watchdogs are not affected since they have flags indicating cooling periods, periods ignored by the watchdog.

Version 2.9

New softdepend dynmap.

New, full dynmap implementation. May be optionally disabled, but automatically disabled if the dynmap plugin is not installed. Map features separate Postal layer. Labels for post offices and addresses are plotted. Locations for both postmen and postmaster are updated in realtime. Routes are plotted as they are in use, and removed when inactive to reduce clutter. NPC plotting is based on actual position, therefore showing route deviation, if present. All map entities may be clicked to obtain detailed information and realtime statistics.

New config.yml setting Dynmap. Set to 'false' to disable all Dynmap hooks in Postal. Will Prevent Postal from automatically using Dynmap when Dynmap is installed.

Restart sequencing reorganized and hopefully, strengthened up to the point of not needing to be revisited again.

Version 2.8

New command /distr <all/owners> [town] [expiration_days] This is an op or admin tool. It facilitates the instant distribution of a written book in the player's hand to Postal addresses. Distribution may be to all addresses, or just owned addresses. The distribution may be further filtered by a town name. Distributions include a cover page indicating general information including the original title and author of the written book. The title, as delivered will be [Distribution] and the author field will contain a number ie: '1234567890' that may be used to uniquely identify the document. This number also represents the expiration, in Unix time, of the document. This command does not require the Postal dispatcher to be running. Distributions trigger new mail indicators for both player login and mailboxes.

New permission node 'postal.distr'

New setting in 'config,yml'. 'distr_exp_days' Takes a number from 1 to 30 to set the default expiration of distributions. Default value is 7.

Full mail boxes allow mail to take precedence over distributions. If the postman encounters a full mailbox, he will look for distributions to delete. He will make room, deleting oldest distributions first.

Distributions get an expiration date when distributed. This may be 1 to 30 days, real time. The postman checks for expiration each visit, and deletes expired distributions. Unattended mailboxes are therefore managed and kept clean.

Postal NPC's are now managed by the names configured in config.yml instead of strict id numbers received at creation. This makes it possible to automatically clean up shadow postmen left over from a bad server shutdown. This also improves compatability with other Citizens characters and eliminates any special steps with Postal in regards to preserving or saving the other NPC's. Color format characters are part of an NPC name and further help distinguish Postal names from other NPC names.

Bug: opening mailbox by clicking on the chest instead of the sign failing to clear new mail indicator. Fixed.

Version 2.79

Default heartbeat changed back to Synchronous, Asynchronous may be configured in config.yml

New option in config.yml to turn automatic heartbeat calibration on/off.

NPC creation and spawn allowed to retry on exception instead of completely restarting Postal.

Version 2.78

Issue where shipment mailed at a post office not properly received into system, fixed.

Dispatcher heartbeat put on a Asynchronous thread.

New config.yml setting: 'prevent_all_npc_despawn' prevents non-Postal NPC's from despawning. These are Citizen2, player type NPC's.

General code clean up and optimization.

Version 2.77

/package now incorporates text from a written book held in the players hand into the statement generated. If there is nothing in the players hand, Postal will look for a written book titled 'statement' to use.

Chest selection for shipping now deliberately excludes Postal mail boxes. This was an issue for players that locate their shipping containers next to a mail box. This sometimes resulted in Postal choosing the mail box instead of the shipping container with the /package command. Currently there are no constraints for the shipping container location verses where the shipping label is mailed. The thought is that some players may prefer to pack their boxes in their residences and mail the shipping labels elsewhere, perhaps in the mailbox outside the house. Big shippers may prefer to prepare many shipments at once then mail all the shipping labels at once. The packages remain out of sight until received by Postal.

Shipments are now protected. Until received by Postal, shipments are sealed, and may only be destroyed by a player with the original shipping label in hand (or an admin). Shipments remain protected while in the Postal system, and while waiting to be accepted at the recipient's mailbox. Normal ownership privileges apply concerning final access access at the destination. Once /accepted, the shipment may be placed wherever desired and is no longer protected. /refused shipments are returned to where it was packed and remains sealed to all but the sender or admin.

Version 2.76

Formally set (and validate) maximum name lengths of post_office, town and player to 15 to match the maximum line length of a sign. Formerly, and a bit informal and not validated, the name length has been declared 14 characters. A player name may actually be 16 characters, as permitted by Minecraft. All of the Postal routines and data storage have been updated to allow for this slightly longer possibility. Postal simply drops the last character of a player name if it is 16 characters and assumes that there will not be any more than one unique completion of similar 16 character names missing the last character.

Postal log now occupies slot 0 of a Postal chest. This new assumption allows Postal to readily find the log without iterating through the entire chest. The postal log format has changed, and the saving of full logs to postal archives has stopped. The new postal log format is one page only instead of 50 pages. The time stamp order has changed from the last stamp going at the end of the book to it being the first. The set of stamps shown on the first page are ordered newest to oldest.

The new postal log location, the new, one page format along with the recent sign id of Postal chests provides a more efficient infrastructure, a hybrid of the sign/book/chest data object and the hierarchical data structure in a yaml format. Much code optimization using this new infrastructure has taken place.

Postal, once per startup, cleans out Postal chests of anything that is not a written book. Obsolete files such as old postal logs and postal archives are also removed.

New mail notification to address owners has been expanded to include a message when the player joins. All owned addresses are scanned for unread mail, and reported. New mail notification on Postal chests has been changed from a redstone torch in front of the mailbox, to highlighting the first line on the Postal sign with red.

Version 2.6

CB_1_4_6 version conforms to Bukkit non-version model, therefore rendering it non-version-specific for Bukkit CB_145_R1 (Recommended Build) and beyond. Users running Bukkit prior Bukkit builds need to use the CB_1_4_5_R02 builds of Postal.

New advanced mailbox detection and labeling system. Once a mailbox is identified by Postal a detailed sign is posted on the front of the mailbox. Postal always looks for a signed chest first. If the sign details match the chest is used. If the signed mailbox is not found, Postal falls back on proximity and/or postal log confirmation. This is a far more efficient method of mailbox detection, and serves to clearly identify mailboxes to the player as well.

Shipments are sign identified as such, making their overall roll in the Postal system clearer.

Preemptive mail handling has been expanded to include the PostMaster, or Central postal system servicing local post offices. This replaces the former round-robin, central scheduler and is designed to keep mail moving along efficiently as the number of post offices continue to increase.

Version 2.5

Global searching. /tlist and /plist have been expanded to facilitate global searching by address name or player name. All three of these commands are fully functional in game, or on the console.

/tlist will now take a search parameter. This command will still behave as it always has and alphabetically list the town names without a parameter. The quantity of towns is assumed to always be of a length not requiring any more than an alphabetized list for quick reference. If given a parameter /tlist will now, recursively, search each town on the server for addresses matching the search parameter and list them. '/tlist *' will list, alphabetically, every address on the server.

/alist is not effected. It will still attempt to complete a town name and list all the addresses in the town, or display town names close to the search parameter.

/plist will still quickly list players names that have been on the server matching the search parameter. However, if the search parameter is enough to uniquely complete a player name, Postal will globally search all of the postal towns and addresses for player ownership. Any Post office or town owned by the matching player name will be listed.

Player teleporter problem fixed. Player sometimes arrived before the world blocks did and allowed the player to fall until the blocks showed up. This may be caused by the target being in an unloaded chunk, or a simple timing issue between player and block appearance. The solution seems to be to call for chunk load while delaying player slightly. An additional reality check by Postal verifies actual player position after teleport, and follow up with habitability check and final reposition if needed.

Uniform components have been moved to 'config.yml' for both the postmaster and local postman. Item id's are required and will be checked for validity. Invalid id's will default to nothing.

New statistics holders for the post office portion of the dispatcher, called the queue. cem_time is stamped each time the post office is visited by the postmaster. cen_count keeps a running count of visits. cen_interval holds the time in seconds between visits.

Item shipping implemented with the addition of three, new player commands. /package, /accept and /refuse. /package <town> <address> [player] creates a shipping label for the chest the player is standing next to. The shipping label contains a complete list of the items and quantities in the chest. A copy is placed in the player's hand, and another copy is placed in the chest. This shipping label may be treated like any other addressed, mailable book. It may be re-addressed with /addr or /att. To ship the chest the shipping label is simply placed in a designated mailbox. When it is picked up by the postman, the chest will vanish and be in the postal system.

On delivery, the recipient may /accept the shipment or /refuse it. To accept, the recipient, with the shipping label in hand, walks to where the chest should be placed and enters the /accept command. The shipment will appear directly in front of the player. Chests will automatically stack if there is already one there.

To refuse a shipment the player simply enters /refuse with the shipping label in hand. The shipment will be immediately returned to the sender. It will appear exactly where the sender packed it, or stacked if there is another chest has been placed there since it was shipped.

A personal message may be included in the compiled shipping label by including a written book titled 'statement' in the chest to be shipped. The text in this book will be included after the line item details of the chest contents. This book will also be replaced by the formal shipping label.

Version 2.1

Improvements to hot route editing using the new route closing capability.

Four new commands, console and player to control the open/close status of post office and routes. /openlocal, /openaddr, /closelocal, /closeaddr. Changes made by these commands remain effective until Postal is restarted. Even though a local post office is closed the Postmaster is still servicing it. Books may still be mailed at the post office and they will be processed normally. Mail may also be picked up at the closed post office. It just won't be delivered to residences, nor will mail be picked up at residences. These new commands require administrative privileges or ownership rights to use.

New scheduling control. Post offices may be opened and closed, hot. Individual routes may be similarly controlled. Provides increased resolution for in-game, console or outside control. This allows all routes to be individually controlled. This will have a place in the coming economy implementation as well as provide a way for other apps to influence the Postal dispatching. There is a new set of commands detailed above.

new 'config.yml' settings 'Join_message' and 'Residence_cool_ticks'. 'Join_message' is the message the players see when joining. Accepts standard color codes, and variable %player% expands to the name of the player joining. May be set to ' ' to skip message entirely. 'Residence_cool_ticks' is the amount of time, in ticks the postman pauses at each residence on his round.

Menu displayed when entering 'postal' reorganized to provide a more relevant list of commands based on the players permissions or ownership. There are now three distinct menus; player, owner and admin. Players get a menu designed for them. Any player that owns a route or post office will get the owner's menu. Admins get the full list.

Added '/first', '/mid' and '/last' commands to waypoint editor. Use to quickly position player along a route.

Bug in 'postal cstalk' fixed. The wrong spawn location was being reported. The actual, recorded location was correct, however.

Three new settings in 'config.yml': 'Postman_cool_sec', 'Central_cool_sec', 'Heart_beat_ticks'. 'Postman_cool_sec' is used to configure the amount of time, in seconds, the postman stays in the post office in between routes. 'Central_cool_sec' is the amount of time the postmaster stays at each post office during his rounds.

'Heart_beat_ticks' is the Postal heart beat interval. Anything entered by the user in this field will be used as a starting point for Postal. Postal calibrates itself and saves the calculated result there.

Dispatcher layout in 'config.yml' has been reorganized and slightly refactored. Interval field has been added for future use.

Static chunks are no longer stored in 'config.yml' They are now held in a memory array.

Postal now scans all residential mailboxes for outgoing mail when it starts up,or is restarted. Postal also listens for new mail and expedites the route with new mail. However, when the Postal is restarted it rebuilds the dispatcher from scratch and starts all routes from the top. Expedited routes containing mail were lost during the rebuild resulting in the temporary loss of the preemptive mail-handling of the system. Scanning residential mailboxes as it re-builds the dispatcher restores waiting mail to the top of the queue.

Three more 'config.yml' strings: Chat_onroute, Chat_postoffice and Chat_collision. What the NPC says during the implied contact. Variable %player% in the string will be expanded to the player name making contact. These strings accept the standard '$' color codes.

/alist command now displays the time it takes for the postman to walk each route.

Added two more 'config.yml' switches; 'allow_monster_spawn' and 'chunk_overlap'. The first switch, when set to 'false' (default), will prevent monsters from spawning along postal routes, post offices and residences serviced by the post office. This is, technically, the chunks monitored by the Postal chunk manager. The chunk overlap switch makes it possible to expand the managed area if desired. The default is 0, the minimum required by the postal system to function. The maximum is 10. New console command 'postal chunks' displays the size of the chunk pool. It complements the chunk overlap switch as a way to view the effect of different values.

Version 1.9

Recent feature added to dependency Citizens2 had the NPC's despawn when near any chunks that were unloaded. This typically happens when live players leave an area. The Postal watchdog was compensating for this by nudging the NPC's back to existence. Now, if a postal worker is targeted by such a despawn instruction, the event is canceled. There are no more route interruptions caused by the simple absence of live witnesses.

Route editor. This editor has been modified to be more like the Citizens2 path editor by implementing both mouse buttons. Left click marks a waypoint, right click undoes the last waypoint. Further, double clicking on the final waypoint block exits the editor. The editor will not mark the same block more than once in a row. Click the same block as many times as you want, it will only record once. Double click it and you exit the editor with that last block as the end of the route. Typing difficult commands in the waypoint editor is no longer necessary. A new command processor dedicated to the person in the route editor is in place. Even though the new mouse navigation eliminates the need to type any commands while editing, they are still available, and no longer require the preface: '/setroute'. Instead of '/setroute exit', it is now just '/exit'. The same is true for /new and /undo. The route editor will not allow any other interaction other than route editing while in the editor, nor will it let you forget that you are in the editor. It will also exit automatically if the user quits while in an editing session.

Redstone dust is now used to highlight waypoints while in the route editor. When editing an existing route, existing waypoints are highlited, and the player is teleported to the last waypoint. Right clicking near the end waypoint removes it without moving the player, /undo removes it and advances the player to the new, route end. Right click as you are laying forward waypoints and you will get a distance reading relative to the last waypoint behind you. Double (left) clicking the final waypoint exits the editor and removes the waypoint highlighting.

Listeners have been reorganized and consolidated. The only listeners normally left on are for inventory (mail) control and management, and player interaction - item and chest security. Listeners used for route editing are only on when in use. They are turned off when exiting the route editor.

Sign identification of mailbox chests. Was changed from a simple [mail] label to a more specific [address_name] label on version 1.8 The id algorithm was relaxed slightly to accommodate names longer than a sign line will permit. The text between the brackets may be less than the full length of the name, as long as it matches, case insensitive. The two brackets are mandatory. It is not unusual for there to be other copies of the address name nearby. The brackets serve to distinguish it as a mailbox designator.

Both ends of a route have definitions that can seem slightly ambiguous or confusing. Routes start at the local post office with waypoint 0, the postman's first step. The route ends in front of the mailbox at the residence. This has the highest waypoint number. While there are the two route endpoints indicating where the local post office is, as well as the residence location, there are also separate, and independent designations that are very similar; /setlocal, and /setaddr.

This ambiguity on the residence end has already been addressed by automatically synchronizing the /setaddr location with the final waypoint set using /setroute. /setaddr may not be invoked after a route is defined, therefore eliminating any possible re-set errors later on. /setaddr has as it's main purpose, the careful and deliberate naming of a new address and approximate location, and is the admin's tool. /setroute is the primary tool used by a owner/resident, and remains flexible, allowing the resident to be blissfully unaware of any of these location distinctions. Nor anyone else, for that matter (except the developer).

Back to the post office end of a route. It was still possible to screw up the route system by re-setting the local post office location erroneously after a set of routes for it is in place. The fix was easy enough - just reset it correctly. The post office end is more complicated than the residence end because it is common to all of the routes. You can't move the post office without redoing all of the routes it services. So, this has been tightened up to protect us from ourselves. /setlocal may still be used to reset the formal location for the local post office, but the user is not allowed to screw things up anymore. The location defined by /setlocal is the spot where postman stands in between routes. It should be near waypoint 0 for each and every route connected to the post office. /setlocal now verifies that the new position is close enough to each route start, or it won't allow the change. It will tell you why, however. It might be just one errant route causing a problem. It is also a diagnostic tool.

New command /showroute, both player and console. Usage is '/showroute <town> <address>' Use it to highlight waypoints on a route with redstone dust. The waypoints remain highlighted for a minute or so, and them are cleared.

New console monitor toggle cstalk. Useage: 'postal cstalk'. Use to monitor the regular chest seeking activity by the npc's Shows what was found, selected and why.

Fixed bug with the schedule promoter. When using /setroute to create a new route it will automatically push the schedule of that route forward so the edited changes may be immediately observed. /setroute is also used to create new routes. New routes are not live until the next Postal restart. The schedule promoter was not checking to see if the route was active before trying to promote it, causing a fault.

New command confirm mechanism affecting most of the commands, player and console. When invoking a command, the user is now presented with a message indicating specifically what it is going to do. And, the user is asked to enter a '/' to confirm. Postal does extensive command completion in an endeavor to minimize user typing. Just a few letters of a name may expand to a complete, 16 character name if Postal can determine uniqueness. This confirm mechanism makes it possible to take full advantage of Postal name completing.

Version 1.8

Fixed bug caused by undo'ing past waypoint 0 using /setroute. Attempting to undo past the first waypoint now automatically invokes the equivalent of '/setroute new'

Fixed minor bug when placing a redstone torch, new-mail indicator in front of a chest that already had one. Caused subsequent placements to unattended chest to litter area with unplaced torches.

Require Postal to be stopped before allowing post office or address deletion. No longer uses name completion for town or address names when deleting. Requires names to be typed out, completely and accurately, although not case sensitive.

Change 'postal expedite' command to straight 'expedite', both player and console.

New command 'plist <string match>' It lists player names matching a search string, case insensitive. It compliments existing commands /tlist and /alist to help players address and direct mail efficiently. Postal commands such as /addr, /att, /owneraddr and /ownerlocal that may use live player names, use the same name completion methods for the player parameter.

Existing commands, not implemented /owneraddr and /ownerlocal are now implemented. These are used to establish, or define player ownership of specific addresses or local post offices. These commands also remove ownership designation when 'none' is used as the player parameter. They also provide a general association of a specific player to specific address(es). For example, mail sent to an address to the attention of 'current resident' may still be associated with a player if the address belongs to a player. The player can be informed of the delivery, and there are economy options that will eventually come into play. Post offices can be private, or public enterprises.

/tlist and /alist expanded to include owner info along side town and address names.

Mail delivery status looks for address ownership if addressed mail is not sent to a specific player's attention (/att). Address owners are advised of 'current resident' mail delivered to their address.

Mail delivery format changed to indicate sender and recipient as author and title. Original character case retained. May be seen when mouse'd over in mailbox, without selecting or opening book. Mail formerly showed the original, signed-book title and author when NPC delivered.

A Postal Log is now maintained in the post office chests as well as residence chests. This aids in the identification of all official, Postal chests and reduces overall complexity.

Chest protection. Mailbox chests, identifiable as a chest with a postal log, may only be removed or destroyed by an op, player with 'postal.admin' permission, owner of the post office it is serviced by, or owner of the address it belongs to.

Chest access. Anyone may look in a mailbox chest and observe written books. The sender and recipient is plainly visible when mouse'd over, but nothing else.

The '/postal admin' command turns off Postal security listeners. It has been changed from a toggle on/off switch to a timer. When invoked, it quietly turns the security off for 60 seconds. This affects all users on the server.

Mail access: When sent to the attention of a player, any address: May only be accessed by that player, the sender, address owner, 'postal.inspector', or op/postal.admin. When sent to 'current resident' and the address is owned: May only be accessed by the address owner, the sender, 'postal.inspector', or op/postal.admin. When sent to 'current resident' and the address is not owned, or a Server address: May be accessed by anyone.

Standard permission nodes are implemented. A node for each command. Detailed in plugin.yml

Chest detection. When scanning for a chest to use at the post office, the postman will favor a chest with a sign near it with the name of the post local office on it, in brackets, case insensitive. Ie: [Bay_View] Formerly, the postman just looked for '[mail]' on it. The same change has been made on residential chests used as mailboxes. Make sure it is picked first by putting a sign near it ie: [301_Vine_Ave]. This will help further distinguish individual mailboxes in densely populated ares. As a reminder, signs by chests are completely optional.

Privileges of ownership. Besides access to to mail and basic control of the mailbox, ownership provides the ability to change and maintain existing routes to both address and post office owners with '/setroute'. Post office owners have access to the '/expedite' command for routes serviced by their post office. Address owners have access to '/gotoaddr' to be able to teleport to address(es) they own, possibly places where only a trusted courier is allowed. Of course these commands have their own permission nodes for the server administrator to do with as seen fit. But the contextual, owner-elevated permissions are in place.

Version 1.75

Fixed a minor command line bug and added docs for last new command /postal expedite'.

New softdepend on Vault for permissions. Will default to Bukkit permissions if no compatible permission manager found via Vault, or otherwise. Vault will serve to hook future economy support when implemented.

New permission node 'postal.admin' implemented. Equivalent to op for administrative use. Intended as temporary support for servers without ops. This is the start of the formal permissions system.

Close or lock route being edited if it is in a live editing session (/setroute). The edited route will be automatically expedited after the edit for observation.

Fix player teleporter to place player on ground rather than a block or two high.

Defined and implement precise postmen positions. /setlocal is where the local postman stands in between routes. Waypoint 0, the first waypoint on the way to an address, is the first step away from his standing position. The postmaster also uses this /setlocal location. He along with the postman uses it as the starting point for locating the post office chest. The postmaster finds the exact front of the chest to teleport to while the postman, as positioned by the route designer using /setlocal, is generally a few blocks away behind his desk or partition.

On the residence end; /setaddr, which is only used once during the route creation process, is synchronized with the last waypoint of /setroute. This is automatic. The purpose of /setaddr is to aid in the accurate naming of routes. Hopefully, it will be easier to remember that /setaddr must have its second parameter, the name of the address, correct and full. /setroute expects both of its parameters to exist, and will attempt to complete them to save typing. Both of these commands refer to the mailbox location. Ideally, this should be the front of the mailbox. The idea is to make it easy for residents to change their mailbox location while making it possible for server administrators separate route creation from route maintenance. Only the very end of a route needs to be modified to change a mailbox location and that is where /setroute starts when editing an existing route. While it is simple to redefine a mailbox location, the postman will still find it if it is within 10 blocks of the last waypoint.

Note: none of the above should affect existing routes. It does make refinement possible, however.

Changed stamped player names, both author and recipient, to retain original character case in documents. Name completion and searching is as it always was - not case sensitive in Postal commands. Effects both /addr and /att This completes the required infrastructure making it possible to link live player names to mailed books. Both sender and recipient. The next paragraph is an example of what is now possible. The main use will be one of player ownership of routes and local post offices and automatic control over who is allowed to view mail items sent to the attention of a specific player.

Mail progress announcements. Changed 'postal mtalk' from boolean on/off to 0/1/2. Setting '0' stops all progress announcements. Setting '1', the default, informs only the recipient that mail has been delivered to his/her attention, at the address it was sent to. Setting '2' broadcasts all mail movement.

Postman NPC checks for the occurrence of more than one postal log in a mailbox. If true, any redundant, correct logs are deleted. Incorrect logs are deleted. Route changes sometimes cause cross-linked mailboxes resulting in the postman, temporarily, servicing the wrong mailbox. The postman tried to correct the problem with a new postal log, but left the old one. The issue was easily corrected, but now automatic.

Version 1.72

new command 'postal expedite' both console and player. Allows op to push a specific route schedule forward.

console: 'postal talk' automatically turns quiet off

Deal with the unusual situation where a waypoint needed by the NPC is deleted while editing a route, live.

Remove dynamic waypoint attempted at residence. This is now obsolete since /setroute now synchronizes the last route waypoint with the residence location. Allowing them to be set independently makes it possible to create incorrect routing, difficult to diagnose. Any problem finding a residence mailbox is quickly solved using /setroute to re-set the last waypoint or two.

More work on dynamic speed control. Incresed table resolution. Capped off slowest at 0.4 These values should correlate with standard Citizen2 speeds when 'postal speed' is set to 1.0 Actual NPC speed will be the average between the last waypoint segment and the current segment multiplied by the 'postal speed' scaling factor.

switch (distance) { case 0: speed_factor = 0.40f; break; case 1: speed_factor = 0.40f; break; case 2: speed_factor = 0.45f; break; case 3: speed_factor = 0.50f; break; case 4: speed_factor = 0.55f; break; case 5: speed_factor = 0.60f; break; case 6: speed_factor = 0.65f; break; case 7: speed_factor = 0.70f; break; case 8: speed_factor = 0.75f; break; case 9: speed_factor = 0.80f; break; case 10: speed_factor = 0.85f; break; case 11: speed_factor = 0.90f; break; case 12: speed_factor = 0.95f; break; default: speed_factor = 0.999f; }

Version 1.71

Implemented 'speed' in config.yml to scale overall walkspeed of NPC's floating point 0.5 - 2.0 new command 'postal speed', both console and player to facilitate speed adjustment while server is up. tweaked door navigation. adjusted dynamic speed table

Version 1.7 11/16/2012

Citizens2 2.0.4, build 569 CraftBukkit 1.4.5-R0.1, build 2474

(both developer builds)

Re-worked for 1.4.4, now 1.4.5 MineCraft (a moving target)

General improvements to robustness, and friendliness to the user. Some improvements to the waypoint editor. New mail indicator, a redstone torch, removes itself when mail chest is opened. More, but a bit of a blur - I wanted to get this up for the bleeding edge folks. Seems very solid, but you tell me. Thanks.

Implemented 'speed' in config.yml to scale overall walkspeed of NPC's floating point 0.5 - 2.0 new command 'postal speed', both console and player to facilitate speed adjustment while server is up. tweaked door navigation. adjusted dynamic speed table