Войти или зарегистрироваться

Помогите Как сделать загрузку схемы в определенном месте?

  • Автор темы Автор темы No Name
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

No Name

Активный участник
Пользователь
Баллы
61
Приветствую. Хотел бы узнать, можно ли как-то реализовать, чтобы шематик создавал постройки только в определенном углу ЧАНКА, независимо от того, где игрок прописал команду? (Например прописал команду загрузки посередине чанка, но загрузка будет происходить в первом левом нижнем блоке)
Код:
Operation operation = new ClipboardHolder(clipboard).createPaste(editSession).to(BlockVector3.at(location.getX(), location.getY(), location.getZ())).ignoreAirBlocks(true).build();

JJ4u5QX.png

Или если это невозможно, можно ли сделать так, чтобы постройка загружалась чисто в центре, не выходя за пределы чанка, независимо от того, где игрок прописал команду.
 
Последнее редактирование:
А нельзя просто указать координаты этого блока вместо координат игрока?
А как установить определенные координаты, если команду можно прописать в любом месте?

Да и в принципе, как определить первый нижний блок слева в чанке?
 
Последнее редактирование:
А как установить определенные координаты, если команду можно прописать в любом месте
Получи чанк, получи его крайний блок. Первое ты уже делал, второе можно через chunk.getBlock(0, location.getY(), 0).getLocation().
Ну, или, если хочется по-умному, то получить координаты x и z можно как-то так int x = location.getBlockX() >> 4 << 4;
 
IDE при вставке chunk.getBlock(0, location.getY(), 0).getLocation выдает ошибку - 'getBlock(int, int, int)' in 'org.bukkit.Chunk' cannot be applied to '(int, double, int)' и предлагает добавить во второй аргумент (int).

Если вставить (int) - Cannot resolve method 'at(Block)'

Код:
 Chunk chunk = location.getWorld().getChunkAt(location.getBlockX() >> 4,location.getBlockZ() >> 4);
                chunk.getBlock(0, location.getY(), 0).getLocation();
                ClipboardReader reader = format.getReader(new FileInputStream(schem));
                Clipboard clipboard = reader.read();
                EditSession editSession = WorldEdit.getInstance().getEditSessionFactory().getEditSession(adaptedWorld, -1);
                Operation operation = new ClipboardHolder(clipboard).createPaste(editSession).to(BlockVector3.at(location.getBlockX(), location.getBlockY(), location.getBlockZ())).ignoreAirBlocks(true).build();
Ну, по ошибке и так должно быть понятно. Попробуй location.getBlockY() вместо location.getY().
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх