Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
M
Mirai
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
MyCard
Mirai
Commits
f4cb72b2
Commit
f4cb72b2
authored
Nov 28, 2019
by
Him188
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add MemberJoinPacket
parent
6a294c0c
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
45 additions
and
5 deletions
+45
-5
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim/packet/event/MemberJoin.kt
...moe.mirai/network/protocol/tim/packet/event/MemberJoin.kt
+45
-5
No files found.
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim/packet/event/MemberJoin.kt
View file @
f4cb72b2
@
file
:
Suppress
(
"EXPERIMENTAL_UNSIGNED_LITERALS"
)
@
file
:
Suppress
(
"EXPERIMENTAL_UNSIGNED_LITERALS"
,
"EXPERIMENTAL_API_USAGE"
,
"unused"
,
"MemberVisibilityCanBePrivate"
)
package
net.mamoe.mirai.network.protocol.tim.packet.event
import
kotlinx.io.core.ByteReadPacket
import
kotlinx.io.core.readUInt
import
net.mamoe.mirai.Bot
import
net.mamoe.mirai.contact.Group
import
net.mamoe.mirai.contact.Member
import
net.mamoe.mirai.event.events.BotEvent
import
net.mamoe.mirai.contact.MemberPermission
import
net.mamoe.mirai.contact.internal.MemberImpl
import
net.mamoe.mirai.event.Event
import
net.mamoe.mirai.getGroup
import
net.mamoe.mirai.getQQ
import
net.mamoe.mirai.network.BotNetworkHandler
import
net.mamoe.mirai.network.protocol.tim.packet.Packet
import
net.mamoe.mirai.utils.MiraiInternalAPI
import
net.mamoe.mirai.utils.io.discardExact
//群有新成员加入
...
...
@@ -20,18 +27,51 @@ import net.mamoe.mirai.utils.MiraiInternalAPI
* 新成员加入. 此时这个人还没被添加到群列表
*/
internal
class
MemberJoinEventPacket
(
val
member
:
Member
val
member
:
Member
,
val
inviter
:
Member
?
)
:
Packet
class
MemberJoinEvent
:
BotEvent
()
{
/**
* 成员加入前的事件. 群的成员列表中还没有这个人
*/
data class
PreMemberJoinEvent
(
val
member
:
Member
,
private
val
_inviter
:
Member
?)
:
Event
()
{
val
group
:
Group
get
()
=
member
.
group
val
inviter
:
Member
get
()
=
_inviter
?:
error
(
"The new member is not a invitee"
)
val
isInvitee
:
Boolean
get
()
=
_inviter
!=
null
}
/**
* 成员加入后的事件. 群的成员列表中已经有这个人
*/
data class
PostMemberJoinEvent
(
val
member
:
Member
,
private
val
_inviter
:
Member
?)
:
Event
()
{
val
group
:
Group
get
()
=
member
.
group
val
inviter
:
Member
get
()
=
_inviter
?:
error
(
"The new member is not a invitee"
)
val
isInvitee
:
Boolean
get
()
=
_inviter
!=
null
}
@UseExperimental
(
MiraiInternalAPI
::
class
)
internal
object
MemberJoinPacketHandler
:
KnownEventParserAndHandler
<
MemberJoinEventPacket
>(
0
x0021u
)
{
override
suspend
fun
ByteReadPacket
.
parse
(
bot
:
Bot
,
identity
:
EventPacketIdentity
):
MemberJoinEventPacket
{
//由 1040400290 邀请的新成员加入
//00 00 00 08 00 0A 00 04 01 00 00
// 00 32 DC FC C8
// 01 2D 5C 53 A6
// 03 3E 03 3F A2
// 06 B4 B4 BD A8 D5 DF
// 00 30 44 31 43 37 36 30 41 43 33 42 46 37 32 39 38 36 41 42 43 44 33 37 41 37 46 30 35 35 46 37 32 39 46 31 31 36 36 37 42 35 45 33 37 43 37 46 44 37
discardExact
(
11
)
//00 00 00 08 00 0A 00 04 01 00 00
discardExact
(
1
)
// 00
val
group
=
bot
.
getGroup
(
readUInt
())
discardExact
(
1
)
// 01
val
member
=
MemberImpl
(
bot
.
getQQ
(
readUInt
()),
group
,
MemberPermission
.
MEMBER
)
TODO
()
return
if
(
readByte
().
toInt
()
==
0
x03
)
{
MemberJoinEventPacket
(
member
,
null
)
}
else
{
MemberJoinEventPacket
(
member
,
group
.
getMember
(
readUInt
()))
}
}
override
suspend
fun
BotNetworkHandler
<*>.
handlePacket
(
packet
:
MemberJoinEventPacket
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment