Помогите Как запретить строительство блоков в радиусе.

AleGor

Активный участник
Баллы
61
Имя в Minecraft
AleGor
У меня есть например блок DIAMOND и мне нужно чтобы в радиусе 10 блоков нельзя было строить, как это реализовать?
 
1) Получить координаты этого блока.
2) Отслеживать событие org.bukkit.event.block.BlockPlaceEvent (https://hub.spigotmc.org/javadocs/bukkit/index.html?overview-summary.html)
3) Отменять событие event.setCancelled(true), если блок был поставлен в радиусе 10 блоков.

Расстояние можно находить по формуле из геометрии нахождения расстояния между точками в пространстве
PHP:
intermediateX     = (int) Math.pow(x1 - x2, 2);
intermediateY     = (int) Math.pow(y1 - y2, 2);
intermediateZ     = (int) Math.pow(z1 - z2, 2);
range             = (int) Math.sqrt(intermediateX + intermediateY + intermediateZ);
return range;
Пример функции подсчета растояния между игроками есть тут: https://github.com/NyanSandbox/loca.../src/me/nyanguymf/listeners/ChatListener.java (calcRange(Player, Player))
 
1) Получить координаты этого блока.
2) Отслеживать событие org.bukkit.event.block.BlockPlaceEvent (https://hub.spigotmc.org/javadocs/bukkit/index.html?overview-summary.html)
3) Отменять событие event.setCancelled(true), если блок был поставлен в радиусе 10 блоков.

Расстояние можно находить по формуле из геометрии нахождения расстояния между точками в пространстве
PHP:
intermediateX     = (int) Math.pow(x1 - x2, 2);
intermediateY     = (int) Math.pow(y1 - y2, 2);
intermediateZ     = (int) Math.pow(z1 - z2, 2);
range             = (int) Math.sqrt(intermediateX + intermediateY + intermediateZ);
return range;
Пример функции подсчета растояния между игроками есть тут: https://github.com/NyanSandbox/loca.../src/me/nyanguymf/listeners/ChatListener.java (calcRange(Player, Player))
Ну спасибо сейчас буду думать до конца)
 
1) Получить координаты этого блока.
2) Отслеживать событие org.bukkit.event.block.BlockPlaceEvent (https://hub.spigotmc.org/javadocs/bukkit/index.html?overview-summary.html)
3) Отменять событие event.setCancelled(true), если блок был поставлен в радиусе 10 блоков.

Расстояние можно находить по формуле из геометрии нахождения расстояния между точками в пространстве
PHP:
intermediateX     = (int) Math.pow(x1 - x2, 2);
intermediateY     = (int) Math.pow(y1 - y2, 2);
intermediateZ     = (int) Math.pow(z1 - z2, 2);
range             = (int) Math.sqrt(intermediateX + intermediateY + intermediateZ);
return range;
Пример функции подсчета растояния между игроками есть тут: https://github.com/NyanSandbox/loca.../src/me/nyanguymf/listeners/ChatListener.java (calcRange(Player, Player))
Есть Location#distanceSquared...
 
Назад
Верх