Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.vildaberper.Weed;
- import java.util.logging.Logger;
- import org.bukkit.Effect;
- import org.bukkit.Location;
- import org.bukkit.Material;
- import org.bukkit.entity.Item;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.entity.EntityCombustEvent;
- import org.bukkit.event.entity.EntityDamageEvent;
- import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
- import org.bukkit.plugin.java.JavaPlugin;
- import org.bukkit.potion.PotionEffect;
- import org.bukkit.potion.PotionEffectType;
- public class Weed extends JavaPlugin{
- private Logger log = Logger.getLogger("Minecraft");
- private Listener listener = new Listener(){
- @SuppressWarnings("unused")
- @EventHandler
- public void onEntityCombust(EntityCombustEvent event){
- if(event.isCancelled())
- return;
- if(event.getEntity() instanceof Item && ((Item) event.getEntity()).getItemStack().getType().equals(Material.LONG_GRASS) && ((Item) event.getEntity()).getItemStack().getAmount() == 1)
- getHigh(event.getEntity().getLocation());
- }
- @SuppressWarnings("unused")
- @EventHandler
- public void onEntityDamage(EntityDamageEvent event){
- if(event.isCancelled())
- return;
- 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))
- event.setCancelled(true);
- }
- };
- @Override
- public void onDisable(){
- log.info("[" + getDescription().getName() + "] v" + getDescription().getVersion() + " is disabled.");
- }
- @Override
- public void onEnable(){
- getServer().getPluginManager().registerEvents(listener, this);
- log.info("[" + getDescription().getName() + "] v" + getDescription().getVersion() + " is enabled.");
- }
- private void getHigh(Location location){
- for(Player p : location.getWorld().getPlayers())
- if(getDistance(location , p.getLocation()) <= 5){
- if(p.hasPotionEffect(PotionEffectType.SPEED))
- p.removePotionEffect(PotionEffectType.SPEED);
- if(p.hasPotionEffect(PotionEffectType.CONFUSION))
- p.removePotionEffect(PotionEffectType.CONFUSION);
- if(p.hasPotionEffect(PotionEffectType.JUMP))
- p.removePotionEffect(PotionEffectType.JUMP);
- p.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 600, 5));
- p.addPotionEffect(new PotionEffect(PotionEffectType.CONFUSION, 600, 100));
- p.addPotionEffect(new PotionEffect(PotionEffectType.JUMP, 600, 10));
- }
- smoke(location);
- }
- private void smoke(Location location){
- for(double x = location.getX() - 5; x <= location.getX() + 5; x++)
- for(double y = location.getY() - 5; y <= location.getY() + 5; y++)
- for(double z = location.getZ() - 5; z <= location.getZ() + 5; z++)
- if(getDistance(location, location.getWorld().getBlockAt((int) x, (int) y, (int) z).getLocation()) <= 5)
- location.getWorld().playEffect(location.getWorld().getBlockAt((int) x, (int) y, (int) z).getLocation(), Effect.SMOKE, 0);
- }
- private double getDistance(Location l1, Location l2){
- if(!l1.getWorld().equals(l2.getWorld()))
- return -1;
- return Math.sqrt(Math.pow(l1.getX() - l2.getX(), 2) + Math.pow(l1.getY() - l2.getY(), 2) + Math.pow(l1.getZ() - l2.getZ(), 2));
- }
- }
Add Comment
Please, Sign In to add comment