nonebot-plugin-l4d2-server 0.4.0a1__py3-none-any.whl → 0.4.0b2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  <div align="center">
2
- <img src="http://124.223.41.76:9091/index.php/s/RJ3EcJ6t6v26y6Z/download" width="180" height="180" alt="NoneBotPluginLogo">
2
+ <img src="https://raw.githubusercontent.com/Umamusume-Agnes-Digital/nonebot_plugin_l4d2_server/main/image/logo.png" width="180" height="180" alt="AgnesDigitalLogo">
3
3
  <br>
4
4
  <p><img src="https://s2.loli.net/2022/06/16/xsVUGRrkbn1ljTD.png" width="240" alt="NoneBotPluginText"></p>
5
5
  </div>
@@ -8,7 +8,11 @@
8
8
 
9
9
  # nonebot_plugin_l4d2_server
10
10
  _✨Nonebot & Left 4 Dead 2 server操作✨_
11
-
11
+ <div align = "center">
12
+ <a href="https://github.com/Umamusume-Agnes-Digital/nonebot_plugin_l4d2_server/wiki/%E6%96%87%E6%A1%A3" target="_blank">文档</a> &nbsp; · &nbsp;
13
+ <a href="https://github.com/Umamusume-Agnes-Digital/nonebot_plugin_l4d2_server/wiki/%E6%96%87%E6%A1%A3#zl" target="_blank">指令列表</a> &nbsp; · &nbsp;
14
+ <a href="https://github.com/Umamusume-Agnes-Digital/nonebot_plugin_l4d2_server/wiki/BUG%E5%8F%8D%E9%A6%88">常见问题</a>
15
+ </div><br>
12
16
  <a href="https://github.com/Umamusume-Agnes-Digital/nonebot_plugin_l4d2_server/stargazers">
13
17
  <img alt="GitHub stars" src="https://img.shields.io/github/stars/Umamusume-Agnes-Digital/nonebot_plugin_l4d2_server" alt="stars">
14
18
  </a>
@@ -24,20 +28,22 @@ _✨Nonebot & Left 4 Dead 2 server操作✨_
24
28
  <a href="https://pypi.python.org/pypi/nonebot_plugin_l4d2_server">
25
29
  <img src="https://img.shields.io/pypi/dm/nonebot_plugin_l4d2_server" alt="pypi download">
26
30
  </a>
27
- <img src="https://img.shields.io/badge/python-3.7+-blue.svg" alt="python">
28
- <img src="https://img.shields.io/badge/nonebot-2.0.0rc1+-red.svg" alt="NoneBot">
31
+ <img src="https://img.shields.io/badge/python-3.8+-blue.svg" alt="python">
32
+ <img src="https://img.shields.io/badge/nonebot-2.0.0rc3-red.svg" alt="NoneBot">
29
33
  </div>
30
34
 
31
- # 导航
32
35
 
33
- - [主要功能](#gn)
34
- - [安装](#az)
35
- - [env一键设置](#env)
36
- - [前置操作](#qz)
37
- - [指令](#zl)
38
- - [env参数](#cs)
39
- - [感谢](#ty)
40
- - [内置的查询ip](#cx)
36
+ ## 快速使用(env示例)
37
+ # 复制到env文件里,没有默认就是下列值,如需修改安装下面env设置
38
+ # 所有的多选,用逗号隔开
39
+ l4_master = ['1145149191']
40
+ l4_file = ['/home/ubuntu/l4d2/coop']
41
+ l4_host = ['127.0.0.1']
42
+ l4_port = ['20715']
43
+ l4_rcon = ['1145149191810']
44
+ l4_font = 'simsun.ttc'
45
+ l4_tag = ['呆呆']
46
+ l4_only = True
41
47
 
42
48
  <h2 id="gn">主要功能</h2>
43
49
 
@@ -47,256 +53,27 @@ _✨Nonebot & Left 4 Dead 2 server操作✨_
47
53
  - [求生电信服anne](https://github.com/fantasylidong/CompetitiveWithAnne)[查询~](https://sb.trygek.com/l4d_stats/ranking/index.php)
48
54
 
49
55
 
50
- <h2 id="az">安装</h2>
51
-
52
- 1、nb plugin install nonebot_plugin_l4d2_server
53
- 2、pip install nonebot_plugin_l4d2_server
54
- 3、Download zip
55
- 4、git clone https://github.com/Umamusume-Agnes-Digital/nonebot_plugin_l4d2_server.git
56
-
57
- <h2 id="env">快速使用(env示例)</h2>
58
-
59
- # 复制到env文件里,没有默认就是下列值,如需修改安装下面env设置
60
- # 所有的多选,用逗号隔开
61
- l4_master = ['1145149191']
62
- l4_file = ['/home/ubuntu/l4d2/coop']
63
- l4_host = ['127.0.0.1']
64
- l4_port = ['20715']
65
- l4_rcon = ['1145149191810']
66
- l4_font = 'simsun.ttc'
67
- l4_only = True
68
-
69
- <h2 id="qz">前置游戏操作 </h2>
70
-
71
- - 如果要操作求生服务器文件,机器人与求生服务器处于同一个服务器上
72
-
73
- - 如果你按照以下步骤操作,env配置可以不填
74
-
75
- - 创建一个steam求生服务器(预计需要储存14G)
76
-
77
-
78
- <details>
79
- <summary>展开/收起</summary>
80
-
81
-
82
- ### 以ubuntu为例,具体教程建议自行搜索,其中路径可以自行替换
83
-
84
- - 安装32位运行库
85
-
86
- sudo apt-get update
87
- sudo apt-get upgrade
88
- sudo apt-get install lib32gcc1
89
-
90
- - 下载steam
91
-
92
- mkdir ~/steamcmd
93
- cd ~/steamcmd
94
- wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
95
- tar -zxvf steamcmd_linux.tar.gz
96
- ./steamcmd.sh
97
-
98
- - 下载l4d2文件
99
-
100
- Steam> force_install_dir /home/ubuntu/coop
101
- Steam> login anonymous
102
- Steam>app_update 222860 validate
103
- 出现Success! App ‘222860’ fully installed后,输入quit或者exit
104
-
105
- - 创建启动脚本
106
-
107
- sudo vi /home/ubuntu/coop/cfg/server.cfg
108
- 写入
56
+ <h2 id="gn">如何获取key</h2>
109
57
 
110
- hostname "xxx" //游戏服务器名(英文)
111
- rcon_password "114514" //rcon密码
112
- sv_steamgroup "114514" //Steam组号
113
- sv_steamgroup_exclusive 1 //将服务器设为Steam组私有
114
- sm_cvar sv_gametypes "coop"//设置游戏模式为合作
115
- //设为1可防止玩家加入感染者方,仅战役模式
116
- sm_cvar director_no_human_zombies "1"
117
- mp_gamemode "coop"//激活游戏模式为合作
118
- sm_cvar z_difficulty "Hard"//设置游戏难度为困难
119
- sv_tags "hidden" //防止DDOS
120
- sm_cvar sv_region 4// 设定服务器区域为亚洲
121
- sv_visiblemaxplayers 8 //服务器可见最大玩家数
122
- maxplayers 8 //最大玩家数
123
-
124
- :wq回车保存
125
-
126
- cd ~
127
- sudo vi start.sh
128
-
129
- 在脚本里写入
130
-
131
- cd /home/ubuntu/l4d2
132
- sudo ./srcds_run -game left4dead2 -condebug -tickrate 60 +exec server.cfg +map c2m1_highway
133
-
134
- - 启动游戏
135
-
136
- cd ~
137
- sh start.sh
138
-
139
- </details>
140
-
141
-
142
- <h2 id="zl">🤔 功能(指令)</h2>
143
-
144
-
145
- ### 服务器
146
-
147
- (被动)上传地图:设置l4_master后,在群内发送压缩包zip/vpk/7z/rar,就可以直接上传地图到服务器了
148
- 如果设置了管理员,那么在群里也响应
149
- [ip]格式为[127.0.0.1:20715]括号内
150
-
151
- 求生帮助:获取简单的帮助列表
152
-
153
- <details>
154
- <summary>展开/收起</summary>
155
-
156
- | 指令 | 范围 | 用途 | 说明 |
157
- |:-----:|:----:|:----:|:----:|
158
- | 求生地图/查看求生地图 | 所有人 | 看图 | 获取当前路径下所有的vpk文件,并输出目录 |
159
- | (求生)地图删除[number] | 群管/超管 | 删图 | 根据求生地图列出的序号,删除地图,[number]可以在第二条消息内输入 |
160
- | 求生地图[number][改/改名][text] | 群管/超管 | 改图名 | [number]同上,text为更改后名称,如果没有.vpk后缀会自动加上 |
161
- | 求生服务器指令[text] | 群管/超管 | 控制台 | rcon连接求生服务器控制台,使用ip和passsword |
162
- | 求生路径 | 群管/超管 | 查看路径 | 查看当前服务器路径 |
163
- | 求生路径切换[number] | 群管/超管 | 切换路径 | 切换本地服务器路径 |
164
-
165
- ### anne(电信服)
166
-
167
- | 指令 | 范围 | 用途 | 说明 |
168
- |:-----:|:----:|:----:|:----:|
169
- | 探监/坐牢/开牢 | 所有人 | 随机抽一个目标云服 | 探监是得分超过160的队伍\n坐牢是缺人队伍\n开牢是空人房间 |
170
- | 求生anne[text]/@/[None] | 所有人 | 查anne成绩 | [text]可以是:空白(则使用绑定信息)、昵称、steamid、@user |
171
- | 求生绑定/steam绑定/anne绑定[text] | 所有人 | 绑定steam信息 | [text]可以是:昵称、steamid |
172
- | 求生解绑/steam解绑/anne解绑 | 所有人 | 解绑steam信息 | 无 |
173
- | 云[number] | 所有人 | 云服信息 | 获取服务器状态和直连ip |
58
+ 为了使得ip不被滥用,我采取这种方式管理。
59
+ [点击这里加群](https://jq.qq.com/?_wv=1027&k=HdjoCcAe)
60
+ 如果你只查询自己的服务器ip则可以忽略如下,并且更改env设置:
174
61
 
62
+ l4_tag = []
175
63
 
176
- ### ip(服务器查询)
177
-
178
- | 指令 | 范围 | 用途 | 说明 |
179
- |:-----:|:----:|:----:|:----:|
180
- | 求生ip[ip] | 所有人 | 查指定服务器 | [text]格式为[127.0.0.1:20715]括号内,可以查询服务器玩家名字 |
181
- | 求生订阅[ip] | 所有人 | 查询订阅服务器状态 | 返回一个图片\n显示群所有订阅的服务器名字、状态、地图、玩家名字 |
182
- | 求生加入[number] | 所有人 | 获取进服直链 | [number]为求生订阅所显示的开头序号 |
183
- | 求生添加订阅[ip] | 群管 | 群订阅添加 | 新增订阅ip,在下次订阅的时候可以显示 |
184
- | 求生取消订阅[number] | 所有人 | 群订阅取消 | [number]为求生订阅所显示的开头序号 |
185
- | 求生更新 添加 [tag] [ip] [text] ([number]) | 群管 | 全局订阅添加 | 可以使用tag(+text)(+number)快速索引服务 |
186
- | 求生更新 删除 [tag] [number] | 群管 | 全局订阅添加 | [number]为求生订阅标记的默认序号 |
187
- | 求生更新 | 群管 | 刷新缓存 | 一般用不到,如果卡指令可能有用 |
188
-
189
- ### 其他功能
190
-
191
- | 指令 | 范围 | 用途 | 说明 |
192
- |:-----:|:----:|:----:|:----:|
193
- | 创意工坊下载[text] | 所有人 | 下载创意工坊文件 | [text]为id或者网页url |
194
- | 求生喷漆 | 所有人 | 制作一个喷漆 | 只支持图片暂不支持gif |
195
-
196
- </details>
197
-
198
- <h2 id="cs">✅ env配置</h2>
199
-
200
- <details>
201
- <summary>展开/收起</summary>
202
-
203
- ### 本地服务器相关
204
- | 配置项 | 必填 | 默认值 | 说明 |
205
- |:-----:|:----:|:----:|:----:|
206
- | l4_master | 是 | ['1145149191'] | list,里面是可以在群里传求生地图的qq号
207
- | l4_file | 否 | ["/home/ubuntu/l4d2/coop"] | 输入求生服务器的绝对路径,该目录下有游戏启动程序srcds_run |
208
- | l4_host | 否 | ['127.0.0.1'] | 服务器ip,如果是本机一般就是默认 |
209
- | l4_port | 否 | ['20715'] | 服务器端口号 |
210
- | l4_rcon | 否 | ['114514'] | 服务器的rcon密码 |
211
-
212
- ### 可选填写
213
- | 配置项 | 必填 | 默认值 | 说明 |
214
- |:-----:|:----:|:----:|:----:|
215
- | l4_steamid | 否 | False | 布尔值,默认在输出时隐藏steamid,需要则设置为True |
216
- | l4_image | 否 | True | 布尔值,是否显示图片 |
217
- | l4_font | 否 | 'simsun.ttc' | str,确保在开启图片的时候,字体存在 |
218
- | l4_only | 否 | False | 布尔值,如果不想在下载的时候阻碍其他指令可以开启,但是有不能下载超过200m地图的bug |
219
- | l4_style | 否 | '' | str,图片风格,目前可选['balck'] |
220
-
221
-
222
- </details>
223
-
224
- ## ✨ 效果展示
225
-
226
- 订阅:<br>
227
- ![ip](image/ip_server.png)<br>
228
- anne:<br>
229
- ![anne](image/anne.png)<br>
230
- 群聊:<br>
231
- ![list](image/list.png)<br>
232
- 私聊:<br>
233
- ![up](image/up.png)<br>
234
-
235
- ## 🤔 FAQ
236
-
237
- Q:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd0 in position xxx: invalid continuation byte</b>
238
-
239
- A:说明rcon连接服务器时返回了乱码,有可能读取的信息包含表情包或者其他不明字符,我的方法是找到本地pypi包的rcon,编辑rcon/source/async_rcon.py,找到return response.payload.decode(encoding)并替换为return response.payload.decode(encoding,errors='ignore')
240
-
241
-
242
- Q:ModuleNotFoundError: No module named '_lzma'
243
-
244
- A:python3.3版本后常见,解决方法是
245
- vim /usr/local/lib/python3.10/lzma.py
246
- #修改前
247
- from _lzma import *
248
- from _lzma import _encode_filter_properties, _decode_filter_properties
249
- #修改后
250
- try:
251
- from _lzma import *
252
- from _lzma import _encode_filter_properties, _decode_filter_properties
253
- except ImportError:
254
- from backports.lzma import *
255
- from backports.lzma import _encode_filter_properties, _decode_filter_properties
256
-
257
- - 解压功能
258
-
259
- # rar压缩包
260
- # win直接下winRAR软件就可以
261
- # Ubuntu 和 Debian
262
- sudo wget https://www.rarlab.com/rar/rarlinux-x64-621b1.tar.gz
263
- sudo tar -xzpvf rarlinux-x64-621b1.tar.gz
264
- cd rar
265
- sudo make
266
-
267
-
268
- ## 📝 TODO LIST
269
-
270
- <details>
271
- <summary>展开/收起</summary>
272
-
273
- - [ ] 帮助命令
274
- - [x] 创意工坊内容下载并上传q群
275
- - [ ] 求生每日签到/抽签
276
- - [ ] 按照数值自定义绘画信息图片
277
- - [ ] 支持直接修改本地cfg文件
278
- - [ ] ~支持远程连接求生服务器并操作~
279
-
280
- </details>
281
-
282
- ## 🐛 已知BUG
283
-
284
- <details>
285
- <summary>展开/收起</summary>
286
-
287
- - [ ] 更改地图名称后,排序会错误
288
- - [ ] 求生喷漆可加载但无法输出
289
-
290
- </details>
291
64
 
292
65
  ## 🔖 更新日志
293
66
 
294
67
  <details>
295
68
  <summary>展开/收起</summary>
296
69
 
297
- ### 0.3.8--2022.3
70
+
71
+ ### 0.4.0--2022.3
298
72
 
299
73
  - 新增web控制台
74
+ - 修复传图超时参数错误
75
+ - 重写求生ip获取方法 ~ 数据库苦手 ~
76
+ - 重写文档
300
77
 
301
78
  ### 0.3.7--2022.3
302
79
 
@@ -469,35 +246,34 @@ anne:<br>
469
246
 
470
247
  </details>
471
248
 
472
- ## 开发环境
473
- win10 python3.9 <br>
474
- ubuntu20.04 python3.10
475
-
476
- ## 📖许可证GPL3.0
249
+ ## 🙈 其他
477
250
 
478
- This project is licensed under the GNU General Public License v3.0. See the LICENSE file for more information.
251
+ + 本人技术很差,如果您有发现BUG或者更好的建议,欢迎提Issue & Pr
252
+ + 如果本插件对你有帮助,不要忘了点个Star~
253
+ + 本项目仅供学习使用,请勿用于商业用途
254
+ + [GPL-3.0 License](https://github.com/Umamusume-Agnes-Digital/nonebot_plugin_l4d2_server/blob/main/LICENSE) ©[@Umamusume-Agnes-Digital](https://github.com/Umamusume-Agnes-Digital)
255
+
479
256
 
480
257
 
481
- <h2 id="ty">🌐感谢</h2>
258
+ <h2 id="ty">🌐 感谢</h2>
482
259
 
483
- - 1、[修仙插件的数据库写法](https://github.com/s52047qwas/nonebot_plugin_xiuxian)
484
- - 2、~[自己写的求生之路查询库](https://github.com/Umamusume-Agnes-Digital/VSQ)~
485
- - 3、[可爱小Q的帮助(太好看了tql)](https://github.com/MeetWq/mybot)
486
- - 4、感谢petpet交流群各位大佬指点nonebot2事件处理api
487
- - 5、ArcPav改的暗♂黑风格菜单
488
- - 6、呆呆整理的三方地图表格和个人网盘
260
+ - [修仙](https://github.com/s52047qwas/nonebot_plugin_xiuxian) - 数据库的写法来自于他
261
+ - ~ [自己写的求生之路查询库](https://github.com/Umamusume-Agnes-Digital/VSQ) ~已弃用
262
+ - [@MeetWq](https://github.com/MeetWq) - 非常热心解答nonebot2相关的写法
263
+ - [可爱小Q](https://github.com/MeetWq/mybot) - 服务器图片写法参考小Q帮助
264
+ - [群聊学习](https://github.com/CMHopeSunshine/nonebot-plugin-learning-chat) - web控制台的写法来自于他
265
+ - [gsuid](https://github.com/KimigaiiWuyi/GenshinUID) - readme和wiki的格式参考
266
+ - 呆呆 - 提供三方地图的详细数据
489
267
 
490
- <h2 id="cx">服务器相关 </h2>
491
-
492
- 目前插件会内置经腐竹同意的服的查询(未来将使用api)
268
+ <h2 id="ty">🌐 默认服务器</h2>
269
+ 目前**已授权**的服务器查询,如果需要加入自己的ip可以进qq群私聊群主
493
270
 
494
271
  | 指令 | 服务器 | op | 数量 |
495
272
  |:-----:|:----:|:----:|:----:|
496
- | 云 | ~anne电信服云服~(暂时不提供) | 东 | 22
273
+ | 云 | anne电信服云服 | 东 | 22
497
274
  | 呆呆 | 呆呆的小窝 | 提莫大魔王 | 15
498
275
  | 橘 | 橘希实香的小窝 | 橘希实香 | 8
499
276
  | 竹 | 竹烨 | 竹烨oО柠檬茶 | 9
277
+ | 音理 | 星空列车与白的旅行 | 音理 | 2
500
278
 
501
- 如果需要上传自己的ip可以Pr、iss或者进qq群
502
-
503
- [pr修改这个文件](https://github.com/Umamusume-Agnes-Digital/nonebot_plugin_l4d2_server/blob/main/nonebot_plugin_l4d2_server/data/L4D2/l4d2.json)
279
+ **如果提供了ip,那么我只能尽可能保证您的ipv4不会泄漏,如果无法承担风险则请勿提供ip**
@@ -20,6 +20,8 @@ from nonebot.params import CommandArg,ArgPlainText,RegexGroup,Arg,RawCommand,Com
20
20
 
21
21
  from typing import Tuple,Union,List
22
22
  from time import sleep
23
+ import asyncio
24
+
23
25
  from .config import *
24
26
  from .utils import *
25
27
  from .command import *
@@ -29,9 +31,9 @@ from .l4d2_data import sq_L4D2
29
31
  from nonebot import get_driver, require
30
32
  from .l4d2_image.vtfs import img_to_vtf
31
33
  from .l4d2_queries.ohter import load_josn
32
- from .l4d2_queries.qqgroup import write_json,ip_anne_list
34
+ from .l4d2_queries.qqgroup import write_json
33
35
  from .l4d2_file import updown_l4d2_vpk,all_zip_to_one
34
- from .l4d2_queries.maps import seach_map,map_dict_to_str
36
+
35
37
  from .txt_to_img import mode_txt_to_img
36
38
  # from .l4d2_server import RCONClient
37
39
  # from .l4d2_web import web,webUI
@@ -40,7 +42,7 @@ scheduler = require("nonebot_plugin_apscheduler").scheduler
40
42
  driver = get_driver()
41
43
 
42
44
 
43
- __version__ = "0.3.7"
45
+ __version__ = "0.4.0"
44
46
  __plugin_meta__ = PluginMetadata(
45
47
  name="求生之路小助手",
46
48
  description='群内对有关求生之路的查询和操作',
@@ -373,48 +375,6 @@ async def _(args:Message = CommandArg()):
373
375
  message = await write_json(msg)
374
376
  await updata.finish(message)
375
377
 
376
- @read_ip.handle()
377
- async def _():
378
- img = await qq_ip_queries_pic(ip_anne_list)
379
- if img == None:
380
- return "电信服的地址请加主群自行填写哦"
381
- await read_ip.finish(MessageSegment.image(img))
382
-
383
- @tan_jian.handle()
384
- async def _(event:MessageEvent):
385
- await tan_jian.send('正在寻找牢房...')
386
- msg = await get_tan_jian(ip_anne_list,1)
387
- await tan_jian.finish(msg)
388
-
389
- @get_ip.handle()
390
- async def _(command: str = RawCommand(),args:Message = CommandArg()):
391
- if CommandStart:
392
- command.replace('CommandStart','')
393
- msg:str = args.extract_plain_text()
394
- if not msg:
395
- # 以图片输出全部当前
396
- this_ips = ALL_HOST[command]
397
- ip_list = []
398
- for one_ip in this_ips:
399
- host,port = split_maohao(one_ip['ip'])
400
- ip_list.append((one_ip['id'],host,port))
401
- img = await qq_ip_queries_pic(ip_list)
402
- if img:
403
- await read_ip.finish(MessageSegment.image(img))
404
- else:
405
- await read_ip.finish("服务器无响应")
406
- else:
407
- message = await json_server_to_tag_dict(command,msg)
408
- if len(message) == 0:
409
- # 关键词不匹配,忽略
410
- return
411
- ip = str(message['ip'])
412
- logger.info(ip)
413
- try:
414
- msg= await get_anne_server_ip(ip)
415
- await get_ip.finish(msg)
416
- except OSError:
417
- await get_ip.finish('服务器无响应')
418
378
 
419
379
 
420
380
  @vtf_make.handle()
@@ -442,16 +402,6 @@ async def _(bot:Bot,event:MessageEvent,state:T_State,tag = Arg("image")):
442
402
  await upload_file(bot, event, img_bytes, file_name)
443
403
 
444
404
 
445
- @prison.handle()
446
- async def _(event:MessageEvent):
447
- msg = await get_tan_jian(ip_anne_list,2)
448
- await tan_jian.finish(msg)
449
-
450
- @open_prison.handle()
451
- async def _(event:MessageEvent):
452
-
453
- msg = await get_tan_jian(ip_anne_list,3)
454
- await tan_jian.finish(msg)
455
405
 
456
406
  @smx_file.handle()
457
407
  async def _():
@@ -469,7 +419,7 @@ async def _(state:T_State,event:GroupMessageEvent,args:Message = CommandArg()):
469
419
  msg:str = args.extract_plain_text()
470
420
  # if msg.startswith('代码'):
471
421
  # 建图代码返回三方图信息
472
- data = await seach_map(msg,l4_master[0],l4_key)
422
+ data = await seach_map(msg,l4_qq,l4_key)
473
423
  # else:
474
424
  if type(data) == str:
475
425
  await search_api.finish(data)
@@ -499,6 +449,86 @@ async def _(bot:Bot,event:GroupMessageEvent,state:T_State):
499
449
  else:
500
450
  await search_api.finish('已取消上传')
501
451
 
452
+
453
+ @driver.on_bot_connect
454
+ async def _():
455
+ global ALL_HOST
456
+ global ANNE_IP
457
+ ALL_HOST.update(await seach_map(l4_tag,l4_qq,l4_key,'ip'))
458
+ def count_ips(ip_dict:dict):
459
+ for key, value in ip_dict.items():
460
+ if key == 'error_':
461
+ continue
462
+ count = len(value)
463
+ logger.info(f'已加载:{key} | {count}个')
464
+ if key == '云':
465
+ ANNE_IP = {key:value}
466
+ count_ips(ALL_HOST)
467
+
468
+ ip_anne_list=[]
469
+ try:
470
+ ips = ALL_HOST['云']
471
+ ip_anne_list = []
472
+ for one_ip in ips:
473
+ host,port = split_maohao(one_ip['ip'])
474
+ ip_anne_list.append((one_ip['id'],host,port))
475
+ except KeyError:
476
+ pass
477
+ get_ip = on_command('anne',aliases=server_key(),priority=80,block=True)
478
+ @get_ip.handle()
479
+ async def _(start:str = CommandStart(),command: str = RawCommand(),args:Message = CommandArg(),):
480
+ if start:
481
+ command.replace(start,'')
482
+ if command == 'anne':
483
+ command = '云'
484
+ msg:str = args.extract_plain_text()
485
+ if not msg:
486
+ # 以图片输出全部当前
487
+ this_ips = ALL_HOST[command]
488
+ ip_list = []
489
+ for one_ip in this_ips:
490
+ host,port = split_maohao(one_ip['ip'])
491
+ ip_list.append((one_ip['id'],host,port))
492
+ img = await qq_ip_queries_pic(ip_list)
493
+ if img:
494
+ await get_ip.finish(MessageSegment.image(img))
495
+ else:
496
+ await get_ip.finish("服务器无响应")
497
+ else:
498
+ if not msg[0].isdigit():
499
+ if msg.startswith(gamemode_list):
500
+ pass
501
+ else:
502
+ return
503
+ message = await json_server_to_tag_dict(command,msg)
504
+ if len(message) == 0:
505
+ # 关键词不匹配,忽略
506
+ return
507
+ ip = str(message['ip'])
508
+ logger.info(ip)
509
+ try:
510
+ msg= await get_anne_server_ip(ip)
511
+ await get_ip.finish(msg)
512
+ except (OSError,asyncio.exceptions.TimeoutError):
513
+ await get_ip.finish('服务器无响应')
514
+
515
+ @tan_jian.handle()
516
+ async def _(event:MessageEvent):
517
+ await tan_jian.send('正在寻找牢房...')
518
+ msg = await get_tan_jian(ip_anne_list,1)
519
+ await tan_jian.finish(msg)
520
+
521
+ @prison.handle()
522
+ async def _(event:MessageEvent):
523
+ msg = await get_tan_jian(ip_anne_list,2)
524
+ await tan_jian.finish(msg)
525
+
526
+ @open_prison.handle()
527
+ async def _(event:MessageEvent):
528
+
529
+ msg = await get_tan_jian(ip_anne_list,3)
530
+ await tan_jian.finish(msg)
531
+
502
532
 
503
533
  @driver.on_shutdown
504
534
  async def close_db():
@@ -15,7 +15,7 @@ from nonebot.adapters.onebot.v11 import (
15
15
  PrivateMessageEvent
16
16
  )
17
17
  from .l4d2_anne.server import server_key,ANNE_IP
18
- from .config import Master,ADMINISTRATOR,reMaster,file_format
18
+ from .config import Master,ADMINISTRATOR,reMaster,file_format,driver
19
19
 
20
20
  help_ = on_command('l4_help',aliases={'求生帮助'},priority=20,block=True)
21
21
 
@@ -66,12 +66,10 @@ smx_file = on_command('l4_smx',aliases={'求生插件'},priority=20,block=True,p
66
66
  anne_player = on_command('Ranne',aliases={"求生anne"},priority=25,block=True)
67
67
  anne_bind = on_command('Rbind',aliases={'steam绑定','求生绑定','anne绑定'},priority=20,block=True)
68
68
  del_bind = on_command('del_bind',aliases={'steam解绑','求生解绑','anne解绑'},priority=20,block=True)
69
- read_ip = on_command('anne',aliases={'求生云服'},priority=20,block=True)
70
69
  prison = on_command('zl',aliases={'坐牢'},priority=20,block=True)
71
70
  open_prison = on_command('kl',aliases={'开牢'},priority=20,block=True)
72
71
 
73
72
  updata = on_command('updata',aliases={'求生更新'},priority=20,block=True,permission= Master)
74
- get_ip = on_command('114514919181',aliases=server_key(),priority=80,block=True)
75
73
  def reload_ip():
76
74
  global updata,get_ip
77
75
  updata = on_command('updata',aliases={'求生更新'},priority=20,block=True,permission= Master)
@@ -83,7 +81,7 @@ queries = on_command('queries',aliases={'求生ip','求生IP'},priority=20,block
83
81
  add_queries = on_command('addq',aliases={"求生添加订阅"},priority=20,block=True,permission= Master)
84
82
  del_queries = on_command('delq',aliases={"求生取消订阅"},priority=20,block=True,permission= Master)
85
83
  show_queries = on_command('showq',aliases={"求生订阅"},priority=20,block=True)
86
- join_server = on_command('showq',aliases={"求生加入"},priority=20,block=True)
84
+ join_server = on_command('ld_jr',aliases={"求生加入"},priority=20,block=True)
87
85
  connect_rcon = on_command("Rrcon", aliases={"求生连接", '求生链接','求生rcon'}, priority=50, block=False)
88
86
  end_connect = ['stop', '结束', '连接结束', '结束连接']
89
87
  search_api = on_command('search',aliases={'求生三方'}, priority=20, block=True,permission= Master)