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

На сервере paper 1.17 не срабатывает событие смерти onPlayerDeath

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

Метки:
  1. Автор темы
    NeMaster

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

    Баллы:
    21
    На Spigot событие срабатывает со 100% вероятностью, а на папер оно срабатывает нерегулярно, минимум один раз сработало из множества попыток.
    Это папер плохой или я что то не так могу делать? Хотя тут вроде вариантов не много:
    Код:
    @EventHandler
    public void onPlayerDeath(PlayerDeathEvent event) {
        System.out.println("Xello");
    }
    Может на папере надо слушать другие события, но такой информации я не нашёл.
     
  2. Reality_SC

    Reality_SC Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    Листенер не зарегал?
     
  3. Автор темы
    NeMaster

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

    Баллы:
    21
    Тот же плагин запущенный на Spigot работает чётко. В логе, в череде сообщений что игрок умер упав с большой высоты, я всё же заметил одинокую строку "Xello".
     
  4. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Нет все тоже событие, что то не то с твоим плагином.
     
  5. Автор темы
    NeMaster

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

    Баллы:
    21
    Спасибо, буду копать. Кажется я начинаю догадываться что сделал не так, я всё ещё собирал плагин с зависимостью от spigot в pom.xml. Сейчас поищу как вставить зависимость папера.
     
  6. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Проблема не в этом, бумага поверх спигот апи написана.
     
  7. Witenin

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

    Баллы:
    76
    Имя в Minecraft:
    Witenin
    Может нужно просто через Bukkit.getSheduler().runTask(main, () -> System.out.println("xello"))) выводить что нужно. Читал где-то что действия в этом ивенте не могут быть сразу выполнены после смерти, а нужно дать 1 тик или шото в этом роде
     
    Последнее редактирование: 28 дек 2021
  8. deadanykey

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

    Баллы:
    96
    А если добавить в аннотацию
    ignoreCancelled = false
    ?
     
  9. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Этот параметр по-умолчанию как раз false, так что не поможет.

    ТС, другие события нормально работают?
    А, например, PlayerRespawnEvent?
     
  10. SashaBrine

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

    Баллы:
    76
    Имя в Minecraft:
    IJustFortiLive
    Гений оно в спиготе не работает
     
  11. deadanykey

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

    Баллы:
    96
    Постоянно с этим путаюсь. )))
     
  12. deadanykey

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

    Баллы:
    96
    Это с каким пор?
     
  13. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Работать-то оно работает, но решить проблему из данной темы оно не поможет
     
  14. Автор темы
    NeMaster

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

    Баллы:
    21
    О как много ответов, спасибо за помощь! :)

    Вывод в консоль работает и в спиготе и в папере.
    С респауном надо проверить, не пробовал, совершенно нормально в папере отрабатывает onPlayerInteract без пропусков.
    Я пока вернулся к спиготу, а к этой проблеме возвращаюсь время от времени, папер мне понравился больше чем спигот, он и с ява 17 проблем не имеет и стартует быстрее и вроде как, говорят память меньше кушает :).
     

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