fix: game plugin cache + test mode NullPointer crash on shutdown

- game_manager: add _scanned cache, _ensure_scanned() avoids re-scanning on every API call
- test_mode: fix AttributeError when stop_test_mode called before start
- listener: safe stop_test_mode with null check
This commit is contained in:
2026-07-26 18:19:03 +08:00
parent 90ab5f9c0b
commit 3b7edc4f14
2 changed files with 18 additions and 11 deletions
+10 -7
View File
@@ -123,17 +123,20 @@ class TelemetryListener:
@property
def is_testing(self) -> bool:
from server.test_mode import _test_generator
return _test_generator.running
from server.test_mode import get_generator
gen = get_generator()
return gen is not None and gen.running
def start_test_mode(self):
from server.test_mode import _test_generator
_test_generator.listener = self
_test_generator.start()
from server.test_mode import get_generator
gen = get_generator(self)
gen.start()
def stop_test_mode(self):
from server.test_mode import _test_generator
_test_generator.stop()
from server.test_mode import get_generator
gen = get_generator()
if gen is not None and gen.running:
gen.stop()
def _get_parser(self, key: str) -> BaseParser:
if key not in self._parser_cache: