nonebot2 icon indicating copy to clipboard operation
nonebot2 copied to clipboard

重名插件支持

Open uf-fipper opened this issue 5 months ago • 8 comments

现在可以有两个相同名称的插件了,插件的索引标识改为使用顶层插件到该插件的插件路径。

如果有以下目录:

src/
  plugins/
    nested1/
      plugins/
        plugin.py
    nested2/
      plugins/
        plugin.py

此时 nested1 的路径为 ("nested1",) nested1/plugins/plugin.py 的路径为 ("nested1", "plugin") nested2/plugins/plugin.py 的路径为 ("nested2", "plugin") 因为两个 plugin 的路径不同,因此可以两个插件都加载

修改 _plugin 字典的 key,同时存储插件名和插件路径,它们都映射到这个插件,这应该可以保证向下兼容 现在, requireget_plugin 方法可以通过插件路径获取到插件了

冲突:如果存在同名插件,那么如果通过插件名来获取插件,将获取这些同名插件之中的随机一个,且无法保证获取哪一个,但旧版本插件应该不会出现同名(

uf-fipper avatar Jan 17 '24 16:01 uf-fipper