package tc.oc.pgm.terrain;
import java.io.File;
import java.io.IOException;
import javax.annotation.Nullable;
import org.bukkit.World;
import tc.oc.pgm.module.ModuleLoadException;
/**
* Creator and destroyer of {@link World}s
*/
public interface WorldManager {
/**
* Create or load a world based on the given settings.
* If the world is already loaded, it will be returned.
*/
World createWorld(String worldName) throws ModuleLoadException, IOException;
/**
* Unload the given world
*/
void unloadWorld(World world);
/**
* Destroy the given world, optionally copying it to the given archive location first.
*/
void destroyWorld(String worldName, @Nullable File archive);
}