Inactive [WGEN] CleanroomGenerator v1.0.0 - Clean Room flat world multilayer Chunk Generator [1.2.4-R1.0]

Discussion in 'Inactive/Unsupported Plugins' started by NVX, Jul 5, 2011.

  1. Offline

    NVX

    CleanroomGenerator - Clean Room style flat world Chunk Generator
    Version: v1.0.0

    Find this project on BukkitDev for more information and download links!

    This plugin can be used by world managers such as MultiVerse (version 2.0+) as a Custom Chunk Generator to create customisable flat clean room style worlds.

    Your world manager must support Custom Chunk Generation or this will not work. MultiVerse only supports it in version 2.0 and later.

    Example usage with MultiVerse:
    /mvcreate cleanroom normal -g CleanroomGenerator:64,stone

    This will create a new world named "cleanroom" with the layer 0 as bedrock and layers 1-64 as stone, thus giving 65 total layers (including bedrock). Block ids are also valid in place of block names.

    You can also specify multiple layers such as:
    /mvcreate cleanroom normal -g CleanroomGenerator:10,stone,20,dirt,1,grass

    This would create a new world named "cleanroom" with layer 0 as bedrock, layers 1-10 as stone, layers 11-30 as dirt, and layer 31 as grass thus giving 32 total layers (including bedrock).

    If the generator id is prefixed with a "." character, layer0 will not be generated as bedrock by default, allowing you to create space maps, or have a different block at layer0. For space maps, the spawn is set to y=64 to allow some falling before damage is taken. Fly mods are recommended for this sort of map.

    Some more examples:

    /mvcreate cleanroom normal -g CleanroomGenerator: - Creates a map with only layer0 as bedrock.

    /mvcreate cleanroom normal -g CleanroomGenerator:. - Creates an empty 'space' map.

    /mvcreate cleanroom normal -g CleanroomGenerator - Creates a map with layer0 as bedrock, followed by 64 stone (default when no generator id is specified).

    More examples can be found at the Wiki

    Features:
    • Customisable height and block types of cleanroom.
    • Support for multiple layers.
    • Commands like WorldEdit's //regen will regenerate the correct blocks.
    • World sizes are not restricted as is the case with mcedited cleanroom maps.
    • Only generates chunks as required.
    • Able to create infinite space maps (using "." as the generator id).
    Known Conflicting Plugins:
    Any plugin which calls createWorld itself rather than letting your world manager plugin call it (with the appropriate parameters to specify WGEN) will cause issues. The following are known to cause conflicts, please let me know if you find any other plugins causing issues, or if any listed have been updated to no longer cause issues with custom WGENs.
    • ButtonWarp
    • Creative Gates
    • Inception
    Downloads on BukkitDev

    Source Code on GitHub and BukkitDev

    Changelog:
    Version 1.0.0
    • Updated to use Bukkit 1.2.x API, breaking backwards compatibility with Minecraft 1.1 and earlier, but allows for >128-high maps.
    • Arbitrarily high maps (as long as World.getMaxHeight() is sane).
    • Extended block id support.
    • Data value support (generator id syntax: "height,block[:datavalue]", for example "1,stone,2,wool,1,wool:5,1,35:1" will have 1x Bedrock, 2x White Wool (default data value is 0), 1x Lime Wool, 1x Orange Wool). Note only numeric data values are supported at present.

    Version 0.0.4
    • Added ability to have cleanrooms without layer0 being bedrock. Prefix the generator id with a "." to create one.

    Show Spoiler

    Version 0.0.3
    • Fixed spawn y (height) coordinate sometimes being 0 (silly race condition?)

    Version 0.0.2
    • Added ability to have multiple layers.
    • Minor fixes, optimisations and general code clean up.
    Version 0.0.1
    • Initial Release.
     
    Rwembee likes this.
  2. Offline

    ratty

    I'm not sure how to do it before its created, its all done in Multiverse.
    I didn't even know about bukkit.yml, it looks like it just has the defaults in there, do I add something to that?

    Code:
    database:
        username: bukkit
        isolation: SERIALIZABLE
        driver: org.sqlite.JDBC
        password: walrus
        url: jdbc:sqlite:{DIR}{NAME}.db
    settings:
        update-folder: update
        spawn-radius: 0
        permissions-file: permissions.yml
    aliases:
        icanhasbukkit:
        - version
    
     
  3. Offline

    NVX

    Code:
    worlds:
         <worldnamehere>:
           generator: CleanroomGenerator:<ID>
    Try that at the end of your bukkit.yml file for your default world, then delete your world folder and start the server it. That will allow it to have a custom generator for it.
     
  4. Offline

    ratty

    Cool, thanks!
    I was going to ask why delete the world, but you just mean if I want the whole thing to be generated as a clean room. This plugin comes in handy for those of us that try to limit the size of their worlds by pregenerating all the terrain, then forcing air chunks past that border. Then using a plugin like BorderGuard to prevent people from going past the edge. Previously I had to use MCE to generate the empty chunks out of game, and make sure to leave a border of about 200 in all directions to prevent chunks from being made. But now I can have them generate as air right in the game, its so much better now.
    TL;DR long winded way of saying there's a good use of this for those of us with existing worlds.
     
  5. Offline

    NVX

    @ratty Ah, interesting use of this plugin I had never thought of!

    That actually sounds like a feature I might consider adding - have say CleanroomGenerator:29,dirt,1,grass|5,5|.

    That would generate bedrock, 29 layers of dirt, 1 layer of grass for chunks -5 to 5 (ie, coordinate -80 to 80) in both x and z direction, and then air after that - could be useful for people who have a creative server so want a cleanroom for creative uses - but also want to limit the chunk generation distance after that - or who want to say generate chunks so that you have dirt on one side of the map and stone on the other side.

    If people have a use for that sort of feature (ie changing the terrain based on chunk or coordinate positions) post here with your specific requirements and I'll add it - no point adding it if nobody uses it - and I'd rather hit as many use cases as possible without having to worry about breaking it later on by adding new features that change the format used.
     
  6. Offline

    ratty

    That could be cool, or if you could say do the default terrain generation except in certain coordinates.

    Its probably not possible, but if it could block the chunk from being generated at all, that would be perfect. Players can't travel to them anyway, and it would just do like that jittering client/server disagreement thing you get when you have missing chunks and try to travel into them. Then there's no way I'd get floating chunks of any kind past where people can go.
     
  7. Offline

    JoshP95

    Hi, not sure if it's been said already but I was wondering round my cleanroom world and it seems that not all of the world is made up of the layers I specified - but it seems the rest starts to become a world with the cleanroom chunk taken out of it. Is this just what the plugin does or is there an error?
    I've done quite a bit in this world and I was expecting the whole world to generate the same layers forever - whether this just isn't possible I'm not sure.

    Just need to know whether this is meant to happen or if not, how can I fix?
    Cheers :)
     
  8. Offline

    NVX

    Hi Josh, that is not meant to happen - the world should be the same for every chunk generated.

    I've had someone else report a similar issue before, but as of yet I have been unable to reproduce the issue. Can you paste your full server logs from server startup until you witness a new chunk being generated with the default chunk generator instead of the cleanroom generator (use a teleport plugin or similar to ensure it's a freshly generated chunk not one that was generated before).
     
  9. Offline

    JoshP95

    Oh right I thought it wasn't! Umm I'm not too sure how to do this in the way you've asked. I have a few other plugins and things like that and I don't think anything comes up when a chunk is generated (for me anyway). I may be inexperienced and just not sure where to find it, or it just doesn't show up :/ Do you want me to create a new world and see if it recreates the problem?

    EDIT:
    All that comes up in the console when it is restarted is this (to do with CleanRoom)
    I hope it helps!

    01:50:21 [INFO] CleanroomGenerator version 0.0.4 is enabled!
    >r
    01:50:21 [INFO] Preparing level "world"
    >r
    01:50:21 [INFO] Preparing start region for level 0 (Seed: -8148415431067002460)
    >r
    01:50:42 [INFO] Preparing spawn area: 4%
    >r 
    01:50:42 [INFO] Preparing start region for level 1 (Seed: -3931769304186729713)
    >
    01:50:43 [INFO] Preparing spawn area: 69%
    >
    01:50:44 [INFO] Preparing spawn area: 73%
    >
    01:50:51 [INFO] Preparing spawn area: 89%
    >
    01:50:52 [INFO] Version: 60

    (Not sure if Version:60 is to do with your plugin or something else.)

    ANOTHER EDIT:

    Actually come to think of it, I'm not sure if that's even CleanRoom. Sorry about this mess I'm really not sure what to show you, to help :S
     
  10. Offline

    NVX

    @JoshP95 it's ok. Are you trying to make your default world (ie, the world named 'world') a cleanroom? If so, you have to do some special modifications to the bukkit.yml file to allow Bukkit to select the generator before MultiVerse loads up. If so, let me know and we can go from there.
     
  11. Offline

    JoshP95

    I'm trying to make my world 'spawnworld' into a complete cleanroom and I created this world using the long MultiVerse command /mvcreate cleanroom normal -g CleanroomGenerator:layers etc
    and thought it would continue out throughout the world (which you said would be the case).
    Does this help? Since I've created the world I've done quite a bit in it, so not sure how to fix that but still I may be able to move things into a new fixed cleanroom with WorldEdit.
    Thanks
     
  12. Offline

    NVX

    By spawnworld - you mean default world? If so, you have to add this to your bukkit.yml file:

    Code:
    worlds:
         <worldnamehere>:
           generator: CleanroomGenerator:<ID>
    This allows bukkit to set the generator on startup before MultiVerse is loaded.

    Doing that and restarting your server will allow new chunks to be generated correctly. Old chunks you will have to manually regenerate - I can recommend WorldEdit and the //chunk and //regen commands for this purpose (first will expand your selection to be the entire chunk, the second will regenerate your selection using the world generator) - The best of all is you can do that while your server is online :).
     
  13. Offline

    JoshP95

    Spawnworld is a name I've given to the new default world but 'world' is still my default.
    Using the advice you've given I suppose what I could do is, change the default world in server.properties to my 'spawnworld' perhaps, then I could use these chunk and regeneration commands.

    Is there a simpler way considering this isn't my default world?

    Cheers for all the help btw :)
     
  14. Offline

    NVX


    If it's not the default world, and the world was created properly with MV, then //regen should just work fine off the cuff. If it's not working (go test it and report back) - ie, if it generates non-cleanroom chunks - please paste your full server logs from when the server started until you tried the //regen (do a quick restart then test out //regen so you're not pasting epically long logs :p) - check server.log if it's scrolled off the screen.
     
  15. Offline

    JoshP95

    Just tried it, not working. It's regenerating non-cleanroom chunks :/

    Here's my server log, not sure if it shows what you want it to: :p

    http://pastebin.com/U9nBDqeR
     
  16. Offline

    NVX

    Ok, that... is weird... Just to confirm the world name is "spawnworld" that's having issues yeah?

    Can you try making a copy of your minecraft server with everything except the worlds and zip it up, then test if the issue still occurs? If so, upload the zip file somewhere so I can reproduce it on this end - from those logs, everything looks to be running perfectly fine, so the only thing I can think of is if a specific plugin you are running is conflicting with it. I have had some other people report similar issues before, but I've never been able to reproduce it - if you can send a zip file that I can extract and run that reproduces it it'd be a -very- big help in tracking down the issue - with any luck it won't be specific to your world saves (which could make the zip file a lot bigger...)
     
  17. Offline

    JoshP95


    Yeah that's the one.

    Umm I can't do that right now, however would a list of plugins help for now? I should be able to do the zip thing later on.
     
  18. Offline

    NVX

    I've tried before a few plugins last time the issue was raised, but I suspect it might be a combination of the plugins, and config setup as I've never been able to reproduce it that way. I'm not in a rush, but if you can get the zip to me it will speed up finding the cause of the issue greatly. :)
     
  19. Offline

    JoshP95

    Okay sure :) I will do it as soon as I can, where can I upload it without making it publicly available to all but rather just to you?
     
  20. Offline

    NVX

    If you split it in 25mb or less chunks you can e-mail it - else just chuck it up on a server somewhere and put a password on the rar file and PM me the link+password.
     
  21. Offline

    JoshP95

    I'll do the latter, I will PM as soon as it's ready!
     
  22. Offline

    NVX

    Thanks, greatly appreciated as this should help track down a rare goddamn hard to reproduce bug/plugin conflict in either CR or MV2-Core :) (Or figure out what those unlucky few are doing wrong to cause it - although I doubt that's the case based on the logs provided)

    I managed to find (and reproduce) a similar bug in the Dimension Door multiworld management plugin thanks to similar efforts of another user (Still waiting on the author to get back to me on it though) - Was hoping it was a bug in my code or bukkit as then it'd have explained the MV2-Core issues too, but unfortunately it wasn't, so I'm back to square one on this issue at the moment - your efforts should change that :D.

    I should have some time to beat it with a stick on the weekend, feel free to jump in irc.esper.net in #multiverse as I'm usually floating around in there :)
     
  23. Offline

    JoshP95

    No problem! I'm glad I can help :)

    Oh right okay well I hope they do! Sure I'll visit sometime soon :)

    I've changed my mind about how I will get it too you (can't seem to lock the RAR) can I just email? If you PM me it that'd be cool thanks :) Also if you know how to lock a RAR that'd be helpful too :L I can't seem to do it
     
  24. Offline

    NVX

    Hey, just made a little breakthrough - go through the list of plugins that load before Multiverse2-Core (as per your http://pastebin.com/U9nBDqeR link) - Go check to see if any of those reference the cleanroom world in any way, shape or form - ie portals, database entries (protected chests), configuration keys, etc - just grep your plugins folder for the world name of your cleanroom and report back which ones do - looks like some plugins are naughty and call createWorld() when they probably shouldn't be...
     
  25. Offline

    NVX

    And the conflicting plugin is.... *drumroll* ButtonWarp! http://forums.bukkit.org/threads/8981/page-15#post-660395

    It looks like it wasn't a bug in Bukkit, Multiverse/DimensionDoor, or CleanroomGenerator - it was simply plugins acting as world managers when they shouldn't be!

    I'll make a list of known conflicting plugins in the first post (such plugins will conflict with all WGENs and world manager plugins).
     
  26. Offline

    JoshP95

    Ooooooh wow nice! So what should I do? Shall I wait for Codisimus to update his plugin and then it'll be fine? or something else? I currently use his plugin quite a bit for transport so I'm sad that it's this one that's conflicting :L

    Glad you found the problem though :)
     
  27. Offline

    NVX

    Check out the post in the ButtonWarp thread - another option is to try the bukkit.yml method of specifying the generator as that might allow it to work as well (check a few pages back for details)
     
  28. Offline

    Zgred

    Is it possible to increase height of generated maps to 255?
     
  29. Offline

    NVX

    Yes, that is the maximum height supported by Minecraft, so it should work, have you tried it and had it not work? If so, please paste the generator id you are using and I'll look into it.
     
  30. Offline

    Zgred

    I have used command:

    /mvcreate cleanroom normal -g CleanroomGenerator:32,stone,31,grass

    and i can build only 63 blocks up. And i can't build under bedrock. So the world height is limited to 127 blocks, like in 1.7 and older versions. I am using 1129 build of CB.
     
  31. Offline

    NVX

    Oh sorry, I'm silly - 0-127 is what is supported by Minecraft by default, 1.8 made it easier to mod by making it dependent on only a single variable, but it still requires Bukkit to provide APIs to allow for this before it can be used in maps.
     

Share This Page