[ЗАКРЫТО]не работает setVelocity

  • Автор темы Автор темы Rfg0
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

Rfg0

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
Rfg0
Такая проблема. Я хочу, чтобы при ударе моба его подкидывало. Решил сделать через setVelocity().
Вот код.
Java:
    @EventHandler
    public void onDamage(EntityDamageByEntityEvent e){
        if(e.getDamager() instanceof Player){
            Player p = (Player) e.getDamager();
            ItemStack is = p.getItemInHand();
            if(is.hasItemMeta()){
            ItemMeta im = is.getItemMeta();
            String name = im.getDisplayName();
            if((is.getType() == Material.DIAMOND_SWORD) && (name.equalsIgnoreCase("§6§lПодкидывающий меч"))){
                Entity en = e.getEntity();
                if(p.hasPermission("systemcommands.giveweapons.throwsword.use")){
                    Vector vec = new Vector(p.getVelocity().getX(), p.getVelocity().getY() + 2, p.getVelocity().getZ());
                    en.setVelocity(vec);
            }
        }}
    }
    }
не работает именно вот эта строка -
Java:
en.setVelocity(vec);
Пробовал моба телепортировать работает.
Пробовал через другой Event эта падла работает.
Java:
    @EventHandler
    public void onDamage(PlayerInteractEntityEvent e){
            Player p =  e.getPlayer();
            ItemStack is = p.getItemInHand();
            if(is.hasItemMeta()){
            ItemMeta im = is.getItemMeta();
            String name = im.getDisplayName();
            if((is.getType() == Material.DIAMOND_SWORD) && (name.equalsIgnoreCase("§6§lПодкидывающий меч"))){
                Entity en = e.getRightClicked();
                if(p.hasPermission("systemcommands.giveweapons.throwsword.use")){
                    Vector vec = new Vector(p.getVelocity().getX(), p.getVelocity().getY() + 2, p.getVelocity().getZ());
                    en.setVelocity(vec);
            }
      }   }
    }
 
Пробовал velocity добавлять не только по Y, но и по X/Z?
 
Ты задал скорость 2блока/секунду наверх, тебе тупо сам сервер такое скорее всего не дал сделать, либо античит.
 
Пробовал velocity добавлять не только по Y, но и по X/Z?
X Z отталкивается. Но Y не трогает.
Ты задал скорость 2блока/секунду наверх, тебе тупо сам сервер такое скорее всего не дал сделать, либо античит.

Пробовал через другой Event эта падла работает.
Java:
    @EventHandler
    public void onDamage(PlayerInteractEntityEvent e){
            Player p =  e.getPlayer();
            ItemStack is = p.getItemInHand();
            if(is.hasItemMeta()){
            ItemMeta im = is.getItemMeta();
            String name = im.getDisplayName();
            if((is.getType() == Material.DIAMOND_SWORD) && (name.equalsIgnoreCase("§6§lПодкидывающий меч"))){
                Entity en = e.getRightClicked();
                if(p.hasPermission("systemcommands.giveweapons.throwsword.use")){
                    Vector vec = new Vector(p.getVelocity().getX(), p.getVelocity().getY() + 2, p.getVelocity().getZ());
                    en.setVelocity(vec);
            }
      }   }
    }
 
А, точно EntityDamageEvent это один из тэх эвентов где есть своя логика обработки скорости. Придётся тебе скорость на тик позже выставлять.
 
ща чекну.
Спасибо! Тема Закрыта!
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх