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
d678d14a
Commit
d678d14a
authored
Feb 04, 2020
by
Him188
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
e21ec9ed
cdb0a89f
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
41 additions
and
32 deletions
+41
-32
mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/ContactImpl.kt
...ommonMain/kotlin/net/mamoe/mirai/qqandroid/ContactImpl.kt
+26
-20
mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/QQAndroidBotNetworkHandler.kt
...moe/mirai/qqandroid/network/QQAndroidBotNetworkHandler.kt
+10
-3
mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/chat/TroopManagement.kt
...qqandroid/network/protocol/packet/chat/TroopManagement.kt
+1
-8
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/contact/Group.kt
...re/src/commonMain/kotlin/net.mamoe.mirai/contact/Group.kt
+3
-0
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/contact/Member.kt
...e/src/commonMain/kotlin/net.mamoe.mirai/contact/Member.kt
+1
-1
No files found.
mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/ContactImpl.kt
View file @
d678d14a
...
...
@@ -68,38 +68,43 @@ internal class MemberImpl(
override
val
coroutineContext
:
CoroutineContext
,
override
val
permission
:
MemberPermission
)
:
ContactImpl
(),
Member
,
QQ
by
qq
{
override
val
bot
:
QQAndroidBot
get
()
=
qq
.
bot
override
val
group
:
GroupImpl
by
group
.
unsafeWeakRef
()
val
qq
:
QQImpl
by
qq
.
unsafeWeakRef
()
override
val
bot
:
QQAndroidBot
by
bot
.
unsafeWeakRef
()
override
suspend
fun
mute
(
durationSeconds
:
Int
):
Boolean
{
if
(
bot
.
uin
==
this
@MemberImpl
.
qq
.
id
)
//不能自己禁言自己
{
if
(
bot
.
uin
==
this
.
qq
.
id
)
{
return
false
}
//判断有无禁言权限
val
myPermission
=
group
.
get
(
bot
.
uin
).
permission
if
(
myPermission
==
MemberPermission
.
ADMINISTRATOR
||
myPermission
==
MemberPermission
.
OWNER
)
{
return
if
(
myPermission
==
MemberPermission
.
OWNER
||
(
myPermission
==
MemberPermission
.
ADMINISTRATOR
&&
permission
==
MemberPermission
.
MEMBER
))
{
bot
.
network
.
run
{
val
response
=
TroopManagement
.
Mute
(
client
=
bot
.
client
,
memberUin
=
id
,
groupCode
=
group
.
id
,
timeInSecond
=
durationSeconds
).
sendAndExpect
<
TroopManagement
.
Mute
.
Response
>()
}
true
}
else
{
false
val
myPermission
=
group
.
botPermission
val
targetPermission
=
this
.
permission
if
(
myPermission
!=
MemberPermission
.
OWNER
)
{
if
(
targetPermission
==
MemberPermission
.
OWNER
||
targetPermission
==
MemberPermission
.
ADMINISTRATOR
)
{
return
false
}
}
else
{
}
else
if
(
myPermission
==
MemberPermission
.
MEMBER
)
{
return
false
}
try
{
bot
.
network
.
run
{
val
response
=
TroopManagement
.
Mute
(
client
=
bot
.
client
,
groupCode
=
group
.
id
,
memberUin
=
this
@MemberImpl
.
id
,
timeInSecond
=
durationSeconds
).
sendAndExpect
<
TroopManagement
.
Mute
.
Response
>()
}
return
true
}
catch
(
e
:
Exception
)
{
return
false
}
}
override
suspend
fun
unmute
()
{
TODO
(
"not implemented"
)
override
suspend
fun
unmute
()
:
Boolean
{
return
mute
(
0
)
}
}
...
...
@@ -115,6 +120,7 @@ internal class GroupImpl(
override
var
members
:
ContactList
<
Member
>
)
:
ContactImpl
(),
Group
{
override
lateinit
var
owner
:
Member
override
var
botPermission
:
MemberPermission
=
MemberPermission
.
MEMBER
override
suspend
fun
quit
():
Boolean
{
TODO
(
"not implemented"
)
//To change body of created functions use File | Settings | File Templates.
...
...
mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/QQAndroidBotNetworkHandler.kt
View file @
d678d14a
...
...
@@ -178,6 +178,9 @@ internal class QQAndroidBotNetworkHandler(bot: QQAndroidBot) : BotNetworkHandler
coroutineContext
=
group
.
coroutineContext
,
permission
=
MemberPermission
.
OWNER
)
if
(
it
.
dwGroupOwnerUin
==
bot
.
uin
)
{
group
.
botPermission
==
MemberPermission
.
OWNER
}
toGet
[
group
]
=
contactList
bot
.
groups
.
delegate
.
addLast
(
group
)
}
...
...
@@ -217,9 +220,9 @@ internal class QQAndroidBotNetworkHandler(bot: QQAndroidBot) : BotNetworkHandler
bot
.
logger
.
info
(
"加入群组: ${fillUntil9(bot.groups.size)}\t\t\t 加载时间: ${currentTimeMillis - friendLoadFinish}ms"
)
groupInfo
.
forEach
{
if
(
it
.
value
==
-
1
)
{
bot
.
logger
.
error
(
"群组号码: ${fillUntil9(it.key)}\t
\t\t 成员数量加载失败"
)
bot
.
logger
.
error
(
"群组号码: ${fillUntil9(it.key)}\t
成员数量加载失败\t BOT权限: "
+
bot
.
groups
[
it
.
key
].
botPermission
.
toString
()
)
}
else
{
bot
.
logger
.
info
(
"群组号码: ${fillUntil9(it.key)}\t
\t\t 成员数量: ${it.value}
"
)
bot
.
logger
.
info
(
"群组号码: ${fillUntil9(it.key)}\t
成员数量: ${it.value}\t
"
)
}
}
bot
.
logger
.
info
(
"====================Mirai Bot List初始化完毕===================="
)
...
...
@@ -247,7 +250,11 @@ internal class QQAndroidBotNetworkHandler(bot: QQAndroidBot) : BotNetworkHandler
coroutineContext
=
group
.
coroutineContext
,
permission
=
when
{
it
.
memberUin
==
owner
->
MemberPermission
.
OWNER
it
.
dwFlag
==
1L
->
MemberPermission
.
ADMINISTRATOR
it
.
dwFlag
==
1L
->
MemberPermission
.
ADMINISTRATOR
.
apply
{
if
(
it
.
memberUin
==
bot
.
uin
)
{
group
.
botPermission
=
MemberPermission
.
ADMINISTRATOR
}
}
else
->
MemberPermission
.
MEMBER
}
)
...
...
mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/chat/TroopManagement.kt
View file @
d678d14a
...
...
@@ -18,7 +18,7 @@ internal object TroopManagement {
internal
object
Mute
:
OutgoingPacketFactory
<
Mute
.
Response
>(
"OidbSvc.0x570_8"
)
{
override
suspend
fun
ByteReadPacket
.
decode
(
bot
:
QQAndroidBot
):
Response
{
//
this.debugPrintThis()
//
屁用没有
return
Response
}
...
...
@@ -47,16 +47,9 @@ internal object TroopManagement {
)
}
}
object
Response
:
Packet
}
fun
Unmute
(
client
:
QQAndroidClient
,
groupCode
:
Long
,
memberUin
:
Long
):
OutgoingPacket
=
Mute
.
invoke
(
client
,
groupCode
,
memberUin
,
0
)
internal
object
MuteAll
:
OutgoingPacketFactory
<
LoginPacket
.
LoginPacketResponse
>(
"OidbSvc.0x89a_0"
)
{
override
suspend
fun
ByteReadPacket
.
decode
(
bot
:
QQAndroidBot
):
LoginPacket
.
LoginPacketResponse
{
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/contact/Group.kt
View file @
d678d14a
...
...
@@ -19,6 +19,9 @@ interface Group : Contact, CoroutineScope {
*/
val
owner
:
Member
val
botPermission
:
MemberPermission
/**
* 群名称 (同步事件更新)
*/
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/contact/Member.kt
View file @
d678d14a
...
...
@@ -36,7 +36,7 @@ interface Member : QQ, Contact {
/**
* 解除禁言
*/
suspend
fun
unmute
()
suspend
fun
unmute
()
:
Boolean
}
@ExperimentalTime
...
...
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