World upgrade helper plugin (using existing APIs!)

Discussion in 'Archived: Plugin Requests' started by Darkhand81, Dec 7, 2012.

  1. Offline


    Hi there,

    Every time Minecraft's world generator is changed (to add new ores, naturally occurring blocks, natural structures, etc), typically admins have to create an entirely new world and have their players start from scratch (or let them explore new chunks which is cumbersome... where exactly are the new chunks?). Builds can be manually transferred by admins and portals to the old world can be set up, but there's only so much you can do to stem the tide of having to start over.

    I like to pre-generate my world, to provide for nice pretty Dynmaps and to take the load of chunk generation off my production server. When the world generator is updated, I typically recreate the world from the same seed to give players the same landscape, but have all the new features available to them. Then I provide a portal to go back and forth between the two for a few weeks so they can gradually move over. I also manually move some of the best builds, but all this is troublesome.

    99% of my player's work is within the boundaries of their claims in my server's land management system (currently GriefPrevention). What if, when the world generator is updated and a new world is needed, you could have a plugin step through each GriefPrevention claim, and use WorldEdit's copy/paste functionality to transfer each one to a new, fresh world? Next time players log in, everything in the new version of the game is available to them, and all their builds are still there! The world was upgraded seamlessly to end users! No more abandoning the world, no more losing builds, just because there's a new ore you want your players to have access to.

    That's where you come in! I'm looking for someone to simply utilize the APIs that already exist in both plugins to allow a user to generate a fresh world, and automatically WorldEdit copy/paste each claim from the old world to the new world. Something similar to the following:

    Obtain a list of all GriefPrevention claim positions in a given world (API provided)
    For each claim:
        WorldEdit copy (API provided)
        WorldEdit paste (in the same absolute position) to the new world (API provided)
    I use GriefPrevention so that's the land management system I'm looking to have implemented (it's great for this application because the claims are 3-dimensional and don't necessarily go down to bedrock, leaving more area to be upgraded!). But the other major land management systems like Towny, Residence, etc have their own APIs as well. I would imagine this could be used for all of them to one extent or another!

    Abandoning the world because of a small update to the world generator could be a thing of the past! What say you!
  2. Offline


    shameless bump! I would absolutely love to see this happen. It's out of my skill range atm.
  3. Offline


    Haven't found any love for this idea yet, but I'm still shopping it around!
  4. Offline


    1.5 is due to introduce a new ore(s)... I would imagine there are lots of servers that would love to not have to delete their worlds and start over just so they can have access to the new ore. By copying and pasting each claim into a fresh, identical world (except for the fact that it contains all the new features), this would solve that problem!

    The user can manually create the fresh world on his own... The ability to automatically WorldEdit copy and paste every claim from one world to another is the important thing.
  5. Offline


    This would probably be a question for the WorldEdit folks, but does anyone know if there's a way to know when a WorldEdit paste is completed? An event of some kind, etc? Trying to imagine how to tell when a paste is done before moving on to the next one, short of a simple timer.

Share This Page