Skip to content

Commit 2446b6c

Browse files
committed
Squashed 'astrbot-sdk/' changes from 68bbe6df6..67b101992
67b101992 chore: refresh vendor snapshot [skip ci] f85be5811 Merge pull request #88 from united-pooh/dev 0d0105ed8 format d599b9804 feat: 在插件发现中添加重复名称检测,记录冲突插件目录 REVERT: 68bbe6df6 chore: refresh vendor snapshot [skip ci] git-subtree-dir: astrbot-sdk git-subtree-split: 67b101992e1473ffd0c3080227bc6c48b7b155a7
1 parent 69305c1 commit 2446b6c

1 file changed

Lines changed: 7 additions & 1 deletion

File tree

src/astrbot_sdk/runtime/loader.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -724,13 +724,16 @@ def validate_plugin_spec(plugin: PluginSpec) -> None:
724724
)
725725

726726

727+
# TODO: 解决插件名相同可能导致的问题,真有那么一天我们sdk小团体也是好起来了
727728
def discover_plugins(plugins_dir: Path) -> PluginDiscoveryResult:
728729
"""扫描目录发现所有插件。"""
729730
plugins_root = plugins_dir.resolve()
730731
skipped_plugins: dict[str, str] = {}
731732
issues: list[PluginDiscoveryIssue] = []
732733
plugins: list[PluginSpec] = []
733734
seen_names: set[str] = set()
735+
# TODO: 改用 dict 记录 name -> plugin_dir 映射,以便在重复时报错时显示冲突路径
736+
seen_name_sources: dict[str, Path] = {} # plugin_name -> plugin_dir
734737

735738
if not plugins_root.exists():
736739
return PluginDiscoveryResult([], {}, [])
@@ -779,18 +782,21 @@ def discover_plugins(plugins_dir: Path) -> PluginDiscoveryResult:
779782
)
780783
continue
781784
if plugin_name in seen_names:
785+
existing_source = seen_name_sources.get(plugin_name, Path("<unknown>"))
782786
skipped_plugins[plugin_name] = "duplicate plugin name"
783787
issues.append(
784788
PluginDiscoveryIssue(
785789
severity="error",
786790
phase="discovery",
787791
plugin_id=plugin_name,
788792
message="插件名称重复",
789-
details="duplicate plugin name",
793+
details=f"冲突的插件目录:{existing_source}{plugin.plugin_dir}",
794+
hint="请修改其中一个插件的名称后重试",
790795
)
791796
)
792797
continue
793798
seen_names.add(plugin_name)
799+
seen_name_sources[plugin_name] = plugin.plugin_dir
794800
plugins.append(plugin)
795801

796802
return PluginDiscoveryResult(

0 commit comments

Comments
 (0)