use of org.spongepowered.api.entity.living.monster.Monster in project Skree by Skelril.
the class FreakyFourInstance method runCharlotte.
private void runCharlotte() {
Living boss = getBoss(FreakyFourBoss.CHARLOTTE).get();
for (int i = Probability.getRandom(10); i > 0; --i) {
spawnCharlotteMinion(boss.getLocation().getPosition());
}
ZoneBoundingBox charlotte_RG = regions.get(FreakyFourBoss.CHARLOTTE);
switch(Probability.getRandom(3)) {
case 1:
createWall(charlotte_RG, type -> type == BlockTypes.AIR, type -> type == BlockTypes.WEB, BlockTypes.AIR, BlockTypes.WEB, 1, config.charlotteFloorWeb);
break;
case 2:
if (boss instanceof Monster) {
Optional<Entity> optTarget = ((Monster) boss).getTarget();
if (optTarget.isPresent() && contains(optTarget.get())) {
Entity target = optTarget.get();
ZoneBoundingBox targetArea = new ZoneBoundingBox(target.getLocation().getPosition().sub(1, 1, 1).toInt(), new Vector3i(3, 3, 3));
targetArea.forAll(pt -> {
if (getRegion().getExtent().getBlockType(pt) == BlockTypes.AIR) {
getRegion().getExtent().setBlockType(pt, BlockTypes.WEB, Cause.source(SkreePlugin.container()).build());
}
});
}
break;
}
case 3:
charlotte_RG.forAll(pt -> {
if (!Probability.getChance(config.charlotteWebSpider)) {
return;
}
if (getRegion().getExtent().getBlockType(pt) == BlockTypes.WEB) {
getRegion().getExtent().setBlockType(pt, BlockTypes.AIR, Cause.source(SkreePlugin.container()).build());
spawnCharlotteMinion(pt.toDouble().add(.5, 0, .5));
}
});
break;
}
}
use of org.spongepowered.api.entity.living.monster.Monster in project ClearMob by axle2005.
the class clearMain method run.
public void run(Boolean[] configoptions, List<EntityType> listEntityType, CommandSource src) {
int removedEntities = 0;
Map<UUID, Entity> entityData = new ConcurrentHashMap<>();
for (World world : Sponge.getServer().getWorlds()) {
for (Entity entity : world.getEntities()) {
entityData.put(entity.getUniqueId(), entity);
}
for (Entity entity : entityData.values()) {
if (!entity.isRemoved()) {
if (entity instanceof Player) {
} else if (entity.get(DisplayNameData.class).isPresent()) {
// Checks if entity has nametag and ignores it.
} else if (configoptions[1] == true && entity instanceof Monster) {
// KillAllMonsters
removedEntities++;
entity.remove();
} else if (configoptions[2] == true && entity instanceof Item) {
// KillDrops
if (ClearItems.run(entity, plugin.getListItemType(), plugin.getitemWB())) {
removedEntities++;
}
} else if (configoptions[3] == true && entity instanceof Animal) {
// KillAnimalGroups
removedEntities = removedEntities + animals.run(entity);
} else {
if (wl.clear(entity, plugin.getListEntityType()) == true) {
removedEntities++;
}
}
}
}
}
ClearTileEntity.run(plugin, plugin.getListTileEntityType(), plugin.getWorlds(), src);
feedback(src, removedEntities);
}
Aggregations