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
ef08b044
Commit
ef08b044
authored
Sep 19, 2019
by
Him188moe
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
4f4bc05d
91aed96c
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
46 additions
and
34 deletions
+46
-34
README.md
README.md
+24
-18
mirai-api/src/main/java/net/mamoe/mirai/MiraiAPI.java
mirai-api/src/main/java/net/mamoe/mirai/MiraiAPI.java
+4
-0
mirai-console/pom.xml
mirai-console/pom.xml
+6
-0
mirai-console/src/main/java/net/mamoe/mirai/MiraiConsole.java
...i-console/src/main/java/net/mamoe/mirai/MiraiConsole.java
+11
-0
mirai-core/src/main/java/net/mamoe/mirai/MiraiServer.java
mirai-core/src/main/java/net/mamoe/mirai/MiraiServer.java
+1
-16
No files found.
README.md
View file @
ef08b044
# Mirai
# Mirai
一个以
<b>
TIM QQ协议(非web)
</b>
驱动的JAVA(+Kotlin) QQ机器人服务端核心
一个以
<b>
TIM QQ协议(非web)
</b>
驱动的JAVA(+Kotlin) QQ机器人服务端核心
我们坚持免费与开源
采用服务端-插件模式运行,同时提供独立的协议层库
**我们承诺项目的所有模块均开源**
项目处于快速开发阶段
项目处于开发阶段,学生无法每日大量更新。
项目还有很多未完善的地方, 欢迎任何的代码贡献, 或是 issue.
部分协议来自网络上开源项目
部分协议来自网络上开源项目
一切开发旨在学习
, 请勿用于非法用途
一切开发旨在学习
,请勿用于非法用途
<br>
## 抢先体验
核心框架结构已经开发完毕,一些核心功能也测试完成。
仅需几分钟就可以测试 Mirai.
现在你可以登录小号来测试 Mirai.
即使测试消息时未发现冻结情况,我们也无法100%保证账号冻结不会发生。
A JAVA(+Kotlin) powered open-source project under GPL license
<br>
It use protocols from
<i>
TIM QQ
</i>
, that is, it won't be affected by the close of
<i>
Smart QQ
</i><br>
The project is all for
<b>
learning proposes
</b>
and still in
<b>
developing stage
</b><br>
## 抢先体验
现在你可以使用 Mirai 内置的一些测试qq号体验 Mirai, 但我们现在还不建议你使用自己的 qq 号登录
1.
Clone
1.
Clone
2.
Import as Maven project
2.
Import as Maven project
3.
Run
[
MiraiMain
](
mirai-core/src/main/java/net/mamoe/mirai/MiraiMain.java#L7
)
3.
Run
[
MiraiMain
](
mirai-core/src/main/java/net/mamoe/mirai/MiraiMain.java#L7
)
...
@@ -44,13 +43,11 @@ FriendMessageEvent::class.hookAlways{
...
@@ -44,13 +43,11 @@ FriendMessageEvent::class.hookAlways{




不过我们还正在努力做发送图片
发送图片已经完成,但我们还在开发上传图片至服务器。
现在你可以通过发送一张图片给机器人账号,再让机器人账号发送这张图片。你可以查看
[
Image
](
src/main/java/net/mamoe/mirai/message/Image.kt
)
## 代码结构
## 语言使用说明
Network部分使用 Kotlin 完成(因为kt有对 unsigned byte 的支持).
我们使用 Kotlin,但我们也会保留对 Java 和 Java开发者的支持。
与插件相关性强(或其他在二次开发中容易接触)的部分尽量使用 Java 完成,
若使用 Kotlin, 我们会通过 Java interface 实现或 javadoc 帮助未接触过 Kotlin 的开发者.
即使你完全不了解 Kotlin, 你也可以正常开发.
# TODO
# TODO
-
[x] 事件(Event)模块
-
[x] 事件(Event)模块
...
@@ -64,10 +61,11 @@ Network部分使用 Kotlin 完成(因为kt有对 unsigned byte 的支持).
...
@@ -64,10 +61,11 @@ Network部分使用 Kotlin 完成(因为kt有对 unsigned byte 的支持).
-
[ ] Network - Events
-
[ ] Network - Events
-
[ ] Bot - Friend/group list
-
[ ] Bot - Friend/group list
-
[ ] Bot - Actions(joining group, adding friend, etc.)
-
[ ] Bot - Actions(joining group, adding friend, etc.)
-
[
] Message Section
**(Working on)**
-
[
x] Message Section
-
[ ] Image uploading
**(Working on)**
-
[ ] Image uploading
**(Working on)**
-
[ ] Contact
-
[ ] Contact
-
[ ] UI
-
[ ] UI
-
[ ] Console
<br>
<br>
...
@@ -81,6 +79,14 @@ Network部分使用 Kotlin 完成(因为kt有对 unsigned byte 的支持).
...
@@ -81,6 +79,14 @@ Network部分使用 Kotlin 完成(因为kt有对 unsigned byte 的支持).
...
...
```
```
# Mirai
<br>
A JAVA(+Kotlin) powered open-source project under GPL license
<br>
It use protocols from
<i>
TIM QQ
</i>
, that is, it won't be affected by the close of
<i>
Smart QQ
</i><br>
The project is all for
<b>
learning proposes
</b>
and still in
<b>
developing stage
</b><br>
# Usage
# Usage
## Requirements
## Requirements
-
Java 11 or higher
-
Java 11 or higher
...
...
mirai-api/src/main/java/net/mamoe/mirai/MiraiAPI.java
View file @
ef08b044
...
@@ -56,4 +56,8 @@ public class MiraiAPI {
...
@@ -56,4 +56,8 @@ public class MiraiAPI {
return
new
Bot
(
qq
);
return
new
Bot
(
qq
);
}
}
public
static
void
addBot
(
long
qq
,
String
password
){
}
}
}
mirai-console/pom.xml
View file @
ef08b044
...
@@ -16,6 +16,12 @@
...
@@ -16,6 +16,12 @@
<dependencies>
<dependencies>
<dependency>
<groupId>
net.mamoe
</groupId>
<artifactId>
mirai-api
</artifactId>
<version>
1.0
</version>
<scope>
compile
</scope>
</dependency>
</dependencies>
</dependencies>
<build>
<build>
...
...
mirai-console/src/main/java/net/mamoe/mirai/MiraiConsole.java
View file @
ef08b044
package
net.mamoe.mirai
;
package
net.mamoe.mirai
;
import
java.util.Scanner
;
public
class
MiraiConsole
{
public
class
MiraiConsole
{
public
static
void
main
(
String
[]
args
){
public
static
void
main
(
String
[]
args
){
System
.
out
.
println
(
">>> starting Mirai"
);
MiraiAPI
.
startMirai
(
args
);
}
public
static
void
processCommand
(
String
command
){
}
}
}
}
mirai-core/src/main/java/net/mamoe/mirai/MiraiServer.java
View file @
ef08b044
...
@@ -154,23 +154,8 @@ public final class MiraiServer {
...
@@ -154,23 +154,8 @@ public final class MiraiServer {
private
void
initQQConfig
(
File
qqConfig
)
{
private
void
initQQConfig
(
File
qqConfig
)
{
this
.
qqs
=
new
MiraiConfig
(
qqConfig
);
this
.
qqs
=
new
MiraiConfig
(
qqConfig
);
MiraiConfigSection
<
Object
>
section
=
new
MiraiConfigSection
<>();
Scanner
scanner
=
new
Scanner
(
System
.
in
);
getLogger
().
info
(
"Input a "
+
LoggerTextFormat
.
RED
+
" QQ number "
+
LoggerTextFormat
.
GREEN
+
"for default botNetworkHandler"
);
getLogger
().
info
(
"输入用于默认机器人的QQ号"
);
long
qqNumber
=
scanner
.
nextLong
();
getLogger
().
info
(
"Input the password for that QQ account"
);
getLogger
().
info
(
"输入该QQ号的密码"
);
String
qqPassword
=
scanner
.
next
();
section
.
put
(
"password"
,
qqPassword
);
section
.
put
(
"owner"
,
"default"
);
this
.
qqs
.
put
(
String
.
valueOf
(
qqNumber
),
section
);
this
.
qqs
.
save
();
getLogger
().
info
(
"QQ account initialized; changing can be made in Config file: "
+
qqConfig
.
toString
());
getLogger
().
info
(
"QQ account initialized; changing can be made in Config file: "
+
qqConfig
.
toString
());
getLogger
().
info
(
"QQ 账户管理初始化完毕"
);
}
}
private
void
onEnabled
()
{
private
void
onEnabled
()
{
...
...
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