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

Помогите Заспавнить зомби на месте смерти игрока.

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

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

    fastow Ньюби

    Баллы:
    1
    Перепробовал все. То что ниже не единственный вариант. Нечего не работает, в цикл даже не заходит, ибо "Ты умер!" не высвечивается, помогите(

    @EventHandler

    public void onDeathPlayer(PlayerDeathEvent e) {
    Player p = e.getEntity();
    if (p.isDead()) {
    p.sendMessage("Ты умер!");
    Location loc = e.getEntity().getLocation();
    p.getLocation().getWorld().spawnEntity(loc, EntityType.ZOMBIE);
    }
     
  2. LuckyZeeRo

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

    Баллы:
    96
    Имя в Minecraft:
    i0xHeX
    1. Всегда оборачивай код с отступами в
    HTML:
    [CODE] Твой код [/CODE]
    2. На момент вызова PlayerDeathEvent игрок еще жив, отсюда p.isDead() будет false. Можешь обернуть в таск, который запустится после события смерти:
    Код:
    Plugin plugin = // обьект твоего плагина (который наследует JavaPlugin)
    Bukkit.getScheduler().runTask(plugin, () -> {
        if (p.isDead()) {
            p.sendMessage("Ты умер!");
            Location loc = e.getEntity().getLocation();
            p.getLocation().getWorld().spawnEntity(loc, EntityType.ZOMBIE);
        }
    });
    
     
  3. Автор темы
    fastow

    fastow Ньюби

    Баллы:
    1
    А сам код верный?
     
  4. LuckyZeeRo

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

    Баллы:
    96
    Имя в Minecraft:
    i0xHeX
    Ты всегда можешь это проверить.
     
  5. Автор темы
    fastow

    fastow Ньюби

    Баллы:
    1
    Я придурок) У меня не работало потому что я забыл написать Bukkit.getServer().getPluginManager().registerEvents(this, this); Я все верно писал до этого ХД
     
  6. LuckyZeeRo

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

    Баллы:
    96
    Имя в Minecraft:
    i0xHeX
    Значит игрок на момент события уже мертв?
     
  7. Автор темы
    fastow

    fastow Ньюби

    Баллы:
    1
    Я убрал ИФ. А работало ли с ним я хз. Сейчас проверю
     
  8. Автор темы
    fastow

    fastow Ньюби

    Баллы:
    1
    Да
     
  9. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Вопрос только в том, зачем проверять, умер ли игрок, прямо в событии смерти..
     

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