[零基础]使用鹊桥实现Q群与服务器互通/搭建Nonebot机器人
警告:使用非官方机器人连接,有可能导致QQ账号被警告[封禁]
INFO:如果你只需要搭建机器人,就只需要看步骤一与步骤二
你需要准备的:
1.QQ账号*1
2.一台能够正常运转的Minecraft服务器
3.一台正常运行的云服务器
3.鹊桥 Mcmod: [QQ]鹊桥 (QueQiao) - MC百科|最大的Minecraft中文MOD百科
Github: 17TheWord/QueQiao: Minecraft 服务端 Mod/Plugin,实时接收玩家事件、API广播消息。
4.特殊情况

步骤1:安装Nonebot框架[两种方式,pip与pipx]
它们有什么区别?
摘自ChatGPT : Nonebot 官方推荐使用 pipx 安装命令行工具 nb,以避免污染全局 Python 环境。项目依赖管理则仍建议使用 venv + pip,符合 Python 社区的标准实践
方法一:使用pipx[摘自Github官方文档]
1.安装 pipx
python -m pip install --user pipx
python -m pipx ensurepath2.安装脚手架
pipx install nb-cli3.使用脚手架创建项目
nb create4.运行项目
nb run方法二:使用pip
1.安装 venv 虚拟环境以及其他依赖
sudo apt install python3 -y # 安装 Python 3
sudo apt install python3-pip -y # 安装 pip 包管理器
sudo apt install python3-venv -y # 安装 venv 模块,用于创建虚拟环境2.创建虚拟环境
cd / # 切换到根目录
mkdir nonebot # 创建 nonebot 文件夹
cd nonebot # 切换到 nonebot 文件夹
python3 -m venv new # 创建名为 new 的虚拟环境在当前目录3.激活虚拟环境
source /nonebot/new/bin/activate # 激活 /nonebot/new/bin/activate 虚拟环境4.安装nb-cli
pip install nb-cli4.1 如果遇到无法下载等问题,请尝试切换pip源
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/ #阿里源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple #清华源
pip config set global.index-url http://mirrors.cloud.tencent.com/pypi/simple #腾讯源
5.使用脚手架创建项目
nb create5.1选择bootstrap
5.2输入项目名
5.3选择OneBot v11[以及Minecraft通信适配如果你需要连接Minecraft服务器]
5.4安装依赖

5.5若使用pip选择n , 选择pipx选择y

5.6是否安装初步插件[可选]

6.运行Nonebot

cd new #进入安装的机器人的目录
nb run --reload #运行7.出现 Application Startup Complete 即为成功
8.进阶:后台运行 Nonebot [Screen命令]
这里使用screen命令来到达后台运行目的,同时也能便于管理
8.1 安装screen
sudo apt install screen8.2 创建新窗口
screeen -S new #创建一个名为new的新窗口[名称可更改]接下来即可在当前窗口里进行 开头的创建/运行 操作 [人话,重复一次之前的操作]
8.3 假设你已经在新的窗口里面成功运行了Nonebot,接下来需要分离窗口
摘自Debian官方
你可以通过任何方式 分离
screen会话。
残忍地拔掉你的网络连接
输入
^A d("Control-A" 接着按 "d") 从远程SSH连接分离Screen窗口,并回到远程SSH连接输入
^A DD("Control-A" 接着 按"DD") 分离screen并退出SSH登录
8.3回到原来到窗口
screen -ls #列出screen窗口列表
screen -r new #其中new为你自己设置的screen窗口名称8.4其他情况
在使用 Linux 的 screen 命令时,如果会话状态为 Attached(已连接),但实际上没有用户登录,可能会导致无法重新进入会话。这种情况下,可以通过强制断开并重新连接的方式解决问题。
步骤 1: 查看当前的 Screen 会话
首先,列出所有正在运行的 screen 会话:
screen -ls输出示例:
There are screens on:
12345.mySession (Attached)
67890.anotherSession (Detached)
2 Sockets in /run/screen/S-username
Attached 表示会话已连接。
Detached 表示会话已断开,可以直接进入。
步骤 2: 强制进入指定会话
如果目标会话状态为 Attached,可以使用以下命令强制断开并重新连接:
screen -D -r <session-id>例如:
screen -D -r 12345-D 参数:强制断开之前的连接。
-r 参数:重新连接到指定的会话。
步骤 3: 验证连接状态
成功进入后,可以通过以下命令确认当前会话是否正常运行:
screen -ls提示与注意事项
如果不确定会话 ID,可以通过 screen -ls 查看所有会话。
如果会话状态异常(如 Dead),可以清理无效的会话:
screen -wipe步骤二:连接到Nonebot
在只有


