[MECH] WorldBorder v1.7.2 - feature-rich world size limiting plugin [BukkitDev]

Discussion in 'Archived: Plugin Releases' started by Brettflan, Apr 4, 2011.

  1. Offline

    Brettflan

  2. Offline

    Brettflan

    Yes.
     
  3. Offline

    arnie231

    ok tested and does can you add perm nodes to allow certain poeple to cross the border

    very useful plugin if ^^ added will be amazing :D
     
  4. Offline

    Brettflan

    Not planned, sorry.
     
  5. Offline

    fffizzz

    this works great, thanks! Was using BorderGuard, but when you have more then 2 worlds, it keeps removing random entries in the config causing your borders to disappear. 5 worlds strong, all working as intended!
     
  6. Offline

    arnie231

    oh right :/ thanks anyways
     
  7. Offline

    Fuzzwolf

    Can you make it configurable so that certain users can bypass the border?
    Just realized you said that wasn't planned. You should really consider it, it is the only reason why I do not use this border plugin.
     
  8. Offline

    Brettflan

    The primary purpose of this plugin is to prevent your worlds from growing past a certain size and being Columbus-ed to death. Allowing certain users past the border seems to defeat that purpose. Further, and perhaps more importantly, having it discriminate between users would take more computation on every single border check, and this plugin is also geared towards speed (being lower impact / higher performance than BorderGuard "Turbo", no matter what tripe the author of it would have you believe).
     
  9. Offline

    NEO

    I switched from borderguard lite to this about 5 days ago. Today the borders stopped working, no errors, nothing. I,ll let you figure out what happened after that. Switched back to borderguard, which ive never had issues with.
     
  10. Offline

    ShaDooM

    actually i just planned to switch to worldborder because i have the exact same issue u are currently having with borderguard...

    both plugins have the same flaw? :(
     
  11. Offline

    Nachocuban

    Did you update CB, or any other plugins? 5 days ago was pre-1.7.3 and things could have changed in the code.

    But on the same note, I am having no issues with everything up date (CB 974)
     
  12. Offline

    NEO

    I havent updated anything except minor changes in a few plugins. If you read back this issue was reported before.
     
  13. Offline

    spunkiie

    I'm running this plugin on a 400+ server.

    Works great.
     
  14. Offline

    Brettflan

    I use WorldBorder on my own server (which frequently maxes out at 30 players on at a time) and I've never had the borders crap out on it.
    A report of "they just go away" isn't particularly useful. If you run the /wb list command, does it still list your borders? Does an error show up in your server console/log?
     
  15. Offline

    dataviruset

    Thanks for this handy plugin!
    @Brettflan, Are you aware of this severe error?

     
  16. Offline

    Brettflan

    I haven't seen any problems caused by it, but... I suppose it's worth another minor release:
    The next planned release will have a command which generates all missing map chunks inside the border. That will take a bit of work, so no promises on when it'll be ready.
    After that I'll be working on a command to trim off chunks which are outside the border. Definitely no promises there.
     
  17. Offline

    dataviruset

    Great work :)
     
  18. Offline

    Brettflan

    The fill functionality is coming along very nicely. I've got it fully working now, though it needs a bit more polishing and dummy-proofing before I release it.
    Once consideration (possibly just a quirk of the c10t map utility I use), which you'll notice happens in normal circumstances on the very edges of maps as they grow from user exploration: snow does not appear to load/display initially. It is in fact there and will show up when a player is exploring and gets close enough to the area, but before a player gets anywhere near the area it will not be shown. You can tell areas that should have snow by where ice is.

    So anyway, here's an example of a newly created map with a 512 radius round border set. No players ever actually stepped foot into it, and the new fill command was run on it from the console with default settings. The default fill settings include a 176 block padding added to the radius, so players shouldn't normally ever be able to see far enough beyond the displayed edges to generate new chunks. Anyway, before and after:

    [​IMG] [​IMG]
    Before ......................... After

    You can clearly see in the "After" image that certain details aren't initially shown (snow, trees, flowers, etc.); they are there, as mentioned it just doesn't show up until a player gets close. It seems like the generation process doesn't add those details yet with the Bukkit function I'm using. There may be other details which are likewise not shown until a player gets near. Not sure why it does that. I probably won't be able to, but I'll try to find a way around that minor nuisance.

    EDIT: by the way, it'll probably be another couple days or so before I release it, just so you guys have an estimate.
     
  19. Offline

    Brettflan

    Well, good news. I figured out how to get the server to properly populate the newly generated terrain with trees, snow, ponds, etc. :D
    Here's another 512 radius round border as an example, the Before image being freshly generated and the After image being just after the fill command has completed:

    [​IMG] [​IMG]
    Before ......................... After

    For a small 512 radius round border like the one above, on my VM system running at the highest rate possible, it takes about a minute to complete at roughly 77 chunks processed per second (5183 chunks had to be generated for the above world). The rate at which it generates is configurable though, so you can for example run it on a live world at a lower rate to hopefully not cause much if any lag for your players.
    Of course, with larger borders and with lower generation rates, it can potentially end up taking quite a lot of time to complete.

    So, I've got it basically completely working with all desired features, but I want to give it one final lick of polish before releasing it. Seeing as I'm tired of messing with it for today, I should be releasing it tomorrow.
     
  20. Offline

    Pantheis

    That's completely awesome! There is an external program that edits the level.dat file, changes the spawn point and then starts and stops the server to cause it to generate data, but it has to (obviously) be run offline. This would run right in-game and could be set to run while the server is actually live! I love it!
     
  21. Offline

    jonDatz

    that would be greatly appreciated. I have trouble using the offline program and would love to get rid of those pesky randomly generated chunks way outside borders
     
  22. Offline

    Brettflan

    Well, small speed bump: I've found that there appears to be a memory leak in the chunk generation process in Bukkit. It's not hugely noticeable normally, but when you're rapidly generating tens of thousands of chunks, that's when it really becomes noticeable. :p
    On my VM with 1 GB of memory allocated to CraftBukkit (2 GB memory total available to the VM), the fill process would crash with an OutOfMemoryError at a bit over 24000 chunks processed. That's with it unloading chunks as it went along and with no more chunks currently loaded when it died than a fresh world (only 560 chunks constantly loaded, actually, while a fresh normal world starts with 625 chunks loaded). That's also with the world and player data being forcibly saved to disk every 10 seconds. I even tried getting the system to do garbage collection every 10 seconds with no better result. It just runs out of memory.
    What specifically indicates it's a memory leak in the Bukkit chunk generation process? If I start the server back up after it crashes and run the fill process again, it loads and unloads existing chunks at a very fast rate and with no change in memory usage until it gets out to where it needs to actually generate new chunks again, then the same steady memory drain happens again.

    So, the long shot: I need to work on it a bit more so that it hopefully can detect when it's about to run out of memory, notify you of the fact, and temporarily stop the fill process. I then hope to have it store its fill progress to the configuration file so that after you restart the server, you can have it continue where it left off.
    Annoying but sadly necessary.
     
  23. Offline

    Brettflan

    OK then, the Bukkit team seem to have fixed the memory leak, but the fill process was still managing after a while to use memory faster than Java's garbage collector could clean up after it, eventually leading to an OutOfMemoryError (as before).
    I have it monitoring memory usage now though, and if the available memory drops below 100 MB, it will automatically pause the process. It will then automatically continue if/when available memory gets back above 500 MB.
    Also, as planned, if it's in the process and you shut the server down, it will automatically continue around where it left off.

    So, all that done and fairly thoroughly tested on several worlds (one of them partially filled, the rest brand new): 1.3.0 is incoming in the next couple of hours. ;)
     
  24. Offline

    ValBGaming

    Can't wait! :D
     
  25. Offline

    Pantheis

    Very much looking forward to the update! :)
     
  26. Offline

    Brettflan

    OK then, here you go.
    So, say you want to fill in the world "world" as quickly as possible, out to whatever sized border you have set on it: /wb world fill 1000
    It will tell you a bit about what it's doing, and require you to confirm that you want it to begin. You can also pause and cancel the process.
     
  27. Offline

    ShaDooM

    Hey I don't know if this has been done yet but,
    a staffmember of mine came up with the idea that the border at one side of the map teleports you to the otherside of the map. I believe terraria also does it like that (not sure). Some kind of loop, I hope you understand what I'm talking about ^^.

    Would it be possible to add this feature in the future?
     
  28. Offline

    Minnich

    Whenever I type /wb fill it just brings up the help page. Any reason why?
     
  29. Offline

    Brettflan

    I've considered it in the past, but it seemed to me that it would be pretty jarring to suddenly teleport to completely different terrain, perhaps dropped into water or conversely moved from swimming/boating onto dry land. Probably not going to happen, but... it's a remote possibility.
    I'm currently working on other projects (Factions at the moment, mostly), but pretty soon I'm going to look at proper world trimming to complement the fill functionality. That one I expect to be a real struggle, since I'll likely end up trying to come up with my own world data file editing method.

    Since I haven't seen any bug reports, can I assume that the fill command is working perfectly for everyone, then? :)

    EDIT: of course as soon as I write that, one shows up. :p
    Are you sure you're running 1.3.0? It shows the help page if it doesn't recognize the command.
     
  30. Offline

    tgcarter

    I am unable to fill my world because the world name has a space in it. Can this be fixed? Thanks
     
  31. Offline

    Brettflan

    For the time being, simply go to the world in question in-game and run the command without specifying a world.

    I'll see about adding support for entering a world name inside quotation marks (i.e. "World Omega" with the quotation marks).
     

Share This Page