Newer
Older
ChallengeSystem / Challenge / src / main / java / de / fanta / challenge / challenges / RandomMobChallenge.java
@fanta fanta on 7 Jun 2024 1 KB ja
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);
            }
        }

    }
}