def remove_plugin(self, name: str):
plugin = self.plugins.pop(name, None)
if plugin is None:
return plugin
for name, member in inspect.getmembers(plugin):
# Remove IRC events
if isinstance(member, event.event):
self.remove_irc_event(member)
# Remove listeners
elif name.startswith(('on_', 'handle_')):
self.remove_listener(member)
try:
unloader = getattr(plugin, 'unload')
except AttributeError:
pass
else:
unloader()
return plugin
评论列表
文章目录