This is useful now that border shapes can be rectangular/elliptical with different X and Z radius values.
Also various cleanup of new rectangular/elliptical support. Commands can now accept a single radius value (as it used to) or separate X and Z. Radius is displayed as single number if X and Z are equal. "shape" and "wshape" commands accept round|square as before for backwards compatibility and simplicity, alongside the new elliptical|rectangular (which work the same). Updated config loader to support loading older configs with single radius value specified. Added various other methods for backwards compatibility.
New command /wb bypass [player] [on/off], which allows the player to go beyond the border without being knocked back. Requires "worldborder.bypass" permission (Ops only by default). Nobody has bypass mode enabled by default (has to be toggled on), and the list of people with bypass enabled is wiped on server restarts. Player name ("[player]") is optional if run in-game and defaults to the player running the command, but must be specified if run from console. If on or off ("[on/off]") is not specified, it will simply be toggled.
Also attempt to fix problem when riding mobs via MobRider where mob and player end up underground after knockback; seems unsuccessful. Seeing as pigs in vanilla CraftBukkit without MobRider don't have this problem, but _do_ have the problem along with all other mobs when MobRider is loaded, I'm not bothering with this one further for now.
Also added variables for Dynmap border color/thickness/opacity, just for internal clarity... will also simplify things if I or someone else ever gets around to adding settings for those values, to allow them to be changed
Thanks to mikeprimm for adding a couple of requested features to DynMap which made this feature possible.
New commands:
/wb dynmap <on/off> - turn DynMap border display on or off.
/wb dynmapmsg <text> - DynMap border labels will show this.
New permissions:
worldborder.dynmap (Op): Can enable/disable DynMap border display integration
worldborder.dynmapmsg (Op): Can set the label text for borders shown in DynMap
Also, a slight improvement to how boolean values are determined from command input; it accepts "y", "yes", "true" instead of just "on".
Fill process should run much more smoothly regardless of what frequency you've specified.
If the fill process is paused due to low memory, it now tries to prod Java into cleaning up memory, so the process usually is able to start right back up almost immediately.
A few other minor tweaks to the fill process.
Moved world region file handling code out to new separate WorldFileData class, which is used by both the trim process and the fill process.
Removed plugin "loading" and "shutting down" log messages at startup and shutdown since Bukkit now handles such messages itself.
Updated CoordXZ to have slightly more unique hashCode values for fewer hashCode intersections.