Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Помогите Как проверить наличие определённого блока в мире?

Ne600

Ньюби
Пользователь
Баллы
1
Необходимо проверить, есть-ли где-то в мире блок (допустим: светокамень).
Нужно сделать проверку через if...
 
Необходимо проверить, есть-ли где-то в мире блок (допустим: светокамень).
Нужно сделать проверку через if...
Block block = Bukkit.getWorld("world").getBlockAt(x, y, z);
if (block.getType() == Material.GLOWSTONE) {
//Что то делать
}
 
Ну это понятно, но у меня нет определенных координат. Т.е нужно проверить наличие блока не на координатах, а во всем мире
Проверить наличие блока в параллелепипеде от x1, y1, z1 до x2, y2, z2

Код:
for (int x = x1; x <= x2; x++)
  for (int y = y1;y<=y2;y++)
    for (int z=z1;z<=z2;z++) {
    //сюда код мурлика
    }

и проверяй нужный тебе кусок мира
 
Проверить наличие блока в параллелепипеде от x1, y1, z1 до x2, y2, z2

Код:
for (int x = x1; x <= x2; x++)
  for (int y = y1;y<=y2;y++)
    for (int z=z1;z<=z2;z++) {
    //сюда код мурлика
    }

и проверяй нужный тебе кусок мира
Как я понял, предлагается проверять опять-таки определенный кусок мира (определенный координаты). Однако, я не знаю, где именно в мире будет поставлен блок
 
Как я понял, предлагается проверять опять-таки определенный кусок мира (определенный координаты). Однако, я не знаю, где именно в мире будет поставлен блок
Ну, тогда придётся проверять ВЕСЬ мир, т.е. 60кк*60кк*(не помню, сколько теперь высота, раньше была 256)
Вряд ли тебе надо весь мир, поэтому опиши, что ты хочешь подробнее
 
Ну, тогда придётся проверять ВЕСЬ мир, т.е. 60кк*60кк*(не помню, сколько теперь высота, раньше была 256)
Вряд ли тебе надо весь мир, поэтому опиши, что ты хочешь подробнее
У меня есть метод замены блоков в радиусе, он продолжается до определенного радиуса и вызывается при установке определенного блока. Я хочу туда добавить остановку замены блоков, если блока (который вызвал ивент) в мире уже не будет (т.е блок поставили - замена начала происходить... Блок убрали - замена остановилась, а не шла дальше). Надеюсь, вы меня поняли xd
 
У меня есть метод замены блоков в радиусе, он продолжается до определенного радиуса и вызывается при установке определенного блока. Я хочу туда добавить остановку замены блоков, если блока (который вызвал ивент) в мире не будет. Надеюсь, вы меня поняли xd
1) слушаешь ивент, который тебе скинул александраге. Смотришь тип блока, если то, что надо - п.2
2) получаешь координаты, считаешь верхние/нижние координаты куба замены, подставляешь в цикл, который я скинул выше

кодом напишешь сам
 
У меня есть метод замены блоков в радиусе, он продолжается до определенного радиуса и вызывается при установке определенного блока. Я хочу туда добавить остановку замены блоков, если блока (который вызвал ивент) в мире уже не будет (т.е блок поставили - замена начала происходить... Блок убрали - замена остановилась, а не шла дальше). Надеюсь, вы меня поняли xd
BlockPlaceEvent и BlockBreakEvent
 

Поделиться этой страницей

Назад
Верх