Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.plugin.rndsch;
- import com.sk89q.worldedit.blocks.BlockData;
- import com.sk89q.worldedit.EditSession;
- import com.sk89q.worldedit.EmptyClipboardException;
- import com.sk89q.worldedit.IncompleteRegionException;
- import com.sk89q.worldedit.LocalConfiguration;
- import com.sk89q.worldedit.LocalSession;
- import com.sk89q.worldedit.MaxChangedBlocksException;
- import com.sk89q.worldedit.Vector;
- import com.sk89q.worldedit.WorldEdit;
- import com.sk89q.worldedit.bukkit.BukkitWorld;
- import com.sk89q.worldedit.bukkit.WorldEditPlugin;
- import com.sk89q.worldedit.schematic.SchematicFormat;
- import com.sk89q.worldedit.util.io.file.FilenameException;
- import com.sk89q.worldedit.world.DataException;
- import com.sk89q.worldedit.scripting.*;
- import com.sk89q.worldedit.command.*;
- import com.sk89q.worldedit.extension.platform.Actor;
- import com.sk89q.worldedit.scripting.java.*;
- import com.sk89q.worldedit.function.*;
- import com.sk89q.worldedit.LocalPlayer;
- import java.io.File;
- import java.io.IOException;
- import org.bukkit.World;
- import org.bukkit.entity.Player;
- public class TerrainManager
- {
- private static final String EXTENSION = "schematic";
- private final WorldEdit we;
- private final LocalSession localSession;
- private final EditSession editSession;
- private final Player localPlayer;
- public TerrainManager(WorldEditPlugin wep, Player player)
- {
- this.we = wep.getWorldEdit();
- this.localPlayer = (Player) wep.wrapPlayer(player);
- this.localSession = this.we.hasSession(this.localPlayer);
- this.editSession = this.localSession.createEditSession(this.localPlayer);
- this.localSession.remember(this.editSession);
- }
- public TerrainManager(WorldEditPlugin wep, World world)
- {
- this.we = wep.getWorldEdit();
- this.localPlayer = null;
- this.localSession = new LocalSession(this.we.getConfiguration());
- this.editSession = new EditSession(new BukkitWorld(world), this.we.getConfiguration().maxChangeLimit);
- }
- public void loadSchematic(File saveFile, boolean replaceAir)
- throws FilenameException, DataException, IOException, MaxChangedBlocksException, EmptyClipboardException, IncompleteRegionException
- {
- saveFile = this.we.getSafeSaveFile((com.sk89q.worldedit.entity.Player) this.localPlayer,
- saveFile.getParentFile(), saveFile.getName(),
- "schematic", new String[] { "schematic" });
- Vector loc = this.localSession.getPlacementPosition((com.sk89q.worldedit.entity.Player) this.localPlayer);
- this.editSession.enableQueue();
- this.localSession.setClipboard(SchematicFormat.MCEDIT.load(saveFile));
- this.localSession.getClipboard().paste(this.editSession, loc, replaceAir, true);
- this.localSession.remember(this.editSession);
- this.editSession.flushQueue();
- this.we.flushBlockBag((Actor) this.localPlayer, this.editSession);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement