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
0463140b
Commit
0463140b
authored
Apr 07, 2020
by
ryoii
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix bot as a member can't change group card itself
parent
eec820c1
Changes
5
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
644 additions
and
16 deletions
+644
-16
mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/contact/MemberImpl.kt
...in/kotlin/net/mamoe/mirai/qqandroid/contact/MemberImpl.kt
+3
-1
mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/data/jce/MsgType0x210.kt
...mirai/qqandroid/network/protocol/data/jce/MsgType0x210.kt
+214
-0
mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/data/proto/USubtype0x27.kt
...rai/qqandroid/network/protocol/data/proto/USubtype0x27.kt
+394
-0
mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/chat/receive/OnlinePush.kt
...ndroid/network/protocol/packet/chat/receive/OnlinePush.kt
+8
-15
mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/chat/receive/onlinePush0x210/OnlinePush0x210Factory.kt
...et/chat/receive/onlinePush0x210/OnlinePush0x210Factory.kt
+25
-0
No files found.
mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/contact/MemberImpl.kt
View file @
0463140b
...
...
@@ -89,7 +89,9 @@ internal class MemberImpl constructor(
override
var
nameCard
:
String
get
()
=
_nameCard
set
(
newValue
)
{
if
(
id
!=
bot
.
id
)
{
group
.
checkBotPermissionOperator
()
}
if
(
_nameCard
!=
newValue
)
{
val
oldValue
=
_nameCard
_nameCard
=
newValue
...
...
mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/data/jce/MsgType0x210.kt
0 → 100644
View file @
0463140b
package
net.mamoe.mirai.qqandroid.network.protocol.data.jce
import
net.mamoe.mirai.qqandroid.utils.io.serialization.jce.JceId
import
kotlinx.serialization.Serializable
import
net.mamoe.mirai.qqandroid.utils.io.JceStruct
@Serializable
internal
class
AddGroup
(
@JceId
(
0
)
val
dwGroupID
:
Long
?
=
null
,
@JceId
(
1
)
val
dwSortID
:
Long
?
=
null
,
@JceId
(
2
)
val
groupName
:
String
?
=
""
)
:
JceStruct
@Serializable
internal
class
DelGroup
(
@JceId
(
0
)
val
dwGroupID
:
Long
?
=
null
)
:
JceStruct
@Serializable
internal
class
FriendGroup
(
@JceId
(
0
)
val
dwFuin
:
Long
?
=
null
,
@JceId
(
1
)
val
vOldGroupID
:
List
<
Long
>?
=
null
,
@JceId
(
2
)
val
vNewGroupID
:
List
<
Long
>?
=
null
)
:
JceStruct
@Serializable
internal
class
GroupSort
(
@JceId
(
0
)
val
dwGroupID
:
Long
?
=
null
,
@JceId
(
1
)
val
dwSortID
:
Long
?
=
null
)
:
JceStruct
@Serializable
internal
class
MarketFaceInfo
(
@JceId
(
0
)
val
insertIdx
:
Long
,
@JceId
(
1
)
val
marketFaceBuff
:
ByteArray
)
:
JceStruct
@Serializable
internal
class
ModFriendGroup
(
@JceId
(
0
)
val
vMsgFrdGroup
:
List
<
FriendGroup
>?
=
null
)
:
JceStruct
@Serializable
internal
class
ModGroupName
(
@JceId
(
0
)
val
dwGroupID
:
Long
?
=
null
,
@JceId
(
1
)
val
groupName
:
String
?
=
""
)
:
JceStruct
@Serializable
internal
class
ModGroupSort
(
@JceId
(
0
)
val
vMsgGroupSort
:
List
<
GroupSort
>?
=
null
)
:
JceStruct
@Serializable
internal
class
MsgType0x210
(
@JceId
(
0
)
val
uSubMsgType
:
Long
,
@JceId
(
1
)
val
stMsgInfo0x2
:
MsgType0x210SubMsgType0x2
?
=
null
,
@JceId
(
3
)
val
stMsgInfo0xa
:
MsgType0x210SubMsgType0xa
?
=
null
,
@JceId
(
4
)
val
stMsgInfo0xe
:
MsgType0x210SubMsgType0xe
?
=
null
,
@JceId
(
5
)
val
stMsgInfo0x13
:
MsgType0x210SubMsgType0x13
?
=
null
,
@JceId
(
6
)
val
stMsgInfo0x17
:
MsgType0x210SubMsgType0x17
?
=
null
,
@JceId
(
7
)
val
stMsgInfo0x20
:
MsgType0x210SubMsgType0x20
?
=
null
,
@JceId
(
8
)
val
stMsgInfo0x1d
:
MsgType0x210SubMsgType0x1d
?
=
null
,
@JceId
(
9
)
val
stMsgInfo0x24
:
MsgType0x210SubMsgType0x24
?
=
null
,
@JceId
(
10
)
val
vProtobuf
:
ByteArray
?
=
null
)
:
JceStruct
@Serializable
internal
class
MsgType0x210SubMsgType0x13
(
@JceId
(
0
)
val
uint32SrcAppId
:
Long
?
=
null
,
@JceId
(
1
)
val
uint32SrcInstId
:
Long
?
=
null
,
@JceId
(
2
)
val
uint32DstAppId
:
Long
?
=
null
,
@JceId
(
3
)
val
uint32DstInstId
:
Long
?
=
null
,
@JceId
(
4
)
val
uint64DstUin
:
Long
?
=
null
,
@JceId
(
5
)
val
uint64Sessionid
:
Long
?
=
null
,
@JceId
(
6
)
val
uint32Size
:
Long
?
=
null
,
@JceId
(
7
)
val
uint32Index
:
Long
?
=
null
,
@JceId
(
8
)
val
uint32Type
:
Long
?
=
null
,
@JceId
(
9
)
val
buf
:
ByteArray
?
=
null
)
:
JceStruct
@Serializable
internal
class
MsgType0x210SubMsgType0x13_MsgItem
(
@JceId
(
0
)
val
uint32Type
:
Long
?
=
null
,
@JceId
(
1
)
val
text
:
ByteArray
?
=
null
)
:
JceStruct
@Serializable
internal
class
MsgType0x210SubMsgType0x17
(
@JceId
(
0
)
val
dwOpType
:
Long
?
=
null
,
@JceId
(
1
)
val
stAddGroup
:
AddGroup
?
=
null
,
@JceId
(
2
)
val
stDelGroup
:
DelGroup
?
=
null
,
@JceId
(
3
)
val
stModGroupName
:
ModGroupName
?
=
null
,
@JceId
(
4
)
val
stModGroupSort
:
ModGroupSort
?
=
null
,
@JceId
(
5
)
val
stModFriendGroup
:
ModFriendGroup
?
=
null
)
:
JceStruct
@Serializable
internal
class
MsgType0x210SubMsgType0x1d
(
@JceId
(
0
)
val
dwOpType
:
Long
?
=
null
,
@JceId
(
1
)
val
dwUin
:
Long
?
=
null
,
@JceId
(
2
)
val
dwID
:
Long
?
=
null
,
@JceId
(
3
)
val
value
:
String
?
=
""
)
:
JceStruct
@Serializable
internal
class
MsgType0x210SubMsgType0x2
(
@JceId
(
0
)
val
uSrcAppId
:
Long
?
=
null
,
@JceId
(
1
)
val
uSrcInstId
:
Long
?
=
null
,
@JceId
(
2
)
val
uDstAppId
:
Long
?
=
null
,
@JceId
(
3
)
val
uDstInstId
:
Long
?
=
null
,
@JceId
(
4
)
val
uDstUin
:
Long
?
=
null
,
@JceId
(
5
)
val
fileName
:
ByteArray
?
=
null
,
@JceId
(
6
)
val
fileIndex
:
ByteArray
?
=
null
,
@JceId
(
7
)
val
fileMd5
:
ByteArray
?
=
null
,
@JceId
(
8
)
val
fileKey
:
ByteArray
?
=
null
,
@JceId
(
9
)
val
uServerIp
:
Long
?
=
null
,
@JceId
(
10
)
val
uServerPort
:
Long
?
=
null
,
@JceId
(
11
)
val
fileLen
:
Long
?
=
null
,
@JceId
(
12
)
val
sessionId
:
Long
?
=
null
,
@JceId
(
13
)
val
originfileMd5
:
ByteArray
?
=
null
,
@JceId
(
14
)
val
uOriginfiletype
:
Long
?
=
null
,
@JceId
(
15
)
val
uSeq
:
Long
?
=
null
)
:
JceStruct
@Serializable
internal
class
MsgType0x210SubMsgType0x20
(
@JceId
(
0
)
val
dwOpType
:
Long
?
=
null
,
@JceId
(
1
)
val
dwType
:
Long
?
=
null
,
@JceId
(
2
)
val
dwUin
:
Long
?
=
null
,
@JceId
(
3
)
val
remaek
:
String
?
=
""
)
:
JceStruct
@Serializable
internal
class
MsgType0x210SubMsgType0x24
(
@JceId
(
0
)
val
vPluginNumList
:
List
<
PluginNum
>?
=
null
)
:
JceStruct
@Serializable
internal
class
MsgType0x210SubMsgType0xa
(
@JceId
(
0
)
val
uSrcAppId
:
Long
?
=
null
,
@JceId
(
1
)
val
uSrcInstId
:
Long
?
=
null
,
@JceId
(
2
)
val
uDstAppId
:
Long
?
=
null
,
@JceId
(
3
)
val
uDstInstId
:
Long
?
=
null
,
@JceId
(
4
)
val
uDstUin
:
Long
?
=
null
,
@JceId
(
5
)
val
uType
:
Long
?
=
null
,
@JceId
(
6
)
val
uServerIp
:
Long
?
=
null
,
@JceId
(
7
)
val
uServerPort
:
Long
?
=
null
,
@JceId
(
8
)
val
vUrlNotify
:
ByteArray
?
=
null
,
@JceId
(
9
)
val
vTokenKey
:
ByteArray
?
=
null
,
@JceId
(
10
)
val
uFileLen
:
Long
?
=
null
,
@JceId
(
11
)
val
fileName
:
ByteArray
?
=
null
,
@JceId
(
12
)
val
vMd5
:
ByteArray
?
=
null
,
@JceId
(
13
)
val
sessionId
:
Long
?
=
null
,
@JceId
(
14
)
val
originfileMd5
:
ByteArray
?
=
null
,
@JceId
(
15
)
val
uOriginfiletype
:
Long
?
=
null
,
@JceId
(
16
)
val
uSeq
:
Long
?
=
null
)
:
JceStruct
@Serializable
internal
class
MsgType0x210SubMsgType0xe
(
@JceId
(
0
)
val
uint32SrcAppId
:
Long
?
=
null
,
@JceId
(
1
)
val
uint32SrcInstId
:
Long
?
=
null
,
@JceId
(
2
)
val
uint32DstAppId
:
Long
?
=
null
,
@JceId
(
3
)
val
uint32DstInstId
:
Long
?
=
null
,
@JceId
(
4
)
val
uint64DstUin
:
Long
?
=
null
,
@JceId
(
5
)
val
uint64Sessionid
:
Long
?
=
null
,
@JceId
(
6
)
val
uint32Operate
:
Long
?
=
null
,
@JceId
(
7
)
val
uint32Seq
:
Long
?
=
null
,
@JceId
(
8
)
val
uint32Code
:
Long
?
=
null
,
@JceId
(
9
)
val
msg
:
String
?
=
""
)
:
JceStruct
@Serializable
internal
class
PersonInfoChange
(
@JceId
(
0
)
val
type
:
Byte
?
=
null
,
@JceId
(
1
)
val
vChgField
:
List
<
PersonInfoField
>?
=
null
)
:
JceStruct
@Serializable
internal
class
PersonInfoField
(
@JceId
(
0
)
val
uField
:
Long
?
=
null
)
:
JceStruct
@Serializable
internal
class
PluginNum
(
@JceId
(
0
)
val
dwID
:
Long
?
=
null
,
@JceId
(
1
)
val
dwNUm
:
Long
?
=
null
,
@JceId
(
2
)
val
flag
:
Byte
?
=
null
)
:
JceStruct
@Serializable
internal
class
SlaveMasterMsg
(
@JceId
(
0
)
val
uMsgType
:
Long
?
=
null
,
@JceId
(
1
)
val
uCmd
:
Long
?
=
null
,
@JceId
(
2
)
val
uSeq
:
Long
?
=
null
,
@JceId
(
3
)
val
fromUin
:
Long
?
=
null
,
@JceId
(
4
)
val
wFromApp
:
Short
?
=
null
,
@JceId
(
5
)
val
uFromInstId
:
Long
?
=
null
,
@JceId
(
6
)
val
toUin
:
Long
?
=
null
,
@JceId
(
7
)
val
wToApp
:
Short
?
=
null
,
@JceId
(
8
)
val
uToInstId
:
Long
?
=
null
,
@JceId
(
9
)
val
vOrigMsg
:
ByteArray
?
=
null
,
@JceId
(
10
)
val
uLastChangeTime
:
Long
?
=
null
,
@JceId
(
11
)
val
vReserved
:
ByteArray
?
=
null
,
@JceId
(
12
)
val
vMarketFace
:
List
<
MarketFaceInfo
>?
=
null
,
@JceId
(
13
)
val
uSuperQQBubbleId
:
Long
?
=
null
)
:
JceStruct
@Serializable
internal
class
Type_1_QQDataTextMsg
(
@JceId
(
0
)
val
msgItem
:
List
<
MsgType0x210SubMsgType0x13_MsgItem
>?
=
null
)
:
JceStruct
mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/data/proto/USubtype0x27.kt
0 → 100644
View file @
0463140b
This diff is collapsed.
Click to expand it.
mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/chat/receive/OnlinePush.kt
View file @
0463140b
...
...
@@ -35,8 +35,11 @@ import net.mamoe.mirai.qqandroid.network.protocol.data.proto.TroopTips0x857
import
net.mamoe.mirai.qqandroid.network.protocol.packet.IncomingPacketFactory
import
net.mamoe.mirai.qqandroid.network.protocol.packet.OutgoingPacket
import
net.mamoe.mirai.qqandroid.network.protocol.packet.buildResponseUniPacket
import
net.mamoe.mirai.qqandroid.network.protocol.data.jce.MsgType0x210
import
net.mamoe.mirai.qqandroid.network.protocol.packet.chat.receive.onlinePush0x210.OnlinePush0x210Factory
import
net.mamoe.mirai.qqandroid.utils.io.JceStruct
import
net.mamoe.mirai.qqandroid.utils.io.readString
import
net.mamoe.mirai.qqandroid.utils.io.serialization.*
import
net.mamoe.mirai.qqandroid.utils.io.serialization.decodeUniPacket
import
net.mamoe.mirai.qqandroid.utils.io.serialization.jce.JceId
import
net.mamoe.mirai.qqandroid.utils.io.serialization.jceRequestSBuffer
...
...
@@ -394,21 +397,11 @@ internal class OnlinePush {
}
}
}
/* 528 -> {
val notifyMsgBody = msgInfo.vMsg.loadAs(Oidb0x858.NotifyMsgBody.serializer())
notifyMsgBody.optMsgRecallReminder?.let { messageRecallReminder ->
return@flatMap messageRecallReminder.recalledMsgList.asSequence().map {
MessageRecallEvent.FriendRecall(
bot,
it.seq.toLong().shl(32) or it.msgRandom.toLong().and(0xffffffff),
it.time,
messageRecallReminder.uin
)
}
}
return@flatMap sequenceOf()
}*/
// 528 -> {
// val notifyMsgBody = msgInfo.vMsg.loadAs(MsgType0x210.serializer())
// OnlinePush0x210Factory.solve()
// return@flatMap sequenceOf()
// }
else
->
{
bot
.
network
.
logger
.
debug
{
"unknown shtype ${msgInfo.shMsgType.toInt()}"
}
return
@
flatMap
sequenceOf
()
...
...
mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/chat/receive/onlinePush0x210/OnlinePush0x210Factory.kt
0 → 100644
View file @
0463140b
package
net.mamoe.mirai.qqandroid.network.protocol.packet.chat.receive.onlinePush0x210
import
kotlinx.io.core.String
import
net.mamoe.mirai.Bot
import
net.mamoe.mirai.event.events.MemberCardChangeEvent
import
net.mamoe.mirai.qqandroid.utils.io.serialization.loadAs
internal
object
OnlinePush0x210Factory
{
// fun solve(msg: MsgType0x210, bot: Bot): Any? = when (msg.uSubMsgType) {
// 0x27L -> {
// val body = msg.vProtobuf?.loadAs(SubMsgType0x27.MsgBody.serializer())
// if (body?.msgModInfos != null) {
// body.msgModInfos.firstOrNull()?.msgModGroupMemberProfile?.run {
// val member = bot.groups.getOrNull(groupUin)?.getOrNull(uin)
// val new = msgGroupMemberProfileInfos?.firstOrNull()
// if (member != null && new?.value != null) {
// MemberCardChangeEvent(member.nameCard, String(new.value), member, member)
// }
// }
// } else null
// }
// else -> null
// }
}
\ No newline at end of file
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