Advertisement
Guest User

Untitled

a guest
Jul 22nd, 2019
191
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.60 KB | None | 0 0
  1. /**
  2.      *
  3.      * Manage PlayerToggleFlightEvent for DoubleJumpListener
  4.      *
  5.      * @param e (Event)
  6.      */
  7.  
  8.     @EventHandler
  9.     public void onToggleFly(PlayerToggleFlightEvent e) {
  10.         Player p = e.getPlayer();
  11.         if(p.hasMetadata("spec")) return;
  12.         if (p.hasMetadata("pvp") || p.hasMetadata("loading")) {
  13.             e.setCancelled(true);
  14.             return;
  15.         }
  16.         if (p.getGameMode() == GameMode.SURVIVAL) {
  17.             if(p.hasPermission("lobby.doublejump")) {
  18.                 if(YourProfile.instance.getSettings(p, Settings.DOUBLE_JUMP)) {
  19.                     e.setCancelled(true);
  20.                     p.setAllowFlight(false);
  21.                     p.setFlying(false);
  22.                     p.setVelocity(p.getLocation().getDirection().multiply(1).add(new Vector(0, 1, 0)));
  23.                     EVPD.getSpigotCore().playSound().defined(p, Sound.ENDERDRAGON_WINGS);
  24.                 }
  25.             } else {
  26.                 e.setCancelled(true);
  27.                 p.setAllowFlight(false);
  28.             }
  29.         }
  30.     }
  31.  
  32.     /**
  33.      *
  34.      * Handle move event for accepting player for next double jump
  35.      *
  36.      * @param e (Event)
  37.      */
  38.  
  39.     @EventHandler
  40.     public void onMove(PlayerMoveEvent e) {
  41.         Player p = e.getPlayer();
  42.         if(p.hasMetadata("spec")) return;
  43.         if(!p.hasPermission("lobby.doublejump")) return;
  44.         if (checkDoubleJumpConditions(p)) p.setAllowFlight(true);
  45.     }
  46.  
  47.     /**
  48.      *
  49.      * Check conditions for accepting player for next double jump
  50.      *
  51.      * @param p (Player object)
  52.      */
  53.  
  54.     private boolean checkDoubleJumpConditions(Player p) {
  55.         return (p.getGameMode() == GameMode.SURVIVAL
  56.                 && (p.getLocation().add(0.0D, -1.0D, 0.0D).getBlock().getType() != Material.AIR)
  57.                 && !p.hasMetadata("pvp") && !p.hasMetadata("loading")
  58.                 && YourProfile.instance.getSettings(p, Settings.DOUBLE_JUMP));
  59.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement