WorldBorder
Further releases for Spigot 1.13+ are now being posted on the Spigot site. I do not plan to release any further updates here on BukkitDev.
- Full list of Commands and Permissions
- Changelog
- Further Miscellaneous Information
- Source available on GitHub
- Old discussion on main Bukkit forum
If you appreciate this plugin and actually want to see it developed further by me rather than only receiving compatibility updates, you are welcome to .
Thanks to the following people who have been kind enough to donate: jonDatz, xrobau, Gussi, Dizzy, R. Meijer, FoundationCraft, T. Bronner, R. Thompson, The Pokemon Server, legitplay.net, D. Senff, Vik1395, TagCraftMC, D. Strickner, M. Wilson, Rhythmatic, W. Downey, P. V. Gretener, MiniCraft Server, Cosmic Craft, ScarcityFree.com, polaris_iv (Forge port), matagin, T. Ahokas.
Also thanks to IMathe172I (Lang Lukas) for contributing code to support elliptic and rectangular border shapes, and Indiv0 for contributing code to support border wrapping.
Description
This plugin is intended to efficiently provide a border for each of your worlds, which only people granted special bypass access are allowed beyond. These borders can be round/elliptic or square/rectangular. As the plugin has been written with performance as the most important goal, it should have no performance impact on your server. Additional world trimming and filling commands are available as well.
Older plugins which originally inspired the creation of this one: rBorder and BorderGuard.
Features
- You can set up a separate border for each world, but only one border per world.
- You can have either round/elliptic or square/rectangular borders. Square/rectangular borders are slightly higher performance, round/elliptic borders make for nicer display maps. Different worlds can have different border shapes if you so choose.
- Configuration and border setup is done completely using commands in-game or through the server console. No need to ever edit the config file directly.
- Support for all permission plugins which interface with Bukkit's built-in "superperms" permission system.
- You can fully generate (fill) your world all the way to the border, filling in any missing chunks, including a configurable buffer zone just outside your border.
- You can trim off any world chunks beyond the border, getting rid of extraneous parts, with a configurable buffer zone left just outside your border.
- You can use a bypass command to allow specific players to go beyond all borders.
- Borders can be automatically displayed in DynMap if you use that plugin.
- All plugin data is automatically saved whenever any borders or settings are changed.
- If a player crosses a border while in a vehicle, the momentum of the vehicle is stopped and it is moved back inside the border with the player.
- When a player is moved back inside a border, they will be moved to a safe vertical location if needed.
- Borders for specific worlds can be set to wrap around instead of just knocking back players who cross the border, instead sending them to the opposite edge of the border.
English Tutorial:
Spanish Tutorial:
Of special interest are the Fill command and the Trim command features:
Borders are also displayed automatically by default in DynMap if you have it:
I am using 1.1-R3 and the latest world border. I created and generated my world using a script that will basically do what the fill command does but only by mucking with the spawn coords in the level.dat. I added it to my live server and added a border. The output from my wb list is below.
13:52:53 [INFO] Default border shape for all worlds is "square".
13:52:53 [INFO] World "world_survival" has border radius 750 at X: 208.0 Z: 256.0
I thought I'd run the fill command to make sure I get the full size of my map but when I did that, it started adding a lot more chunks and my map has grown in size by about 500 blocks. I used the default freq and pad. It grew in a perfectly square manner so it isn't like I set the origin of my border incorrectly.
Any thoughts as to why my map has grown?
@godgodgodgo
Making it recalculate the lighting requires bypassing Bukkit to access internal CraftBukkit/Minecraft methods, which I won't do without a really good reason. It would lead to the plugin breaking quite often when new versions of the Minecraft server are released, since the code obfuscation applied by Mojang makes those internal class method and variable names change between versions.
Sorry.
Could you possibly make a tool or plugin that checks for lighting issues and fixes them like the nolagg command "/nolagg fix [radius]
I thought you might be able to do it because I imagined you could use a similar setup to that of your generating.
p.s Been using your plugin for a very long time now and it is truly epic
This is such a great plugin...
i had to post a thank you, Brettflan!
and i believe the screenshots for this main page are broken =o
@JsmPick
It saves CPU time, because it doesn't have to generate them, it only needs to load them.
This reduces lag when players explore and generate new chunks of the map
@Brettflan
OK... is there a reason to want to generate them all? is it for performance?
@Tealk123
No idea, then.
@Phealoon
Sorry, no. All players are confined inside the border.
@JsmPick
Simply put, it generates all world chunks inside the border which aren't already generated.
@Brettflan
Many thanks. I have one more silly question - what is the use for the fill command?
I have a question, does this plugin allow op permissions to cross the border? So far it seems to prevent everyone from crossing over, but it would be cool if ops were allowed to freely cross back and forth.
-Phea
<<reply 510480>>
Are you running the fill process with a higher frequency than default?
->No, this thime i have set it to default, now i have become it finished with 10
I have used 1.1
@JsmPick
To make it use a square border, of course: /wb shape square
Then just use a radius of 512 when setting the border.
I would like to set a border that is the size of a MC map (1024x1024).
what command do I need to use? (how is the radius worked out for square worlds) ?
@MachetePanda
I actually just got through testing it less than an hour ago; yeah, it's fine on 1.1-R1.
You might explain to those people that plugins don't normally break when new CraftBukkit builds come out. That's one of the benefits of building a plugin which interfaces with Bukkit.
@Brettflan
I dont know of problems, in fact its working fine on my server. So if your happy with it, could you update the file list to "1.5.0 (ZIP) for CB 1.1.0-R1"?
I'm happy. :) Just getting tired of people coming in my server asking "hey how did you get the WorldBorder for CB1.1-RB1?" :p
Great plugin BTW!
@Tealk123
That snippet doesn't include anything useful, so I'm not sure. Are you running the fill process with a higher frequency than default? If so, don't. As of MC 1.0 the process of generating chunks can overload your server if done at too fast a pace. It's possible this problem is fixed in 1.1; I hope so, but I doubt it.
@TatharNuar
The only way I know of offhand is to stop the server, remove the plugin and restart it. Then when done, add it back and restart the server again. Not very elegant, but it does work. There very well may be a better way, but if so, I don't know it.
@MachetePanda
Are there problems with it in 1.1-R1, then? The current release should probably work fine, though I will be testing it out in the next couple of days.
I'm looking forward to trying this out on CB 1.1-R1. Following your page for when the update comes out. :)
@Brettflan:
Then how are we supposed to use WorldBorder's fill and trim commands with Dynmap? Is there a plugin that enables and disables plugins?
hi, after a time i fill the world, i get this error and it flood the log
http://pastebin.com/J1dVATmu
is this because i have a to large area?
@Brettflan
lol sorry I miss typed I meant WorldBorder
@TatharNuar
Other than stopping and starting the server, no idea; I don't use DynMap.
@Dimitrias
Hmm, Java might need prodding on your system to have it clean up unused memory. I might need to add back in a method for manually making it run the GC process while waiting for memory to be recovered.
@prizna123
No idea about WorldGuard. As for WorldBorder, it should be, though I haven't personally tested it yet.