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

Версия Minecraft
1.16.X

Mikita

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

Java:
    public final int timeEvent =  Main.instance.getConfig().getInt("time_event") * 20 * 60;

    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))) {
            Clipboard clipboard = reader.read();
            BlockVector3 cord = BlockVector3.at(location.getX(), location.getY(), location.getZ());

            EditSession editSession = WorldEdit.getInstance().newEditSession(BukkitAdapter.adapt(location.getWorld()));
            Operation operation = (new ClipboardHolder(clipboard)).createPaste(editSession)
                    .to(cord).ignoreAirBlocks(false).build();
            Operations.complete(operation);

            editSession.close();

            BukkitRunnable timer = new BukkitRunnable() {
                @Override
                public void run() {
                    editSession.undo(editSession);
                }
            };
            timer.runTaskLater(Main.instance, timeEvent);

        } catch (IOException | WorldEditException e) {
            e.printStackTrace();
        }
    }


Мне нужно перебирать все блоки в схематики, и искать блок CHEST, какие есть варианты?
 
Взять точку спавна локации и по радиусу искать, я имею ввиду:

Код:
int radius = 10;

for (int x = location.getX() - radius; x <= location.getX() + radius; x++) {
 for (int y = location.getY() - radius; y <= 
  location.getY() + radius; y++) {
   for (int z = location.getZ() - radius; z <= 
    location.getZ() + radius; z++) {
    if (new Location(x,y,z).getBlock().getType() == Material.CHEST) break;
  } 
 } 
}

Писал по памяти, поэтому знаю, что есть ошибки, но судь способа не меняется.
Объединено

Просто нужно как-то обозначить сундук, чтобы если рядом были ещё он не спутал их. Возможно какие-то проверки ещё.
 
Назад
Сверху Снизу