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

Помогите Не работают события клика правой кнопкой мыши

Тема в разделе "Разработка плагинов для новичков", создана пользователем Ghetreek, 24 фев 2018.

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

    Ghetreek Ньюби

    Баллы:
    1
    Доброе утро, уважаемые юзеры форума!
    У меня такая проблемка, пишу простенький плагин, цель проста: на стене весит итемфрейм, в интемфрейме стоит карта с особым названием, в котором находятся координаты для телепортации (например, "-512;-512"). "В чём же проблема?" - спросите Вы. А проблема вот в чём: события клика просто не работают. Я не знаю с чем это связано, пишу всё правильно:
    Код:
    @EventHandler
    public boolean onClickEntity(PlayerInteractEntityEvent event) {
        Player player = event.getPlayer();
         
        if (event.getRightClicked().getType() == EntityType.ITEM_FRAME) {
            Entity entity = event.getRightClicked();
            player.sendMessage(entity.getCustomName()); // для начала хочу получить имя карты
        }
    }
    
    Прошу не кидаться помидорами! Если уж и хотите что-то кинуть, то киньте ссылку, которая поможет решению данной проблемы)
    P.S. Абсолютно такая же проблема и с кликом по блоку/воздуху. Ничего не происходит.
    UPD: Ядро - Spigot последней версии
     
  2. AtomicScience

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

    Баллы:
    76
    Имя в Minecraft:
    AtomicScience
    Зарегистрировал слушатель?
     
  3. AtomicScience

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

    Баллы:
    76
    Имя в Minecraft:
    AtomicScience
    Если проблема решена, закрой тему
     
  4. Cool_boy

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

    Баллы:
    96
    Имя в Minecraft:
    prettydude
    С оператором == можно отлично затупить, будь осторожен, пример со строками:

    PHP:
    String s1 = new String"Test" );
    String s2 = new String"Test" );

    System.out.printlns1 == s2 ); // false
    System.out.printlns1.equalss2 )); // true
    Также если игрок кликнул на рамку у которой нету имени - получишь NPE.
     
  5. Автор темы
    Ghetreek

    Ghetreek Ньюби

    Баллы:
    1
    За решение огромное спасибо @AtomicScience !
    Решилось всё так:
    У меня все слушатели событий (@EventHandler) находились в одном классе. Мне оставалось только наследовать мой класс от интерфейса Listener, а так-же зарегистрировать класс.
    Готовый код, если кому нужно:
    Код:
    public class ИМЯ_КЛАССА extends JavaPlugin implements Listener {
        @Override
        public void onEnable() {
            getServer().getPluginManager().registerEvents(this, this);
        }
        @EventHandler
        public boolean onClickEntity(PlayerInteractEntityEvent event) {
            // код
    }
     
Статус темы:
Закрыта.

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