1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите При проверке на права выдаёт ошибку null

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

Статус темы:
Закрыта.
  1. Автор темы
    clysic

    clysic Новичок Пользователь

    Баллы:
    11
    Добрый вечер, многоуважаемые кодеры! Благодарю,что вы решили обратить внимание на эту тему. У меня следующая проблема: проверяю у игрока право на выполнение ивента, однако на это право плугин не реагирует и указывает на строчку этой проверерки с ошибкой null. У меня предположение, что я возможно неправильно получил игрока...
    Собственно прикреплю код:
    Код:
    @EventHandler
        public void onAngree(EntityTargetLivingEntityEvent e) {
             Player p = (Player) e.getTarget();       
             if(p.hasPermission("perm.angree")) {
                if(e.getEntityType() == EntityType.ZOMBIE) {
                    e.setCancelled(true);               
                }
    
    Заранее спасибо за помощь!
     
  2. Luminate_

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

    Баллы:
    76
    Имя в Minecraft:
    Luminate_
    В конце добавь e.setCancelled(true);
    Если условие с проверкой не выполнилось, это не значит что ивент отменен.
     
  3. MurlikMurlik

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

    Баллы:
    96
    Делай проверку, является ли сущность на которую собрались нацелиться - игрок.
    if (e.getTarget() instanceof Player) {
    //А вот тут уже и делай каст игрока и выполняй проверку прав.
    }
     
  4. Luminate_

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

    Баллы:
    76
    Имя в Minecraft:
    Luminate_
    Дай свой дискорд, добавлю
     
  5. Автор темы
    clysic

    clysic Новичок Пользователь

    Баллы:
    11
    Но мне же и не нужно, чтобы отменялся весь ивент, а только в данном условии.
     
  6. Ission

    Ission Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    lokivava
    e.getTarget() может быть null, если моб сбрасывает цель, например, по-этому нужна и проверка e.getTarget() != null и e.getTarget().getType() == EntityType.PLAYER.
     
  7. Автор темы
    clysic

    clysic Новичок Пользователь

    Баллы:
    11
    Однако в этом случае ошибка не пропала
    Это помогло
    Ошибка пропала, но всё равно не понятно одно - на право он забивает, то есть игнорирует его.
     
  8. MurlikMurlik

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

    Баллы:
    96
    Сделай дебаг. Над каждым условием отправь в консоль сообщение, скажем "test". И добавляй его под каждым условием. Таким образом поймешь, почему он игнорирует
     
  9. Автор темы
    clysic

    clysic Новичок Пользователь

    Баллы:
    11
    Оказывается, что право работает, но вообще достаточно странно.
    Почему-то право не хочет работать из-за того, что у игрока когда-то был op (проверка была произведена без Op как бы, но Op был когда-то). Короче, странно, но главное - робит.
    Всем спасибо за помощь! Тема закрыта.
     
Статус темы:
Закрыта.

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