Skip to content

Commit

Permalink
Fixed deprecation warning for worldedit on versions below 1.13.
Browse files Browse the repository at this point in the history
  • Loading branch information
PdeBot committed Dec 28, 2020
1 parent db9f6f4 commit 178c0fb
Showing 1 changed file with 27 additions and 12 deletions.
Original file line number Diff line number Diff line change
@@ -1,33 +1,48 @@
package com.gmail.val59000mc.schematics;

import com.sk89q.worldedit.CuboidClipboard;
import com.sk89q.worldedit.EditSession;
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.MCEditSchematicFormat;
import com.sk89q.worldedit.extent.clipboard.Clipboard;
import com.sk89q.worldedit.extent.clipboard.io.ClipboardFormat;
import com.sk89q.worldedit.extent.clipboard.io.ClipboardReader;
import com.sk89q.worldedit.function.operation.Operation;
import com.sk89q.worldedit.function.operation.Operations;
import com.sk89q.worldedit.session.ClipboardHolder;
import com.sk89q.worldedit.world.World;
import org.bukkit.Bukkit;
import org.bukkit.Location;

import java.io.File;
import java.io.FileInputStream;
import java.util.ArrayList;

@SuppressWarnings("deprecation")
public class SchematicHandler8{

public static ArrayList<Integer> pasteSchematic(Location loc, String path) throws Exception{
WorldEditPlugin we = (WorldEditPlugin) Bukkit.getPluginManager().getPlugin("WorldEdit");
Bukkit.getLogger().info("[UhcCore] Pasting "+path);
File schematic = new File(path);
EditSession session = we.getWorldEdit().getEditSessionFactory().getEditSession(new BukkitWorld(loc.getWorld()), -1);

CuboidClipboard clipboard = MCEditSchematicFormat.getFormat(schematic).load(schematic);
clipboard.paste(session, new Vector(loc.getBlockX(),loc.getBlockY(),loc.getBlockZ()), false);
World world = new BukkitWorld(loc.getWorld());

ClipboardFormat format = ClipboardFormat.findByFile(schematic);
ClipboardReader reader = format.getReader(new FileInputStream(schematic));
Clipboard clipboard = reader.read(world.getWorldData());

EditSession editSession = WorldEdit.getInstance().getEditSessionFactory().getEditSession(world, -1);

Operation operation = new ClipboardHolder(clipboard, world.getWorldData())
.createPaste(editSession, world.getWorldData())
.to(new Vector(loc.getX(), loc.getY(), loc.getZ()))
.ignoreAirBlocks(false)
.build();

Operations.complete(operation);

ArrayList<Integer> dimensions = new ArrayList<>();
dimensions.add(clipboard.getHeight());
dimensions.add(clipboard.getLength());
dimensions.add(clipboard.getWidth());
dimensions.add(clipboard.getDimensions().getBlockY());
dimensions.add(clipboard.getDimensions().getBlockX());
dimensions.add(clipboard.getDimensions().getBlockZ());

Bukkit.getLogger().info("[UhcCore] Successfully pasted '"+path+"' at "+loc.getBlockX()+" "+loc.getBlockY()+" "+loc.getBlockZ());
return dimensions;
Expand Down

0 comments on commit 178c0fb

Please sign in to comment.