Помогите [Решено] onMove setCancelled(true) работает кривовато

Fenix78563

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
Blc_Dragon
Доброго времени суток, форумчане.

Имеется куб описанный двумя точками (как выделение в WE)

Проверка на выход из куба:

Java:
if (now.getY()>max.getY()||now.getY()<min.getY()||now.getX()<min.getX()||now.getX()>max.getX()||now.getZ()<min.getZ()||now.getZ()>max.getZ()){
    if (p.getLocation().getBlock().getRelative(BlockFace.DOWN).getType()!=Material.AIR||p.isFlying()) {e.setCancelled(true); return;}
}

Подстава в том, что как только я выхожу за границу ивент действительно отменяется, но я все равно остаюсь за границей куба. => и обратно не могу вернуться.

Как отменить сие без головной боли?

Заранее спасибо
 
Все правильно, так и будет.
Ибо ты не вернул игрока на прежние координаты.
e.setTo(e.getFrom());
 
А еще, ты велосипедишь с проверкой.

Vector pv = e.getPlayer().getLocation().toVector();
pv.isInAABB(min, max);
 
Назад
Верх