Всем огромный привет, как сохранять блоки до вставки схематики?
Код на создание схематики:
Код на удаление схематики: (Вот тут и надо возращать обратно блоки которые там стояли):
Код на создание схематики:
Java:
public void spawnShematic(Location location, String fileName) {
File file = new File(Main.instance.getDataFolder() + "/schem/" + fileName);
ClipboardFormat format = ClipboardFormats.findByFile(file);
try {
ClipboardReader reader = format.getReader(new FileInputStream(file));
try {
Clipboard clipboard = reader.read();
BlockVector3 cord = BlockVector3.at(location.getX(), location.getY(), location.getZ());
try {
EditSession editSession = WorldEdit.getInstance().newEditSession(BukkitAdapter.adapt
(Objects.<World>requireNonNull(location.getWorld())));
try {
Operation operation = (new ClipboardHolder(clipboard)).createPaste(editSession).to(cord).ignoreAirBlocks(false).build();
Operations.complete(operation);
if (editSession != null)
editSession.close();
} catch (Throwable throwable) {
if (editSession != null)
try {
editSession.close();
} catch (Throwable throwable1) {
throwable.addSuppressed(throwable1);
}
throw throwable;
}
} catch (WorldEditException worldEditException) {}
if (reader != null)
reader.close();
} catch (Throwable throwable) {
if (reader != null)
try {
reader.close();
} catch (Throwable throwable1) {
throwable.addSuppressed(throwable1);
}
throw throwable;
}
} catch (IOException e) {
e.printStackTrace();
}
}
Код на удаление схематики: (Вот тут и надо возращать обратно блоки которые там стояли):
Java:
public void deleteSchematic(Location location, String fileName) {
File file = new File(Main.instance.getDataFolder() + "/schem/" + fileName);
ClipboardFormat format = ClipboardFormats.findByFile(file);
try {
ClipboardReader reader = format.getReader(new FileInputStream(file));
try {
Clipboard clipboard = reader.read();
BlockVector3 cord = BlockVector3.at(location.getX(), location.getY(), location.getZ());
try {
EditSession editSession = WorldEdit.getInstance().newEditSession(BukkitAdapter.adapt(Objects.requireNonNull(location.getWorld())));
try {
Operation operation = (new ClipboardHolder(clipboard)).createPaste(editSession).to(cord).ignoreAirBlocks(false).build();
Operations.complete(operation);
if (editSession != null)
editSession.close();
} catch (Throwable throwable) {
if (editSession != null) {
try {
editSession.close();
} catch (Throwable throwable1) {
throwable.addSuppressed(throwable1);
}
}
throw throwable;
}
} catch (WorldEditException worldEditException) {
// Обработка исключения WorldEditException
}
if (reader != null)
reader.close();
} catch (Throwable throwable) {
if (reader != null) {
try {
reader.close();
} catch (Throwable throwable1) {
throwable.addSuppressed(throwable1);
}
}
throw throwable;
}
} catch (IOException e) {
e.printStackTrace();
}
}