fix: try to reuse existing server when converting package to server

This commit is contained in:
2026-07-06 22:41:01 +08:00
parent f3cecca1f8
commit 4b10dcc7f3
2 changed files with 10 additions and 6 deletions
+8 -5
View File
@@ -37,15 +37,18 @@ def set_lang(lang_: str):
release_resources()
def to_server(package_or_server: str) -> str:
def to_server(package_or_server: str, before: str = '') -> str:
"""
Convert package/server to server.
To unknown packages, consider they are a CN channel servers.
"""
# Can't distinguish different regions of oversea servers,
# assume it's 'OVERSEA-Asia'
# if package_or_server == 'com.HoYoverse.hkrpgoversea':
# return 'OVERSEA-Asia'
if package_or_server == 'com.nexon.bluearchive':
# Can't distinguish different regions of oversea servers, but we try to reuse old value
if before in ['OVERSEA-Asia', 'OVERSEA-America', 'OVERSEA-Korea', 'OVERSEA-TWHKMO', 'OVERSEA-Global']:
return before
else:
# otherwise assume it's 'OVERSEA-Asia'
return 'OVERSEA-Asia'
for key, value in VALID_SERVER.items():
if value == package_or_server:
+2 -1
View File
@@ -1246,7 +1246,8 @@ class Connection(ConnectionAttr):
self.package = packages[0]
# Set config
if set_config:
self.config.Emulator_PackageName = server_.to_server(self.package)
self.config.Emulator_PackageName = server_.to_server(
self.package, before=self.config.Emulator_PackageName)
# Set server
# logger.info('Server changed, release resources')
# set_server(self.package)