Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions tooldelta/constants/tooldelta_cfg.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
"默认登录配置标准验证格式"

LAUNCHER_NEOMEGA_STD: dict = {
"服务器号": int,
"服务器号": (int, str),
"密码": str,
"验证服务器地址(更换时记得更改fbtoken)": str,
}
Expand All @@ -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,
}
Expand All @@ -39,7 +39,7 @@
LAUNCHER_EULOGIST_DEFAULT: dict = {}
LAUNCHER_EULOGIST_STD: dict = {}
LAUNCHER_FATEARK_STD: dict = {
"服务器号": int,
"服务器号": (int, str),
"密码": str,
"验证服务器地址(更换时记得更改fbtoken)": str,
}
Expand Down
6 changes: 4 additions & 2 deletions tooldelta/constants/tooldelta_cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -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",
)

Expand Down
33 changes: 23 additions & 10 deletions tooldelta/internal/config_loader.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import os
import re
import getpass
import requests
from typing import TYPE_CHECKING
Expand Down Expand Up @@ -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
Expand All @@ -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(
Expand All @@ -252,16 +261,16 @@ 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
cfgs[LAUNCHER_CONFIG_KEY] = launch_data
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 == "":
Expand Down Expand Up @@ -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
)
Expand Down
2 changes: 1 addition & 1 deletion tooldelta/internal/launch_cli/fateark_access_point.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 2 additions & 2 deletions tooldelta/internal/launch_cli/neomega_access_point.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down
2 changes: 1 addition & 1 deletion tooldelta/internal/launch_cli/neomega_launcher.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
7 changes: 7 additions & 0 deletions tooldelta/utils/cfg.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
"""配置文件模块"""

import os
import re
import json
from pathlib import Path
from typing import Any
Expand Down Expand Up @@ -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))
2 changes: 1 addition & 1 deletion version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.3.5
1.3.6
Loading