mirror of
https://github.com/mamoe/mirai.git
synced 2025-02-22 01:30:41 +08:00
[core] Add sign event (#2217)
* add: SignEvent * add: SignEvent * add: hasRank * add: api dump * add: toString * add: toString * fix: sign for review
This commit is contained in:
parent
17361c745a
commit
9818c08054
@ -2815,6 +2815,15 @@ public final class net/mamoe/mirai/event/events/OtherClientOnlineEvent : net/mam
|
||||
public fun toString ()Ljava/lang/String;
|
||||
}
|
||||
|
||||
public final class net/mamoe/mirai/event/events/SignEvent : net/mamoe/mirai/event/AbstractEvent, net/mamoe/mirai/event/events/BotEvent, net/mamoe/mirai/internal/network/Packet {
|
||||
public fun getBot ()Lnet/mamoe/mirai/Bot;
|
||||
public final fun getRank ()Ljava/lang/Integer;
|
||||
public final fun getSign ()Ljava/lang/String;
|
||||
public final fun getUser ()Lnet/mamoe/mirai/contact/UserOrBot;
|
||||
public final fun hasRank ()Z
|
||||
public fun toString ()Ljava/lang/String;
|
||||
}
|
||||
|
||||
public final class net/mamoe/mirai/event/events/StrangerAddEvent : net/mamoe/mirai/event/AbstractEvent, net/mamoe/mirai/event/events/StrangerEvent, net/mamoe/mirai/internal/network/Packet {
|
||||
public final fun component1 ()Lnet/mamoe/mirai/contact/Stranger;
|
||||
public final fun copy (Lnet/mamoe/mirai/contact/Stranger;)Lnet/mamoe/mirai/event/events/StrangerAddEvent;
|
||||
|
@ -2815,6 +2815,15 @@ public final class net/mamoe/mirai/event/events/OtherClientOnlineEvent : net/mam
|
||||
public fun toString ()Ljava/lang/String;
|
||||
}
|
||||
|
||||
public final class net/mamoe/mirai/event/events/SignEvent : net/mamoe/mirai/event/AbstractEvent, net/mamoe/mirai/event/events/BotEvent, net/mamoe/mirai/internal/network/Packet {
|
||||
public fun getBot ()Lnet/mamoe/mirai/Bot;
|
||||
public final fun getRank ()Ljava/lang/Integer;
|
||||
public final fun getSign ()Ljava/lang/String;
|
||||
public final fun getUser ()Lnet/mamoe/mirai/contact/UserOrBot;
|
||||
public final fun hasRank ()Z
|
||||
public fun toString ()Ljava/lang/String;
|
||||
}
|
||||
|
||||
public final class net/mamoe/mirai/event/events/StrangerAddEvent : net/mamoe/mirai/event/AbstractEvent, net/mamoe/mirai/event/events/StrangerEvent, net/mamoe/mirai/internal/network/Packet {
|
||||
public final fun component1 ()Lnet/mamoe/mirai/contact/Stranger;
|
||||
public final fun copy (Lnet/mamoe/mirai/contact/Stranger;)Lnet/mamoe/mirai/event/events/StrangerAddEvent;
|
||||
|
@ -0,0 +1,49 @@
|
||||
/*
|
||||
* Copyright 2020 Mamoe Technologies and contributors.
|
||||
*
|
||||
* 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证.
|
||||
* Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link.
|
||||
*
|
||||
* https://github.com/mamoe/mirai/blob/master/LICENSE
|
||||
*/
|
||||
|
||||
@file:JvmMultifileClass
|
||||
@file:JvmName("BotEventsKt")
|
||||
|
||||
package net.mamoe.mirai.event.events
|
||||
|
||||
import net.mamoe.mirai.Bot
|
||||
import net.mamoe.mirai.contact.*
|
||||
import net.mamoe.mirai.event.AbstractEvent
|
||||
import net.mamoe.mirai.internal.network.Packet
|
||||
import net.mamoe.mirai.utils.MiraiInternalApi
|
||||
import kotlin.jvm.JvmMultifileClass
|
||||
import kotlin.jvm.JvmName
|
||||
|
||||
|
||||
/**
|
||||
* 打卡事件
|
||||
* @property user 打卡发起人
|
||||
* @property sign 打卡标记
|
||||
* @property hasRank 有排名的打卡,通常是前三名
|
||||
* @property rank 打卡排名,没有排名或识别失败时为 null
|
||||
* @since 2.14
|
||||
*/
|
||||
public class SignEvent @MiraiInternalApi constructor(
|
||||
public val user: UserOrBot,
|
||||
public val sign: String,
|
||||
@get:JvmName("hasRank")
|
||||
public val hasRank: Boolean,
|
||||
public val rank: Int?
|
||||
) : AbstractEvent(), BotEvent, Packet {
|
||||
override val bot: Bot get() = user.bot
|
||||
|
||||
override fun toString(): String {
|
||||
return when (user) {
|
||||
is Bot -> "SignEvent(bot=${user.id}, sign=${sign})"
|
||||
is Member -> "SignEvent(bot=${user.bot.id}, group=${user.group.id}, member=${user.id}, sign=${sign})"
|
||||
is Friend -> "SignEvent(bot=${user.bot.id}, friend=${user.id} sign=${sign})"
|
||||
else -> "SignEvent(user=${user}, sign=${sign})"
|
||||
}
|
||||
}
|
||||
}
|
@ -344,6 +344,20 @@ internal class GroupNotificationProcessor(
|
||||
subject = group,
|
||||
)
|
||||
}
|
||||
// 群签到/打卡
|
||||
10036L, 10038L -> {
|
||||
val user = grayTip.msgTemplParam["mqq_uin"]?.findMember() ?: group.botAsMember
|
||||
val sign = grayTip.msgTemplParam["user_sign"].orEmpty()
|
||||
val img = grayTip.msgTemplParam["rank_img"]
|
||||
val rank = """今日第(\d+)个打卡""".toRegex().matchEntire(sign)?.groupValues?.get(1)?.toInt()
|
||||
|
||||
collected += SignEvent(
|
||||
user = user,
|
||||
sign = sign,
|
||||
hasRank = img != null,
|
||||
rank = rank
|
||||
)
|
||||
}
|
||||
// 龙王
|
||||
10093L, 10094L, 1053L, 1054L, 1103L -> {
|
||||
val now = grayTip.msgTemplParam["uin"]?.findMember() ?: group.botAsMember
|
||||
|
Loading…
Reference in New Issue
Block a user