From fc01fc29d03d46c7e3b281075dc13aef867b8e2e Mon Sep 17 00:00:00 2001 From: xllifi Date: Tue, 26 Aug 2025 15:00:19 +1000 Subject: [PATCH 1/2] fix relationships with disbanded factions --- .../icker/factions/api/persistents/Faction.java | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) 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..b2c15c63 100644 --- a/src/main/java/io/icker/factions/api/persistents/Faction.java +++ b/src/main/java/io/icker/factions/api/persistents/Faction.java @@ -84,6 +84,11 @@ public Faction( public Faction() {} + public ArrayList getRelationships() { + relationships = new ArrayList<>(relationships.stream().filter(rel -> Faction.get(rel.target) != null).toList()); + return relationships; + } + 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.getRelationships().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().stream().filter(rel -> isMutualAllies(rel.target)).toList(); } public List getEnemiesWith() { - return relationships.stream() + return this.getRelationships().stream() .filter(rel -> rel.status == Relationship.Status.ENEMY) .toList(); } public List getEnemiesOf() { - return relationships.stream() + return this.getRelationships().stream() .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().stream().filter(rel -> !rel.target.equals(target)).toList()); } public void setRelationship(Relationship relationship) { From 2f14f185c28c617b3f8be92feb2a1ebe1d8aaeec Mon Sep 17 00:00:00 2001 From: xllifi Date: Fri, 29 Aug 2025 20:56:47 +1000 Subject: [PATCH 2/2] implement requested changes --- .../icker/factions/api/persistents/Faction.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) 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 b2c15c63..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,9 +85,8 @@ public Faction( public Faction() {} - public ArrayList getRelationships() { - relationships = new ArrayList<>(relationships.stream().filter(rel -> Faction.get(rel.target) != null).toList()); - return relationships; + public Stream getRelationships() { + return relationships.stream().filter(rel -> Faction.get(rel.target) != null); } public String getKey() { @@ -229,7 +229,7 @@ public void setHome(Home home) { } public Relationship getRelationship(UUID target) { - return this.getRelationships().stream() + return this.relationships.stream() .filter(rel -> rel.target.equals(target)) .findFirst() .orElse(new Relationship(target, Relationship.Status.NEUTRAL)); @@ -246,17 +246,17 @@ public boolean isMutualAllies(UUID target) { } public List getMutualAllies() { - return this.getRelationships().stream().filter(rel -> isMutualAllies(rel.target)).toList(); + return this.getRelationships().filter(rel -> isMutualAllies(rel.target)).toList(); } public List getEnemiesWith() { - return this.getRelationships().stream() + return this.getRelationships() .filter(rel -> rel.status == Relationship.Status.ENEMY) .toList(); } public List getEnemiesOf() { - return this.getRelationships().stream() + return this.getRelationships() .filter(rel -> getReverse(rel).status == Relationship.Status.ENEMY) .toList(); } @@ -264,7 +264,7 @@ public List getEnemiesOf() { public void removeRelationship(UUID target) { relationships = new ArrayList<>( - this.getRelationships().stream().filter(rel -> !rel.target.equals(target)).toList()); + this.getRelationships().filter(rel -> !rel.target.equals(target)).toList()); } public void setRelationship(Relationship relationship) {