package dev.loki.perk; import dev.loki.mdbd; import dev.loki.perk.killer.BBQChiliPerk; import dev.loki.perk.killer.CorruptInterventionPerk; import dev.loki.perk.killer.HexRuinPerk; import dev.loki.perk.survivor.BorrowedTimePerk; import dev.loki.perk.survivor.DeadHardPerk; import dev.loki.perk.survivor.SelfCarePerk; import dev.loki.perk.survivor.SprintBurstPerk; import java.util.HashMap; import java.util.Map; public class PerkRegistry { private final Map perks = new HashMap<>(); private final mdbd plugin; public PerkRegistry(mdbd plugin) { this.plugin = plugin; registerDefaultPerks(); } private void registerDefaultPerks() { register(new SelfCarePerk(plugin)); register(new DeadHardPerk(plugin)); register(new SprintBurstPerk(plugin)); register(new BorrowedTimePerk(plugin)); register(new HexRuinPerk(plugin)); register(new CorruptInterventionPerk(plugin)); register(new BBQChiliPerk(plugin)); } public void register(IPerk perk) { perks.put(perk.getId().toLowerCase(), perk); plugin.getLogger().info("Registered perk: " + perk.getName()); } public IPerk getPerk(String id) { return perks.get(id.toLowerCase()); } public Map getAllPerks() { return new HashMap<>(perks); } public Map getPerksByType(PerkType type) { Map result = new HashMap<>(); for (Map.Entry entry : perks.entrySet()) { if (entry.getValue().getType() == type) { result.put(entry.getKey(), entry.getValue()); } } return result; } public boolean hasPerk(String id) { return perks.containsKey(id.toLowerCase()); } }