[MISC] ScratchWorlds v0.4.1 - Temporary Worlds [1000]

Discussion in 'Inactive/Unsupported Plugins' started by lithium3141, Jun 5, 2011.

  1. Offline

    lithium3141

    ScratchWorlds - Create and manage temporary worlds
    Latest version - 0.4.1

    ScratchWorlds allows players to create and reset "scratch" worlds, or temporary locations used for mining, transient structures, etc. It provides a handy way to let users access and mine in newly generated chunks under the latest Minecraft version without abandoning maps or chunks generated in older versions.

    WARNING: ScratchWorlds v0.4 introduced a new configuration file format. While there is an automatic upgrade built in to the plugin, there is a remote possibility that your config file will not be migrated properly, especially if your world names have special characters. Try v0.4 first, and if you are having trouble with your config, see the GitHub wiki page about ScratchWorlds configuration.

    Features:
    • List all worlds, both scratch and permanent
    • Completely regenerate scratch worlds
    • Randomize scratch world seed (configurable per-world)
    • Use custom ChunkGenerator objects
    Requirements:
    To work fully, ScratchWorlds requires that your world folders be in the root of your CraftBukkit installation directory. In addition, it can make use of the Permissions plugin, but does not require Permissions to work properly. Finally, for ScratchWorlds 0.4.1 and newer, you should be using a recent Bukkit implementation - CraftBukkit b953 is known to work, but older builds have not been tested.

    Download:
    • v0.4.1 - New config; more options; custom generator support (v0.4)
    • v0.3 - Randomize seeds
    • v0.2.1 - Integrate Permissions (v0.2)
    • v0.1 - Initial release
    The source code and outstanding issues are available on GitHub.

    Usage:
    The ScratchWorlds plugin provides a single command, /scratch. Current commands are as follows, with mandatory arguments in curly braces and optional arguments in brackets.
    • /scratch list: List all known worlds and their "scratch" status.
    • /scratch mark {world}: Set a world as scratch
    • /scratch unmark {world}: Set a world as permanent
    • /scratch regenerate [world]: Regenerate the given world, or all marked worlds if no world is given
    • /scratch seed: Display the seed for the current world
    Permissions:
    The permissions nodes used are identical to the commands that can be issued, replacing spaces with periods (and ignoring arguments):
    • scratch.list allows world listing
    • scratch.mark allows world scratch marking
    • scratch.unmark allows world scratch unmarking
    • scratch.regenerate allows regeneration of all scratch worlds
    • scratch.seed allows the display of the current world seed
    • scratch.* grants all ScratchWorlds permissions
    If Permissions is not detected, ScratchWorlds will grant access to all commands to every user. It's strongly recommended to install Permissions and grant users minimal permissions.

    This plugin does not handle world management on its own; another plugin, such as MultiVerse, is recommended for creating and managing new worlds.

    Changelog:
    • v0.4.1 - Introduce support for custom world ChunkGenerators. Tested with Multiverse 2.x and CleanroomGenerator v0.0.1. Thanks to NVX for the motivation and code suggestion to implement this feature!
    • v0.4 - Move to configuration format version 2. Allow configuration of seed randomization (on/off per-world). Introduce automatic config migration. Allow regeneration of individual worlds.
    • v0.3 - Introduce seed handling. Change world regeneration to always randomize seed when running a regenerate. Allow players to show world seed.
    • v0.2.1 - Fix bug in Permissions integration (always grant command access when Permissions not detected).
    • v0.2 - Integrate Permissions plugin. Restrict command access based on permissions.
    • v0.1 - Initial release. Implement mark, unmark, list, and regenerate commands.
     
  2. Offline

    Daniel Few

    @lithium3141
    I'm really sorry, I think I'm tiered.
    This looks interesting but I'm not entirely sure what it's for.
    Can you use it to save a world, do whatever you want to it, then reload it?
    -DanJames
     
  3. Offline

    lithium3141

    Almost. I just want to make sure I'm being clear - let me give an example.

    Think of it this way. You have two worlds, "main" and "test." Now let's say "main" has been around for a couple Minecraft updates, and so some of the chunks don't have lapis lazuli in them, or don't grow tall grass. You have to go a long way in the main world to find chunks with those resources.

    What you can do with this plugin is mark the "test" world as a "scratch" world. Then, whatever changes you make to it, you can reset - wiping out and resetting the "test" world - with a single command. This means that no matter your Minecraft version or how long the "main" world has been around, the "test" world will always have up-to-date chunks with new resources, etc. You can't build there, since any changes to the "test" world get destroyed when you regenerate it, but your resources will keep coming back.

    That's the purpose I wrote it for, anyway (I got tired of going farther and farther to find clay, lapis, etc.). I'm sure other people can use it in different ways.
     
  4. Offline

    Daniel Few

    @lithium3141
    Ohhh ok :) Thanks for clearing that up.
    I'll test this out when I can :)
    -DanJames
     
  5. Offline

    lithium3141

    Thanks! Bug reports/feature requests always appreciated - the plugin is still kind of taking shape.
     
  6. Offline

    Plague

    changelog missing
     
  7. Offline

    lithium3141

    Fixed.
     
  8. Offline

    Plague

    aand it has to be at the end :)
     
  9. Offline

    lithium3141

    My bad - fixed, again :)
     
  10. Offline

    Asphodan

    Allow the plug-in to change/randomize the seed of the Scratched worlds?
     
  11. Offline

    lithium3141

    Working on it. I have some code that does this, but it doesn't seem to be reliable - the world will sometimes not alter its seed, and I'm not sure why. This feature is targeted for v0.3.

    Edit: implemented! Grab the latest build from the original post.
     
  12. Offline

    vrox

    Can you implement a way to have a safe area in the world which will never be reset? I need somewhere to place the portal to the world, and don't want to have to remake the portal every time I regenerate the world. Just 1 chunk is more then enough.
     
  13. Offline

    lithium3141

    My only concern with this is that if (when) the seed changes, the chunk edges for newly generated terrain won't line up with the "safe" chunk. I'll try it out anyway, though, and see what happens.

    Edit: I've opened an issue for your request on GitHub. You can watch progress there and see when the issue gets closed.
     
  14. Offline

    vrox

    Thanks! I don't really care if they would line up well. The only problem would be water or lava spilling over, and I would make some sort of wall to take care of that.
     
  15. Offline

    Asphodan

    ScratchWorlds does not respect the Animal / Mob settings via MultiVerse, after the seed is randomized.
     
  16. Offline

    lithium3141

    I'm sorry, but this isn't really a problem in ScratchWorlds. I don't do any world setting management - all that belongs to MultiVerse. There have been numerous bugs in the past about MultiVerse not respecting exactly this setting under various conditions (I managed to duplicate one today). I would recommend either asking in the MultiVerse thread, or waiting for the release of MultiVerse 2.0 (which is sure to be pretty awesome).
     
    fernferret likes this.
  17. Offline

    NVX

    Heyia, can you please add support for custom Chunk Generators?

    Code:
    ChunkGenerator gen = world.getGenerator();
    at line 85 or so (next to the environment stuff) in SWRegenerateCommand.java then changing

    Code:
    this.plugin.getServer().createWorld(worldName, env, seed);
    to

    Code:
    this.plugin.getServer().createWorld(worldName, env, seed, gen);
    in the same file at line 120 should just about do it. Quick little 2-liner. Thanks :)
     
  18. Offline

    lithium3141

    Couple more than two lines, but done in v0.4.1. :)
     
  19. Offline

    fernferret

    Multiverse dev here. Just to let ya know, we will be working together (myself and @lithium3141) to get everyone a Multiverse 2 compatible version of ScratchWorlds.

    That is all.
     
    Mentioum likes this.
  20. Offline

    Mentioum

    good to know!
     

Share This Page