Skip to content

Commit ab8ae75

Browse files
committed
🐛修复l4查找逻辑错误
1 parent 7a4a4fc commit ab8ae75

3 files changed

Lines changed: 29 additions & 32 deletions

File tree

nonebot_plugin_l4d2_server/__main__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -139,12 +139,12 @@ async def _(
139139
return UniMessage.text(Gm.add_name)
140140
tag_list: List[str] = msg.split(" ", maxsplit=1)
141141
if len(tag_list) == 1:
142-
await UniMessage.text(Gm.no_group_search).send()
142+
await UniMessage.text(Sm.no_group_search).send()
143143
name = tag_list[0]
144144
out: List[OutServer] = await server_find(is_img=False) # type: ignore
145145
logger.info(out)
146146
logger.info(type(out))
147-
out_msg = Gm.no_player
147+
out_msg = Sm.no_player
148148
for one in out:
149149
logger.info(one)
150150
for player in one["player"]:

nonebot_plugin_l4d2_server/l4_request/__init__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,8 @@ async def server_find(
221221
server_json = []
222222
for one_command in all_command:
223223
server_j = _get_server_json(one_command, ALLHOST)
224-
server_json.extend(server_j)
224+
if server_j is not None:
225+
server_json.extend(server_j)
225226
logger.info(server_json)
226227
if server_json is None:
227228
logger.warning("未找到这个组")

nonebot_plugin_l4d2_server/l4_request/utils.py

Lines changed: 25 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -113,46 +113,42 @@ async def _filter_servers(
113113
Returns:
114114
符合条件的服务器列表
115115
"""
116-
if map_type is None:
117-
map_type = ["普通药役", "硬核药役"]
116+
map_type = ["普通药役", "硬核药役"]
117+
map_type = map_type
118118
filtered = []
119-
for i in servers:
120-
ser_list = await L4API.a2s_info([(i["host"], i["port"])], is_player=True)
121119

120+
for server in servers:
121+
ser_list = await L4API.a2s_info(
122+
[(server["host"], server["port"])],
123+
is_player=True,
124+
)
122125
if not ser_list:
123126
continue
124127

125-
srv = ser_list[0][0]
126-
players = ser_list[0][1]
127-
logger.info(srv)
128-
logger.info(players)
128+
srv, players = ser_list[0]
129129
if srv.map_name == "无":
130130
continue
131131

132-
if tj_mode == "tj" and any(
133-
map_type_value in srv.server_name for map_type_value in map_type
134-
):
132+
server_info = f"{server['host']}:{server['port']}, 地图: {srv.map_name}"
133+
if tj_mode == "tj" and any(m in srv.server_name for m in map_type):
135134
scores = [p.score for p in players[:4]]
136135
total_score = sum(scores)
137-
part_with_number = srv.server_name.split("[")[1].split("]")[0]
138-
t = part_with_number.split("特")[0]
139-
logger.info(t)
140-
logger.info(total_score)
141-
if t.isdigit() and int(t) * 10 < total_score:
142-
logger.info(
143-
f"符合TJ条件的服务器: {i['host']}:{i['port']}, 地图: {srv.map_name}, 分数: {total_score}",
144-
)
145-
filtered.append(i)
146-
elif tj_mode == "zl" and map_type in srv.server_name and len(players) <= 4:
147-
logger.info(
148-
f"符合ZL条件的服务器: {i['host']}:{i['port']}, 地图: {srv.map_name}, 玩家数: {len(players)}",
149-
)
150-
filtered.append(i)
136+
part = srv.server_name.split("[")[1].split("]")[0]
137+
threshold = part.split("特")[0]
138+
if threshold.isdigit() and int(threshold) * 50 < total_score:
139+
logger.info(f"符合TJ条件的服务器: {server_info}, 分数: {total_score}")
140+
filtered.append(server)
141+
elif (
142+
tj_mode == "zl"
143+
and any(m in srv.server_name for m in map_type)
144+
and len(players) <= 4
145+
):
146+
logger.info(f"符合ZL条件的服务器: {server_info}, 玩家数: {len(players)}")
147+
filtered.append(server)
151148
elif tj_mode == "kl" and len(players) == 0:
152-
logger.info(
153-
f"符合KL条件的服务器: {i['host']}:{i['port']}, 地图: {srv.map_name}, 玩家数: {len(players)}",
154-
)
155-
filtered.append(i)
149+
logger.info(f"符合KL条件的服务器: {server_info}, 玩家数: {len(players)}")
150+
filtered.append(server)
151+
156152
return filtered
157153

158154

0 commit comments

Comments
 (0)