diff --git a/src/main/java/io/icker/factions/api/persistents/Faction.java b/src/main/java/io/icker/factions/api/persistents/Faction.java index 60d12ea4..760b4116 100644 --- a/src/main/java/io/icker/factions/api/persistents/Faction.java +++ b/src/main/java/io/icker/factions/api/persistents/Faction.java @@ -19,6 +19,7 @@ import java.util.HashMap; import java.util.List; import java.util.UUID; +import java.util.stream.Stream; @Name("Faction") public class Faction { @@ -84,6 +85,10 @@ public Faction( public Faction() {} + public Stream getRelationships() { + return relationships.stream().filter(rel -> Faction.get(rel.target) != null); + } + public String getKey() { return id.toString(); } @@ -224,7 +229,7 @@ public void setHome(Home home) { } public Relationship getRelationship(UUID target) { - return relationships.stream() + return this.relationships.stream() .filter(rel -> rel.target.equals(target)) .findFirst() .orElse(new Relationship(target, Relationship.Status.NEUTRAL)); @@ -241,25 +246,25 @@ public boolean isMutualAllies(UUID target) { } public List getMutualAllies() { - return relationships.stream().filter(rel -> isMutualAllies(rel.target)).toList(); + return this.getRelationships().filter(rel -> isMutualAllies(rel.target)).toList(); } public List getEnemiesWith() { - return relationships.stream() + return this.getRelationships() .filter(rel -> rel.status == Relationship.Status.ENEMY) .toList(); } public List getEnemiesOf() { - return relationships.stream() + return this.getRelationships() .filter(rel -> getReverse(rel).status == Relationship.Status.ENEMY) .toList(); } public void removeRelationship(UUID target) { - relationships = + relationships = new ArrayList<>( - relationships.stream().filter(rel -> !rel.target.equals(target)).toList()); + this.getRelationships().filter(rel -> !rel.target.equals(target)).toList()); } public void setRelationship(Relationship relationship) {