From 34c759949f4c887796b8f47cadfcea5744182757 Mon Sep 17 00:00:00 2001 From: Lixfel Date: Mon, 23 Dec 2019 13:36:37 +0100 Subject: [PATCH] Making Schematics 1.14+ vanilla-WE compatible --- SpigotCore_14/pom.xml | 4 +- .../src/de/steamwar/sql/Schematic_14.java | 40 +++++++++---------- 2 files changed, 21 insertions(+), 23 deletions(-) diff --git a/SpigotCore_14/pom.xml b/SpigotCore_14/pom.xml index 2e75ed7..ec97358 100644 --- a/SpigotCore_14/pom.xml +++ b/SpigotCore_14/pom.xml @@ -35,8 +35,8 @@ steamwar - FAWE - 1.14 + WorldEdit + 1.15 provided diff --git a/SpigotCore_14/src/de/steamwar/sql/Schematic_14.java b/SpigotCore_14/src/de/steamwar/sql/Schematic_14.java index 3dbf695..e6f739c 100644 --- a/SpigotCore_14/src/de/steamwar/sql/Schematic_14.java +++ b/SpigotCore_14/src/de/steamwar/sql/Schematic_14.java @@ -4,6 +4,7 @@ import com.sk89q.worldedit.EmptyClipboardException; import com.sk89q.worldedit.bukkit.WorldEditPlugin; import com.sk89q.worldedit.extension.platform.Actor; import com.sk89q.worldedit.extent.clipboard.Clipboard; +import com.sk89q.worldedit.extent.clipboard.io.ClipboardFormat; import com.sk89q.worldedit.extent.clipboard.io.ClipboardFormats; import com.sk89q.worldedit.session.ClipboardHolder; import org.bukkit.Bukkit; @@ -16,28 +17,30 @@ import java.io.InputStream; class Schematic_14 { private Schematic_14(){} - private static final String SCHEM = "schem"; - private static final String SCHEMATIC = "schematic"; + private static final ClipboardFormat SCHEMATIC = ClipboardFormats.findByAlias("schematic"); + private static final ClipboardFormat SCHEM = ClipboardFormats.findByAlias("schem"); static byte[] getPlayerClipboard(Player player, boolean schemFormat) throws IOException, NoClipboardException { ClipboardHolder clipboardHolder; try { - clipboardHolder = WorldEditPlugin.getInstance().getSession(player).getClipboard(); + clipboardHolder = getWorldEditPlugin().getSession(player).getClipboard(); } catch (EmptyClipboardException e) { throw new NoClipboardException(); } - @SuppressWarnings("deprecation") Clipboard clipboard = clipboardHolder.getClipboard(); if(clipboard == null) throw new NoClipboardException(); ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); try{ - if(schemFormat) - ClipboardFormats.findByExtension(SCHEM).getWriter(outputStream).write(clipboard); - else - ClipboardFormats.findByExtension(SCHEMATIC).getWriter(outputStream).write(clipboard); + if(schemFormat){ + assert SCHEM != null; + SCHEM.getWriter(outputStream).write(clipboard); + }else{ + assert SCHEMATIC != null; + SCHEMATIC.getWriter(outputStream).write(clipboard); + } }catch(NullPointerException e){ throw new IOException(e); } @@ -45,15 +48,7 @@ class Schematic_14 { } static void setPlayerClipboard(Player player, InputStream is, boolean schemFormat) throws IOException, NoClipboardException { - Clipboard clipboard; - try { - if (schemFormat) - clipboard = ClipboardFormats.findByExtension(SCHEM).getReader(is).read(); - else - clipboard = ClipboardFormats.findByExtension(SCHEMATIC).getReader(is).read(); - }catch(NullPointerException e){ - throw new IOException(e); - } + Clipboard clipboard = getClipboard(is, schemFormat); if (clipboard == null) throw new NoClipboardException(); @@ -64,10 +59,13 @@ class Schematic_14 { static Clipboard getClipboard(InputStream is, boolean schemFormat) throws IOException, NoClipboardException { try { - if(schemFormat) - return ClipboardFormats.findByExtension(SCHEM).getReader(is).read(); - else - return ClipboardFormats.findByExtension(SCHEMATIC).getReader(is).read(); + if(schemFormat){ + assert SCHEM != null; + return SCHEM.getReader(is).read(); + }else{ + assert SCHEMATIC != null; + return SCHEMATIC.getReader(is).read(); + } } catch (NullPointerException e) { throw new NoClipboardException(); }