diff --git a/module/config/server.py b/module/config/server.py index 94e6192..a76bc5a 100644 --- a/module/config/server.py +++ b/module/config/server.py @@ -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: diff --git a/module/device/connection.py b/module/device/connection.py index 896aa34..a9ef2f3 100644 --- a/module/device/connection.py +++ b/module/device/connection.py @@ -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)