Ver Fonte

Add equals and hashCode for RichMessageOrigin

Him188 há 5 anos atrás
pai
commit
a834916f3c

+ 2 - 0
binary-compatibility-validator/api/binary-compatibility-validator.api

@@ -5089,11 +5089,13 @@ public final class net/mamoe/mirai/message/data/RichMessageOrigin : net/mamoe/mi
 	public synthetic fun <init> (ILnet/mamoe/mirai/message/data/RichMessage;Ljava/lang/String;Lnet/mamoe/mirai/message/data/RichMessageKind;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V
 	public fun <init> (Lnet/mamoe/mirai/message/data/RichMessage;Ljava/lang/String;Lnet/mamoe/mirai/message/data/RichMessageKind;)V
 	public fun contentToString ()Ljava/lang/String;
+	public fun equals (Ljava/lang/Object;)Z
 	public synthetic fun getKey ()Lnet/mamoe/mirai/message/data/MessageKey;
 	public fun getKey ()Lnet/mamoe/mirai/message/data/RichMessageOrigin$Key;
 	public final fun getKind ()Lnet/mamoe/mirai/message/data/RichMessageKind;
 	public final fun getOrigin ()Lnet/mamoe/mirai/message/data/RichMessage;
 	public final fun getResourceId ()Ljava/lang/String;
+	public fun hashCode ()I
 	public fun toString ()Ljava/lang/String;
 	public static final fun write$Self (Lnet/mamoe/mirai/message/data/RichMessageOrigin;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V
 }

+ 1 - 1
mirai-console

@@ -1 +1 @@
-Subproject commit a5481accb5f882d121ff9fc1d55e4e5f3e908e76
+Subproject commit 8683e888926fbe2c76abf6362830f7470fc7c029

+ 21 - 0
mirai-core-api/src/commonMain/kotlin/message/data/RichMessageOrigin.kt

@@ -66,6 +66,27 @@ public class RichMessageOrigin(
 
     override fun contentToString(): String = ""
 
+    override fun equals(other: Any?): Boolean {
+        if (this === other) return true
+        if (javaClass != other?.javaClass) return false
+
+        other as RichMessageOrigin
+
+        if (origin != other.origin) return false
+        if (resourceId != other.resourceId) return false
+        if (kind != other.kind) return false
+
+        return true
+    }
+
+    override fun hashCode(): Int {
+        var result = origin.hashCode()
+        result = 31 * result + (resourceId?.hashCode() ?: 0)
+        result = 31 * result + kind.hashCode()
+        return result
+    }
+
+
     public companion object Key : AbstractMessageKey<RichMessageOrigin>({ it.safeCast() }) {
         public const val SERIAL_NAME: String = "RichMessageOrigin"
     }