Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

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

Тема в разделе "Разработка плагинов для новичков", создана пользователем Fenix78563, 13 янв 2017.

  1. Автор темы
    Fenix78563

    Fenix78563 Активный участник Пользователь

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

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

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

    Код:
    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;}
    }
    Подстава в том, что как только я выхожу за границу ивент действительно отменяется, но я все равно остаюсь за границей куба. => и обратно не могу вернуться.

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

    Заранее спасибо
     
  2. Хостинг MineCraft
    <
  3. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Все правильно, так и будет.[DOUBLEPOST=1484329154,1484329033][/DOUBLEPOST]Ибо ты не вернул игрока на прежние координаты.
    e.setTo(e.getFrom());
     
  4. AtomicInteger

    AtomicInteger Активный участник Пользователь

    Баллы:
    46
    +1, ивент отменятся то будет, но на новых координатах.
     
  5. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    А еще, ты велосипедишь с проверкой.

    Vector pv = e.getPlayer().getLocation().toVector();
    pv.isInAABB(min, max);
     
  6. Автор темы
    Fenix78563

    Fenix78563 Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    оно не работает (
     
  7. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Ты ивент не отменяй, а вот этим замени.
     
  8. Автор темы
    Fenix78563

    Fenix78563 Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    Все равно остаюсь там. однако если проверять локацию e.getTo, то пашет (вроде)[DOUBLEPOST=1484331272,1484330955][/DOUBLEPOST]Спасибо. Пахаитъ
     

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