# 以旁路模式运行bot

## 解释

旁路模式仅是本项目对该功能的称呼，它也可以叫做消息透传、回调透传等。主要特点是能以多个实例进程运行bot

## 原理

由于bot自身开发框架的优势，使用MTProto协议可以在多个tg的api上运行bot实例，这意味者可以一个bot-token同时开多个主端，相互不影响。但是多个主端的情况下，同一个指令就会有多次响应，这时候的解决方案是，让不同的bot实例响应不重复的指令，旁路模式应运而生。

以旁路模式运行，用户可以自定义想要在当前实例进程启用的bot指令，未被启用的指令将不会响应。在内部机制上，将禁用该指令的响应触发条件。

## 用法

想要启用旁路模式很简单，配置中加入以下配置：

```yaml
bot:
  bypassMode: true #  是否将bot设置为旁路模式，设置为旁路模式后，bot原本内置的所有指令都将失效。取而代之仅生效下面bot.commands配置的指令。
```

## 效果

启动旁路模式后，仅会对当前实例进程配置中的自定义指令生效。例如：

```yaml
bot:
  commands:
    - name: ping
      pin: true
      text: 📶 进行延迟测试
      rule: ping
      attachToInvite: false
      enable: true # 设置为true，且是在旁路模式下，该指令会响应。
    - name: speed
      enable: false # 设置为false，且是在旁路模式下，则该指令不会响应
```

## 多开Bot

如果你有进一步需求，可以多开bot实例，具体做法是，将bot程序所在文件夹原封不动地复制一份。然后在配置文件里更改 bot.api-hash 与 bot.api-id
