Вопрос Как сохранять блоки при вставке схематики?

Версия Minecraft
1.16.X

Mikita

Заблокирован
Сообщения
57
Решения
3
Всем огромный привет, как сохранять блоки до вставки схематики?


Код на создание схематики:

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();
        }
    }
 
Назад
Сверху Снизу