Advertisement
gamingod

DoubleJumpPlus - Main.java - 2.0

Sep 1st, 2014
2,690
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.49 KB | None | 0 0
  1. package net.thegamingcraft.DoubleJump;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.HashMap;
  5.  
  6. import org.bukkit.Bukkit;
  7. import org.bukkit.Effect;
  8. import org.bukkit.GameMode;
  9. import org.bukkit.block.Block;
  10. import org.bukkit.entity.EntityType;
  11. import org.bukkit.entity.Player;
  12. import org.bukkit.event.EventHandler;
  13. import org.bukkit.event.Listener;
  14. import org.bukkit.event.entity.EntityDamageEvent;
  15. import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
  16. import org.bukkit.event.player.PlayerMoveEvent;
  17. import org.bukkit.event.player.PlayerToggleFlightEvent;
  18. import org.bukkit.event.player.PlayerToggleSneakEvent;
  19. import org.bukkit.plugin.java.JavaPlugin;
  20. import org.bukkit.util.Vector;
  21.  
  22. public class Main extends JavaPlugin implements Listener {
  23.    
  24.     HashMap<Player, Boolean> cooldown = new HashMap<Player, Boolean>();
  25.     ArrayList<Player> fixed = new ArrayList<Player>();
  26.    
  27.     @Override
  28.     public void onEnable() {
  29.         Bukkit.getServer().getPluginManager().registerEvents(this, this);
  30.     }
  31.    
  32.     @Override
  33.     public void onDisable() {
  34.         for (Player pl : Bukkit.getOnlinePlayers()) {
  35.             pl.setFlying(false);
  36.             pl.setAllowFlight(false);
  37.         }
  38.     }
  39.    
  40.     @SuppressWarnings("deprecation")
  41.     @EventHandler
  42.     public void onDamage(EntityDamageEvent e) {
  43.         if (e.getCause() == DamageCause.FALL) {
  44.             if (e.getEntity().getType() == EntityType.PLAYER) {
  45.                 Player p = (Player) e.getEntity();
  46.                
  47.                 if (p.hasPermission("DJP.doubleJump") || p.hasPermission("DJP.groundPound")) {
  48.                     e.setCancelled(true);
  49.                 }
  50.                
  51.                 if (!p.hasPermission("DJP.*") && !p.hasPermission("DJP.groundPound")) return;
  52.                 if (p.isSneaking() == true) {
  53.                     ArrayList<Block> blocks = new ArrayList<Block>();
  54.                     blocks.add(p.getWorld().getBlockAt(p.getLocation().subtract(0, 1, 0)));
  55.                     blocks.add(p.getWorld().getBlockAt(p.getLocation().subtract(1, 1, 0)));
  56.                     blocks.add(p.getWorld().getBlockAt(p.getLocation().subtract(0, 1, 1)));
  57.                     blocks.add(p.getWorld().getBlockAt(p.getLocation().subtract(-1, 1, 0)));
  58.                     blocks.add(p.getWorld().getBlockAt(p.getLocation().subtract(0, 1, -1)));
  59.                     blocks.add(p.getWorld().getBlockAt(p.getLocation().subtract(1, 1, 1)));
  60.                     blocks.add(p.getWorld().getBlockAt(p.getLocation().subtract(-1, 1, -1)));
  61.                     blocks.add(p.getWorld().getBlockAt(p.getLocation().subtract(2, 1, 0)));
  62.                     blocks.add(p.getWorld().getBlockAt(p.getLocation().subtract(-2, 1, 0)));
  63.                     blocks.add(p.getWorld().getBlockAt(p.getLocation().subtract(0, 1, 2)));
  64.                     blocks.add(p.getWorld().getBlockAt(p.getLocation().subtract(0, 1, -2)));
  65.                    
  66.                     for (Block b : blocks) {
  67.                         for (Player pl : Bukkit.getOnlinePlayers()) {
  68.                             pl.playEffect(b.getLocation(), Effect.STEP_SOUND, b.getTypeId());
  69.                         }
  70.                     }
  71.                    
  72.                     p.setSneaking(false);
  73.                 }
  74.             }
  75.         }
  76.     }
  77.    
  78.     @SuppressWarnings("deprecation")
  79.     @EventHandler
  80.     public void onMove(PlayerMoveEvent e) {
  81.         Player p = e.getPlayer();
  82.        
  83.         if (!p.hasPermission("DJP.doubleJump") && p.getAllowFlight() == true && !fixed.contains(p)) {
  84.             p.setFlying(false);
  85.             p.setAllowFlight(false);
  86.             fixed.add(p);
  87.         }
  88.        
  89.         if (p.getGameMode() == GameMode.CREATIVE) return;
  90.         if (!p.hasPermission("DJP.doubleJump")) return;
  91.        
  92.         if (cooldown.get(p) != null && cooldown.get(p) == true) {
  93.             p.setAllowFlight(true);
  94.         } else {
  95.             p.setAllowFlight(false);
  96.         }
  97.        
  98.         if (p.isOnGround()) {
  99.             cooldown.put(p, true);
  100.         }
  101.        
  102.         if (cooldown.get(p) != null && cooldown.get(p) == false) {
  103.             for (Player pl : Bukkit.getOnlinePlayers()) {
  104.                 pl.playEffect(p.getLocation(), Effect.SMOKE, 2004);
  105.             }
  106.         }
  107.     }
  108.    
  109.     @SuppressWarnings("deprecation")
  110.     @EventHandler
  111.     public void onFly(PlayerToggleFlightEvent e) {
  112.         Player p = e.getPlayer();
  113.        
  114.         if (p.getGameMode() == GameMode.CREATIVE) return;
  115.         if (p.hasPermission("DJP.doubleJump")) {
  116.             if (cooldown.get(p) == true) {
  117.                 e.setCancelled(true);
  118.                 cooldown.put(p, false);
  119.                 p.setVelocity(p.getLocation().getDirection().multiply(1.6D).setY(1.0D));
  120.                
  121.                 for (Player pl : Bukkit.getOnlinePlayers()) {
  122.                     pl.playEffect(p.getLocation(), Effect.MOBSPAWNER_FLAMES, 2004);
  123.                 }
  124.                
  125.                 p.setAllowFlight(false);
  126.             }
  127.         }
  128.     }
  129.    
  130.     @SuppressWarnings("deprecation")
  131.     @EventHandler
  132.     public void onSneak(PlayerToggleSneakEvent e) {
  133.         Player p = e.getPlayer();
  134.        
  135.         if (p.getGameMode() == GameMode.CREATIVE) return;
  136.         if (!p.hasPermission("DJP.groundPount")) return;
  137.        
  138.         if (p.isOnGround() == false && cooldown.get(p) != null && cooldown.get(p) == false) {
  139.             p.setVelocity(new Vector(0, -5, 0));
  140.         }
  141.     }
  142.    
  143. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement