Explorar el Código

Make event constructors internal for future compatibility

Him188 hace 5 años
padre
commit
e8345c382d

+ 4 - 4
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/event/events/friend.kt

@@ -28,7 +28,7 @@ import kotlin.jvm.*
 /**
  * 好友昵称改变事件. 目前仅支持解析 (来自 PC 端的修改).
  */
-data class FriendRemarkChangeEvent(
+data class FriendRemarkChangeEvent internal constructor(
     override val friend: Friend,
     val newName: String
 ) : FriendEvent, Packet, AbstractEvent()
@@ -36,7 +36,7 @@ data class FriendRemarkChangeEvent(
 /**
  * 成功添加了一个新好友的事件
  */
-data class FriendAddEvent(
+data class FriendAddEvent internal constructor(
     /**
      * 新好友. 已经添加到 [Bot.friends]
      */
@@ -46,7 +46,7 @@ data class FriendAddEvent(
 /**
  * 好友已被删除的事件.
  */
-data class FriendDeleteEvent(
+data class FriendDeleteEvent internal constructor(
     override val friend: Friend
 ) : FriendEvent, Packet, AbstractEvent()
 
@@ -107,7 +107,7 @@ data class NewFriendRequestEvent internal constructor(
 /**
  * [Friend] 头像被修改. 在此事件广播前就已经修改完毕.
  */
-data class FriendAvatarChangedEvent(
+data class FriendAvatarChangedEvent internal constructor(
     override val friend: Friend
 ) : FriendEvent, Packet, AbstractEvent()
 

+ 18 - 19
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/event/events/group.kt

@@ -27,7 +27,6 @@ import net.mamoe.mirai.utils.MiraiExperimentalAPI
 import net.mamoe.mirai.utils.internal.runBlocking
 import kotlin.jvm.*
 
-
 /**
  * 机器人被踢出群或在其他客户端主动退出一个群. 在事件广播前 [Bot.groups] 就已删除这个群.
  */
@@ -37,7 +36,7 @@ sealed class BotLeaveEvent : BotEvent, Packet, AbstractEvent() {
     /**
      * 机器人主动退出一个群.
      */
-    data class Active(override val group: Group) : BotLeaveEvent() {
+    data class Active internal constructor(override val group: Group) : BotLeaveEvent() {
         override fun toString(): String = "BotLeaveEvent.Active(group=${group.id})"
     }
 
@@ -56,7 +55,7 @@ sealed class BotLeaveEvent : BotEvent, Packet, AbstractEvent() {
 /**
  * Bot 在群里的权限被改变. 操作人一定是群主
  */
-data class BotGroupPermissionChangeEvent(
+data class BotGroupPermissionChangeEvent internal constructor(
     override val group: Group,
     val origin: MemberPermission,
     val new: MemberPermission
@@ -65,7 +64,7 @@ data class BotGroupPermissionChangeEvent(
 /**
  * Bot 被禁言
  */
-data class BotMuteEvent(
+data class BotMuteEvent internal constructor(
     val durationSeconds: Int,
     /**
      * 操作人.
@@ -79,7 +78,7 @@ data class BotMuteEvent(
 /**
  * Bot 被取消禁言
  */
-data class BotUnmuteEvent(
+data class BotUnmuteEvent internal constructor(
     /**
      * 操作人.
      */
@@ -93,7 +92,7 @@ data class BotUnmuteEvent(
  * Bot 成功加入了一个新群
  */
 @MiraiExperimentalAPI
-data class BotJoinGroupEvent(
+data class BotJoinGroupEvent internal constructor(
     override val group: Group
 ) : BotPassiveEvent, GroupEvent, Packet, AbstractEvent()
 
@@ -113,7 +112,7 @@ interface GroupSettingChangeEvent<T> : GroupEvent, BotPassiveEvent, BroadcastCon
 /**
  * 群名改变. 此事件广播前修改就已经完成.
  */
-data class GroupNameChangeEvent(
+data class GroupNameChangeEvent internal constructor(
     override val origin: String,
     override val new: String,
     override val group: Group,
@@ -130,7 +129,7 @@ data class GroupNameChangeEvent(
 /**
  * 入群公告改变. 此事件广播前修改就已经完成.
  */
-data class GroupEntranceAnnouncementChangeEvent(
+data class GroupEntranceAnnouncementChangeEvent internal constructor(
     override val origin: String,
     override val new: String,
     override val group: Group,
@@ -144,7 +143,7 @@ data class GroupEntranceAnnouncementChangeEvent(
 /**
  * 群 "全员禁言" 功能状态改变. 此事件广播前修改就已经完成.
  */
-data class GroupMuteAllEvent(
+data class GroupMuteAllEvent internal constructor(
     override val origin: Boolean,
     override val new: Boolean,
     override val group: Group,
@@ -158,7 +157,7 @@ data class GroupMuteAllEvent(
 /**
  * 群 "匿名聊天" 功能状态改变. 此事件广播前修改就已经完成.
  */
-data class GroupAllowAnonymousChatEvent(
+data class GroupAllowAnonymousChatEvent internal constructor(
     override val origin: Boolean,
     override val new: Boolean,
     override val group: Group,
@@ -172,7 +171,7 @@ data class GroupAllowAnonymousChatEvent(
 /**
  * 群 "坦白说" 功能状态改变. 此事件广播前修改就已经完成.
  */
-data class GroupAllowConfessTalkEvent(
+data class GroupAllowConfessTalkEvent internal constructor(
     override val origin: Boolean,
     override val new: Boolean,
     override val group: Group,
@@ -182,7 +181,7 @@ data class GroupAllowConfessTalkEvent(
 /**
  * 群 "允许群员邀请好友加群" 功能状态改变. 此事件广播前修改就已经完成.
  */
-data class GroupAllowMemberInviteEvent(
+data class GroupAllowMemberInviteEvent internal constructor(
     override val origin: Boolean,
     override val new: Boolean,
     override val group: Group,
@@ -207,14 +206,14 @@ sealed class MemberJoinEvent(override val member: Member) : GroupMemberEvent, Bo
     /**
      * 被邀请加入群
      */
-    data class Invite(override val member: Member) : MemberJoinEvent(member) {
+    data class Invite internal constructor(override val member: Member) : MemberJoinEvent(member) {
         override fun toString(): String = "MemberJoinEvent.Invite(member=${member.id})"
     }
 
     /**
      * 成员主动加入群
      */
-    data class Active(override val member: Member) : MemberJoinEvent(member) {
+    data class Active internal constructor(override val member: Member) : MemberJoinEvent(member) {
         override fun toString(): String = "MemberJoinEvent.Active(member=${member.id})"
     }
 }
@@ -351,7 +350,7 @@ data class MemberJoinRequestEvent internal constructor(
 /**
  * 成员群名片改动. 此事件广播前修改就已经完成.
  */
-data class MemberCardChangeEvent(
+data class MemberCardChangeEvent internal constructor(
     /**
      * 修改前
      */
@@ -368,7 +367,7 @@ data class MemberCardChangeEvent(
 /**
  * 成员群头衔改动. 一定为群主操作
  */
-data class MemberSpecialTitleChangeEvent(
+data class MemberSpecialTitleChangeEvent internal constructor(
     /**
      * 修改前
      */
@@ -397,7 +396,7 @@ data class MemberSpecialTitleChangeEvent(
 /**
  * 成员权限改变的事件. 成员不可能是机器人自己.
  */
-data class MemberPermissionChangeEvent(
+data class MemberPermissionChangeEvent internal constructor(
     override val member: Member,
     val origin: MemberPermission,
     val new: MemberPermission
@@ -413,7 +412,7 @@ data class MemberPermissionChangeEvent(
  *
  * @see BotMuteEvent 机器人被禁言的事件
  */
-data class MemberMuteEvent(
+data class MemberMuteEvent internal constructor(
     override val member: Member,
     val durationSeconds: Int,
     /**
@@ -427,7 +426,7 @@ data class MemberMuteEvent(
  *
  * @see BotUnmuteEvent 机器人被取消禁言的事件
  */
-data class MemberUnmuteEvent(
+data class MemberUnmuteEvent internal constructor(
     override val member: Member,
     /**
      * 操作人. 为 null 则为机器人操作

+ 5 - 5
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/event/events/message.kt

@@ -81,7 +81,7 @@ sealed class MessageRecallEvent : BotEvent, AbstractEvent() {
     /**
      * 好友消息撤回事件, 暂不支持.
      */ // TODO: 2020/4/22 支持好友消息撤回事件的解析和主动广播
-    data class FriendRecall(
+    data class FriendRecall internal constructor(
         override val bot: Bot,
         override val messageId: Int,
         override val messageInternalId: Int,
@@ -98,7 +98,7 @@ sealed class MessageRecallEvent : BotEvent, AbstractEvent() {
     /**
      * 群消息撤回事件.
      */
-    data class GroupRecall(
+    data class GroupRecall internal constructor(
         override val bot: Bot,
         override val authorId: Long,
         override val messageId: Int,
@@ -129,7 +129,7 @@ val MessageRecallEvent.isByBot: Boolean
 /**
  * 图片上传前. 可以阻止上传
  */
-data class BeforeImageUploadEvent(
+data class BeforeImageUploadEvent internal constructor(
     val target: Contact,
     val source: ExternalImage
 ) : BotEvent, BotActiveEvent, AbstractEvent(), CancellableEvent {
@@ -149,13 +149,13 @@ sealed class ImageUploadEvent : BotEvent, BotActiveEvent, AbstractEvent() {
     override val bot: Bot
         get() = target.bot
 
-    data class Succeed(
+    data class Succeed internal constructor(
         override val target: Contact,
         override val source: ExternalImage,
         val image: Image
     ) : ImageUploadEvent()
 
-    data class Failed(
+    data class Failed internal constructor(
         override val target: Contact,
         override val source: ExternalImage,
         val errno: Int,

+ 5 - 2
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/event/events/types.kt

@@ -16,6 +16,7 @@ import net.mamoe.mirai.contact.Friend
 import net.mamoe.mirai.contact.Group
 import net.mamoe.mirai.contact.Member
 import net.mamoe.mirai.event.Event
+import kotlin.jvm.JvmSynthetic
 
 /**
  * 有关一个 [Bot] 的事件
@@ -68,14 +69,16 @@ interface GroupOperableEvent : GroupEvent {
 /**
  * 是否由 [Bot] 操作
  */
-val GroupOperableEvent.isByBot: Boolean
+@get:JvmSynthetic // inline: planning to change to another file (1.2.0)
+inline val GroupOperableEvent.isByBot: Boolean
     get() = operator == null
 
 /**
  * 当操作人为 [Member] 时获取这个 [Member],
  * 当操作人为 [Bot] 时获取 [Group.botAsMember]
  */
-val GroupOperableEvent.operatorOrBot: Member
+@get:JvmSynthetic // inline: planning to change to another file (1.2.0)
+inline val GroupOperableEvent.operatorOrBot: Member
     get() = this.operator ?: this.group.botAsMember