Commit e3241654 authored by Him188's avatar Him188

Implement BroadcastControllable, so duplicated events are ignored

parent ec115e83
...@@ -13,6 +13,7 @@ import net.mamoe.mirai.Bot ...@@ -13,6 +13,7 @@ import net.mamoe.mirai.Bot
import net.mamoe.mirai.contact.* import net.mamoe.mirai.contact.*
import net.mamoe.mirai.data.Packet import net.mamoe.mirai.data.Packet
import net.mamoe.mirai.event.AbstractCancellableEvent import net.mamoe.mirai.event.AbstractCancellableEvent
import net.mamoe.mirai.event.BroadcastControllable
import net.mamoe.mirai.event.CancellableEvent import net.mamoe.mirai.event.CancellableEvent
import net.mamoe.mirai.message.data.Image import net.mamoe.mirai.message.data.Image
import net.mamoe.mirai.message.data.MessageChain import net.mamoe.mirai.message.data.MessageChain
...@@ -120,16 +121,19 @@ data class BotGroupPermissionChangeEvent( ...@@ -120,16 +121,19 @@ data class BotGroupPermissionChangeEvent(
override val group: Group, override val group: Group,
val origin: MemberPermission, val origin: MemberPermission,
val new: MemberPermission val new: MemberPermission
) : BotPassiveEvent, GroupEvent ) : BotPassiveEvent, GroupEvent, Packet
// region 群设置 // region 群设置
/** /**
* 群设置改变. 此事件广播前修改就已经完成. * 群设置改变. 此事件广播前修改就已经完成.
*/ */
interface GroupSettingChangeEvent<T> : GroupEvent, BotPassiveEvent { interface GroupSettingChangeEvent<T> : GroupEvent, BotPassiveEvent, BroadcastControllable {
val origin: T val origin: T
val new: T val new: T
override val shouldBroadcast: Boolean
get() = origin != new
} }
/** /**
...@@ -138,7 +142,8 @@ interface GroupSettingChangeEvent<T> : GroupEvent, BotPassiveEvent { ...@@ -138,7 +142,8 @@ interface GroupSettingChangeEvent<T> : GroupEvent, BotPassiveEvent {
data class GroupNameChangeEvent( data class GroupNameChangeEvent(
override val origin: String, override val origin: String,
override val new: String, override val new: String,
override val group: Group override val group: Group,
val isByBot: Boolean
) : GroupSettingChangeEvent<String>, Packet ) : GroupSettingChangeEvent<String>, Packet
/** /**
...@@ -187,7 +192,8 @@ data class GroupAllowAnonymousChatEvent( ...@@ -187,7 +192,8 @@ data class GroupAllowAnonymousChatEvent(
data class GroupAllowConfessTalkEvent( data class GroupAllowConfessTalkEvent(
override val origin: Boolean, override val origin: Boolean,
override val new: Boolean, override val new: Boolean,
override val group: Group override val group: Group,
val isByBot: Boolean
) : GroupSettingChangeEvent<Boolean>, Packet ) : GroupSettingChangeEvent<Boolean>, Packet
/** /**
...@@ -299,7 +305,7 @@ data class MemberPermissionChangeEvent( ...@@ -299,7 +305,7 @@ data class MemberPermissionChangeEvent(
// region 禁言 // region 禁言
/** /**
* 群成员被禁言事件. 操作人和被禁言的成员都不可能是机器人本人 * 群成员被禁言事件. 被禁言的成员都不可能是机器人本人
*/ */
data class MemberMuteEvent( data class MemberMuteEvent(
override val member: Member, override val member: Member,
...@@ -311,7 +317,7 @@ data class MemberMuteEvent( ...@@ -311,7 +317,7 @@ data class MemberMuteEvent(
) : GroupMemberEvent, Packet ) : GroupMemberEvent, Packet
/** /**
* 群成员被取消禁言事件. 操作人和被禁言的成员都不可能是机器人本人 * 群成员被取消禁言事件. 被禁言的成员都不可能是机器人本人
*/ */
data class MemberUnmuteEvent( data class MemberUnmuteEvent(
override val member: Member, override val member: Member,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment