I’m not a Java programmer at all, but some years ago, a friend made me a Bukkit plugin for me to restore map from zip backups, to manage a mini-game server where maps were destroyed during each game.
But today, to run my server on Sponge, I’m looking for someone who could create a new Sponge plugin to manage all this stuff.
A couple of years back, when I still ran a public server (Bukkit), WorldEdit was very well able to restore from zips and you could even specify from which backup (if you had had your automated backups keep several versions back in time) and you could restore it just within a WorldEdit selection, if you so desired.
I haven’t had a look at the abilities of current Sponge-compatible WorldEdit versions yet, maybe the functionality has gone, maybe it’s still there. Anyway, you should take a look whether it already provides what you’re looking for.
The latest Sponge build in the master branch (Build #3677 as of today) works for me (as far as loading the plugin and not crashing for simple operations goes, I haven’t had a deeper look, as I said). Your mileage may vary.
So you mean restoring a complete world without causing pauses for the rest of the game? Making sure that no player is in that world during the time or teleporting them out or kicking them beforehand?
Well, I’m pretty sure this is technically possible with Sponge if the plugin in question were to make sure the specific world is unloaded (and stays unloaded while performing its action) and would then rename or deep-copy a complete folder tree in a Thread/Worker that doesn’t block the rest of the server.
The problem is that, on Sponge, there is only Project Worlds for multiworld managing, and the plugin has a lot of bugs.
So, I think that my only solutions is to use Bungeecord server, and create a plugin by myself, to delete and paste world folder, and restore maps.