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

Помогите Как сделать бессмертие при приземлении?

Тема в разделе "Помощь", создана пользователем BungeeHelp, 10 окт 2021.

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

    BungeeHelp Участник

    Баллы:
    33
    Добрый вечер, дорой просматриватель темы , у меня такая проблема, которая описана в теме.
    Так вот , как это можно реализовать?
    Ссылка на код --> https://hastebin.com/aqapafurob
    Вот сам момент подбрасывания игрока (вложение)
     
  2. Хостинг MineCraft
    <
  3. MySoulIsCry

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

    Баллы:
    68
    Создаешь лист в котором храниш игроков которые не должны получить урон, далее отлавливаешь получение урона и если это урон от падения то отменяеш ивент и убираеш игрока из листа.
     
    BungeeHelp нравится это.
  4. Автор темы
    BungeeHelp

    BungeeHelp Участник

    Баллы:
    33
    Добрый день, извиняюсь что немножко поздновато. Но один лишь вопрос, как собственно это сделать? Можете предоставить это в виде кода или объяснить получше. Заранее спасибо
     
  5. MySoulIsCry

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

    Баллы:
    68
    PHP:
    public class MyClass implements Listener{
     
        private List<
    PlayertpList = new ArrayList<Player>();
     
        @
    EventHandler(priority EventPriority.MONITORignoreCancelled true)
        public 
    void onDamage(EntityDamageEvent e) {
            if(
    e.getCause() == DamageCause.FALL) {
                if(
    e.getEntity() instanceof Player) {
                    
    Player player = (Playere.getEntity();
                    if(
    tpList.contains(player)) {
                        
    tpList.remove(player);
                        
    e.setCancelled(true);
                    }
                }
            }
        }
     
        @
    EventHandler
        
    public void interact(PlayerInteractEvent e) {
            
    Player p e.getPlayer();
            
    ItemStack item e.getItem();
            if (
    e.getAction() != Action.RIGHT_CLICK_AIR && e.getAction() != Action.RIGHT_CLICK_BLOCK) {
                return;
            }
            if (
    e.getPlayer().getInventory().getItemInMainHand().getType() != Material.FEATHER) {
                return;
            }
            if (
    item != null && item.hasItemMeta()) {
                
    ItemMeta imeta item.getItemMeta();
                
    item.setAmount((item.getAmount() > 0) ? (item.getAmount() - 1) : 0);
                List<
    Stringlore = new ArrayList<>();
                
    lore.add("§7");
                if (
    imeta.getLore().equals(lore)) {
                    
    p.getInventory().remove(p.getInventory().getItemInMainHand());
                    if (
    e.getHand() == EquipmentSlot.HAND) {
                        
    p.getInventory().setItemInMainHand(item);
                    } else if (
    e.getHand() == EquipmentSlot.OFF_HAND) {
                        
    p.getInventory().setItemInOffHand(item);
                    }
                    
    e.setCancelled(true);
                }
                if (
    imeta.getDisplayName().equalsIgnoreCase(MTrapLeave.getInstance().getConfig().getString("messages.name"))) {
                    
    Vector vec e.getPlayer().getLocation().getDirection().setY(0).normalize().multiply(10).setY(10);
                    
    e.getPlayer().setVelocity(vec);
                    
    tpList.add(p);
                    
    int amount p.getInventory().getItemInMainHand().getAmount() + 1;
                    
    p.getInventory().getItemInMainHand().setAmount(amount 1);
                }
            }
        }

    }
     
  6. Автор темы
    BungeeHelp

    BungeeHelp Участник

    Баллы:
    33
    Спасибо, но это же работает на все падения.
     

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