Skip to content
This repository has been archived by the owner on Feb 11, 2023. It is now read-only.

[U] 添加消息组件转换 #23

Closed
wants to merge 20 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/-------bug-.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ assignees: ''

**PicqBotX 运行环境:**
- 系统: [比如说: Windows 10 1903]
- 版本: [比如说: 4.10.1.928]
- 版本: [比如说: 4.11.0.971]

**CoolQ HTTP 运行环境:**
- 系统: [比如说: Windows 10 1903]
Expand Down
23 changes: 23 additions & 0 deletions JavaDocs-Config
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
JavaDocs Generation Config:

Scope: Whole project
Output Directory: PicqBotX/docs

Box1: Protected

Box2:
√ Hierarchy Tree
√ Nav Bar
√ Index
√ Index per Letter

Box3:
口 @use
√ @author
√ @version
√ @deprecated
√ deprecated list

Locale: zh_CN
Other arguments: -encoding utf-8 -charset utf-8 -windowtitle "JavaDoc开发文档 - PicqBotX" -notimestamp
Maximum heap size: 4096
96 changes: 70 additions & 26 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ Maven 导入:
<dependency>
<groupId>com.github.hydevelop</groupId>
<artifactId>PicqBotX</artifactId>
<version>4.10.1.928</version>
<version>4.11.0.971</version>
</dependency>
```

Expand All @@ -67,21 +67,21 @@ allprojects {

```gradle
dependencies {
implementation 'com.github.hydevelop:PicqBotX:4.10.1.928'
implementation 'com.github.hydevelop:PicqBotX:4.11.0.971'
}
```

<!-- 每次更新都要手动改这些版本号好烦的_(:з」∠)_... -->

#### [其他导入(SBT / Leiningen)](https://jitpack.io/#hydevelop/PicqBotX/4.10.1.928)
#### [其他导入(SBT / Leiningen)](https://jitpack.io/#hydevelop/PicqBotX/4.11.0.971)

<br>

<a name="environment"></a>
配置环境:
--------

##### 注意: 下面的教程适用于 Windows `酷Q v5.13.2`, Linux 教程以后可能会进行补充<br>还有, HTTP 插件支持的版本是`v4.10.1`, `2019/08/27`刚检查过
##### 注意: 下面的教程适用于 Windows `酷Q v5.13.2`, Linux 教程以后可能会进行补充<br>还有, HTTP 插件支持的版本是`v4.11.0`, `2019/10/12`刚检查过

#### 1. 下载 [酷Q](https://cqp.cc/)... (如果有 酷Q Pro 的话效果更好哦!)

Expand Down Expand Up @@ -245,7 +245,7 @@ public class TestBot

<a name="config"></a>

#### 1. 配置:
### 1. 配置:

```java
// 创建机器人配置 ( 传入Picq端口 )
Expand Down Expand Up @@ -280,11 +280,12 @@ PicqConfig config = new PicqConfig(31092);
| `setColorSupportLevel(FORCED)` | Logger颜色支持级别 (设为DISABLED就没有颜色了) |
| `setLogPath("logs")` | Logger日志路径 (设为空就不输出文件了) |
| `setLogFileName("PicqBotX-Log")` | Logger日志文件名 |
| `setLogInit(true)` | 是否输出启动日志 |


<a name="events"></a>

#### 2. 监听事件:
### 2. 监听事件:

```java
public class 类名随意 extends IcqListener // 必须继承 IcqListener 监听器类
Expand All @@ -303,7 +304,7 @@ public class 类名随意 extends IcqListener // 必须继承 IcqListener 监听

嗯... 创建一个类, 写成上面那个样子就行了_(:з」∠)_

可用事件:
#### 可用事件:

| 事件类名 | 事件介绍 |
| :------------ | :------------ |
Expand Down Expand Up @@ -341,7 +342,7 @@ public class 类名随意 extends IcqListener // 必须继承 IcqListener 监听
| EventMetaLifecycle | 生命周期事件 |
| EventMetaHeartbeat | 心跳事件 |

##### 例子1:
#### 例子1:

```java
public class TestListener extends IcqListener
Expand All @@ -358,7 +359,7 @@ public class TestListener extends IcqListener
}
```

##### 例子2. 用事件监听实现消息替换过滤:
#### 例子2. 用事件监听实现消息替换过滤:

```java
public class TestFilter extends IcqListener
Expand All @@ -382,9 +383,9 @@ public class TestFilter extends IcqListener

<br>

#### 3. 发送/获取信息:
### 3. 发送/获取信息:

##### 获取`IcqHttpApi`对象:
#### 获取`IcqHttpApi`对象:

需要一个`IcqHttpApi`对象, **请不要使用全局变量存`IcqHttpApi`对象**<br>
其实监听器里的话直接用 `event.getHttpApi()` 就行了w<br>
Expand All @@ -395,33 +396,81 @@ public class TestFilter extends IcqListener
如果有多个账号, 要用所有账号的话,<br>
可以用 `bot.getAccountManager().getAccounts()` 获取账号列表循环一下w<br>

##### 发送/获取信息:
#### 发送/获取信息:

如果已经封装过了的话, 这样发送:

```java
icqHttpApi.封装方法名(参数); // 返回的就是响应数据啦w
```

例子1. 发送:
#### 封装方法列表:

| IcqHttpApi 封装方法 | 作用 |
| :------------ | :------------ |
| .sendPrivateMsg | 发送私聊消息 |
| .sendGroupMsg | 发送群聊消息 |
| .sendDiscussMsg | 发送讨论组消息 |
| .deleteMsg | 撤回消息 |
| .sendLike | 好友点赞 |
| .sendGroupNotice | 发送群公告 |
| .setGroupKick | 飞机票 |
| .setGroupBan | 群用户禁言 |
| .setGroupAnonymousBan | 群匿名用户禁言 |
| .setGroupWholeBan | 群全体禁言<br>(什么鬼方法名x<br>(怪 RC! (摔w |
| .setGroupAdmin | 设置管理员 |
| .setGroupAnonymous | 设置是否允许匿名 |
| .setGroupCard | 设置群备注 |
| .setGroupLeave | 退出群 |
| .setGroupSpecialTitle | 设置专属头衔 |
| .setDiscussLeave | 退出讨论组 |
| .setFriendAndRequest | 处理加好友请求 |
| .setGroupAndRequest | 处理加群请求 |
| .approveGroupRequest | 同意加群请求 |
| .rejectGroupRequest | 拒绝加群请求 |
| .setRestartPlugin | 重启插件 |
| .setRestartUnsafe | 重启酷Q (不安全) |
| .cleanDataDir | 清空数据文件夹 |
| .clearPluginLog | 清空插件日志 |
| .getLoginInfo | 获取登录号信息 |
| .getStrangerInfo | 获取陌生人信息 |
| .getVIPInfo | 获取会员信息 |
| .getGroupList | 获取群列表 |
| .getGroupMemberInfo | 获取群成员信息 |
| .getGroupInfo | 获取群信息 |
| .getGroupMemberList | 获取群成员列表 |
| .getFriendList | 获取好友列表 |
| .getRecord | 获取语音文件 |
| .getImage | 获取图片路径 (String) |
| .getImageFile | 获取图片路径 (File) |
| .getGroupNotices | 获取群公告列表 |
| .canSendImage | 能不能发图 |
| .canSendRecord | 能不能发语音 |
| .getVersionInfo | 获取版本信息 |
| .getCookies | 抢走曲奇w |
| .getCsrfToken | 获取 CSRF TOKEN |
| .getCredentials | 上面两个加起来 |
| .getStatus | 获取运行状态 |

#### 例子1. 发送:

```java
icqHttpApi.sendPrivateMsg(871674895, "hi"); // 给小桂发送"hi"
```

例子2. 获取:
#### 例子2. 获取:

```java
RStatus status = icqHttpApi.getStatus().getData(); // 获取当前运行状态
```

如果没有封装过的话, 或者想手动添加参数对的话, 这样发送:
#### 如果没有封装过的话, 或者想手动添加参数对的话, 这样发送:

```java
icqHttpApi.send(请求目标, 参数);
```

例子:
#### 例子:

```java
// 因为是隐藏接口, 就没有封装, 所以要用的话这样发送w
Expand All @@ -435,17 +484,12 @@ icqHttpApi.send(".handle_quick_operation",
"operation", ...);
```

##### 封装方法表:

小桂很懒w<br>
去看[IcqHttpApi.java](/src/main/java/cc/moecraft/icq/sender/IcqHttpApi.java)吧w (已经在JavaDocs里面说明了用处啦w)

##### 返回数据:
#### 返回数据:

大部分返回数据为 `ReturnData<Pojo 数据类>` 形式, 获取数据的话用 `response.getData()` 就行了w<br>
列表的话会返回 `ReturnListData<Pojo 数据类>` 形式.

##### 复杂的消息建造 (比如图片什么的) 用 MessageBuilder 类:
### 复杂的消息建造 (比如图片什么的) 用 MessageBuilder 类:

注意: `.add(Object)` 方法对于所有类型的对象都有效, 只要能 `toString()` 就行

Expand Down Expand Up @@ -481,7 +525,7 @@ new MessageBuilder()

<br>

#### 4. 指令
### 4. 指令

每一个指令需要单独创建一个类, 实现一个指令接口<br>
如果这个指令在所有消息环境内都能执行的话, 实现 `EverywhereCommand` 类<br>
Expand All @@ -508,7 +552,7 @@ public class CommandVersion implements EverywhereCommand // 实现EverywhereComm
{
// 处理, 返回值会自动回复回去
// 这里因为这个指令是用来查版本的, 所以直接返回字符串了
return "TestBot - PicqBotX v4.10.1.928";
return "TestBot - PicqBotX v4.11.0.971";
}
}
```
Expand All @@ -524,7 +568,7 @@ bot.getCommandManager().registerCommands(new 指令1(), new 指令2(), ...);
常见问题:
--------

#### Q: 为什么刚加的群不能回复消息?
### Q: 为什么刚加的群不能回复消息?

因为用户信息在账号管理器里缓存了啦...<br>
不会自动刷新的...<br>
Expand Down
Binary file added docs/._index.html
Binary file not shown.
Loading