nonebot2 icon indicating copy to clipboard operation
nonebot2 copied to clipboard

Feature: 支持重名子插件

Open uf-fipper opened this issue 1 year ago • 4 comments

希望能解决的问题

如果有以下文件结构:

src/
  plugins/
    plugin1/
      plugins/
        name.py
    plugin2/
      plugins/
        name.py

其中在 plugins1 的子插件下有一个 name.py,在 plugins2 的子插件下也有一个 name.py,此时这两个 name.py 只会加载其中一个,nonebot 似乎并不会加载两个重名插件,请问能否将插件从顶层插件到当前插件的所有名称的元组作为 id 存到插件缓存中以支持重名子插件?

描述所需要的功能

rt,支持重名子插件

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

根据nb的设计,子插件也不允许使用相同的名字,你可以分别命名为plugin1_name.pyplugin2_name.py来避免重复

yanyongyu avatar Jan 16 '24 08:01 yanyongyu

好的感谢,我想尝试修改一下plugin模块和增加一个选项来实现支持重名插件(如果可以的话

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

因为nb内部的get plugin和require均需要通过插件名来查找插件,如果存在重名无法定位模块

yanyongyu avatar Jan 16 '24 09:01 yanyongyu

好的感谢,我研究一下(

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

该feature已在发本次发版计划中

yanyongyu avatar Apr 18 '24 10:04 yanyongyu