From be44b23d702f1841bf7e7460c053a5777da98f6c Mon Sep 17 00:00:00 2001 From: YoursFunny Date: Sun, 5 Jul 2026 18:19:44 +0800 Subject: [PATCH] fix: support emulator index parsing from MuMu ArkNights version --- module/device/platform/emulator_base.py | 12 ++++++++---- module/device/platform/platform_windows.py | 6 +++++- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/module/device/platform/emulator_base.py b/module/device/platform/emulator_base.py index cdb4759..19262b0 100644 --- a/module/device/platform/emulator_base.py +++ b/module/device/platform/emulator_base.py @@ -83,8 +83,9 @@ class EmulatorInstanceBase: def MuMuPlayer12_id(self): """ Convert MuMu 12 instance name to instance id. - Example name: MuMuPlayer-12.0-3 - Example ID : 3 + Example names: + MuMuPlayer-12.0-3 + YXArkNights-12.0-1 Returns: int: Instance ID, or None if this is not a MuMu 12 instance @@ -92,8 +93,11 @@ class EmulatorInstanceBase: res = re.search(r'MuMuPlayer-12.0-(\d+)', self.name) if res: return int(res.group(1)) - else: - return None + res = re.search(r'YXArkNights-12.0-(\d+)', self.name) + if res: + return int(res.group(1)) + + return None class EmulatorBase: diff --git a/module/device/platform/platform_windows.py b/module/device/platform/platform_windows.py index 0490156..229f011 100644 --- a/module/device/platform/platform_windows.py +++ b/module/device/platform/platform_windows.py @@ -8,8 +8,8 @@ from deploy.Windows.utils import DataProcessInfo from module.base.decorator import run_once from module.base.timer import Timer from module.device.connection import AdbDeviceWithStatus -from module.device.platform.platform_base import PlatformBase from module.device.platform.emulator_windows import Emulator, EmulatorInstance, EmulatorManager +from module.device.platform.platform_base import PlatformBase from module.logger import logger @@ -91,6 +91,8 @@ class PlatformWindows(PlatformBase, EmulatorManager): self.execute(f'"{exe}" -m {instance.name}') elif instance == Emulator.MuMuPlayer12: # MuMuPlayer.exe -v 0 + if instance.MuMuPlayer12_id is None: + logger.warning(f'Cannot get MuMu instance index from name {instance.name}') self.execute(f'"{exe}" -v {instance.MuMuPlayer12_id}') elif instance == Emulator.NoxPlayerFamily: # Nox.exe -clone:Nox_1 @@ -142,6 +144,8 @@ class PlatformWindows(PlatformBase, EmulatorManager): # MuMu 12 has 2 processes: # E:\ProgramFiles\Netease\MuMuPlayer-12.0\shell\MuMuPlayer.exe -v 0 # "C:\Program Files\MuMuVMMVbox\Hypervisor\MuMuVMMHeadless.exe" --comment MuMuPlayer-12.0-0 --startvm xxx + if instance.MuMuPlayer12_id is None: + logger.warning(f'Cannot get MuMu instance index from name {instance.name}') self.kill_process_by_regex( rf'(' rf'MuMuVMMHeadless.exe.*--comment {instance.name}'