From 24956b456ff5ff6dcf020883236d4790ed19465c Mon Sep 17 00:00:00 2001 From: Juuz <6596629+Juuxel@users.noreply.github.com> Date: Sat, 18 Feb 2023 02:00:38 +0200 Subject: [PATCH] Add working hash codes to ModMetadataFile and ModMetadataFabricModJson --- .../loom/metadata/ArchitecturyCommonJson.java | 10 ++++++++++ .../dev/architectury/loom/metadata/QuiltModJson.java | 10 ++++++++++ .../java/net/fabricmc/loom/util/fmj/FabricModJson.java | 2 +- .../loom/util/fmj/ModMetadataFabricModJson.java | 5 +++++ 4 files changed, 26 insertions(+), 1 deletion(-) diff --git a/src/main/java/dev/architectury/loom/metadata/ArchitecturyCommonJson.java b/src/main/java/dev/architectury/loom/metadata/ArchitecturyCommonJson.java index 6a7c5f7c..df489bc1 100644 --- a/src/main/java/dev/architectury/loom/metadata/ArchitecturyCommonJson.java +++ b/src/main/java/dev/architectury/loom/metadata/ArchitecturyCommonJson.java @@ -111,4 +111,14 @@ public final class ArchitecturyCommonJson implements JsonBackedModMetadataFile { public List getMixinConfigs() { return List.of(); } + + @Override + public boolean equals(Object obj) { + return this == obj || obj instanceof ArchitecturyCommonJson acj && acj.json.equals(json); + } + + @Override + public int hashCode() { + return json.hashCode(); + } } diff --git a/src/main/java/dev/architectury/loom/metadata/QuiltModJson.java b/src/main/java/dev/architectury/loom/metadata/QuiltModJson.java index 59f093d5..7f7d096e 100644 --- a/src/main/java/dev/architectury/loom/metadata/QuiltModJson.java +++ b/src/main/java/dev/architectury/loom/metadata/QuiltModJson.java @@ -148,4 +148,14 @@ public final class QuiltModJson implements JsonBackedModMetadataFile { // See https://github.com/QuiltMC/quilt-loader/blob/7da975c7/src/main/java/org/quiltmc/loader/api/ModMetadata.java#L150-L152 return json.get(key); } + + @Override + public boolean equals(Object obj) { + return this == obj || obj instanceof QuiltModJson qmj && qmj.json.equals(json); + } + + @Override + public int hashCode() { + return json.hashCode(); + } } diff --git a/src/main/java/net/fabricmc/loom/util/fmj/FabricModJson.java b/src/main/java/net/fabricmc/loom/util/fmj/FabricModJson.java index 5e5cc379..96dbd9e1 100644 --- a/src/main/java/net/fabricmc/loom/util/fmj/FabricModJson.java +++ b/src/main/java/net/fabricmc/loom/util/fmj/FabricModJson.java @@ -67,7 +67,7 @@ public abstract sealed class FabricModJson permits FabricModJsonV0, FabricModJso } @Override - public final int hashCode() { + public int hashCode() { return Objects.hash(getId(), getVersion()); } diff --git a/src/main/java/net/fabricmc/loom/util/fmj/ModMetadataFabricModJson.java b/src/main/java/net/fabricmc/loom/util/fmj/ModMetadataFabricModJson.java index 567a0cbf..46de0b36 100644 --- a/src/main/java/net/fabricmc/loom/util/fmj/ModMetadataFabricModJson.java +++ b/src/main/java/net/fabricmc/loom/util/fmj/ModMetadataFabricModJson.java @@ -122,4 +122,9 @@ public final class ModMetadataFabricModJson extends FabricModJson { .stream() .collect(Collectors.toMap(Function.identity(), path -> ModEnvironment.UNIVERSAL)); } + + @Override + public int hashCode() { + return modMetadata.hashCode(); + } }