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
29a7878e
Commit
29a7878e
authored
Feb 21, 2020
by
Him188
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
587fab23
da72d3bb
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
117 additions
and
3 deletions
+117
-3
docs/guide_getting_started.md
docs/guide_getting_started.md
+2
-2
docs/guide_subscribe_events.md
docs/guide_subscribe_events.md
+114
-0
mirai-api-http/EventType_CN.md
mirai-api-http/EventType_CN.md
+1
-1
No files found.
docs/guide_getting_started.md
View file @
29a7878e
...
@@ -69,7 +69,7 @@ JDK要求6以上
...
@@ -69,7 +69,7 @@ JDK要求6以上
### 4 Try Bot
### 4 Try Bot
-
在src/main文件夹下新建文件夹,命名为
```kotlin```
-
在src/main文件夹下新建文件夹,命名为
```kotlin```
-
在
```kotlin```
下新建包(在
```kotlin```
文件夹上右键-
```New```
-
```Package
s
```
) 包名为
```net.mamoe.mirai.simpleloader```
-
在
```kotlin```
下新建包(在
```kotlin```
文件夹上右键-
```New```
-
```Package```
) 包名为
```net.mamoe.mirai.simpleloader```
-
在包下新建kotlin文件
```MyLoader.kt```
-
在包下新建kotlin文件
```MyLoader.kt```
...
@@ -103,9 +103,9 @@ suspend fun main() {
...
@@ -103,9 +103,9 @@ suspend fun main() {
-
本例的功能中,在任意群内任意成员发送包含“舔”字或“刘老板”字样的消息,MiraiBot会回复“刘老板太强了”
-
本例的功能中,在任意群内任意成员发送包含“舔”字或“刘老板”字样的消息,MiraiBot会回复“刘老板太强了”
至此,简单的入门已经结束,下面可根据不同的需求参阅wiki进行功能的添加。
至此,简单的入门已经结束,下面可根据不同的需求参阅wiki进行功能的添加。
下面,可以尝试对不同事件进行监听
[
Mirai Guide - Subscribe Events
](
/docs/guide_subscribe_events.md
)
### 此外,还可以使用Maven作为包管理工具
### 此外,还可以使用Maven作为包管理工具
本项目推荐使用gradle,因此不提供详细入门指导
本项目推荐使用gradle,因此不提供详细入门指导
...
...
docs/guide_subscribe_events.md
0 → 100644
View file @
29a7878e
# Mirai Guide - Subscribe Events
由于Mirai项目在快速推进中,因此内容时有变动,本文档的最后更新日期为
```2020-02-21```
,对应版本
```0.17.0```
本页面采用Kotlin作为开发语言,
**若你希望使用 Java 开发**
, 请参阅:
[
mirai-japt
](
mirai-japt/README.md
)
本页面是
[
Mirai Guide - Getting Started
](
/docs/guide_getting_started.md
)
的后续Guide
## 消息事件-Message Event
首先我们来回顾上一个Guide的源码
```
kotlin
suspend
fun
main
()
{
val
qqId
=
10000L
//Bot的QQ号,需为Long类型,在结尾处添加大写L
val
password
=
"your_password"
//Bot的密码
val
miraiBot
=
Bot
(
qqId
,
password
).
alsoLogin
()
//新建Bot并登录
miraiBot
.
subscribeMessages
{
"你好"
reply
"你好!"
case
(
"at me"
)
{
reply
(
sender
.
at
()
+
" 给爷爬 "
)
}
(
contains
(
"舔"
)
or
contains
(
"刘老板"
))
{
"刘老板太强了"
.
reply
()
}
}
miraiBot
.
join
()
// 等待 Bot 离线, 避免主线程退出
}
```
在本例中,
```miraiBot```
是一个Bot对象,让其登录,然后对
```Message Event```
进行了监听。
对于
``````Message Event``````
,
```Mirai```
提供了较其他Event更强大的
[
MessageSubscribersBuilder
](
https://github.com/mamoe/mirai/wiki/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/event/MessageSubscribers.kt#L140
)
,本例也采用了
[
MessageSubscribersBuilder
](
https://github.com/mamoe/mirai/wiki/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/event/MessageSubscribers.kt#L140
)
。其他具体使用方法可以参考
[
Wiki:Message Event
](
https://github.com/mamoe/mirai/wiki/Development-Guide---Kotlin#Message-Event
)
部分。
## 事件-Event
上一节中提到的
```Message Event```
仅仅是众多
```Event```
的这一种,其他
```Event```
有群员加入群,离开群,私聊等等...
具体doc暂不提供,现可翻阅源码
[
**BotEvents.kt**
](
https://github.com/mamoe/mirai/blob/master/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/event/events/BotEvents.kt
)
,查看注释。当前事件仍在扩充中,可能有一定不足。
下面我们开始示例对一些事件进行监听。
## 尝试监听事件-Try Subscribing Events
### 监听加群事件
在代码中的
```miraiBot.join()```
前添加
```
kotlin
miraiBot
.
subscribeAlways
<
MemberJoinEvent
>
{
it
.
group
.
sendMessage
(
"欢迎 ${it.member.nameCardOrNick} 加入本群!"
)
}
```
本段语句监听了加入群的事件。
### 监听禁言事件
在代码中添加
```
kotlin
miraiBot
.
subscribeAlways
<
MemberMuteEvent
>
(){
it
.
group
.
sendMessage
(
"恭喜老哥 ${it.member.nameCardOrNick} 喜提禁言套餐一份"
)
}
```
在被禁言后,Bot将发送恭喜语句。
### 添加后的可执行代码
至此,当前的代码为
```
kotlin
package
net.mamoe.mirai.simpleloader
import
kotlinx.coroutines.*
import
net.mamoe.mirai.Bot
import
net.mamoe.mirai.alsoLogin
import
net.mamoe.mirai.event.subscribeMessages
import
net.mamoe.mirai.contact.nameCardOrNick
import
net.mamoe.mirai.contact.sendMessage
import
net.mamoe.mirai.event.events.MemberJoinEvent
import
net.mamoe.mirai.event.events.MemberMuteEvent
import
net.mamoe.mirai.event.subscribeAlways
suspend
fun
main
()
{
val
qqId
=
10000L
//Bot的QQ号,需为Long类型,在结尾处添加大写L
val
password
=
"your_password"
//Bot的密码
val
miraiBot
=
Bot
(
qqId
,
password
).
alsoLogin
()
//新建Bot并登录
miraiBot
.
subscribeMessages
{
"你好"
reply
"你好!"
case
(
"at me"
)
{
reply
(
sender
.
at
()
+
" 给爷爬 "
)
}
(
contains
(
"舔"
)
or
contains
(
"刘老板"
))
{
"刘老板太强了"
.
reply
()
}
}
miraiBot
.
subscribeAlways
<
MemberJoinEvent
>
{
it
.
group
.
sendMessage
(
"欢迎 ${it.member.nameCardOrNick} 加入本群!"
)
}
miraiBot
.
subscribeAlways
<
MemberMuteEvent
>
(){
it
.
group
.
sendMessage
(
"恭喜老哥 ${it.member.nameCardOrNick} 喜提禁言套餐一份"
)
}
miraiBot
.
join
()
// 等待 Bot 离线, 避免主线程退出
}
```
mirai-api-http/EventType_CN.md
View file @
29a7878e
...
@@ -105,7 +105,7 @@
...
@@ -105,7 +105,7 @@
```
json5
```
json5
{
{
"type": "BotMuteEvent",
"type": "BotMuteEvent",
"durationSeconds":
"600"
,
"durationSeconds":
600
,
"operator": {
"operator": {
"id": 123456789,
"id": 123456789,
"memberName": "我是管理员",
"memberName": "我是管理员",
...
...
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