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
3a5ec367
Commit
3a5ec367
authored
Jan 11, 2020
by
Him188
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update japt
parent
844d798f
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
59 additions
and
38 deletions
+59
-38
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/contact/Contact.kt
.../src/commonMain/kotlin/net.mamoe.mirai/contact/Contact.kt
+1
-1
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/contact/Group.kt
...re/src/commonMain/kotlin/net.mamoe.mirai/contact/Group.kt
+0
-2
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/message/MessagePacket.kt
...ommonMain/kotlin/net.mamoe.mirai/message/MessagePacket.kt
+1
-2
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/message/data/MessageChain.kt
...nMain/kotlin/net.mamoe.mirai/message/data/MessageChain.kt
+6
-9
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/message/data/PlainText.kt
...mmonMain/kotlin/net.mamoe.mirai/message/data/PlainText.kt
+1
-1
mirai-japt/mirai-japt.postfixTemplates
mirai-japt/mirai-japt.postfixTemplates
+5
-4
mirai-japt/src/main/java/net/mamoe/mirai/japt/BlockingBot.java
...-japt/src/main/java/net/mamoe/mirai/japt/BlockingBot.java
+4
-0
mirai-japt/src/main/java/net/mamoe/mirai/japt/BlockingContact.java
...t/src/main/java/net/mamoe/mirai/japt/BlockingContact.java
+12
-3
mirai-japt/src/main/java/net/mamoe/mirai/japt/BlockingGroup.java
...apt/src/main/java/net/mamoe/mirai/japt/BlockingGroup.java
+2
-2
mirai-japt/src/main/java/net/mamoe/mirai/japt/BlockingQQ.java
...i-japt/src/main/java/net/mamoe/mirai/japt/BlockingQQ.java
+3
-3
mirai-japt/src/main/kotlin/net/mamoe/mirai/japt/BlockingContactsImpl.kt
.../main/kotlin/net/mamoe/mirai/japt/BlockingContactsImpl.kt
+24
-11
No files found.
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/contact/Contact.kt
View file @
3a5ec367
...
...
@@ -39,7 +39,7 @@ interface Contact : CoroutineScope {
suspend
fun
uploadImage
(
image
:
ExternalImage
):
ImageId
}
suspend
inline
fun
Contact
.
sendMessage
(
message
:
Message
)
=
sendMessage
(
message
.
c
hain
())
suspend
inline
fun
Contact
.
sendMessage
(
message
:
Message
)
=
sendMessage
(
message
.
toC
hain
())
suspend
inline
fun
Contact
.
sendMessage
(
plain
:
String
)
=
sendMessage
(
plain
.
singleChain
())
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/contact/Group.kt
View file @
3a5ec367
...
...
@@ -61,8 +61,6 @@ interface Group : Contact, CoroutineScope/*, Map<UInt, Member>*/ { // TODO: 2019
/**
* 让机器人退出这个群. 机器人必须为非群主才能退出. 否则将会失败
*
* @see QuitGroupResponse.isSuccess 判断是否成功
*/
suspend
fun
quit
():
Boolean
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/message/MessagePacket.kt
View file @
3a5ec367
...
...
@@ -10,7 +10,6 @@ import net.mamoe.mirai.data.ImageLink
import
net.mamoe.mirai.event.events.BotEvent
import
net.mamoe.mirai.message.data.*
import
net.mamoe.mirai.utils.*
import
net.mamoe.mirai.utils.coerceAtLeastOrFail
import
kotlin.jvm.JvmName
/**
...
...
@@ -50,7 +49,7 @@ abstract class MessagePacketBase<TSender : QQ, TSubject : Contact>(_bot: Bot) :
*/
suspend
inline
fun
reply
(
message
:
MessageChain
)
=
subject
.
sendMessage
(
message
)
suspend
inline
fun
reply
(
message
:
Message
)
=
subject
.
sendMessage
(
message
.
c
hain
())
suspend
inline
fun
reply
(
message
:
Message
)
=
subject
.
sendMessage
(
message
.
toC
hain
())
suspend
inline
fun
reply
(
plain
:
String
)
=
subject
.
sendMessage
(
plain
.
toMessage
())
@JvmName
(
"reply1"
)
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/message/data/MessageChain.kt
View file @
3a5ec367
...
...
@@ -63,7 +63,7 @@ fun MessageChain(initialCapacity: Int): MessageChain =
/**
* 构造 [MessageChain]
* 若仅提供一个参数, 请考虑使用 [Message.
c
hain] 以优化性能
* 若仅提供一个参数, 请考虑使用 [Message.
toC
hain] 以优化性能
*/
@Suppress
(
"FunctionName"
)
fun
MessageChain
(
vararg
messages
:
Message
):
MessageChain
=
...
...
@@ -81,12 +81,12 @@ fun MessageChain(messages: Iterable<Message>): MessageChain =
* 构造单元素的不可修改的 [MessageChain]. 内部类实现为 [SingleMessageChain]
*
* 参数 [delegate] 不能为 [MessageChain] 的实例, 否则将会抛出异常.
* 使用 [Message.
c
hain] 将帮助提前处理这个问题.
* 使用 [Message.
toC
hain] 将帮助提前处理这个问题.
*
* @param delegate 所构造的单元素 [MessageChain] 代表的 [Message]
* @throws IllegalArgumentException 当 [delegate] 为 [MessageChain] 的实例时
*
* @see Message.
c
hain receiver 模式
* @see Message.
toC
hain receiver 模式
*/
@MiraiExperimentalAPI
@UseExperimental
(
ExperimentalContracts
::
class
)
...
...
@@ -106,17 +106,13 @@ fun SingleMessageChain(delegate: Message): MessageChain {
* 否则将调用 [MessageChain] 构造一个 [MessageChainImpl]
*/
@Suppress
(
"NOTHING_TO_INLINE"
)
inline
fun
Message
.
chain
():
MessageChain
=
if
(
this
is
MessageChain
)
this
else
MessageChain
(
this
)
inline
fun
Message
.
toChain
():
MessageChain
=
if
(
this
is
MessageChain
)
this
else
MessageChain
(
this
)
/**
* 构造 [MessageChain]
*/
@Suppress
(
"unused"
,
"NOTHING_TO_INLINE"
)
inline
fun
List
<
Message
>.
messageChain
():
MessageChain
=
MessageChain
(
this
)
inline
fun
List
<
Message
>.
toMessageChain
():
MessageChain
=
MessageChain
(
this
)
/**
* 获取第一个 [M] 类型的 [Message] 实例
...
...
@@ -327,6 +323,7 @@ internal inline class MessageChainImpl constructor(
*
* 在连接时将会把它当做一个普通 [Message] 看待, 但它不能被 [plusAssign]
*/
@PublishedApi
internal
inline
class
SingleMessageChainImpl
(
private
val
delegate
:
Message
)
:
Message
,
MutableList
<
Message
>,
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/message/data/PlainText.kt
View file @
3a5ec367
...
...
@@ -23,4 +23,4 @@ inline fun String.toMessage(): PlainText = PlainText(this)
* @see SingleMessageChainImpl
*/
@Suppress
(
"NOTHING_TO_INLINE"
)
inline
fun
String
.
singleChain
():
MessageChain
=
this
.
toMessage
().
chain
()
\ No newline at end of file
inline
fun
String
.
singleChain
():
MessageChain
=
SingleMessageChainImpl
(
this
.
toMessage
())
\ No newline at end of file
mirai-japt/mirai-japt.postfixTemplates
View file @
3a5ec367
# Contact
.blocking : 阻塞式包装
net.mamoe.mirai.contact.QQ [net.mamoe.mirai.japt.BlockingContacts] -> BlockingQQ. BlockingContacts.createBlocking($var$)
## Contact ##
.blocking : Blocking wrap
net.mamoe.mirai.contact.QQ → net.mamoe.mirai.japt.BlockingContacts.createBlocking($expr$)
net.mamoe.mirai.contact.QQ [net.mamoe.mirai.japt.BlockingContacts] → net.mamoe.mirai.japt.BlockingContacts.createBlocking($expr$)
net.mamoe.mirai.timpc.network.QQImpl [net.mamoe.mirai.japt.BlockingContacts] → net.mamoe.mirai.japt.BlockingContacts.createBlocking($expr$)
\ No newline at end of file
mirai-japt/src/main/java/net/mamoe/mirai/japt/BlockingBot.java
0 → 100644
View file @
3a5ec367
package
net.mamoe.mirai.japt
;
public
interface
BlockingBot
{
}
mirai-japt/src/main/java/net/mamoe/mirai/japt/BlockingContact.java
View file @
3a5ec367
package
net.mamoe.mirai.japt
;
import
net.mamoe.mirai.Bot
;
import
net.mamoe.mirai.message.MessageChain
;
import
net.mamoe.mirai.message.data.Message
;
import
net.mamoe.mirai.message.data.MessageChain
;
import
org.jetbrains.annotations.NotNull
;
@SuppressWarnings
(
"unused"
)
...
...
@@ -19,8 +20,16 @@ public interface BlockingContact {
/**
* 向这个对象发送消息.
* <p>
* 速度太快会被服务器屏蔽(无响应). 在测试中不延迟地发送 6 条消息就会被屏蔽之后的数据包 1 秒左右.
*/
void
sendMessage
(
@NotNull
MessageChain
messages
);
/**
* 向这个对象发送消息.
*/
void
sendMessage
(
@NotNull
String
message
);
/**
* 向这个对象发送消息.
*/
void
sendMessage
(
@NotNull
Message
message
);
}
mirai-japt/src/main/java/net/mamoe/mirai/japt/BlockingGroup.java
View file @
3a5ec367
package
net.mamoe.mirai.japt
;
import
net.mamoe.mirai.
network.protocol.tim.packet.action
.GroupInfo
;
import
net.mamoe.mirai.
data
.GroupInfo
;
import
java.util.Map
;
...
...
@@ -9,7 +9,7 @@ public interface BlockingGroup extends BlockingContact {
/**
* 内部 ID. 内部 ID 为 [GroupId] 的映射
*/
L
ong
getInternalId
();
l
ong
getInternalId
();
/**
* 群主 (同步事件更新)
...
...
mirai-japt/src/main/java/net/mamoe/mirai/japt/BlockingQQ.java
View file @
3a5ec367
package
net.mamoe.mirai.japt
;
import
net.mamoe.mirai.
contact.data.Profile
;
import
net.mamoe.mirai.
network.protocol.tim.packet.action.FriendNameRemark
;
import
net.mamoe.mirai.
network.protocol.tim.packet.action.PreviousNameList
;
import
net.mamoe.mirai.
data.FriendNameRemark
;
import
net.mamoe.mirai.
data.PreviousNameList
;
import
net.mamoe.mirai.
data.Profile
;
import
org.jetbrains.annotations.NotNull
;
@SuppressWarnings
(
"unused"
)
...
...
mirai-japt/src/main/kotlin/net/mamoe/mirai/japt/BlockingContactsImpl.kt
View file @
3a5ec367
...
...
@@ -8,16 +8,24 @@ import net.mamoe.mirai.contact.Group
import
net.mamoe.mirai.contact.Member
import
net.mamoe.mirai.contact.MemberPermission
import
net.mamoe.mirai.contact.QQ
import
net.mamoe.mirai.contact.data.Profile
import
net.mamoe.mirai.message.MessageChain
import
net.mamoe.mirai.network.protocol.tim.packet.action.FriendNameRemark
import
net.mamoe.mirai.network.protocol.tim.packet.action.GroupInfo
import
net.mamoe.mirai.network.protocol.tim.packet.action.PreviousNameList
import
net.mamoe.mirai.data.FriendNameRemark
import
net.mamoe.mirai.data.GroupInfo
import
net.mamoe.mirai.data.PreviousNameList
import
net.mamoe.mirai.data.Profile
import
net.mamoe.mirai.message.data.Message
import
net.mamoe.mirai.message.data.MessageChain
import
net.mamoe.mirai.message.data.toChain
import
net.mamoe.mirai.message.data.toMessage
import
net.mamoe.mirai.utils.MiraiInternalAPI
import
net.mamoe.mirai.utils.toList
internal
class
BlockingQQImpl
(
private
val
delegate
:
QQ
)
:
BlockingQQ
{
override
fun
getBot
():
Bot
=
delegate
.
bot
override
fun
getId
():
Long
=
delegate
.
id
.
toLong
()
override
fun
getId
():
Long
=
delegate
.
id
override
fun
sendMessage
(
messages
:
MessageChain
)
=
runBlocking
{
delegate
.
sendMessage
(
messages
)
}
override
fun
sendMessage
(
message
:
String
)
=
runBlocking
{
delegate
.
sendMessage
(
message
.
toMessage
().
toChain
())
}
override
fun
sendMessage
(
message
:
Message
)
=
runBlocking
{
delegate
.
sendMessage
(
message
.
toChain
())
}
override
fun
queryProfile
():
Profile
=
runBlocking
{
delegate
.
queryProfile
()
}
override
fun
queryPreviousNameList
():
PreviousNameList
=
runBlocking
{
delegate
.
queryPreviousNameList
()
}
override
fun
queryRemark
():
FriendNameRemark
=
runBlocking
{
delegate
.
queryRemark
()
}
...
...
@@ -25,17 +33,22 @@ internal class BlockingQQImpl(private val delegate: QQ) : BlockingQQ {
internal
class
BlockingGroupImpl
(
private
val
delegate
:
Group
)
:
BlockingGroup
{
override
fun
sendMessage
(
messages
:
MessageChain
)
=
runBlocking
{
delegate
.
sendMessage
(
messages
)
}
override
fun
sendMessage
(
message
:
String
)
=
runBlocking
{
delegate
.
sendMessage
(
message
.
toMessage
().
toChain
())
}
override
fun
sendMessage
(
message
:
Message
)
=
runBlocking
{
delegate
.
sendMessage
(
message
.
toChain
())
}
override
fun
getOwner
():
BlockingMember
=
delegate
.
owner
.
blocking
()
override
fun
getName
():
String
=
delegate
.
name
override
fun
getId
():
Long
=
delegate
.
id
.
toLong
()
override
fun
getId
():
Long
=
delegate
.
id
override
fun
updateGroupInfo
():
GroupInfo
=
runBlocking
{
delegate
.
updateGroupInfo
()
}
override
fun
toFullString
():
String
=
delegate
.
toFullString
()
override
fun
getMember
(
id
:
Long
):
BlockingMember
=
delegate
.
getMember
(
id
.
toUInt
()
).
blocking
()
override
fun
getMember
(
id
:
Long
):
BlockingMember
=
delegate
.
getMember
(
id
).
blocking
()
override
fun
getBot
():
Bot
=
delegate
.
bot
override
fun
getAnnouncement
():
String
=
delegate
.
announcement
override
fun
getMembers
():
MutableMap
<
Long
,
BlockingMember
>
=
delegate
.
members
.
mapKeys
{
it
.
key
.
toLong
()
}.
mapValues
{
it
.
value
.
blocking
()
}.
toMutableMap
()
override
fun
getInternalId
():
Long
=
delegate
.
internalId
.
value
.
toLong
()
override
fun
quit
():
Boolean
=
runBlocking
{
delegate
.
quit
().
isSuccess
}
@UseExperimental
(
MiraiInternalAPI
::
class
)
override
fun
getMembers
():
Map
<
Long
,
BlockingMember
>
=
delegate
.
members
.
delegate
.
toList
().
associateBy
{
it
.
id
}.
mapValues
{
it
.
value
.
blocking
()
}
override
fun
getInternalId
():
Long
=
delegate
.
internalId
.
value
override
fun
quit
():
Boolean
=
runBlocking
{
delegate
.
quit
()
}
}
internal
class
BlockingMemberImpl
(
private
val
delegate
:
Member
)
:
BlockingMember
{
...
...
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