Skip to content

配置

在首次启动过后,OneDisc 会自动创建一个新的配置文件(config.json

json
{
    "account_token": "your token here",
    "system": {
        "proxy": "http://127.0.0.1:7890",
        "logger": {
            "level": 20
        }
    },
    "servers": []
}

机器人令牌(account_token

类型必须默认值
字符串

机器人令牌,用于 OneDisc 登陆 Bot 的账号

参见:如何创建 机器人令牌(Bot Token)

系统设置(system

类型必须默认值
对象

OneDisc 高级设置(无特殊需要不建议更改)

连接 Discord 时使用的代理(proxy

类型必须默认值
字符串 / 空

在群管理员变动事件中使用服务器ID(guild_id_for_group_admin

类型必须默认值
布尔false

启用后,将在群组管理员变动事件(notice.group_admin)中使用群组 ID 填入 group_id 字段,且群组管理员变动时只会触发一次事件

禁用后,群组管理员变动时将在每个频道触发一次 notice.group_admin 事件

仅在文字频道触发群管理员变动事件(group_admin_text_channel

类型必须默认值
布尔false

启用后,在群组管理员变动时,将不在非文字频道触发 notice.group_admin 事件

仅在 guild_id_for_group_adminfalse 时有效

是否启用群管理员变动事件(enable_group_admin

类型必须默认值
布尔true

日志记录工具配置(logger

类型必须默认值
对象{"level": 20}

配置日志记录工具时的参数,可参考 Python3 文档

合并转发图片类型(node_image_type

类型必须默认值
字符串jpg

将合并转发消息渲染为图片缓存并发送时使用的图片类型

数据库地址(database

类型必须默认值
字符串sqlite+aiosqlite:///:memory:

OneDisc 缓存消息使用的数据库地址

参考 Engine Configuration — SQLAlchemy 2.0 Documentation

不支持自动创建数据库

目前可执行版只支持 SQLite3,源码版使用其他数据库需要手动安装依赖

使用静态表情(use_static_face

类型必须默认值
布尔false

如启用,将在发送 CQ:face 时使用 QQ 表情包静态图

忽略不需要的实参(ignore_unneeded_args

类型必须默认值
布尔true

是否忽略动作请求中不需要的参数

如为 false,将在处理请求中发现不被动作需要的参数时返回 10004 - Unsupported Param

转义 text 段中的 MarkDown(escape_markdown

类型必须默认值
布尔false

默认最大成员数(default_max_member_count

类型必须默认值
数字-1

get_group_info (OneBot V11) 及有关接口 max_member_count 字段内容

位置消息段默认描述(location_default_content

类型必须默认值
字符串机器人向你发送了一个位置

合并转发换行符替换内容(node_linebreak_replacement

类型必须默认值
字符串<br>

解析合并转发消息节点时用于替换换行符(\n)内容

wkhtmltopdf 路径(wkhtmltopdf

类型必须默认值
字符串/空null

wkhtmltopdf 可执行程序路径

是否可以发送语音(can_send_record

类型必须默认值
布尔false

can_send_record (OneBot V11) 接口中 yes 字段内容

反向 WebSocket 最大消息大小(max_message_size

类型必须默认值
数字1048576

OneBot V11 和 OneBot V12 的反向 WebSocket 连接中最大消息大小,单位为字节,默认 1MB(即 2^20

如果在使用过程中出现以下错误请考虑增大这一配置项的数值:

python
websockets.exceptions.ConnectionClosedError: sent 1009 (message too big); no close frame received

跳过参数类型检查(skip_params_type_checking

类型必须默认值
布尔false

心跳元事件设置(heartbeat

类型必须默认值
对象{"enable": true, 'interval': 5000}

OneBot V12 心跳元事件设置

心跳事件开关(enable

类型必须默认值
布尔true

是否启用心跳元事件

心跳事件触发间隔(interval

类型必须默认值
数字5000

心跳元事件触发间隔(单位:毫秒)

下载重试次数(download_max_retry_count

类型必须默认值
数字0

upload_file 及相关动作下载出错时的重试次数

隔离动作(action_isolation

类型必须默认值
布尔false

启用后将禁止跨协议访问动作

是否忽略自身事件(ignore_self_events

类型必须默认值
布尔true

如果此项为true,将忽略由 Bot 自身触发的事件

允许罢工(allow_strike

类型必须默认值
布尔false

如果此项为true,将在请求每次执行动作时有10%的概率返回36000(I Am Tried)错误

在事件中使用空字符串代替不支持的子类型(use_empty_for_unsupported_subtype

类型必须默认值
布尔true

在事件上报中将不支持的子类型替换为空字符串(""

如在channel_message_delete事件中,由于discord.py限制,无法判断消息为主动删除还是被管理员删除,当use_empty_for_unsupported_subtypefalse时,这个事件的sub_type将被填入recall(发送者主动删除);当use_empty_for_unsupported_subtypetrue时,这个事件的sub_type将被填入空字符串

默认私聊消息子类型(default_message_sub_type

类型必须默认值
字符串friend

OneBot V11 中,私聊消息事件(message.private)的 sub_type 字段内容

缓存优先(cache_first

类型必须默认值
布尔false

此项为 true 时,当同一文件同时存在于缓存 URL 索引和本地储存库(.cache/files)时,优先保留缓存(删除本地储存文件)

此项为 false 时,将删除缓存库的索引

在启动时检查更新(check_update

类型必须默认值
布尔true

在全局范围同步命令(sync_globally

类型必须默认值
布尔false

这可能需要一些时间(大约为一个小时)

指令响应超时时的提示(command_timeout_message

类型必须默认值
字符串timeout

指令前缀(prefix

类型必须默认值
字符串/

在收到指令调用请求后添加的指令前缀

同步指令的频道(sync_guilds

类型必须默认值
数组[]

是否忽略不支持的消息段(ignore_unsupported_segment

类型必须默认值
布尔false

如为false,将在发送消息并解析到不支持的消息段时返回 10005 错误

启动完成日志提示内容(started_text

类型必须默认值
字符串OneDisc 已成功启动

OneDisc 完成启动后打印的日志的内容

是否启用两级群组事件(enable_channel_event

类型必须默认值
布尔false

如果此项为 true,将以 message.channel 事件推送消息

如为 false 将以 message.group 事件推送消息

连接方式(servers

类型必须默认值
数组

设置 OneDisc 的连接方式,可以创建多个连接方式

OneBot V12

HTTP
json
{
    "type": "http",
    "host": "0.0.0.0",
    "port": 8080,
    "protocol_version": 12,
    "access_token": null,
    "event_enabled": false,
    "event_buffer_size": 0
}
项目类型必须默认值备注
type字符串连接的类型,为http
protocol_version数字12协议版本,为 12
host字符串0.0.0.0HTTP 服务器 IP
port数字8080HTTP 服务器端口
access_token字符串/空null访问令牌
event_enabled布尔false是否启用 get_latest_events 元动作
event_buffer_size数字0事件缓冲区大小
HTTP WebHook
json
{
    "type": "http-webhook",
    "url": null,
    "protocol_version": 12,
    "access_token": null,
    "timeout": 0
}
项目类型必须默认值说明
type字符串连接类型,为http-webhook
protocol_version数字12协议版本,为 12
url字符串上报地址
access_token字符串/空null访问令牌
timeout数字0超时时间(单位毫秒,为0不启用)
WebSocket
json
{
    "type": "ws",
    "protocol_version": 12,
    "host": "0.0.0.0",
    "port": 5700,
    "access_token": null
}
项目类型必须默认值说明
type字符串连接类型,为ws
protocol_version数字12协议版本,为 12
port数字5700WebSocket 服务器端口
host字符串0.0.0.0WebSocket 服务器 IP
access_token字符串/空null访问令牌
反向 WebSocket
json
{
    "type": "ws-reverse",
    "url": "",
    "protocol_version": 12,
    "access_token": null,
    "reconnect_interval": 5000
}
项目类型必须默认值说明
type字符串连接类型,为ws-reverse
protocol_version数字12协议版本,为 12
url字符串WebSocket 客户端连接地址
access_token字符串/空null访问令牌
reconnect_interval数字5000重连间隔(单位毫秒)

OneBot V11

TIP

在所有采用 OneBot V11 标准的连接中,请确保指定 "protocol_version": 11(默认值为 12 )。

若不正确设定,将会收到「无效的连接类型或协议版本」的提示。

HTTP
json
{
    "type": "http",
    "protocol_version": 11,
    "host": "0.0.0.0",
    "port": 5700,
    "access_token": null
}
项目类型必须默认值说明
type字符串连接类型,为 http
protocol_version数字12协议版本,为 11
host字符串0.0.0.0HTTP 服务器 IP
port数字5700HTTP 服务器端口
access_token字符串/空null访问令牌
HTTP Post
json
{
    "type": "http-post",
    "protocol_version": 11,
    "url": "",
    "timeout": 0,
    "secret": null
}
项目类型必须默认值说明
type字符串连接类型,为 http
protocol_version数字12协议版本,为 11
url字符串HTTP 连接地址
secret字符串/空null请求密钥
WebSocket
json
{
    "type": "ws",
    "protocol_version": 11,
    "host": "0.0.0.0",
    "port": 6700,
    "access_token": null
}
项目类型必须默认值说明
type字符串连接类型,为ws
protocol_version数字12协议版本,为 11
port数字6700WebSocket 服务器端口
host字符串0.0.0.0WebSocket 服务器 IP
access_token字符串/空null访问令牌
反向 WebSocket
json
{
    "type": "ws-reverse",
    "protocol_version": 11,
    "url": "",
    "api_url": "",
    "event_url": "",
    "reconnect_interval": 3000,
    "use_universal_client": false,
    "access_token": null
}
项目类型必须默认值说明
type字符串连接类型,为ws-reverse
protocol_version数字12协议版本,为 11
url字符串WebSocket 服务器地址
api_url字符串WebSocket API 服务器地址,为空时填入 url 字段的配置
event_url字符串WebSocket Event 服务器地址,为空时填入 url 字段的配置
use_universal_client布尔false是否启用 WebSocket Universal 客户端
access_token字符串/空null访问令牌