ircbot: don't unload just one plugin of path

if we somehow got multiple plugins of the same path loaded, unload them
all when unloading, not just the first one we find
This commit is contained in:
Brian S. Stephan 2016-01-17 09:20:06 -06:00
parent 310c2aa28d
commit 4c949ee6f3
1 changed files with 4 additions and 3 deletions

View File

@ -646,18 +646,19 @@ class IRCBot(irc.client.SimpleIRCClient):
dest = ircbotlib.reply_destination_for_event(event)
unloaded = False
for path, plugin in self.plugins:
if plugin_path == path:
unloaded = True
self.plugins.remove((path, plugin))
plugin.stop()
del plugin
del sys.modules[plugin_path]
self.privmsg(dest, "Plugin '{0:s}' unloaded.".format(plugin_path))
return
# guess it was never loaded
self.privmsg(dest, "Plugin '{0:s}' is not loaded.".format(plugin_path))
if not unloaded:
self.privmsg(dest, "Plugin '{0:s}' is not loaded.".format(plugin_path))
def privmsg(self, target, text):
"""Send a PRIVMSG command.