Title: 添加成就系统和隐藏命令功能
Key features implemented: - 新增oss/core/achievements.py实现配置验证与完整性检查模块,包含验证规则、缓存机制和成就解锁系统 - 新增oss/core/__init__.py作为核心模块入口,提供Context和验证器接口 - 修改oss/cli.py添加隐藏命令前缀支持(!!),实现内部调试命令和随机提示功能 - 修改oss/plugin/manager.py集成插件数量和启动速度成就检查 - 修改oss/config/config.py添加配置修改记录成就跟踪 - 更新.gitignore优化Python项目忽略文件配置 整体实现了完整的成就系统架构,支持隐藏命令交互和多种验证规则,并在系统各组件中集成成就解锁逻辑。
This commit is contained in:
@@ -3,6 +3,13 @@ from typing import Any, Optional
|
||||
|
||||
from oss.plugin.loader import PluginLoader
|
||||
|
||||
# 深度隐藏的成就系统导入
|
||||
try:
|
||||
from oss.core.achievements import get_validator
|
||||
_ACHIEVEMENTS_ENABLED = True
|
||||
except ImportError:
|
||||
_ACHIEVEMENTS_ENABLED = False
|
||||
|
||||
|
||||
class PluginManager:
|
||||
"""极简插件管理器
|
||||
@@ -30,14 +37,39 @@ class PluginManager:
|
||||
pl_info = self.loader.load_core_plugin("plugin-loader")
|
||||
if pl_info:
|
||||
self.plugin_loader = pl_info["instance"]
|
||||
|
||||
# 隐藏成就:深海潜水员 - 当加载插件管理器时解锁
|
||||
if _ACHIEVEMENTS_ENABLED:
|
||||
try:
|
||||
validator = get_validator()
|
||||
validator.unlock("deep_diver")
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
def start(self):
|
||||
"""启动 plugin-loader,它会初始化并启动所有其他插件"""
|
||||
import time
|
||||
start_time = time.time()
|
||||
|
||||
if self.plugin_loader:
|
||||
# plugin-loader.init() 会扫描并加载 store/ 中的所有插件
|
||||
self.plugin_loader.init()
|
||||
# plugin-loader.start() 会按依赖顺序启动所有插件
|
||||
self.plugin_loader.start()
|
||||
|
||||
# 计算启动时间并检查速度成就
|
||||
elapsed_ms = (time.time() - start_time) * 1000
|
||||
if _ACHIEVEMENTS_ENABLED:
|
||||
try:
|
||||
validator = get_validator()
|
||||
validator.check_startup_speed(elapsed_ms)
|
||||
|
||||
# 检查插件数量成就
|
||||
if hasattr(self.plugin_loader, 'manager') and hasattr(self.plugin_loader.manager, 'plugins'):
|
||||
plugin_count = len(self.plugin_loader.manager.plugins)
|
||||
validator.check_plugin_count(plugin_count)
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
def stop(self):
|
||||
"""停止所有插件(由 plugin-loader 统一管理)"""
|
||||
@@ -50,3 +82,13 @@ class PluginManager:
|
||||
import traceback
|
||||
print(f"[PluginManager] 停止插件时出错:{type(e).__name__}: {e}")
|
||||
traceback.print_exc()
|
||||
|
||||
# 隐藏成就:崩溃幸存者 - 如果正常停止则不解锁,只有异常停止才可能解锁
|
||||
# 这里我们记录停止事件,用于将来可能的连续运行成就
|
||||
if _ACHIEVEMENTS_ENABLED:
|
||||
try:
|
||||
validator = get_validator()
|
||||
# 记录会话结束
|
||||
validator.track_progress("session_end")
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
Reference in New Issue
Block a user