60 lines
1.8 KiB
Java
60 lines
1.8 KiB
Java
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<String, IPerk> 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<String, IPerk> getAllPerks() {
|
|
return new HashMap<>(perks);
|
|
}
|
|
|
|
public Map<String, IPerk> getPerksByType(PerkType type) {
|
|
Map<String, IPerk> result = new HashMap<>();
|
|
for (Map.Entry<String, IPerk> 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());
|
|
}
|
|
}
|