package eu.thog.uhcrun.generator;
import com.sk89q.worldedit.CuboidClipboard;
import com.sk89q.worldedit.EditSession;
import com.sk89q.worldedit.MaxChangedBlocksException;
import com.sk89q.worldedit.Vector;
import com.sk89q.worldedit.bukkit.BukkitWorld;
import com.sk89q.worldedit.schematic.SchematicFormat;
import com.sk89q.worldedit.world.DataException;
import org.bukkit.Bukkit;
import org.bukkit.World;
import java.io.File;
import java.io.IOException;
import java.util.logging.Logger;
/**
* This file is a part of the UHCRun Project CodeBase
* Created by Thog
* (C) Copyright Thomas Guillemard 2016
* All rights reserved.
*/
public class LobbyPopulator
{
private final Logger logger;
private final File file;
private EditSession es;
public LobbyPopulator(Logger logger, File file)
{
this.logger = logger;
this.file = new File(file, "/lobby.schematic");
}
public void generate()
{
logger.info("Generating Looby...");
if (file.exists())
{
try
{
Vector v = new Vector(0, 200, 0);
World worldf = Bukkit.getWorld("world");
worldf.loadChunk(0, 0);
BukkitWorld bwf = new BukkitWorld(worldf);
this.es = new EditSession(bwf, -1);
this.es.setFastMode(true);
CuboidClipboard c1 = SchematicFormat.MCEDIT.load(file);
c1.paste(this.es, v, true);
} catch (MaxChangedBlocksException | IOException | DataException ex)
{
ex.printStackTrace();
}
} else
{
logger.severe("File does not exist. Abort...");
}
logger.info("Done.");
}
public void remove()
{
this.es.undo(this.es);
}
}