From b589c020136d5728ad6c11b729326f1c9726c986 Mon Sep 17 00:00:00 2001 From: SuperScript-PRC <2528622340@qq.com> Date: Fri, 9 Feb 2024 19:24:28 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BA=86=E5=8F=AF=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E9=AA=8C=E8=AF=81=E6=9C=8D=E5=8A=A1=E5=99=A8=E7=9A=84?= =?UTF-8?q?=E9=80=89=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tooldelta/__init__.py | 7 +++++-- tooldelta/launch_cli.py | 19 +++++++++++-------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/tooldelta/__init__.py b/tooldelta/__init__.py index 1568dfc5..b7844ba7 100644 --- a/tooldelta/__init__.py +++ b/tooldelta/__init__.py @@ -34,7 +34,7 @@ ) except: # Current version - VERSION = (0, 2, 4) + VERSION = (0, 2, 0) class Frame: @@ -81,11 +81,13 @@ def read_cfg(self): "服务器号": 0, "密码": 0, "启动器启动模式(请不要手动更改此项, 改为0可重置)": 0, + "验证服务器地址(更换时记得更改fbtoken)": "https://api.fastbuilder.pro" } CFG_STD = { "服务器号": int, "密码": int, "启动器启动模式(请不要手动更改此项, 改为0可重置)": Config.NNInt, + "验证服务器地址(更换时记得更改fbtoken)": str } if not os.path.isfile("fbtoken"): Print.print_err("请到FB官网 user.fastbuilder.pro 下载FBToken, 并放在本目录中,或者在下面输入fbtoken") @@ -104,6 +106,7 @@ def read_cfg(self): self.serverNumber = str(cfgs["服务器号"]) self.serverPasswd = cfgs["密码"] self.launchMode = cfgs["启动器启动模式(请不要手动更改此项, 改为0可重置)"] + auth_server = cfgs["验证服务器地址(更换时记得更改fbtoken)"] if self.launchMode != 0 and self.launchMode not in range( 1, len(public_launcher) + 1 ): @@ -145,7 +148,7 @@ def read_cfg(self): with open("fbtoken", "r", encoding="utf-8") as f: fbtoken = f.read() self.launcher: StandardFrame = launcher( - self.serverNumber, self.serverPasswd, fbtoken + self.serverNumber, self.serverPasswd, fbtoken, auth_server ) def welcome(self): diff --git a/tooldelta/launch_cli.py b/tooldelta/launch_cli.py index 62ba57dd..fd803b18 100644 --- a/tooldelta/launch_cli.py +++ b/tooldelta/launch_cli.py @@ -20,10 +20,11 @@ class StandardFrame: # 提供了标准的启动器框架, 作为 ToolDelta 和游戏交互的接口 launch_type = "Original" - def __init__(self, serverNumber, password, fbToken): + def __init__(self, serverNumber, password, fbToken, auth_server_url): self.serverNumber = serverNumber self.serverPassword = password self.fbToken = fbToken + self.auth_server = auth_server_url self.status = SysStatus.LAUNCHING self.system_type = platform.uname()[0] self.inject_events = [] @@ -62,10 +63,10 @@ class FrameFBConn(StandardFrame): # 使用原生 FastBuilder External 连接 cmds_reqs = [] cmds_resp = {} - def __init__(self, serverNumber, password, fbToken): + def __init__(self, serverNumber, password, fbToken, auth_server): global fbconn from . import fbconn - super().__init__(serverNumber, password, fbToken) + super().__init__(serverNumber, password, fbToken, auth_server) self.injected = False self.init_all_functions() @@ -83,11 +84,11 @@ def runFB(self, ip="0.0.0.0", port=8080): self.downloadMissingFiles() if self.system_type == "Linux": os.system("chmod +x phoenixbuilder") - con_cmd = rf"./phoenixbuilder -t fbtoken --no-readline --no-update-check --listen-external {ip}:{port} -c {self.serverNumber} {f'-p {self.serverPassword}' if self.serverPassword else ''}" + con_cmd = rf"./phoenixbuilder -A {self.auth_server} -t fbtoken --no-readline --no-update-check --listen-external {ip}:{port} -c {self.serverNumber} {f'-p {self.serverPassword}' if self.serverPassword else ''}" # windows updated "./PRGM" command. if self.system_type == "Windows": - con_cmd = rf".\phoenixbuilder.exe -t fbtoken --no-readline --no-update-check --listen-external {ip}:{port} -c {self.serverNumber} {f'-p {self.serverPassword}' if self.serverPassword else ''}" + con_cmd = rf".\phoenixbuilder.exe -A {self.auth_server} -t fbtoken --no-readline --no-update-check --listen-external {ip}:{port} -c {self.serverNumber} {f'-p {self.serverPassword}' if self.serverPassword else ''}" self.fb_pipe = subprocess.Popen( con_cmd, stdin=subprocess.PIPE, @@ -312,8 +313,8 @@ class FrameNeOmg(StandardFrame): # 使用 NeOmega 框架连接到游戏 launch_type = "NeOmega" - def __init__(self, serverNumber, password, fbToken): - super().__init__(serverNumber, password, fbToken) + def __init__(self, serverNumber, password, fbToken, auth_server): + super().__init__(serverNumber, password, fbToken, auth_server) self.injected = False self.omega = None self.download_libs() @@ -332,6 +333,7 @@ def set_omega(self, openat_port): connect_type=neo_conn.ConnectType.Remote, address=f"tcp://localhost:{openat_port}", accountOption=neo_conn.AccountOptions( + AuthServer=self.auth_server, UserToken=self.fbToken, ServerCode=self.serverNumber, ServerPassword=str(self.serverPassword), @@ -370,6 +372,7 @@ def start_neomega_proc(self): f"tcp://localhost:{free_port}", "-server-password", str(self.serverPassword), + "-auth-server", self.auth_server ], stdin=subprocess.PIPE, stdout=subprocess.PIPE, @@ -391,7 +394,7 @@ def _msg_show_thread(): msg = msg_orig[:str_max_len] msg_orig = msg_orig[str_max_len:] Print.print_with_info(msg, "§b NOMG ") - Builtins.createThread(_msg_show_thread) + Builtins.createThread(_msg_show_thread, usage = "显示来自NeOmega的信息") def launch(self): self.launch_status = 0