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
@ObsceneNameHere
Yes, OK. I'll put in 'config.yml' to say what ever you want, or ' ' to be quiet.
Just a suggestion; Maybe an option to turn off the MOTD postal puts up "type '/postal' for post office commands."
I like to have a clean login haha but its just a suggestion; Thanks for the help!
@ObsceneNameHere
You are current - don't update past where you are :-) it just looks like there are newer versions of Bukkit and Citizens2. This is confusing everyone.
Ignore my email I have reverted back to the Citizens2 Build #597 error has been relieved for now... I will update if anything happens
@ObsceneNameHere
There is something preventing your npc postman from spawning.
I tested the Bukkit version 2499. Couldn't reproduce the error. Check the version, btw, I assume you meant 2499, not 4299.
The next suspect is the Citizens build. Citizens Ver.: 2.04 would be fairly new, but covers a lot of builds. If you went too new, you are not running the correct Bukkit version, see my notes before yours. The simplest way to eliminate Citizens2 as a suspect is to use the link I have provide in 'Getting Started'
I see you are reading enough to find the pre-release, so not to worry, we'll get you going. If you eliminate Citizens2, email me your config.yml and the last startup portion of your log file. I will put an email link by the pre-release link.
I will put up a ticket system for sure, but Postal is pretty green right now and I think walking through these issues here might benefit others, for the time being.
There is a version 2.02 as a pre-release. Doesn't address why your Citizens2 is not spawning, but should not stack trace console.
It would possibly be better to have a ticket page but I am getting this Error
http://gyazo.com/c0f32dae891eeba283fa9f4e57e44d19
Tried resetting the few locations I have set and to no avail.
Postal Ver. 2.01 (upgraded from 1.921 in hopes to solve the problem but still happens)
Craftbukkit: 4299
Citizens Ver.: 2.04
@Krglok
Thanks for the report. Try to stay at or, below the links in 'Getting Started' Bukkit is doing some unexpected stuff with their current dev builds. There is nothing short of a war occuring over this, see a few messages below for more info and a link to the action.
Server admins shouldn't use anything past Bukkit build 2512 for a production server. You are at 2503, and that is a good place to be. What you saw with that current Citizens build was fast compliance with Bukkit initiatives which require the use of 2512 or above, which you didn't have. :-) And don't do it..... a lot of stuff will break if you do.
Maybe you can start to see the basis of this dispute with Bukkit :-)
Meanwhile life goes on, let's keep our servers going, again, stay at or below those links I put up.
Hallo, I tested the postal with the newest Citizens Snapshot and it will not run.
But i found a stable combination
git-Bukkit-1.4.5-R0.2-12-g4f69634-b2503jnks (MC: 1.4.5) (Implementing API version 1.4.5-R0.3-SNAPSHOT)
[Citizens] Loading Citizens v2.0.4-SNAPSHOT (build 597)
[Quester] Loading Quester v0.6.1
[Denizen] Loading Denizen v0.7
[Sentry] Loading Sentry v1.2.3
[Builder] Loading Builder v0.6.3
An easter egg for those that read the comments here, or make it to the bottom of the Notes section above. At the bottom of the Notes section there is a link to a pre-release version of Postal 2.x I will try to maintain this so requests don't have to wait for official, Bukkit releases.
The monster swich and configurable NPC responses are already there. Enjoy.
@CJHacker
I don’t know of any correlation between the use of Citizen2 npc’s and mob spawning. But…, Postal does keep the chunks needed by the postmen loaded, and that might explain it. Urban areas are generally kept monster free with Multiverse, or Towny. There are other solutions. Or, I need to start thinking about a Sentry trait-ed w/diamond sword postmen :-)
or...., I could provide a switch that turns monster spawning off in chunk monitored areas. Maybe I should do that. (edit) I've thought about it - an new switch in 'config.yml' to allow/prevent monsters. That will be everyting but the friendly's or live stock types.
I seem to have a problem with mobs spawning around my mailmen. I've got a couple of cities that are not very inhabited but have a mailman there, and mobs keep spawning around him, and I haven't had any around my normal busy/spawn areas. Anyone else noticed something like this happening? Is there maybe a Citizens option I need to flag?
@Krglok
I just tested 1.921 on that Bukkit build, 2503 and couldn't reproduce the error. What you are seeing is an attempt by Postal to prevent the Citizen2 npcs from de-spawning. That is something that 1.8x didn't do
The Citizens2 npcs had a fairly new feature added that causes them to de-spawn when live players leave, like logoff. I suspect that your version of citizens2 is before that feature was added, so Postal is trying to invove a non-existant call. I suppose I could allow for this in Postal to make it posible to run earlier versions of Citizens.
Would you please try the Citizens2 build I have linked in 'Getting Started' (above)?
i installed postal and it runs stable. then i update to 1.921 and the following message on server log will arrive :
CraftBukkit version git-Bukkit-1.4.5-R0.2-12-g4f69634-b2503jnks (MC: 1.4.5) (Implementing API version 1.4.5-R0.3-SNAPSHOT)
this messages come in case of logout from server.
19:46:48 [SEVERE] Could not pass event NPCDespawnEvent to va_postal v1.921 org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:341) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462) at net.citizensnpcs.npc.CitizensNPC.despawn(CitizensNPC.java:54) at net.citizensnpcs.EventListen.onChunkUnload(EventListen.java:97) at sun.reflect.GeneratedMethodAccessor91.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:339) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462) at net.minecraft.server.ChunkProviderServer.unloadChunks(ChunkProviderServer.java:273) at net.minecraft.server.WorldServer.doTick(WorldServer.java:161) at net.minecraft.server.MinecraftServer.r(MinecraftServer.java:569) at net.minecraft.server.DedicatedServer.r(DedicatedServer.java:222) at net.minecraft.server.MinecraftServer.q(MinecraftServer.java:493) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:426) at net.minecraft.server.ThreadServerApplication.run(SourceFile:856) Caused by: java.lang.NoSuchMethodError: net.citizensnpcs.api.event.NPCDespawnEvent.getReason()Lnet/citizensnpcs/api/event/DespawnReason; at com.vodhanel.minecraft.va_postal.listeners.CitizensListener.onNPCDespawn(CitizensListener.java:217) at sun.reflect.GeneratedMethodAccessor272.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:339) ... 19 more
Yesterday, I spent some time debugging a mysterious new problem with the current CraftBukkit, developers builds only to find out that it was a manufactured problem. I lost a day’s work on Postal as a result. Bukkit has decided that plugin developers that use features outside the standard Bukkit api must have their plugin synchronized with the current version of Minecraft. This is a very long list of plugins. It will not matter if there are no compatibility issues – it just won’t run. This is being done in the name of ticket closing efficiency for Bukkit. It is being done in the name of server administrators that they feel they are protecting. I’m a server admin, and I think this is going to be headache. As a developer, I know it is a headache. Postal is temporarily affected by this because I have to go slightly past the Bukkit api to deal with written books. Soon I will have what I need using the genuine Bukkit api. In fact this entire issue will probably be gone by the time plugin meets the sever admin. This does seem like a defining moment, however, and I would encourage any server administrator to chime in on this, agree or not….. Click Here
Thanks.
@Captain-Dingo
Not a problem. There are just a few right now, and they can be put in 'config.yml'. Will go into the next cut.
Kind of a petty request, but could you make what the postal workers say be configurable? I've been trying to craft a world with some sort of immersion and want to make sure everything looks like it fits in seamlessly.
@Captain-Dingo
Normally, the standard answer is: latest Bukkit developer build and latest Citizens2 developer build. I don't look back at the older Postal builds and how they interact with older other builds, but they are there for that reason.
The last batch of bukkit builds have created problems on my severs in general, and not just with Postal. Postal doesn't have a chance because it needs Citezens2 and that is broken by the latest Bukkit dev builds.
What I am doing, because server admins need some kind of a barometer as to what combo is known to work, is providing a link at the top of the 'Getting Started' page here to the current builds we are using and develping to. I am going to include the Bukkit build now too.
Remember, there is no recomended 1.45 Bukkit build. But we want to run 1.45 on our servers. The only way to do this is to stay fast on our feet :-)
I have yet to use this plugin but I have to say I'm very impressed with it. It adds a real purpose to the numerous plugins that enforce local chat, making communication a commodity in and of itself.
By the way, is there anywhere on the page where you suggest which Citizens version to use with each release of your Postal plugin? Just to avoid any possible problems. Or is the latest Citizens Jenkins build always good enough?
The version of Postal that has been described the past few days, 1.9x, has been approved by Bukkit and is now available. The next release will be 2.0. 2.0 will mark what is felt to be a strong Postal with the current feature set.
The economy support, and ability to deliver items other than written books will be built on 2.0. The infrastructure for both of these planned features has been progressing, but the implementation has not yet started, so please vote on what goes first above.
Developers generally get wrapped up in the details of thier applications, focused on getting things to work right. Applications like Postal live and breath on what users or players have to say, so please comment, Postal needs your input.