diff --git a/SpigotCore_Main/src/de/steamwar/sql/SWException.java b/SpigotCore_Main/src/de/steamwar/sql/SWException.java index 6098b9a..a9e72f0 100644 --- a/SpigotCore_Main/src/de/steamwar/sql/SWException.java +++ b/SpigotCore_Main/src/de/steamwar/sql/SWException.java @@ -64,6 +64,7 @@ public class SWException { reasons.add("Unsupported key:"); reasons.add("ThrownPotion entity"); reasons.add("Couldn't load custom particle"); + reasons.add("Chunk file at ["); reasons.add("Ignoring unknown attribute"); reasons.add("Skipping player strafe phase because no player was found"); ignorereasons = Collections.unmodifiableList(reasons); diff --git a/SpigotCore_Main/src/de/steamwar/sql/Schematic.java b/SpigotCore_Main/src/de/steamwar/sql/Schematic.java index 4be00c8..dbdee0f 100644 --- a/SpigotCore_Main/src/de/steamwar/sql/Schematic.java +++ b/SpigotCore_Main/src/de/steamwar/sql/Schematic.java @@ -220,6 +220,16 @@ public class Schematic { saveFromPlayer(player, true); } + public void saveFromBytes(byte[] bytes, boolean newFormat) { + Blob blob = SQL.blob(); + try { + blob.setBytes(1, bytes); + updateDatabase(blob, newFormat); + } catch (SQLException e) { + throw new SecurityException(e); + } + } + private void saveFromPlayer(Player player, boolean newFormat) throws IOException, NoClipboardException { Blob blob = SQL.blob(); VersionedRunnable.call(new VersionedRunnable(() -> { @@ -228,18 +238,18 @@ public class Schematic { } catch (SQLException e) { throw new RuntimeException(e.getMessage(), e); } - updateDatabase(blob, player, false); + updateDatabase(blob, false); }, 8), new VersionedRunnable(() -> { try { blob.setBytes(1, Schematic_14.getPlayerClipboard(player, newFormat)); } catch (SQLException exception) { throw new RuntimeException(exception.getMessage(), exception); } - updateDatabase(blob, player, newFormat); + updateDatabase(blob, newFormat); }, 14)); } - private void updateDatabase(Blob blob, Player player, boolean newFormat) { + private void updateDatabase(Blob blob, boolean newFormat) { SQL.update("UPDATE Schematic SET SchemData = ?, SchemFormat = ? WHERE SchemID = ?", blob, newFormat, schemID); schemFormat = newFormat; }