- Баллы
- 96
- Имя в Minecraft
- Xezard
Доброго времени суток, читатели данной темы.
В одном из моих плагинов мне понадобилось заполнить нужную мне территорию специальным блоком.
Проблема в том, что сделать мне это нужно, не используя сторонние апи вроде WorldEdit и прочих.
В теории:
Имею экземпляр плеера. При вводе им, определённой команды, берётся его локация (блок в районе ног) и от этой локации, во все стороны, мне нужно определёнными блоками всё заполнить, до тех пор, пока я не встречу на пути любой блок отличный от воздуха.
Сложно для понимания с первого прочтения, правда?
Что имею:
Примечательно то, что мой метод - работает только в одну сторону. В итоге - получается полоска из тех блоков, что мне нужно.
Однако мне нужно, чтобы заполнялось всё пустое пространство, вплоть до барьера в виде любого блока, отличного от воздуха.
В одном из моих плагинов мне понадобилось заполнить нужную мне территорию специальным блоком.
Проблема в том, что сделать мне это нужно, не используя сторонние апи вроде WorldEdit и прочих.
В теории:
Имею экземпляр плеера. При вводе им, определённой команды, берётся его локация (блок в районе ног) и от этой локации, во все стороны, мне нужно определёнными блоками всё заполнить, до тех пор, пока я не встречу на пути любой блок отличный от воздуха.
Сложно для понимания с первого прочтения, правда?
Что имею:
Java:
Player player = (Player) sender;
BlockIterator iterator = new BlockIterator(player.getWorld(), player.getLocation().toVector(), new Vector(2, 0, 0).multiply(1), 0.0D, 4);
Block block;
while (iterator.hasNext()) {
block = iterator.next;
if (block.getType() != Material.AIR) {
return;
}
block.setType(Material.<MY_VALUE>);
}
Примечательно то, что мой метод - работает только в одну сторону. В итоге - получается полоска из тех блоков, что мне нужно.
Однако мне нужно, чтобы заполнялось всё пустое пространство, вплоть до барьера в виде любого блока, отличного от воздуха.
Последнее редактирование:
