@@ -11,36 +11,30 @@ package cn.rtast.rob.session
1111import cn.rtast.rob.entity.IGroupMessage
1212import cn.rtast.rob.entity.IMessage
1313import cn.rtast.rob.entity.IPrivateMessage
14+ import kotlinx.coroutines.CompletableDeferred
1415import kotlin.uuid.ExperimentalUuidApi
1516
16- public sealed interface ISession <T : IMessage > {
17- public val message: T
18- public val args: List <String >
17+
18+ public sealed interface ISession <T : ISessionStruct <K >, K : IMessage > {
19+ public val initMessage: K
20+ public val block: suspend (T ) -> Unit
21+
22+ @Suppress(" PropertyName" )
23+ public val __finished : CompletableDeferred <Unit >
1924}
2025
21- public data class GroupSessionStruct <G : IGroupMessage >(
22- override val args : List <String >,
23- override val message : G
24- ) : ISession<G>
25-
26- public data class PrivateSessionStruct <P : IPrivateMessage >(
27- override val args : List <String >,
28- override val message : P
29- ) : ISession<P>
30- // public interface IPrivateSession<T> : ISession<T> {
31- // override val message: IPrivateMessage
32- // override val sender: IPrivateSender
33- // }
34-
35- // public interface IGroupSession<T> : ISession<T> {
36- // override val message: IGroupMessage
37- // override val sender: IGroupSender
38- // }
39-
40- public fun interface IGroupSession <T : IGroupMessage > {
41- public fun consume (message : GroupSessionStruct <T >)
26+ public class GroupSession <T : IGroupMessage >(
27+ override val initMessage : T ,
28+ override val block : suspend (GroupSessionStruct <T >) -> Unit ,
29+ public val groupId : Long ,
30+ ) : ISession<GroupSessionStruct<T>, T> {
31+ override val __finished : CompletableDeferred <Unit > = CompletableDeferred ()
4232}
4333
44- public fun interface IPrivateSession <T : IPrivateMessage > {
45- public fun consume (arg : PrivateSessionStruct <T >)
46- }
34+
35+ public class PrivateSession <T : IPrivateMessage >(
36+ override val block : suspend (PrivateSessionStruct <T >) -> Unit ,
37+ override val initMessage : T ,
38+ ) : ISession<PrivateSessionStruct<T>, T> {
39+ override val __finished : CompletableDeferred <Unit > = CompletableDeferred ()
40+ }
0 commit comments