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

Помогите Дроп вещей при смерти

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

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

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

    Баллы:
    76
    Имя в Minecraft:
    AmiN4iK_03
    Всем привет! При автореспавне вещи игрока тоже респавнятся и падают сверху, как это исправить?
    Код:
    package ru.amin.ars;
    
    import org.bukkit.Bukkit;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.entity.PlayerDeathEvent;
    import org.bukkit.plugin.Plugin;
    import org.bukkit.plugin.java.JavaPlugin;
    
    public class main extends JavaPlugin implements Listener{
        public void onEnable() {
            Bukkit.getPluginManager().registerEvents((Listener)this, (Plugin)this);
            getLogger().info("Плагин AutoReSpawn включён!");
        }
        @EventHandler
        public void death(PlayerDeathEvent e){
            Player p = e.getEntity();
            Player k = p.getKiller();
            p.spigot().respawn();
            if(k == null) {
            p.sendTitle("Вы погибли", "");
            }else {
            p.sendTitle("Вас убил игрок: ", "" + k.getName());
        }
        }
    }
    
     
  2. Mr Hosting
  3. AtomicScience

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

    Баллы:
    76
    Имя в Minecraft:
    AtomicScience
    Ну, проверь, пуст ли инвентарь игрока на момент сработки эвента
     
  4. Blc_Dragon

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

    Баллы:
    76
    PlayerDeathEvent#setKeepInventory(true);
     
  5. Автор темы
    Аминчик

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

    Баллы:
    76
    Имя в Minecraft:
    AmiN4iK_03
    Мне нужно чтобы предметы дропались, а не оставались в инвентаре.
     
  6. alexandrage

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

    Баллы:
    173
    Выполни в шедулере респавн, тогда дроп успеет упасть на месте смерти.
     
  7. iD3LSY

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

    Баллы:
    76
    Имя в Minecraft:
    opy
    Неа, не получится. Метод респавна работает только если сразу применить (видимо).
     
  8. iD3LSY

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

    Баллы:
    76
    Имя в Minecraft:
    opy
    Нет, все работает. Я видимо делал криво ;(
    PHP:
    getServer().getScheduler().runTaskLater(this, () -> player.spigot().respawn(), 1);
    (может быть пример какашка и лучше юзать другой таймер, хз)

    *updated*
     
    Последнее редактирование: 11 мар 2018
  9. alexandrage

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

    Баллы:
    173
    Так и есть, сто лет депрекатед. runTaskLater надо.
     
Статус темы:
Закрыта.

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