From d10cd270e89011405b00e6b96e8028c0cb2a0f51 Mon Sep 17 00:00:00 2001 From: Him188 Date: Mon, 5 Jul 2021 15:43:16 +0800 Subject: [PATCH] Make AnnouncementParameters better for Java --- .../announcement/AnnouncementParameters.kt | 32 +++++++------- .../AnnouncementParametersBuilder.kt | 42 ++++++++++++------- .../contact/announcement/AnnouncementsImpl.kt | 12 +++--- 3 files changed, 49 insertions(+), 37 deletions(-) diff --git a/mirai-core-api/src/commonMain/kotlin/contact/announcement/AnnouncementParameters.kt b/mirai-core-api/src/commonMain/kotlin/contact/announcement/AnnouncementParameters.kt index 08a334aec..702c12ae4 100644 --- a/mirai-core-api/src/commonMain/kotlin/contact/announcement/AnnouncementParameters.kt +++ b/mirai-core-api/src/commonMain/kotlin/contact/announcement/AnnouncementParameters.kt @@ -31,11 +31,11 @@ public class AnnouncementParameters internal constructor( /** 发送给新成员 */ public val sendToNewMember: Boolean = false, /** 置顶. 可以有多个置顶公告 */ - public val isPinned: Boolean = false, + public val pinned: Boolean = false, /** 显示能够引导群成员修改昵称的窗口 */ - public val isShowEditCard: Boolean = false, + public val showEditCard: Boolean = false, /** 使用弹窗 */ - public val isTip: Boolean = false, + public val popup: Boolean = false, /** 需要群成员确认 */ public val needConfirm: Boolean = false, ) { @@ -44,12 +44,12 @@ public class AnnouncementParameters internal constructor( */ public fun builder(): AnnouncementParametersBuilder = AnnouncementParametersBuilder().apply { val outer = this@AnnouncementParameters - this.image = outer.image - this.sendToNewMember = outer.sendToNewMember - this.isPinned = outer.isPinned - this.isShowEditCard = outer.isShowEditCard - this.isTip = outer.isTip - this.needConfirm = outer.needConfirm + image(outer.image) + sendToNewMember(outer.sendToNewMember) + pinned(outer.pinned) + showEditCard(outer.showEditCard) + popup(outer.popup) + needConfirm(outer.needConfirm) } public companion object { @@ -71,9 +71,9 @@ public class AnnouncementParameters internal constructor( if (image != other.image) return false if (sendToNewMember != other.sendToNewMember) return false - if (isPinned != other.isPinned) return false - if (isShowEditCard != other.isShowEditCard) return false - if (isTip != other.isTip) return false + if (pinned != other.pinned) return false + if (showEditCard != other.showEditCard) return false + if (popup != other.popup) return false if (needConfirm != other.needConfirm) return false return true @@ -82,14 +82,14 @@ public class AnnouncementParameters internal constructor( override fun hashCode(): Int { var result = image?.hashCode() ?: 0 result = 31 * result + sendToNewMember.hashCode() - result = 31 * result + isPinned.hashCode() - result = 31 * result + isShowEditCard.hashCode() - result = 31 * result + isTip.hashCode() + result = 31 * result + pinned.hashCode() + result = 31 * result + showEditCard.hashCode() + result = 31 * result + popup.hashCode() result = 31 * result + needConfirm.hashCode() return result } override fun toString(): String { - return "AnnouncementParameters(image=$image, sendToNewMember=$sendToNewMember, isPinned=$isPinned, isShowEditCard=$isShowEditCard, isTip=$isTip, needConfirm=$needConfirm)" + return "AnnouncementParameters(image=$image, sendToNewMember=$sendToNewMember, pinned=$pinned, showEditCard=$showEditCard, popup=$popup, needConfirm=$needConfirm)" } } \ No newline at end of file diff --git a/mirai-core-api/src/commonMain/kotlin/contact/announcement/AnnouncementParametersBuilder.kt b/mirai-core-api/src/commonMain/kotlin/contact/announcement/AnnouncementParametersBuilder.kt index 815dae43b..b249a49a3 100644 --- a/mirai-core-api/src/commonMain/kotlin/contact/announcement/AnnouncementParametersBuilder.kt +++ b/mirai-core-api/src/commonMain/kotlin/contact/announcement/AnnouncementParametersBuilder.kt @@ -53,36 +53,48 @@ public class AnnouncementParametersBuilder @JvmOverloads constructor( * @see AnnouncementParameters.image */ public var image: AnnouncementImage? = prototype.image + @JvmName("image") get + @JvmSynthetic set /** * @see AnnouncementParameters.sendToNewMember */ public var sendToNewMember: Boolean = prototype.sendToNewMember + @JvmName("sendToNewMember") get + @JvmSynthetic set /** - * @see AnnouncementParameters.isPinned + * @see AnnouncementParameters.pinned */ - public var isPinned: Boolean = prototype.isPinned + public var pinned: Boolean = prototype.pinned + @JvmName("pinned") get + @JvmSynthetic set /** - * @see AnnouncementParameters.isShowEditCard + * @see AnnouncementParameters.showEditCard */ - public var isShowEditCard: Boolean = prototype.isShowEditCard + public var showEditCard: Boolean = prototype.showEditCard + @JvmName("showEditCard") get + @JvmSynthetic set /** - * @see AnnouncementParameters.isTip + * @see AnnouncementParameters.popup */ - public var isTip: Boolean = prototype.isTip + public var popup: Boolean = prototype.popup + @JvmName("popup") get + @JvmSynthetic set /** * @see AnnouncementParameters.needConfirm */ public var needConfirm: Boolean = prototype.needConfirm + @JvmName("needConfirm") get + @JvmSynthetic set /** * @see AnnouncementParameters.image */ - public fun image(image: AnnouncementImage): AnnouncementParametersBuilder { + public fun image(image: AnnouncementImage?): AnnouncementParametersBuilder { this.image = image return this } @@ -96,26 +108,26 @@ public class AnnouncementParametersBuilder @JvmOverloads constructor( } /** - * @see AnnouncementParameters.isPinned + * @see AnnouncementParameters.pinned */ public fun pinned(isPinned: Boolean): AnnouncementParametersBuilder { - this.isPinned = isPinned + this.pinned = isPinned return this } /** - * @see AnnouncementParameters.isShowEditCard + * @see AnnouncementParameters.showEditCard */ public fun showEditCard(isShowEditCard: Boolean): AnnouncementParametersBuilder { - this.isShowEditCard = isShowEditCard + this.showEditCard = isShowEditCard return this } /** - * @see AnnouncementParameters.isTip + * @see AnnouncementParameters.popup */ - public fun tip(isTip: Boolean): AnnouncementParametersBuilder { - this.isTip = isTip + public fun popup(popup: Boolean): AnnouncementParametersBuilder { + this.popup = popup return this } @@ -131,7 +143,7 @@ public class AnnouncementParametersBuilder @JvmOverloads constructor( * 使用当前参数构造 [AnnouncementParameters]. */ public fun build(): AnnouncementParameters = - AnnouncementParameters(image, sendToNewMember, isPinned, isShowEditCard, isTip, needConfirm) + AnnouncementParameters(image, sendToNewMember, pinned, showEditCard, popup, needConfirm) } /** diff --git a/mirai-core/src/commonMain/kotlin/contact/announcement/AnnouncementsImpl.kt b/mirai-core/src/commonMain/kotlin/contact/announcement/AnnouncementsImpl.kt index 2f34ce96d..189c89933 100644 --- a/mirai-core/src/commonMain/kotlin/contact/announcement/AnnouncementsImpl.kt +++ b/mirai-core/src/commonMain/kotlin/contact/announcement/AnnouncementsImpl.kt @@ -256,11 +256,11 @@ internal object AnnouncementProtocol { msg = GroupAnnouncementMsg(text = content), type = if (parameters.sendToNewMember) 20 else 6, settings = GroupAnnouncementSettings( - isShowEditCard = if (parameters.isShowEditCard) 1 else 0, - tipWindowType = if (parameters.isTip) 0 else 1, + isShowEditCard = if (parameters.showEditCard) 1 else 0, + tipWindowType = if (parameters.popup) 0 else 1, confirmRequired = if (parameters.needConfirm) 1 else 0, ), - pinned = if (parameters.isPinned) 1 else 0, + pinned = if (parameters.pinned) 1 else 0, ) } @@ -273,11 +273,11 @@ internal object AnnouncementProtocol { sender = group[sender], content = msg.text, parameters = buildAnnouncementParameters { - isPinned = pinned == 1 + pinned = this@toAnnouncement.pinned == 1 sendToNewMember = type == 20 - isTip = settings.tipWindowType == 0 + popup = settings.tipWindowType == 0 needConfirm = settings.confirmRequired == 1 - isShowEditCard = settings.isShowEditCard == 1 + showEditCard = settings.isShowEditCard == 1 }, fid = fid, isAllRead = isAllConfirm != 0,