From cecb488b11683218de5e0655dd69e7dff0e1ac44 Mon Sep 17 00:00:00 2001 From: Mono Date: Sat, 25 Jul 2026 17:56:16 +0800 Subject: [PATCH] =?UTF-8?q?Bump=20version=20to=201.3.6=20&=20=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E5=AF=B9=E5=B1=B1=E5=A4=B4=E6=9C=8D=E5=8A=A1=E5=99=A8?= =?UTF-8?q?=E7=9A=84=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tooldelta/constants/tooldelta_cfg.py | 6 ++-- tooldelta/constants/tooldelta_cli.py | 6 ++-- tooldelta/internal/config_loader.py | 33 +++++++++++++------ .../launch_cli/fateark_access_point.py | 2 +- .../launch_cli/neomega_access_point.py | 4 +-- .../internal/launch_cli/neomega_launcher.py | 2 +- tooldelta/utils/cfg.py | 7 ++++ version | 2 +- 8 files changed, 42 insertions(+), 20 deletions(-) diff --git a/tooldelta/constants/tooldelta_cfg.py b/tooldelta/constants/tooldelta_cfg.py index 04cb0b0e..3230ec2f 100644 --- a/tooldelta/constants/tooldelta_cfg.py +++ b/tooldelta/constants/tooldelta_cfg.py @@ -15,7 +15,7 @@ "默认登录配置标准验证格式" LAUNCHER_NEOMEGA_STD: dict = { - "服务器号": int, + "服务器号": (int, str), "密码": str, "验证服务器地址(更换时记得更改fbtoken)": str, } @@ -27,7 +27,7 @@ LAUNCHER_NEOMEGARM_STD: dict = {"远程连接地址": str} LAUNCHER_NEOMEGARM_DEFAULT: dict = {"远程连接地址": "tcp://127.0.0.1:24020"} LAUNCHER_NEOMG2TD_STD: dict = { - "服务器号": int, + "服务器号": (int, str), "密码": str, "验证服务器地址(更换时记得更改fbtoken)": str, } @@ -39,7 +39,7 @@ LAUNCHER_EULOGIST_DEFAULT: dict = {} LAUNCHER_EULOGIST_STD: dict = {} LAUNCHER_FATEARK_STD: dict = { - "服务器号": int, + "服务器号": (int, str), "密码": str, "验证服务器地址(更换时记得更改fbtoken)": str, } diff --git a/tooldelta/constants/tooldelta_cli.py b/tooldelta/constants/tooldelta_cli.py index f750b1da..bc0528f0 100644 --- a/tooldelta/constants/tooldelta_cli.py +++ b/tooldelta/constants/tooldelta_cli.py @@ -64,14 +64,16 @@ class SysStatus(IntEnum): AUTH_SERVERS = [ ("§7FastBuilder 官方验证服务器 §c✘不再可用", "https://user.fastbuilder.pro"), - ("§7咕咕酱 FB验证服务器 §c✘不再可用", "https://liliya233.uk"), - ("NetHard 验证服务器 §a✔可用", "https://nv1.nethard.pro"), + ("§7NetHard 验证服务器 §c✘不再可用", "https://nv1.nethard.pro"), + ("Bunker-web 验证服务器 §a✔可用", "https://api.liliya233.uk"), + ("新nv1 验证服务器 §a✔可用", "https://nv1.aetheredge.top"), ] "验证服务器列表" ALL_AVAILABLE_GITHUB_MIRRORS = ( "https://ghproxy.net", "https://ghfast.top", + "https://gh-proxy.com", "https://github.tooldelta.top", ) diff --git a/tooldelta/internal/config_loader.py b/tooldelta/internal/config_loader.py index f0195175..d9c217dc 100644 --- a/tooldelta/internal/config_loader.py +++ b/tooldelta/internal/config_loader.py @@ -1,4 +1,5 @@ import os +import re import getpass import requests from typing import TYPE_CHECKING @@ -211,7 +212,7 @@ def load_tooldelta_cfg_and_get_launcher(self) -> LAUNCHERS: _s = outer_launch_args.get("server") if _s is None: raise SystemExit("参数启动有误: --server 无参数") - server_number = int(_s) + server_number = _s # 支持山头 elif "服务器号" in launch_data.keys(): server_number = launch_data["服务器号"] is_server = True @@ -234,14 +235,22 @@ def load_tooldelta_cfg_and_get_launcher(self) -> LAUNCHERS: while True: try: server_number_prompt = ( - "请输入租赁服号" if is_server else "请输入房间号" + "请输入租赁服/山头号" if is_server else "请输入房间号" ) server_pwd_prompt = ( - "请输入租赁服密码" if is_server else "请输入房间密码" - ) - server_number = int( - input(fmts.fmt_info(f"{server_number_prompt}:", "§b 输入 ")) + "请输入租赁服密码(山头直接回车)" if is_server else "请输入房间密码" ) + server_number = input(fmts.fmt_info(f"{server_number_prompt}:", "§b 输入 ")).strip() + if cfg.only_digits(server_number): # 租赁服号 + server_number = int(server_number) + elif cfg.has_both_digit_and_letter(server_number) and len(server_number) == 11: # nv1验证 -山头码 + pass + elif server_number.startswith("#") and len(server_number) == 9: # bunker-web验证 -山头号 #XXXXXXXXX + pass + elif server_number.count(":") == 1: + pass + else: + raise ValueError("输入有误,租赁服号和山头号应当是纯数字或包含数字和字母") serverPasswd = ( getpass.getpass( fmts.fmt_info( @@ -252,7 +261,7 @@ def load_tooldelta_cfg_and_get_launcher(self) -> LAUNCHERS: or "" ) if is_server: - launch_data["服务器号"] = int(server_number) + launch_data["服务器号"] = server_number else: launch_data["房间号"] = int(server_number) launch_data["密码"] = serverPasswd @@ -260,8 +269,8 @@ def load_tooldelta_cfg_and_get_launcher(self) -> LAUNCHERS: cfg.write_default_cfg_file("ToolDelta基本配置.json", cfgs, True) fmts.print_suc("登录配置设置成功") break - except ValueError: - fmts.print_err("输入有误,租赁服号和密码应当是纯数字") + except ValueError as err: + fmts.print_err(f"{err}") auth_servers = tooldelta_cli.AUTH_SERVERS # 选择验证服务器 if auth_server == "": @@ -337,7 +346,11 @@ def load_tooldelta_cfg_and_get_launcher(self) -> LAUNCHERS: fbtokenFix() with open("fbtoken", encoding="utf-8") as f: fbtoken = f.read() - if isinstance(launcher, ACCESS_POINT_LAUNCHERS): + if isinstance(launcher, FrameTanGameAccessPoint): + launcher.set_launch_data( + int(server_number), serverPasswd, fbtoken, auth_server + ) + elif isinstance(launcher, ACCESS_POINT_LAUNCHERS): launcher.set_launch_data( server_number, serverPasswd, fbtoken, auth_server ) diff --git a/tooldelta/internal/launch_cli/fateark_access_point.py b/tooldelta/internal/launch_cli/fateark_access_point.py index a01bfeb5..ee175303 100644 --- a/tooldelta/internal/launch_cli/fateark_access_point.py +++ b/tooldelta/internal/launch_cli/fateark_access_point.py @@ -25,7 +25,7 @@ def init(self) -> None: fateark_utils.check_update(urlmethod.get_global_github_src_url()) def set_launch_data( - self, serverNumber: int, password: str, fbToken: str, auth_server_url: str + self, serverNumber: int | str, password: str, fbToken: str, auth_server_url: str ): self.serverNumber = serverNumber self.serverPassword = password diff --git a/tooldelta/internal/launch_cli/neomega_access_point.py b/tooldelta/internal/launch_cli/neomega_access_point.py index cc1b97ba..18f5afdc 100644 --- a/tooldelta/internal/launch_cli/neomega_access_point.py +++ b/tooldelta/internal/launch_cli/neomega_access_point.py @@ -45,7 +45,7 @@ def __init__(self) -> None: accountOption=None, ) self.blob_hash_holder = BlobHashHolder(self.omega) - self.serverNumber: int | None = None + self.serverNumber: int | str | None = None self.serverPassword: str | None = None self.fbToken: str | None = None self.auth_server: str | None = None @@ -65,7 +65,7 @@ def init(self): self.status = SysStatus.LAUNCHING def set_launch_data( - self, serverNumber: int, password: str, fbToken: str, auth_server_url: str + self, serverNumber: int | str, password: str, fbToken: str, auth_server_url: str ): self.serverNumber = serverNumber self.serverPassword = password diff --git a/tooldelta/internal/launch_cli/neomega_launcher.py b/tooldelta/internal/launch_cli/neomega_launcher.py index 458dbf89..8eba2fcd 100644 --- a/tooldelta/internal/launch_cli/neomega_launcher.py +++ b/tooldelta/internal/launch_cli/neomega_launcher.py @@ -38,7 +38,7 @@ def __init__(self) -> None: address="tcp://localhost:24013", accountOption=None, ) - self.serverNumber: int | None = None + self.serverNumber: int | str | None = None self.serverPassword: str | None = None self.fbToken: str | None = None self.auth_server: str | None = None diff --git a/tooldelta/utils/cfg.py b/tooldelta/utils/cfg.py index 9ec2a0f5..a3939c80 100644 --- a/tooldelta/utils/cfg.py +++ b/tooldelta/utils/cfg.py @@ -1,6 +1,7 @@ """配置文件模块""" import os +import re import json from pathlib import Path from typing import Any @@ -412,3 +413,9 @@ def write_default_cfg_file(path: str, default: dict, force: bool = False) -> Non def _jsonfile_exists(path: Path) -> bool: return (path if path.name.endswith(".json") else Path(f"{path!s}.json")).is_file() + +def only_digits(text): + return bool(re.fullmatch(r'\d+', text)) + +def has_both_digit_and_letter(text): + return bool(re.search(r'\d', text) and re.search(r'[a-zA-Z]', text)) diff --git a/version b/version index aaf8be71..6f96ed08 100755 --- a/version +++ b/version @@ -1 +1 @@ -1.3.5 \ No newline at end of file +1.3.6 \ No newline at end of file