package dev.rawleenc.mineclass.utils; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; import java.util.List; import java.util.Optional; import java.util.stream.Collectors; public class InvocationsFinder { public static Optional findWolf(Player player, int i) { return player.getWorld().getEntities().stream() .filter( entity -> entity.hasMetadata("beastMasterWolf") && entity.getMetadata("beastMasterWolf").stream() .anyMatch( metadataValue -> metadataValue.asString().equals(player.getName())) && entity.hasMetadata("beastMasterWolfType") && entity.getMetadata("beastMasterWolfType").stream() .anyMatch(metadataValue -> metadataValue.asInt() == i)) .findFirst(); } public static List findWolfs(Player player) { return player.getWorld().getEntities().stream() .filter( entity -> entity.hasMetadata("beastMasterWolf") && entity.getMetadata("beastMasterWolf").stream() .anyMatch( metadataValue -> metadataValue.asString().equals(player.getName()))) .collect(Collectors.toList()); } public static List findCats(Player player) { return player.getWorld().getEntities().stream() .filter( entity -> entity.hasMetadata("beastMasterCat") && entity.getMetadata("beastMasterCat").stream() .anyMatch( metadataValue -> metadataValue.asString().equals(player.getName()))) .collect(Collectors.toList()); } public static List findHorses(Player player) { return player.getWorld().getEntities().stream() .filter( entity -> entity.hasMetadata("beastMasterHorse") && entity.getMetadata("beastMasterHorse").stream() .anyMatch( metadataValue -> metadataValue.asString().equals(player.getName()))) .collect(Collectors.toList()); } }