Как находить табличку в схематиках?

Версия Minecraft
1.18.X
Ядро
Purpur

marensovich

Пользователь
Сообщения
3
Другие ядра
  1. Purpur
Доброго времени суток, ув. форумчане. Подскажите, как получать табличку при вставке схематика.

Если подробней, по команде я вставляю схематик, в этом схематике (в его пределах) есть табличка.
Вам необходимо зарегистрироваться для просмотра изображений-вложений

Моя задача, сканируя весь схематик (каждый блок) получить табличку и работать с ней. Я пытался несколькими способами это реализовать:
1)
Java:
    private void processSchematicBlocks(Location loc, Vector3 min, Vector3 max, World world) {
        for (int y = max.getBlockY(); y >= min.getBlockY(); y--) {
            for (int x = min.getBlockX(); x <= max.getBlockX(); x++) {
                for (int z = min.getBlockZ(); z <= max.getBlockZ(); z++) {
                    Block currentBlock = world.getBlockAt(x, y, z);
                   
                    if(currentBlock.getType() == Material.OAK_SIGN) {
                        plugin.getLogger().info("test");
                    }
2)
Java:
    private void processSchematicBlocks(Location loc, Vector3 min, Vector3 max, World world) {
        for (int y = max.getBlockY(); y >= min.getBlockY(); y--) {
            for (int x = min.getBlockX(); x <= max.getBlockX(); x++) {
                for (int z = min.getBlockZ(); z <= max.getBlockZ(); z++) {
                    Block currentBlock = world.getBlockAt(x, y, z);
                    
                    if(currentBlock.getState() instanceof Sign) {
                        plugin.getLogger().info("test");
                    }


Ничего не сработало, условия не срабатывают, т.к вывода в консоль нету. А мне нужно работать со стройками на табличке. Помогите пожалуйста)
 
Последнее редактирование:
Есть уверенность, что ошибка в алгоритме, а не в переменных? Воткни дебаг-логгеры, посмотри что получается.
 
Есть уверенность, что ошибка в алгоритме, а не в переменных? Воткни дебаг-логгеры, посмотри что получается.
Так я пытался, тут вопрос в другом. У меня циклы работают нормально, у меня не срабатывает условие.
 
Последнее редактирование:
Так я пытался, тут вопрос в другом. У меня циклы работают нормально, у меня не срабатывает условие.
if(currentBlock.getState() instanceof Sign) {
Вруби отладчик
Тыкни брейкпоинт сюда
Подсмотри что за блок находится на тех координатах, на которых должна быть табличка
Я практически уверен что min и max не те

offtop
А вообще, код написан очень не оптимально, за небольшую поддержку рублем я смогу его ускорить в 50-1000+ раз (ну или проконсультировать)
Если важна производительность и интересно где накосячил - в ЛС
 
Последнее редактирование:
Назад
Сверху Снизу