Added support for rectangular and elliptic borders
Merge pull request #13 from Mathe172/master

Support for elliptic and rectangular border shapes
New "setcorners" command to set border based on corner coordinates: /wb [world] setcorners <x1> <z1> <x2> <z2>
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.
Players who are flying (from creative mode or otherwise) can now be moved back into air when they cross the border and are knocked back; no more requirement for a safe place to stand for them

also a minor change to the Fill command to make it potentially less taxing when run at high rates
Changed method for finding region folder (used by Fill and Trim) to hopefully support custom world types such as Twilight Forest and Mystcraft... untested, but hopefully working
Players who are riding something are now (unfortunately) ejected when knocked back from the border. This was necessary due to the Bukkit team removing the ability to teleport entities which have a passenger or are the passenger of another entity.

Note that I tried to work around it by ejecting the player, teleporting the entity they were riding (minecart, pig, whatever), and then setting the player as passenger again, but it was bugged and only halfway treating the player as if they were riding something.
riding something across the border would double-trigger the border crossing handler since leaving a vehicle fires a teleport event (go figure); fixed

Players going through a portal will now no longer be able to generate chunks outside the border; the portal teleport location is re-targeted inside the border to prevent that so that new portals aren't created outside the border

added redstone comparator and activator rail to "safe open blocks" list for knockback safe location finder
Update to allow players to stay in/on vehicle when knocked back from border. From further testing I found that the key was to add a delay after ejecting the player and teleporting the vehicle to give the client time to process the vehicle being teleported. After such a delay it is then safe to set them as passenger of it again. With the delay the client mostly treats the player as if they're not in the vehicle but instead walking around freely.
A delay of at least 2 ticks worked on my local VM test server, but for potentially loaded live servers on the internet with players who potentially have slow/poor connections... a longer delay is probably needed to prevent client glitches. I've set the delay to 10 ticks (half a second) which still looks reasonable enough in-game, I think.

Further, I found that out of the native vehicles boats in particular quite simply cannot be teleported without the client ending up confused about where it actually is for whatever reason. I came up with a workaround for this by destroying the boat and spawning a new one in the correct position.

Bah, gotta love workarounds within workarounds.

As a reminder, this all primarily came about due to the ability to teleport entities which have a passenger being removed by the Bukkit team to apparently combat a nasty related bug.
Release 1.7.0
Merge branch 'master' of github.com:Brettflan/WorldBorder