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

Помогите Что-то прерывает событие, но не знаю что?

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

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

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

    Баллы:
    61
    Событие должно при смерти игрока телепортировать его в X точку мира, созданного плагином MultiWorld.
    Код:
    @EventHandler
        public void onDeatch(EntityDeathEvent e) {
           
            plg.getLogger().info("IN EVENT");
                Bukkit.getServer().getPlayer(e.getEntity().getName()).teleport(Main.spawnLoc);
           
           }
    Но "IN EVENT" выводиться в консоль, а игрок не телепортируется.
    Безымянный.png
    Я попробовал сделать другое событие :

    Код:
    @EventHandler
        public void onDeatch(PlayerRespawnEvent e) {
           
           e.getPlayer().teleport(Main.spawnLoc);
           
           }
    Но снова не работает. Тогда я решил проверить e.getPlayer().teleport(Main.spawnLoc); в другом событии
    Код:
    @EventHandler
        public void onDeatch(BlockBreakEvent e) {
           
           e.getPlayer().teleport(Main.spawnLoc);
           
           }
    В этот раз получилось, но мне нужно телепортировать игрока после смерти, а не после разрушения блока.

    Чуть позже в конфиге EssentialsX наткнулся на настройку приоритетов респавана игроков, исправил значения на none.
    Безымянный.png

    Но ни чего не изменилось.

    Плагины на сервере:

    Безымянный.png

    Что может мешать телепортации игрока после смерти? Помогите пожалуйста.
     
  2. Akultist

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

    Баллы:
    46
    Можешь телепортировать игрока с задержкой когда он возродился. P.S - BukkitRunnable. Ещё можно когда он умер, сразу же его возродить. P.S - player.spigot().respawn(); И потом уже телепортировать.
     
  3. Автор темы
    WETEIDO

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

    Баллы:
    61
    Спасибо это сработало, но почему когда я использовал
    это не работал?
     
  4. Akultist

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

    Баллы:
    46
    Насколько я знаю, сначала выполняется ивент респавна, а потом уже игрок респавнится.
     
  5. hyndorik

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

    Баллы:
    98
    Имя в Minecraft:
    hyndo
    У respawn event есть метод set respawn location, ява доки чтоли почитал бы
     

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