Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- *
- * Manage PlayerToggleFlightEvent for DoubleJumpListener
- *
- * @param e (Event)
- */
- @EventHandler
- public void onToggleFly(PlayerToggleFlightEvent e) {
- Player p = e.getPlayer();
- if(p.hasMetadata("spec")) return;
- if (p.hasMetadata("pvp") || p.hasMetadata("loading")) {
- e.setCancelled(true);
- return;
- }
- if (p.getGameMode() == GameMode.SURVIVAL) {
- if(p.hasPermission("lobby.doublejump")) {
- if(YourProfile.instance.getSettings(p, Settings.DOUBLE_JUMP)) {
- e.setCancelled(true);
- p.setAllowFlight(false);
- p.setFlying(false);
- p.setVelocity(p.getLocation().getDirection().multiply(1).add(new Vector(0, 1, 0)));
- EVPD.getSpigotCore().playSound().defined(p, Sound.ENDERDRAGON_WINGS);
- }
- } else {
- e.setCancelled(true);
- p.setAllowFlight(false);
- }
- }
- }
- /**
- *
- * Handle move event for accepting player for next double jump
- *
- * @param e (Event)
- */
- @EventHandler
- public void onMove(PlayerMoveEvent e) {
- Player p = e.getPlayer();
- if(p.hasMetadata("spec")) return;
- if(!p.hasPermission("lobby.doublejump")) return;
- if (checkDoubleJumpConditions(p)) p.setAllowFlight(true);
- }
- /**
- *
- * Check conditions for accepting player for next double jump
- *
- * @param p (Player object)
- */
- private boolean checkDoubleJumpConditions(Player p) {
- return (p.getGameMode() == GameMode.SURVIVAL
- && (p.getLocation().add(0.0D, -1.0D, 0.0D).getBlock().getType() != Material.AIR)
- && !p.hasMetadata("pvp") && !p.hasMetadata("loading")
- && YourProfile.instance.getSettings(p, Settings.DOUBLE_JUMP));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement