MAXIMILIEN47201

Untitled

Dec 31st, 2017
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.85 KB | None | 0 0
  1. double mHorizontal = 1.4D;
  2. double mVertical = 1.2D;
  3.  
  4. @EventHandler
  5. public void onVelocity(PlayerVelocityEvent event){
  6. Player player = event.getPlayer();
  7. if (player.getLastDamageCause() == null){return;}
  8.  
  9. if (!(player.getLastDamageCause() instanceof EntityDamageByEntityEvent)){return;}
  10.  
  11. if (((EntityDamageByEntityEvent) player.getLastDamageCause()).getDamager() instanceof Player) {event.setCancelled(true);}
  12. }
  13.  
  14. @EventHandler(priority = EventPriority.HIGHEST)
  15. public void onEntityDamageEvent(EntityDamageByEntityEvent event){
  16. if (!(event.getEntity() instanceof Player) || !(event.getDamager() instanceof Player)) {return;}
  17.  
  18. if (event.isCancelled()) {return;}
  19.  
  20. Player damaged = (Player) event.getEntity();
  21. Player damager = (Player) event.getDamager();
  22.  
  23. if (damaged.getNoDamageTicks() > damaged.getMaximumNoDamageTicks() / 2D) {return;}
  24.  
  25. double mSprint = damaged.isSprinting() ? 0.8D : 0.5D;
  26. double mAirtime = damaged.isOnGround() ? 1 : 0.5D;
  27. @SuppressWarnings("deprecation")
  28. double mKnockbackEnchant = damager.getItemInHand() == null ? 0 : damager.getItemInHand().getEnchantmentLevel(Enchantment.KNOCKBACK) * 0.2D;
  29.  
  30. Vector knockback = damaged.getLocation().toVector().subtract(damager.getLocation().toVector()).normalize();
  31. knockback.setX((knockback.getX() * mSprint + mKnockbackEnchant) * mHorizontal);
  32. knockback.setY(0.35D * mAirtime * mVertical);
  33. knockback.setZ((knockback.getZ() * mSprint + mKnockbackEnchant) * mHorizontal);
  34.  
  35. try {
  36. PacketPlayOutEntityVelocity packet = PacketPlayOutEntityVelocity.class.getConstructor(int.class, double.class, double.class, double.class).newInstance(damaged.getEntityId(), knockback.getX(), knockback.getY(), knockback.getZ());
  37. ((CraftPlayer) damaged).getHandle().playerConnection.sendPacket(packet);
  38. } catch(Exception e){
  39. e.printStackTrace();
  40. }
  41. }
Advertisement
Add Comment
Please, Sign In to add comment