Guest User

Untitled

a guest
Jun 25th, 2018
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.37 KB | None | 0 0
  1. package com.vildaberper.Weed;
  2.  
  3. import java.util.logging.Logger;
  4.  
  5. import org.bukkit.Effect;
  6. import org.bukkit.Location;
  7. import org.bukkit.Material;
  8. import org.bukkit.entity.Item;
  9. import org.bukkit.entity.Player;
  10. import org.bukkit.event.EventHandler;
  11. import org.bukkit.event.Listener;
  12. import org.bukkit.event.entity.EntityCombustEvent;
  13. import org.bukkit.event.entity.EntityDamageEvent;
  14. import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
  15. import org.bukkit.plugin.java.JavaPlugin;
  16. import org.bukkit.potion.PotionEffect;
  17. import org.bukkit.potion.PotionEffectType;
  18.  
  19. public class Weed extends JavaPlugin{
  20.     private Logger log = Logger.getLogger("Minecraft");
  21.  
  22.     private Listener listener = new Listener(){
  23.         @SuppressWarnings("unused")
  24.         @EventHandler
  25.         public void onEntityCombust(EntityCombustEvent event){
  26.             if(event.isCancelled())
  27.                 return;
  28.             if(event.getEntity() instanceof Item && ((Item) event.getEntity()).getItemStack().getType().equals(Material.LONG_GRASS) && ((Item) event.getEntity()).getItemStack().getAmount() == 1)
  29.                 getHigh(event.getEntity().getLocation());
  30.         }
  31.  
  32.         @SuppressWarnings("unused")
  33.         @EventHandler
  34.         public void onEntityDamage(EntityDamageEvent event){
  35.             if(event.isCancelled())
  36.                 return;
  37.             if(event.getEntity() instanceof Player && event.getCause().equals(DamageCause.FALL) && ((Player) event.getEntity()).hasPotionEffect(PotionEffectType.SPEED) && ((Player) event.getEntity()).hasPotionEffect(PotionEffectType.CONFUSION) && ((Player) event.getEntity()).hasPotionEffect(PotionEffectType.JUMP))
  38.                 event.setCancelled(true);
  39.         }
  40.     };
  41.  
  42.     @Override
  43.     public void onDisable(){
  44.         log.info("[" + getDescription().getName() + "] v" + getDescription().getVersion() + " is disabled.");
  45.     }
  46.  
  47.     @Override
  48.     public void onEnable(){
  49.         getServer().getPluginManager().registerEvents(listener, this);
  50.         log.info("[" + getDescription().getName() + "] v" + getDescription().getVersion() + " is enabled.");
  51.     }
  52.  
  53.     private void getHigh(Location location){
  54.         for(Player p : location.getWorld().getPlayers())
  55.             if(getDistance(location , p.getLocation()) <= 5){
  56.                 if(p.hasPotionEffect(PotionEffectType.SPEED))
  57.                     p.removePotionEffect(PotionEffectType.SPEED);
  58.                 if(p.hasPotionEffect(PotionEffectType.CONFUSION))
  59.                     p.removePotionEffect(PotionEffectType.CONFUSION);
  60.                 if(p.hasPotionEffect(PotionEffectType.JUMP))
  61.                     p.removePotionEffect(PotionEffectType.JUMP);
  62.                 p.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 600, 5));
  63.                 p.addPotionEffect(new PotionEffect(PotionEffectType.CONFUSION, 600, 100));
  64.                 p.addPotionEffect(new PotionEffect(PotionEffectType.JUMP, 600, 10));
  65.             }
  66.         smoke(location);
  67.     }
  68.  
  69.     private void smoke(Location location){
  70.         for(double x = location.getX() - 5; x <= location.getX() + 5; x++)
  71.             for(double y = location.getY() - 5; y <= location.getY() + 5; y++)
  72.                 for(double z = location.getZ() - 5; z <= location.getZ() + 5; z++)
  73.                     if(getDistance(location, location.getWorld().getBlockAt((int) x, (int) y, (int) z).getLocation()) <= 5)
  74.                         location.getWorld().playEffect(location.getWorld().getBlockAt((int) x, (int) y, (int) z).getLocation(), Effect.SMOKE, 0);
  75.     }
  76.  
  77.     private double getDistance(Location l1, Location l2){
  78.         if(!l1.getWorld().equals(l2.getWorld()))
  79.             return -1;
  80.         return Math.sqrt(Math.pow(l1.getX() - l2.getX(), 2) + Math.pow(l1.getY() - l2.getY(), 2) + Math.pow(l1.getZ() - l2.getZ(), 2));
  81.     }
  82. }
Add Comment
Please, Sign In to add comment