package de.fanta.challenge.challenges;
import de.fanta.challenge.Challenge;
import de.fanta.challenge.utils.Config;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.entity.Animals;
import org.bukkit.entity.Boss;
import org.bukkit.entity.Entity;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Mob;
import org.bukkit.entity.WaterMob;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDeathEvent;
import java.util.Arrays;
import java.util.Random;
public class RandomMobChallenge implements Listener {
private final Challenge plugin = Challenge.getPlugin();
@EventHandler
public void onEntityDeath(EntityDeathEvent e) {
if (Config.getBoolean("randommobs") && plugin.getTimer().isRunning()) {
Entity entity = e.getEntity();
Location entityloc = entity.getLocation();
World entityworld = entityloc.getWorld();
if (entity instanceof Animals || entity instanceof WaterMob) {
Random random = new Random();
EntityType[] entityValues = Arrays.stream(EntityType.values()).filter(entityType -> (entityType.getEntityClass() != null && Mob.class.isAssignableFrom(entityType.getEntityClass()) && !Boss.class.isAssignableFrom(entityType.getEntityClass()))).toArray(EntityType[]::new);
int randomid = random.nextInt(entityValues.length);
EntityType randomEntity = entityValues[randomid];
entityworld.spawnEntity(entityloc, randomEntity);
}
}
}
}