- Баллы
- 61
Здравствуйте, хочу сделать функцию, генерирующую дерево с основанием в данной точке (координаты уже даны), как это можно сделать проще, не прибегая к обозначению каждого блока и его последующей setType()? В Дискорде отписывали, что можно юзать world.generateTree(Location, TreeType), но он почему-то у меня не работает. Код ниже, если что - укажите на мои ошибки.
Код:
public static void onSpawnTreesInRandomPlace(){
if(name==null) return;
// name - имя арены, берётся из конфига
else{
int rndX = rnd(minX, maxX);
int rndY = (int) minY;
int rndZ = rnd(minZ, maxZ);
// максимальные и минимальные координаты уже заданы ранее с помощью WE API
// метод rnd() тоже работает, проверял ранее с такой же фунцией с листвой+сундуками с лутом
World world = Bukkit.getServer().getWorld(w);
// w - обычный мир, берётся с точки спавна в onEnable()
Block rndBlock = world.getBlockAt(rndX, rndY, rndZ);
Location rndBlockLoc = rndBlock.getLocation();
TreeType oak = TreeType.TREE;
if(rndBlock.getType()==Material.AIR){
world.generateTree(rndBlockLoc, oak);
}
else{}
}
}