L4D2 server related operations plugin for NoneBot
Project description
主要功能
- 求生服务器本地操作
- 查询指定ip服务器状态和玩家
- 求生电信服anne查询~
安装
1、nb plugin install nonebot_plugin_l4d2_server
2、pip install nonebot_plugin_l4d2_server
3、Download zip
前置操作
-
如果要操作求生服务器文件,机器人与求生服务器处于同一个服务器上
-
如果你按照以下步骤操作,env配置可以不填
-
创建一个steam求生服务器(预计需要储存14G)
展开/收起
以ubuntu为例,具体教程建议自行搜索,其中路径可以自行替换
-
安装32位运行库
sudo apt-get update sudo apt-get upgrade sudo apt-get install lib32gcc1
-
下载steam
mkdir ~/steamcmd cd ~/steamcmd wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz tar -zxvf steamcmd_linux.tar.gz ./steamcmd.sh
-
下载l4d2文件
Steam> force_install_dir /home/ubuntu/coop Steam> login anonymous Steam>app_update 222860 validate
出现Success! App ‘222860’ fully installed后,输入quit或者exit
-
创建启动脚本
sudo vi /home/ubuntu/coop/cfg/server.cfg
写入
hostname "xxx" //游戏服务器名(英文)
rcon_password "114514" //rcon密码
sv_steamgroup "114514" //Steam组号
sv_steamgroup_exclusive 1 //将服务器设为Steam组私有
sm_cvar sv_gametypes "coop"//设置游戏模式为合作
//设为1可防止玩家加入感染者方,仅战役模式
sm_cvar director_no_human_zombies "1"
mp_gamemode "coop"//激活游戏模式为合作
sm_cvar z_difficulty "Hard"//设置游戏难度为困难
sv_tags "hidden" //防止DDOS
sm_cvar sv_region 4// 设定服务器区域为亚洲
sv_visiblemaxplayers 8 //服务器可见最大玩家数
maxplayers 8 //最大玩家数
:wq回车保存
cd ~
sudo vi start.sh
在脚本里写入
cd /home/ubuntu/l4d2
sudo ./srcds_run -game left4dead2 -condebug -tickrate 60 +exec server.cfg +map c2m1_highway
-
启动游戏
cd ~ sh start.sh
✅ env配置
###建议填写
配置项 | 必填 | 默认值 | 说明 |
---|---|---|---|
l4_file | 否 | "/home/ubuntu/l4d2/coop" | str,输入求生服务器的绝对路径,该目录下有游戏启动程序srcds_run |
l4_host | 否 | '127.0.0.1' | str,服务器ip,如果是本机一般就是默认 |
l4_port | 否 | 20715 | int,服务器端口号 |
l4_rcon | 否 | '114514' | str,服务器的rcon密码 |
###可选填写
配置项 | 必填 | 默认值 | 说明 |
---|---|---|---|
l4_steamid | 否 | False | 布尔值,默认在输出时隐藏steamid,需要则设置为True |
l4_image | 否 | True | 布尔值,是否显示图片 |
l4_font | 否 | 'simsun.ttc' | str,确保在开启图片的时候,字体存在 |
🤔 功能
服务器
(被动)上传地图:私发压缩包zip/vpk文件给机器人,就可以直接上传地图到服务器了
指令 | 范围 | 用途 | 说明 |
---|---|---|---|
求生地图/查看求生地图 | 所有人 | 看图 | 获取当前路径下所有的vpk文件,并输出目录 |
(求生)地图删除[number] | 群管/超管 | 删图 | 根据求生地图列出的序号,删除地图,[number]可以在第二条消息内输入 |
求生地图[number][改/改名][text] | 群管/超管 | 改图名 | [number]同上,text为更改后名称,如果没有.vpk后缀会自动加上 |
求生服务器指令[text] | 群管/超管 | 控制台 | rcon连接求生服务器控制台,建议设置l4_host、l4_port、l4_rcon,l4_rcon不设置会尝试自动获取 |
anne(电信服)
指令 | 范围 | 用途 | 说明 |
---|---|---|---|
求生anne[text]/@/[None] | 所有人 | 查anne成绩 | [text]可以是:空白(则使用绑定信息) |
求生绑定/steam绑定/anne绑定[text] | 所有人 | 绑定steam信息 | [text]可以是:昵称 |
求生解绑/steam解绑/anne解绑 | 所有人 | 解绑steam信息 | 无 |
🤔 FAQ
Q:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd0 in position xxx: invalid continuation byte A:说明rcon连接服务器时返回了乱码,有可能读取的信息包含表情包或者其他不明字符,我的方法是找到本地pypi包的rcon,编辑rcon/source/async_rcon.py,找到return response.payload.decode(encoding)并替换为return response.payload.decode(encoding,errors='ignore')
📝 TODO LIST
展开/收起
- anne信息绑定qq号
- 帮助命令
- 支持修改下载地图,在服务器端的名称
- 支持查询并删除服务器已有地图文件
- 支持查询本地求生服务器状态
- 使用sql替换数据保存方式
- 通过ip查询指定求生服务器状态
- 在q群里执行服务器指令
🐛 已知BUG
- 无法在python3.10版本下解压7z格式压缩包
- 所有人都可以私聊发送文件
- 更改地图名称后,排序会错误
- 服务器指令如果使用更换地图或重启,服务器会因为无响应,而返回无法连接
✨ 效果展示
anne:
群聊:
私聊:
🔖 更新日志
展开/收起
0.1.6
- 新增ip查询服务器提供玩家数量和名字
- 增加协程函数修复因为加载顺序导致的错误
- 更新自己的第三方库VSQ==0.0.4
0.1.5
- 新增服务器控制台指令,新增依赖rcon
- 重新了数据库,不再使用json而是使用sql3
- 改写了求生anne信息显示方式:如果单个数据以图片显示,如果多个数据以文字显示
0.1.4
- 新增求生anne详情(看排名)
- 所有的请求改为httpx
- 更新了anne信息图片
- 可选使用模拟谷歌浏览器来获取anne更多数据(
有点屎了,希望大佬救救)
0.1.3
- 新增绑定昵称和steamid
- 新增可以艾特人查询anne成绩
- 新增解绑信息
0.1.2
- 新增支持图片输出
- 新增查询anne服数据
0.1.1
- 新增删除地图
- 新增地图改名
- 新增支持图片输出
0.1.0
- 集中修复了Bug
0.0.9
- 新增上传地图后,检测对比回复新地图名字
- 修复中文名乱码问题
0.0.8
- 支持vpk格式地图
- 支持查看所有vpk格式文件
0.0.6
- 修复了7z压缩包的方式,优化代码
0.0.1
- 插件初次发布,可私聊添加地图
✨ 开发环境
win10 python3.9
ubuntu20.04 python3.10
感谢
- 1、修仙插件的数据库写法
- 2、自己写的求生之路查询库
- 3、可爱小Q的帮助
还没抄完
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for nonebot-plugin-l4d2-server-0.1.6.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | c6f213434e85d1ce7877135fb36ae6d154abbe83d2ed6f7ffbffbbbe0676ae5f |
|
MD5 | 2889a001df8d83db56a76de9175951b3 |
|
BLAKE2b-256 | 4ff660b57b2c1cbc7124631fd18e943505df561610100a31a4006f802c592e91 |
Hashes for nonebot_plugin_l4d2_server-0.1.6-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 27d76d2502b4bd763f6120697fe1d711144be864ec4db84de6d470e69f7a7420 |
|
MD5 | 5f03068ea85783b659abe7d9ed628cab |
|
BLAKE2b-256 | 00aa772e6291e362be3dbc7914156057c24a89e05c0ebfa699b0dd9af1ad61ad |