nonebot2
nonebot2 copied to clipboard
重名插件支持
现在可以有两个相同名称的插件了,插件的索引标识改为使用顶层插件到该插件的插件路径。
如果有以下目录:
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
,同时存储插件名和插件路径,它们都映射到这个插件,这应该可以保证向下兼容
现在, require
和 get_plugin
方法可以通过插件路径获取到插件了
冲突:如果存在同名插件,那么如果通过插件名来获取插件,将获取这些同名插件之中的随机一个,且无法保证获取哪一个,但旧版本插件应该不会出现同名(