1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов 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. AtomicScience

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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