Merge remote-tracking branch 'origin/master'

This commit is contained in:
Him188moe 2019-09-10 21:24:47 +08:00
commit 87532418e5
4 changed files with 44 additions and 20 deletions

View File

@ -7,30 +7,45 @@
协议来自网络上开源项目
一切开发旨在学习, 请勿用于非法用途
### 代码结构
Network部分使用 Kotlin 完成(因为kt有对 unsigned byte 的支持).
与插件相关性强(或其他在二次开发中容易接触)的部分尽量使用 Java 完成,
若使用 Kotlin, 我们会通过 Java interface 实现或 javadoc 帮助未接触过 Kotlin 的开发者.
即使你完全不了解 Kotlin, 你也可以正常开发.
### 抢先体验
## 抢先体验
现在你可以使用 Mirai 内置的一些测试qq号体验 Mirai, 但我们现在还不建议你使用自己的 qq 号登录
1. Clone
2. Import as Maven project
3. Run [MiraiMain](mirai-core/src/main/java/net/mamoe/mirai/MiraiMain.java#L7)
#### 事件 Hook (Kotlin)
![event hook.png](.github/event%20hook.png)
### 事件 Hook (Kotlin)
#### java:
```
MiraiEventHook.onEvent(FriendMessageEvent.class)
.handler(a -> {
if(a.getMessageString().equals("你好"))
a.getQQ().sendMessage("你好!");
})
.mountAlways();
```
#### kotlin:
```
FriendMessageEvent::class.hookAlways{
if(it.message() valueEquals "你好")
it.qq.sendMessage("你好!")
}
```
![AYWVE86P](.github/A%7DYWVE860U%28%25YQD%24R1GB1%5BP.png)
#### 图片测试
### 图片测试
**现在可以接受图片消息**(并解析为消息链):
![JsssF](.github/J%5DCE%29IK4BU08%28EO~UVLJ%7B%5BF.png)
![](.github/68f8fec9.png)
不过我们还正在努力做发送图片
### TODO
## 代码结构
Network部分使用 Kotlin 完成(因为kt有对 unsigned byte 的支持).
与插件相关性强(或其他在二次开发中容易接触)的部分尽量使用 Java 完成,
若使用 Kotlin, 我们会通过 Java interface 实现或 javadoc 帮助未接触过 Kotlin 的开发者.
即使你完全不了解 Kotlin, 你也可以正常开发.
# TODO
- [x] 事件(Event)模块
- [ ] 插件(Plugin)模块 **(Working on)**
- [x] Network - Touch
@ -48,11 +63,11 @@ Network部分使用 Kotlin 完成(因为kt有对 unsigned byte 的支持).
<br>
## 使用方法
### 要求
# 使用方法
## 要求
- Java 11 或更高
- Kotlin 1.3 或更高
### 插件开发
## 插件开发
``` text
to be continued
...
@ -65,11 +80,11 @@ 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
### Requirements
# Usage
## Requirements
- Java 11 or higher
- Kotlin 1.3 or higher
### Plugin Development
## Plugin Development
``` text
to be continued
...

View File

@ -1,6 +1,10 @@
package net.mamoe.mirai;
import net.mamoe.mirai.event.MiraiEventHook;
import net.mamoe.mirai.event.MiraiEventManager;
import net.mamoe.mirai.event.events.qq.FriendMessageEvent;
/**
* @author Him188moe
*/
@ -11,4 +15,4 @@ public final class MiraiMain {
server = new MiraiServer();
Runtime.getRuntime().addShutdownHook(new Thread(() -> server.shutdown()));
}
}
}

View File

@ -95,6 +95,11 @@ public class MiraiEventHook<T extends MiraiEvent> implements Closeable {
MiraiEventManager.getInstance().registerHook(this);
}
public void mountAlways(){
if(this.handler == null)this.handler = a -> {};
MiraiEventManager.getInstance().hookAlways(this);
}
public void mountOnce(){
if(this.handler == null)this.handler = a -> {};
MiraiEventManager.getInstance().hookOnce(this);

View File

@ -7,8 +7,8 @@ import java.io.IOException;
public class ImageOutputTest {
public static void main(String[] args) throws IOException {
BufferedImage image = ImageIO.read(new File((System.getProperty("user.dir") + "/VerificationCode.png").replace("//","/")));
CharImageConverter charImageConvertor = new CharImageConverter(image,100);
BufferedImage image = ImageIO.read(new File((System.getProperty("user.dir") + "/mirai.png").replace("//","/")));
CharImageConverter charImageConvertor = new CharImageConverter(image,80);
System.out.println(charImageConvertor.call());
}
}