forked from SteamWar/SteamWar
Fix WorldEditWrapper not loading schematics in 1.21
This commit is contained in:
@@ -22,7 +22,10 @@ package de.steamwar.core;
|
||||
import com.google.common.base.Preconditions;
|
||||
import com.google.common.collect.Maps;
|
||||
import com.sk89q.jnbt.*;
|
||||
import com.sk89q.worldedit.*;
|
||||
import com.sk89q.worldedit.BlockVector;
|
||||
import com.sk89q.worldedit.Vector;
|
||||
import com.sk89q.worldedit.WorldEdit;
|
||||
import com.sk89q.worldedit.WorldEditException;
|
||||
import com.sk89q.worldedit.blocks.BaseBlock;
|
||||
import com.sk89q.worldedit.bukkit.BukkitWorld;
|
||||
import com.sk89q.worldedit.extension.input.ParserContext;
|
||||
@@ -57,22 +60,25 @@ public class WorldEditWrapper8 implements WorldEditWrapper {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setPlayerClipboard(Player player, InputStream is, NodeData.SchematicFormat schemFormat) {
|
||||
public void setPlayerClipboard(Player player, Clipboard clipboard) {
|
||||
WorldData world = new BukkitWorld(player.getWorld()).getWorldData();
|
||||
Clipboard clipboard;
|
||||
try {
|
||||
clipboard = getClipboard(is, schemFormat);
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
Actor actor = WorldEditWrapper.getWorldEditPlugin().wrapCommandSender(player);
|
||||
WorldEditWrapper.getWorldEditPlugin().getWorldEdit().getSessionManager().get(actor).setClipboard(new ClipboardHolder(clipboard, world));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Clipboard getClipboard(InputStream is, NodeData.SchematicFormat schemFormat) throws IOException {
|
||||
switch (schemFormat) {
|
||||
public Clipboard getClipboard(NodeData data) throws IOException {
|
||||
InputStream is = data.schemData(true);
|
||||
return readClipboard(is, data.getNodeFormat());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Clipboard getClipboard(InputStream inputStream) throws IOException {
|
||||
return readClipboard(inputStream, getNativeFormat());
|
||||
}
|
||||
|
||||
private Clipboard readClipboard(InputStream is, NodeData.SchematicFormat format) throws IOException {
|
||||
switch (format) {
|
||||
case MCEDIT:
|
||||
return new SchematicReader(new NBTInputStream(is)).read(WorldEdit.getInstance().getServer().getWorlds().get(0).getWorldData());
|
||||
case SPONGE_V2:
|
||||
|
||||
Reference in New Issue
Block a user