| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- package me.lethunderhawk.minion.manager;
- import me.lethunderhawk.main.Main;
- import me.lethunderhawk.minion.runtime.PlacedMinion;
- import org.bukkit.Location;
- import org.bukkit.plugin.java.JavaPlugin;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Map;
- import java.util.UUID;
- import java.util.concurrent.ConcurrentHashMap;
- public class MinionManager {
- private static final Map<UUID, PlacedMinion> BY_ENTITY = new ConcurrentHashMap<>();
- public static void register(PlacedMinion minion) {
- BY_ENTITY.put(minion.getArmorStand().getUniqueId(), minion);
- }
- public static PlacedMinion getByEntity(UUID entityId) {
- return BY_ENTITY.get(entityId);
- }
- public static void unregister(PlacedMinion minion) {
- BY_ENTITY.remove(minion.getArmorStand().getUniqueId());
- }
- public static void stopAndUnregister(PlacedMinion minion) {
- minion.stop();
- unregister(minion);
- }
- public static void startAndRegister(PlacedMinion minion, JavaPlugin plugin) {
- minion.start(plugin);
- register(minion);
- }
- public static List<PlacedMinion> stopAndUnregisterAll() {
- List<PlacedMinion> minions = new ArrayList<>();
- BY_ENTITY.forEach((key, minion) -> {
- minions.add(minion);
- stopAndUnregister(minion);
- });
- return minions;
- }
- public static boolean isMinionAtLocation(Location placeLocation) {
- for(PlacedMinion minion : BY_ENTITY.values()){
- if(minion.getLocation().equals(placeLocation)){
- return true;
- }
- }
- return false;
- }
- public static void startAndRegisterAll(Main plugin, List<PlacedMinion> minions) {
- for(PlacedMinion minion : minions){
- startAndRegister(minion, plugin);
- }
- }
- }
|