MaiBot-Napcat-Adapter/command_args.md

476 lines
11 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# Command Arguments
```python
Seg.type = "command"
```
所有命令执行后都会通过自定义消息类型 `command_response` 返回响应,格式如下:
```python
{
"command_name": "命令名称",
"success": True/False, # 是否执行成功
"timestamp": 1234567890.123, # 时间戳
"data": {...}, # 返回数据(成功时)
"error": "错误信息" # 错误信息(失败时)
}
```
插件需要注册 `command_response` 自定义消息处理器来接收命令响应。
---
## 操作类命令
### 群聊禁言
```python
Seg.data: Dict[str, Any] = {
"name": "GROUP_BAN",
"args": {
"qq_id": "用户QQ号",
"duration": "禁言时长(秒)"
},
}
```
其中群聊ID将会通过Group_Info.group_id自动获取。
**当`duration`为 0 时相当于解除禁言。**
### 群聊全体禁言
```python
Seg.data: Dict[str, Any] = {
"name": "GROUP_WHOLE_BAN",
"args": {
"enable": "是否开启全体禁言True/False"
},
}
```
其中群聊ID将会通过Group_Info.group_id自动获取。
`enable`的参数需要为boolean类型True表示开启全体禁言False表示关闭全体禁言。
### 群聊踢人
将指定成员从群聊中踢出,可选拉黑。
```python
Seg.data: Dict[str, Any] = {
"name": "GROUP_KICK",
"args": {
"group_id": 123456789, # 可选,如果在群聊上下文中可从 group_info 自动获取
"user_id": 12345678, # 必需用户QQ号
"reject_add_request": False # 可选,是否群拉黑,默认 False
},
}
```
### 批量踢出群成员
批量将多个成员从群聊中踢出,可选拉黑。
```python
Seg.data: Dict[str, Any] = {
"name": "GROUP_KICK_MEMBERS",
"args": {
"group_id": 123456789, # 可选,如果在群聊上下文中可从 group_info 自动获取
"user_id": [12345678, 87654321], # 必需用户QQ号数组
"reject_add_request": False # 可选,是否群拉黑,默认 False
},
}
```
### 戳一戳
```python
Seg.data: Dict[str, Any] = {
"name": "SEND_POKE",
"args": {
"qq_id": "目标QQ号"
}
}
```
### 撤回消息
```python
Seg.data: Dict[str, Any] = {
"name": "DELETE_MSG",
"args": {
"message_id": "消息所对应的message_id"
}
}
```
其中message_id是消息的实际qq_id于新版的mmc中可以从数据库获取如果工作正常的话
### 给消息贴表情
```python
Seg.data: Dict[str, Any] = {
"name": "SET_MSG_EMOJI_LIKE",
"args": {
"message_id": "消息ID",
"emoji_id": "表情ID"
}
}
```
### 设置群名
设置指定群的群名称。
```python
Seg.data: Dict[str, Any] = {
"name": "SET_GROUP_NAME",
"args": {
"group_id": 123456789, # 可选,如果在群聊上下文中可从 group_info 自动获取
"group_name": "新群名" # 必需,新的群名称
}
}
```
### 设置账号信息
设置Bot自己的QQ账号资料。
```python
Seg.data: Dict[str, Any] = {
"name": "SET_QQ_PROFILE",
"args": {
"nickname": "新昵称", # 必需,昵称
"personal_note": "个性签名", # 可选,个性签名
"sex": "male" # 可选,性别:"male" | "female" | "unknown"
}
}
```
**返回数据示例:**
```python
{
"result": 0, # 结果码0为成功
"errMsg": "" # 错误信息
}
```
---
## 查询类命令
### 获取登录号信息
获取Bot自身的账号信息。
```python
Seg.data: Dict[str, Any] = {
"name": "GET_LOGIN_INFO",
"args": {}
}
```
**返回数据示例:**
```python
{
"user_id": 12345678,
"nickname": "Bot昵称"
}
```
### 获取陌生人信息
```python
Seg.data: Dict[str, Any] = {
"name": "GET_STRANGER_INFO",
"args": {
"user_id": "用户QQ号"
}
}
```
**返回数据示例:**
```python
{
"user_id": 12345678,
"nickname": "用户昵称",
"sex": "male/female/unknown",
"age": 0
}
```
### 获取好友列表
获取Bot的好友列表。
```python
Seg.data: Dict[str, Any] = {
"name": "GET_FRIEND_LIST",
"args": {
"no_cache": False # 可选,是否不使用缓存,默认 False
}
}
```
**返回数据示例:**
```python
[
{
"user_id": 12345678,
"nickname": "好友昵称",
"remark": "备注名",
"sex": "male", # "male" | "female" | "unknown"
"age": 18,
"qid": "QID字符串",
"level": 64,
"login_days": 365,
"birthday_year": 2000,
"birthday_month": 1,
"birthday_day": 1,
"phone_num": "电话号码",
"email": "邮箱",
"category_id": 0, # 分组ID
"categoryName": "我的好友", # 分组名称
"categoryId": 0
},
...
]
```
### 获取群信息
获取指定群的详细信息。
```python
Seg.data: Dict[str, Any] = {
"name": "GET_GROUP_INFO",
"args": {
"group_id": 123456789 # 可选,如果在群聊上下文中可从 group_info 自动获取
}
}
```
**返回数据示例:**
```python
{
"group_id": "123456789", # 群号(字符串)
"group_name": "群名称",
"group_remark": "群备注",
"group_all_shut": 0, # 群全员禁言状态0=未禁言)
"member_count": 100, # 当前成员数量
"max_member_count": 500 # 最大成员数量
}
```
### 获取群详细信息
获取指定群的详细信息(与 GET_GROUP_INFO 类似,可能提供更实时的数据)。
```python
Seg.data: Dict[str, Any] = {
"name": "GET_GROUP_DETAIL_INFO",
"args": {
"group_id": 123456789 # 可选,如果在群聊上下文中可从 group_info 自动获取
}
}
```
**返回数据示例:**
```python
{
"group_id": 123456789, # 群号(数字)
"group_name": "群名称",
"group_remark": "群备注",
"group_all_shut": 0, # 群全员禁言状态0=未禁言)
"member_count": 100, # 当前成员数量
"max_member_count": 500 # 最大成员数量
}
```
### 获取群列表
获取Bot加入的所有群列表。
```python
Seg.data: Dict[str, Any] = {
"name": "GET_GROUP_LIST",
"args": {
"no_cache": False # 可选,是否不使用缓存,默认 False
}
}
```
**返回数据示例:**
```python
[
{
"group_id": "123456789", # 群号(字符串)
"group_name": "群名称",
"group_remark": "群备注",
"group_all_shut": 0, # 群全员禁言状态
"member_count": 100, # 当前成员数量
"max_member_count": 500 # 最大成员数量
},
...
]
```
### 获取群@全体成员剩余次数
查询指定群的@全体成员剩余使用次数。
```python
Seg.data: Dict[str, Any] = {
"name": "GET_GROUP_AT_ALL_REMAIN",
"args": {
"group_id": 123456789 # 可选,如果在群聊上下文中可从 group_info 自动获取
}
}
```
**返回数据示例:**
```python
{
"can_at_all": True, # 是否可以@全体成员
"remain_at_all_count_for_group": 10, # 群剩余@全体成员次数
"remain_at_all_count_for_uin": 5 # Bot剩余@全体成员次数
}
```
### 获取群成员信息
获取指定群成员的详细信息。
```python
Seg.data: Dict[str, Any] = {
"name": "GET_GROUP_MEMBER_INFO",
"args": {
"group_id": 123456789, # 可选,如果在群聊上下文中可从 group_info 自动获取
"user_id": 12345678, # 必需用户QQ号
"no_cache": False # 可选,是否不使用缓存,默认 False
}
}
```
**返回数据示例:**
```python
{
"group_id": 123456789,
"user_id": 12345678,
"nickname": "昵称",
"card": "群名片",
"sex": "male", # "male" | "female" | "unknown"
"age": 18,
"join_time": 1234567890, # 加群时间戳
"last_sent_time": 1234567890, # 最后发言时间戳
"level": 1, # 群等级
"qq_level": 64, # QQ等级
"role": "member", # "owner" | "admin" | "member"
"title": "专属头衔",
"area": "地区",
"unfriendly": False, # 是否不友好
"title_expire_time": 1234567890, # 头衔过期时间
"card_changeable": True, # 名片是否可修改
"shut_up_timestamp": 0, # 禁言时间戳
"is_robot": False, # 是否机器人
"qage": "10年" # Q龄
}
```
### 获取群成员列表
获取指定群的所有成员列表。
```python
Seg.data: Dict[str, Any] = {
"name": "GET_GROUP_MEMBER_LIST",
"args": {
"group_id": 123456789, # 可选,如果在群聊上下文中可从 group_info 自动获取
"no_cache": False # 可选,是否不使用缓存,默认 False
}
}
```
**返回数据示例:**
```python
[
{
"group_id": 123456789,
"user_id": 12345678,
"nickname": "昵称",
"card": "群名片",
"sex": "male", # "male" | "female" | "unknown"
"age": 18,
"join_time": 1234567890,
"last_sent_time": 1234567890,
"level": 1,
"qq_level": 64,
"role": "member", # "owner" | "admin" | "member"
"title": "专属头衔",
"area": "地区",
"unfriendly": False,
"title_expire_time": 1234567890,
"card_changeable": True,
"shut_up_timestamp": 0,
"is_robot": False,
"qage": "10年"
},
...
]
```
### 获取消息详情
获取指定消息的完整详情信息。
```python
Seg.data: Dict[str, Any] = {
"name": "GET_MSG",
"args": {
"message_id": 123456 # 必需消息ID
}
}
```
**返回数据示例:**
```python
{
"self_id": 12345678, # Bot自身ID
"user_id": 87654321, # 发送者ID
"time": 1234567890, # 时间戳
"message_id": 123456, # 消息ID
"message_seq": 123456, # 消息序列号
"real_id": 123456, # 真实消息ID
"real_seq": "123456", # 真实序列号(字符串)
"message_type": "group", # "private" | "group"
"sub_type": "normal", # 子类型
"message_format": "array", # 消息格式
"post_type": "message", # 事件类型
"group_id": 123456789, # 群号(群消息时存在)
"sender": {
"user_id": 87654321,
"nickname": "昵称",
"sex": "male", # "male" | "female" | "unknown"
"age": 18,
"card": "群名片", # 群消息时存在
"level": "1", # 群等级(字符串)
"role": "member" # "owner" | "admin" | "member"
},
"message": [...], # 消息段数组
"raw_message": "消息文本内容", # 原始消息文本
"font": 0 # 字体
}
```
### 获取合并转发消息
获取合并转发消息的所有子消息内容。
```python
Seg.data: Dict[str, Any] = {
"name": "GET_FORWARD_MSG",
"args": {
"message_id": "7123456789012345678" # 必需合并转发消息ID字符串
}
}
```
**返回数据示例:**
```python
{
"messages": [
{
"sender": {
"user_id": 87654321,
"nickname": "昵称",
"sex": "male",
"age": 18,
"card": "群名片",
"level": "1",
"role": "member"
},
"time": 1234567890,
"message": [...] # 消息段数组
},
...
]
}
```