Skip to content

Commit fdf4185

Browse files
authored
Handle version-specific resource packs with identical URLs (#117)
1 parent 32ea498 commit fdf4185

1 file changed

Lines changed: 15 additions & 2 deletions

File tree

api/src/main/java/com/convallyria/forcepack/api/resourcepack/ResourcePack.java

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,12 +74,25 @@ public boolean equals(Object o) {
7474
if (this == o) return true;
7575
if (!(o instanceof ResourcePack)) return false;
7676
ResourcePack that = (ResourcePack) o;
77-
return Objects.equals(uuid, that.uuid) && Objects.equals(getServer(), that.getServer());
77+
return Objects.equals(uuid, that.uuid)
78+
&& Objects.equals(getServer(), that.getServer())
79+
&& sameVersion(packVersion, that.packVersion);
7880
}
7981

8082
@Override
8183
public int hashCode() {
82-
return Objects.hash(uuid, getServer());
84+
return Objects.hash(uuid, getServer(), versionHash(packVersion));
85+
}
86+
87+
private static boolean sameVersion(@Nullable ResourcePackVersion left, @Nullable ResourcePackVersion right) {
88+
if (left == right) return true;
89+
if (left == null || right == null) return false;
90+
return Double.compare(left.min(), right.min()) == 0 && Double.compare(left.max(), right.max()) == 0;
91+
}
92+
93+
private static int versionHash(@Nullable ResourcePackVersion version) {
94+
if (version == null) return 0;
95+
return Objects.hash(version.min(), version.max());
8396
}
8497

8598
@Override

0 commit comments

Comments
 (0)