From 5c8964505655976682dd6034c07b15bcbe71a890 Mon Sep 17 00:00:00 2001
From: Him188 <Him188@mamoe.net>
Date: Mon, 5 Jul 2021 15:32:03 +0800
Subject: [PATCH] Add a stable factory-method for `AnnouncementImage`

---
 .../kotlin/contact/announcement/AnnouncementImage.kt  | 11 +++++++++--
 .../kotlin/contact/announcement/GroupAnnouncement.kt  |  2 +-
 2 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/mirai-core-api/src/commonMain/kotlin/contact/announcement/AnnouncementImage.kt b/mirai-core-api/src/commonMain/kotlin/contact/announcement/AnnouncementImage.kt
index e72d22732..e031c6688 100644
--- a/mirai-core-api/src/commonMain/kotlin/contact/announcement/AnnouncementImage.kt
+++ b/mirai-core-api/src/commonMain/kotlin/contact/announcement/AnnouncementImage.kt
@@ -11,7 +11,6 @@ package net.mamoe.mirai.contact.announcement
 
 import kotlinx.serialization.SerialName
 import kotlinx.serialization.Serializable
-import net.mamoe.mirai.utils.MiraiInternalApi
 
 
 /**
@@ -23,7 +22,7 @@ import net.mamoe.mirai.utils.MiraiInternalApi
  */
 @SerialName(AnnouncementImage.SERIAL_NAME)
 @Serializable
-public class AnnouncementImage @MiraiInternalApi public constructor(
+public class AnnouncementImage private constructor(
     public val id: String,
     public val height: String,
     public val width: String,
@@ -32,6 +31,14 @@ public class AnnouncementImage @MiraiInternalApi public constructor(
 
     public companion object {
         public const val SERIAL_NAME: String = "AnnouncementImage"
+
+        /**
+         * 创建 [AnnouncementImage] 实例.
+         */
+        @JvmStatic
+        public fun create(id: String, height: String, width: String): AnnouncementImage {
+            return AnnouncementImage(id, height, width)
+        }
     }
 
     override fun toString(): String {
diff --git a/mirai-core/src/commonMain/kotlin/contact/announcement/GroupAnnouncement.kt b/mirai-core/src/commonMain/kotlin/contact/announcement/GroupAnnouncement.kt
index 5d0973528..807dc70d6 100644
--- a/mirai-core/src/commonMain/kotlin/contact/announcement/GroupAnnouncement.kt
+++ b/mirai-core/src/commonMain/kotlin/contact/announcement/GroupAnnouncement.kt
@@ -56,7 +56,7 @@ internal class GroupAnnouncementImage @MiraiInternalApi constructor(
     @SerialName("w") val width: String,
     @SerialName("id") val id: String
 ) : JsonStruct {
-    fun toPublic(): AnnouncementImage = AnnouncementImage(id, height, width)
+    fun toPublic(): AnnouncementImage = AnnouncementImage.create(id, height, width)
 }
 
 @Serializable