Search in sources :

Example 56 with EntityDamageEvent

use of org.bukkit.event.entity.EntityDamageEvent in project CommandHelper by EngineHub.

the class BukkitMCLivingEntity method kill.

@Override
public void kill() {
    le.setLastDamageCause(new EntityDamageEvent(le, EntityDamageEvent.DamageCause.CUSTOM, le.getHealth()));
    le.setHealth(0D);
}
Also used : EntityDamageEvent(org.bukkit.event.entity.EntityDamageEvent)

Example 57 with EntityDamageEvent

use of org.bukkit.event.entity.EntityDamageEvent in project modules-extra by CubeEngine.

the class ListenerDeath method onEntityDeath.

@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onEntityDeath(EntityDeathEvent event) {
    // TODO handle when there is no reference on lookup of dependent actions
    DeathKill killAction = this.newAction(DeathKill.class, event.getEntity().getWorld());
    if (killAction != null) {
        // TODO check config for killer type
        killAction.setLocation(event.getEntity().getLocation());
        EntityDamageEvent cause = event.getEntity().getLastDamageCause();
        if (cause == null) {
            killAction.otherKiller = DamageCause.CUSTOM;
        } else if (cause instanceof EntityDamageByEntityEvent) {
            Entity damager = ((EntityDamageByEntityEvent) cause).getDamager();
            if (damager instanceof Player) {
                killAction.playerKiller = new PlayerSection((Player) damager);
            } else if (damager instanceof Projectile) {
                killAction.projectile = true;
                if (((Projectile) damager).getShooter() instanceof Entity) {
                    if (((Projectile) damager).getShooter() instanceof Player) {
                        killAction.playerKiller = new PlayerSection((Player) ((Projectile) damager).getShooter());
                    } else {
                        killAction.entityKiller = new EntitySection((Entity) ((Projectile) damager).getShooter());
                    }
                } else {
                    killAction.entityKiller = new EntitySection(damager);
                }
            } else {
                killAction.entityKiller = new EntitySection(damager);
            }
        } else {
            killAction.otherKiller = cause.getCause();
        }
        this.logAction(killAction);
    }
    Reference<DeathKill> reference = this.reference(killAction);
    LivingEntity killed = event.getEntity();
    if (killed instanceof Player) {
        DeathPlayer action = this.newAction(DeathPlayer.class, killed.getWorld());
        if (action != null) {
            action.killer = reference;
            action.setPlayer((Player) killed);
            this.logAction(action);
        }
        if (this.isActive(DeathDrop.class, event.getEntity().getWorld())) {
            Reference<DeathPlayer> deathRef = this.reference(action);
            for (ItemStack itemStack : event.getDrops()) {
                PlayerDeathDrop dropAction = newAction(PlayerDeathDrop.class);
                dropAction.item = itemStack;
                dropAction.death = deathRef;
                this.logAction(dropAction);
            }
        }
        return;
    }
    Class<? extends EntityDeathAction> actionType;
    if (killed instanceof Wither || killed instanceof EnderDragon) {
        actionType = DeathBoss.class;
    } else if (killed instanceof Animals) {
        if (killed instanceof Tameable && ((Tameable) killed).isTamed()) {
            actionType = DeathPet.class;
        } else {
            actionType = DeathAnimal.class;
        }
    } else if (killed instanceof Villager) {
        actionType = DeathNpc.class;
    } else if (killed instanceof Monster) {
        actionType = DeathMonster.class;
    } else {
        actionType = DeathOther.class;
    }
    EntityDeathAction action = this.newAction(actionType, killed.getWorld());
    if (action != null) {
        action.setKilled(killed);
        action.setLocation(killed.getLocation());
        action.killer = reference;
        this.logAction(action);
    }
    Reference<EntityDeathAction> deathRef = this.reference(action);
    if (this.isActive(DeathDrop.class, event.getEntity().getWorld())) {
        for (ItemStack itemStack : event.getDrops()) {
            DeathDrop dropAction = newAction(DeathDrop.class);
            dropAction.item = itemStack;
            dropAction.death = deathRef;
            this.logAction(dropAction);
        }
    }
}
Also used : LivingEntity(org.bukkit.entity.LivingEntity) Entity(org.spongepowered.api.entity.Entity) PlayerSection(org.cubeengine.module.log.action.block.player.ActionPlayerBlock.PlayerSection) LivingEntity(org.bukkit.entity.LivingEntity) EnderDragon(org.bukkit.entity.EnderDragon) Monster(org.bukkit.entity.Monster) Villager(org.bukkit.entity.Villager) EntitySection(org.cubeengine.module.log.action.block.entity.ActionEntityBlock.EntitySection) EntityDamageEvent(org.bukkit.event.entity.EntityDamageEvent) Wither(org.bukkit.entity.Wither) Player(org.spongepowered.api.entity.player.Player) Tameable(org.bukkit.entity.Tameable) Projectile(org.bukkit.entity.Projectile) Animals(org.bukkit.entity.Animals) EntityDamageByEntityEvent(org.bukkit.event.entity.EntityDamageByEntityEvent) ItemStack(org.spongepowered.api.item.inventory.ItemStack) EventHandler(org.bukkit.event.EventHandler)

Example 58 with EntityDamageEvent

use of org.bukkit.event.entity.EntityDamageEvent in project Essentials by EssentialsX.

the class Commandsuicide method run.

@Override
public void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception {
    final EntityDamageEvent ede = new EntityDamageEvent(user.getBase(), EntityDamageEvent.DamageCause.SUICIDE, Float.MAX_VALUE);
    server.getPluginManager().callEvent(ede);
    ede.getEntity().setLastDamageCause(ede);
    user.getBase().setHealth(0);
    user.sendMessage(tl("suicideMessage"));
    user.setDisplayNick();
    ess.broadcastMessage(user, tl("suicideSuccess", user.getDisplayName()));
}
Also used : EntityDamageEvent(org.bukkit.event.entity.EntityDamageEvent)

Example 59 with EntityDamageEvent

use of org.bukkit.event.entity.EntityDamageEvent in project CoreProtect by PlayPro.

the class EntityDeathListener method logEntityDeath.

protected static void logEntityDeath(LivingEntity entity, String e) {
    if (!Config.getConfig(entity.getWorld()).ENTITY_KILLS) {
        return;
    }
    EntityDamageEvent damage = entity.getLastDamageCause();
    if (damage == null) {
        return;
    }
    boolean isCommand = (damage.getCause() == DamageCause.VOID && entity.getLocation().getBlockY() >= BukkitAdapter.ADAPTER.getMinHeight(entity.getWorld()));
    if (e == null) {
        e = isCommand ? "#command" : "";
    }
    boolean skip = true;
    if (!Config.getConfig(entity.getWorld()).SKIP_GENERIC_DATA || (!(entity instanceof Zombie) && !(entity instanceof Skeleton))) {
        skip = false;
    }
    if (damage instanceof EntityDamageByEntityEvent) {
        EntityDamageByEntityEvent attack = (EntityDamageByEntityEvent) damage;
        Entity attacker = attack.getDamager();
        if (attacker instanceof Player) {
            Player player = (Player) attacker;
            e = player.getName();
        } else if (attacker instanceof AbstractArrow) {
            AbstractArrow arrow = (AbstractArrow) attacker;
            ProjectileSource shooter = arrow.getShooter();
            if (shooter instanceof Player) {
                Player player = (Player) shooter;
                e = player.getName();
            } else if (shooter instanceof LivingEntity) {
                EntityType entityType = ((LivingEntity) shooter).getType();
                if (entityType != null) {
                    // Check for MyPet plugin
                    String name = entityType.name().toLowerCase(Locale.ROOT);
                    e = "#" + name;
                }
            }
        } else if (attacker instanceof ThrownPotion) {
            ThrownPotion potion = (ThrownPotion) attacker;
            ProjectileSource shooter = potion.getShooter();
            if (shooter instanceof Player) {
                Player player = (Player) shooter;
                e = player.getName();
            } else if (shooter instanceof LivingEntity) {
                EntityType entityType = ((LivingEntity) shooter).getType();
                if (entityType != null) {
                    // Check for MyPet plugin
                    String name = entityType.name().toLowerCase(Locale.ROOT);
                    e = "#" + name;
                }
            }
        } else if (attacker.getType().name() != null) {
            e = "#" + attacker.getType().name().toLowerCase(Locale.ROOT);
        }
    } else {
        EntityDamageEvent.DamageCause cause = damage.getCause();
        if (cause.equals(EntityDamageEvent.DamageCause.FIRE)) {
            e = "#fire";
        } else if (cause.equals(EntityDamageEvent.DamageCause.FIRE_TICK)) {
            if (!skip) {
                e = "#fire";
            }
        } else if (cause.equals(EntityDamageEvent.DamageCause.LAVA)) {
            e = "#lava";
        } else if (cause.equals(EntityDamageEvent.DamageCause.BLOCK_EXPLOSION)) {
            e = "#explosion";
        } else if (cause.equals(EntityDamageEvent.DamageCause.MAGIC)) {
            e = "#magic";
        }
    }
    if (entity instanceof ArmorStand) {
        Location entityLocation = entity.getLocation();
        if (!Config.getConfig(entityLocation.getWorld()).ITEM_TRANSACTIONS) {
            entityLocation.setY(entityLocation.getY() + 0.99);
            Block block = entityLocation.getBlock();
            Queue.queueBlockBreak(e, block.getState(), Material.ARMOR_STAND, null, (int) entityLocation.getYaw());
        }
        /*
            else if (isCommand) {
                entityLocation.setY(entityLocation.getY() + 0.99);
                Block block = entityLocation.getBlock();
                Database.containerBreakCheck(e, Material.ARMOR_STAND, entity, null, block.getLocation());
                Queue.queueBlockBreak(e, block.getState(), Material.ARMOR_STAND, null, (int) entityLocation.getYaw());
            }
            */
        return;
    }
    EntityType entity_type = entity.getType();
    if (e.length() == 0) {
        // assume killed self
        if (!skip) {
            if (!(entity instanceof Player) && entity_type.name() != null) {
                // Player player = (Player)entity;
                // e = player.getName();
                e = "#" + entity_type.name().toLowerCase(Locale.ROOT);
            } else if (entity instanceof Player) {
                e = entity.getName();
            }
        }
    }
    if (e.startsWith("#wither")) {
        e = "#wither";
    }
    if (e.startsWith("#enderdragon")) {
        e = "#enderdragon";
    }
    if (e.startsWith("#primedtnt") || e.startsWith("#tnt")) {
        e = "#tnt";
    }
    if (e.startsWith("#lightning")) {
        e = "#lightning";
    }
    if (e.length() > 0) {
        List<Object> data = new ArrayList<>();
        List<Object> age = new ArrayList<>();
        List<Object> tame = new ArrayList<>();
        List<Object> attributes = new ArrayList<>();
        List<Object> details = new ArrayList<>();
        List<Object> info = new ArrayList<>();
        EntityType type = entity_type;
        // Basic LivingEntity attributes
        details.add(entity.getRemoveWhenFarAway());
        details.add(entity.getCanPickupItems());
        if (entity instanceof Ageable) {
            Ageable ageable = (Ageable) entity;
            age.add(ageable.getAge());
            age.add(ageable.getAgeLock());
            age.add(ageable.isAdult());
            age.add(ageable.canBreed());
            age.add(null);
        }
        if (entity instanceof Tameable) {
            Tameable tameable = (Tameable) entity;
            tame.add(tameable.isTamed());
            if (tameable.isTamed()) {
                if (tameable.getOwner() != null) {
                    tame.add(tameable.getOwner().getName());
                }
            }
        }
        if (entity instanceof Attributable) {
            Attributable attributable = entity;
            for (Attribute attribute : Attribute.values()) {
                AttributeInstance attributeInstance = attributable.getAttribute(attribute);
                if (attributeInstance != null) {
                    List<Object> attributeData = new ArrayList<>();
                    List<Object> attributeModifiers = new ArrayList<>();
                    attributeData.add(attributeInstance.getAttribute());
                    attributeData.add(attributeInstance.getBaseValue());
                    for (AttributeModifier modifier : attributeInstance.getModifiers()) {
                        attributeModifiers.add(modifier.serialize());
                    }
                    attributeData.add(attributeModifiers);
                    attributes.add(attributeData);
                }
            }
        }
        if (entity instanceof Creeper) {
            Creeper creeper = (Creeper) entity;
            info.add(creeper.isPowered());
        } else if (entity instanceof Enderman) {
            Enderman enderman = (Enderman) entity;
            info.add(null);
            try {
                info.add(enderman.getCarriedBlock().getAsString());
            } catch (Exception endermanException) {
            }
        } else if (entity instanceof IronGolem) {
            IronGolem irongolem = (IronGolem) entity;
            info.add(irongolem.isPlayerCreated());
        } else if (entity instanceof Cat) {
            Cat cat = (Cat) entity;
            info.add(cat.getCatType());
            info.add(cat.getCollarColor());
        } else if (entity instanceof Fox) {
            Fox fox = (Fox) entity;
            info.add(fox.getFoxType());
            info.add(fox.isSitting());
        } else if (entity instanceof Panda) {
            Panda panda = (Panda) entity;
            info.add(panda.getMainGene());
            info.add(panda.getHiddenGene());
        } else if (entity instanceof Pig) {
            Pig pig = (Pig) entity;
            info.add(pig.hasSaddle());
        } else if (entity instanceof Sheep) {
            Sheep sheep = (Sheep) entity;
            info.add(sheep.isSheared());
            info.add(sheep.getColor());
        } else if (entity instanceof MushroomCow) {
            MushroomCow mushroomCow = (MushroomCow) entity;
            info.add(mushroomCow.getVariant());
        } else if (entity instanceof Skeleton) {
            info.add(null);
        } else if (entity instanceof Slime) {
            Slime slime = (Slime) entity;
            info.add(slime.getSize());
        } else if (entity instanceof Parrot) {
            Parrot parrot = (Parrot) entity;
            info.add(parrot.getVariant());
        } else if (entity instanceof TropicalFish) {
            TropicalFish tropicalFish = (TropicalFish) entity;
            info.add(tropicalFish.getBodyColor());
            info.add(tropicalFish.getPattern());
            info.add(tropicalFish.getPatternColor());
        } else if (entity instanceof Phantom) {
            Phantom phantom = (Phantom) entity;
            info.add(phantom.getSize());
        } else if (entity instanceof AbstractVillager) {
            AbstractVillager abstractVillager = (AbstractVillager) entity;
            List<Object> recipes = new ArrayList<>();
            for (MerchantRecipe merchantRecipe : abstractVillager.getRecipes()) {
                List<Object> recipe = new ArrayList<>();
                List<Object> ingredients = new ArrayList<>();
                List<Object> itemMap = new ArrayList<>();
                ItemStack item = merchantRecipe.getResult().clone();
                List<List<Map<String, Object>>> metadata = ItemMetaHandler.seralize(item, item.getType(), null, 0);
                item.setItemMeta(null);
                itemMap.add(item.serialize());
                itemMap.add(metadata);
                recipe.add(itemMap);
                recipe.add(merchantRecipe.getUses());
                recipe.add(merchantRecipe.getMaxUses());
                recipe.add(merchantRecipe.hasExperienceReward());
                for (ItemStack ingredient : merchantRecipe.getIngredients()) {
                    itemMap = new ArrayList<>();
                    item = ingredient.clone();
                    metadata = ItemMetaHandler.seralize(item, item.getType(), null, 0);
                    item.setItemMeta(null);
                    itemMap.add(item.serialize());
                    itemMap.add(metadata);
                    ingredients.add(itemMap);
                }
                recipe.add(ingredients);
                recipe.add(merchantRecipe.getVillagerExperience());
                recipe.add(merchantRecipe.getPriceMultiplier());
                recipes.add(recipe);
            }
            if (abstractVillager instanceof Villager) {
                Villager villager = (Villager) abstractVillager;
                info.add(villager.getProfession());
                info.add(villager.getVillagerType());
                info.add(recipes);
                info.add(villager.getVillagerLevel());
                info.add(villager.getVillagerExperience());
            } else {
                info.add(null);
                info.add(null);
                info.add(recipes);
            }
        } else if (entity instanceof Raider) {
            Raider raider = (Raider) entity;
            info.add(raider.isPatrolLeader());
            if (entity instanceof Spellcaster) {
                Spellcaster spellcaster = (Spellcaster) entity;
                info.add(spellcaster.getSpell());
            }
        } else if (entity instanceof Wolf) {
            Wolf wolf = (Wolf) entity;
            info.add(wolf.isSitting());
            info.add(wolf.getCollarColor());
        } else if (entity instanceof ZombieVillager) {
            ZombieVillager zombieVillager = (ZombieVillager) entity;
            info.add(zombieVillager.isBaby());
            info.add(zombieVillager.getVillagerProfession());
        } else if (entity instanceof Zombie) {
            Zombie zombie = (Zombie) entity;
            info.add(zombie.isBaby());
            info.add(null);
            info.add(null);
        } else if (entity instanceof AbstractHorse) {
            AbstractHorse abstractHorse = (AbstractHorse) entity;
            info.add(null);
            info.add(null);
            info.add(abstractHorse.getDomestication());
            info.add(abstractHorse.getJumpStrength());
            info.add(abstractHorse.getMaxDomestication());
            info.add(null);
            info.add(null);
            if (entity instanceof Horse) {
                Horse horse = (Horse) entity;
                info.add(null);
                ItemStack saddle = horse.getInventory().getSaddle();
                if (saddle != null) {
                    info.add(saddle.serialize());
                } else {
                    info.add(null);
                }
                info.add(horse.getColor());
                info.add(horse.getStyle());
                ItemStack horseArmor = horse.getInventory().getArmor();
                if (horseArmor != null) {
                    ItemStack armor = horseArmor.clone();
                    ItemMeta itemMeta = armor.getItemMeta();
                    Color color = null;
                    if (itemMeta instanceof LeatherArmorMeta) {
                        LeatherArmorMeta meta = (LeatherArmorMeta) itemMeta;
                        color = meta.getColor();
                        meta.setColor(null);
                        armor.setItemMeta(meta);
                    }
                    info.add(armor.serialize());
                    if (color != null) {
                        info.add(color.serialize());
                    } else {
                        info.add(null);
                    }
                } else {
                    info.add(null);
                    info.add(null);
                }
            } else if (entity instanceof ChestedHorse) {
                ChestedHorse chestedHorse = (ChestedHorse) entity;
                info.add(chestedHorse.isCarryingChest());
                if (entity instanceof Llama) {
                    Llama llama = (Llama) entity;
                    ItemStack decor = llama.getInventory().getDecor();
                    if (decor != null) {
                        info.add(decor.serialize());
                    } else {
                        info.add(null);
                    }
                    info.add(llama.getColor());
                }
            }
        } else {
            BukkitAdapter.ADAPTER.getEntityMeta(entity, info);
        }
        data.add(age);
        data.add(tame);
        data.add(info);
        data.add(entity.isCustomNameVisible());
        data.add(entity.getCustomName());
        data.add(attributes);
        data.add(details);
        if (!(entity instanceof Player)) {
            Queue.queueEntityKill(e, entity.getLocation(), data, type);
        } else {
            Queue.queuePlayerKill(e, entity.getLocation(), entity.getName());
        }
    }
}
Also used : Entity(org.bukkit.entity.Entity) LivingEntity(org.bukkit.entity.LivingEntity) AbstractHorse(org.bukkit.entity.AbstractHorse) ArrayList(java.util.ArrayList) AbstractHorse(org.bukkit.entity.AbstractHorse) ChestedHorse(org.bukkit.entity.ChestedHorse) Horse(org.bukkit.entity.Horse) Phantom(org.bukkit.entity.Phantom) ZombieVillager(org.bukkit.entity.ZombieVillager) Villager(org.bukkit.entity.Villager) AbstractVillager(org.bukkit.entity.AbstractVillager) ThrownPotion(org.bukkit.entity.ThrownPotion) List(java.util.List) ArrayList(java.util.ArrayList) AbstractVillager(org.bukkit.entity.AbstractVillager) Player(org.bukkit.entity.Player) MushroomCow(org.bukkit.entity.MushroomCow) Raider(org.bukkit.entity.Raider) Zombie(org.bukkit.entity.Zombie) Parrot(org.bukkit.entity.Parrot) Color(org.bukkit.Color) Fox(org.bukkit.entity.Fox) Panda(org.bukkit.entity.Panda) EntityType(org.bukkit.entity.EntityType) EntityDamageByEntityEvent(org.bukkit.event.entity.EntityDamageByEntityEvent) Enderman(org.bukkit.entity.Enderman) ChestedHorse(org.bukkit.entity.ChestedHorse) Cat(org.bukkit.entity.Cat) LeatherArmorMeta(org.bukkit.inventory.meta.LeatherArmorMeta) Block(org.bukkit.block.Block) ZombieVillager(org.bukkit.entity.ZombieVillager) ItemStack(org.bukkit.inventory.ItemStack) AbstractArrow(org.bukkit.entity.AbstractArrow) Attribute(org.bukkit.attribute.Attribute) Creeper(org.bukkit.entity.Creeper) IronGolem(org.bukkit.entity.IronGolem) Ageable(org.bukkit.entity.Ageable) LivingEntity(org.bukkit.entity.LivingEntity) Attributable(org.bukkit.attribute.Attributable) ArmorStand(org.bukkit.entity.ArmorStand) TropicalFish(org.bukkit.entity.TropicalFish) AttributeInstance(org.bukkit.attribute.AttributeInstance) Spellcaster(org.bukkit.entity.Spellcaster) DamageCause(org.bukkit.event.entity.EntityDamageEvent.DamageCause) Skeleton(org.bukkit.entity.Skeleton) ProjectileSource(org.bukkit.projectiles.ProjectileSource) Wolf(org.bukkit.entity.Wolf) ItemMeta(org.bukkit.inventory.meta.ItemMeta) EntityDamageEvent(org.bukkit.event.entity.EntityDamageEvent) MerchantRecipe(org.bukkit.inventory.MerchantRecipe) Tameable(org.bukkit.entity.Tameable) AttributeModifier(org.bukkit.attribute.AttributeModifier) Slime(org.bukkit.entity.Slime) Pig(org.bukkit.entity.Pig) Llama(org.bukkit.entity.Llama) Sheep(org.bukkit.entity.Sheep) Location(org.bukkit.Location)

Example 60 with EntityDamageEvent

use of org.bukkit.event.entity.EntityDamageEvent in project Denizen by DenizenScript.

the class EntityHelperImpl method damage.

@Override
public void damage(LivingEntity target, float amount, Entity source, EntityDamageEvent.DamageCause cause) {
    if (target == null) {
        return;
    }
    net.minecraft.world.entity.LivingEntity nmsTarget = ((CraftLivingEntity) target).getHandle();
    net.minecraft.world.entity.Entity nmsSource = source == null ? null : ((CraftEntity) source).getHandle();
    CraftEventFactory.entityDamage = nmsSource;
    try {
        DamageSource src = getSourceFor(nmsSource, cause);
        if (src instanceof FakeDamageSrc) {
            src = ((FakeDamageSrc) src).real;
            EntityDamageEvent ede = fireFakeDamageEvent(target, source, cause, amount);
            if (ede.isCancelled()) {
                return;
            }
        }
        nmsTarget.hurt(src, amount);
    } finally {
        CraftEventFactory.entityDamage = null;
    }
}
Also used : DamageSource(net.minecraft.world.damagesource.DamageSource) org.bukkit.craftbukkit.v1_17_R1.entity(org.bukkit.craftbukkit.v1_17_R1.entity) org.bukkit.entity(org.bukkit.entity) net.minecraft.world.entity(net.minecraft.world.entity) EntityDamageEvent(org.bukkit.event.entity.EntityDamageEvent)

Aggregations

EntityDamageEvent (org.bukkit.event.entity.EntityDamageEvent)109 Player (org.bukkit.entity.Player)43 EntityDamageByEntityEvent (org.bukkit.event.entity.EntityDamageByEntityEvent)40 Entity (org.bukkit.entity.Entity)30 LivingEntity (org.bukkit.entity.LivingEntity)25 EventHandler (org.bukkit.event.EventHandler)24 Projectile (org.bukkit.entity.Projectile)15 ItemStack (org.bukkit.inventory.ItemStack)13 Test (org.junit.Test)11 Function (com.google.common.base.Function)8 ProjectileSource (org.bukkit.projectiles.ProjectileSource)8 Location (org.bukkit.Location)7 EntityDamageByBlockEvent (org.bukkit.event.entity.EntityDamageByBlockEvent)7 DamageCause (org.bukkit.event.entity.EntityDamageEvent.DamageCause)7 EntityDeathEvent (org.bukkit.event.entity.EntityDeathEvent)7 PrepareForTest (org.powermock.core.classloader.annotations.PrepareForTest)7 ArrayList (java.util.ArrayList)6 List (java.util.List)6 World (org.bukkit.World)6 Block (org.bukkit.block.Block)6