]> git.netwichtig.de Git - user/henk/code/ruby/rbot.git/blobdiff - lib/rbot/plugins.rb
Fix help. For real
[user/henk/code/ruby/rbot.git] / lib / rbot / plugins.rb
index b55fbe4a115d559b277a305571428225bc8f9a2e..b0626b9687181c8416e5d3e68e19ce0efaa439b4 100644 (file)
@@ -417,9 +417,7 @@ module Plugins
 
     # call the cleanup method for each active plugin
     def cleanup
-      @bot.save_mutex.synchronize do
-        delegate 'cleanup'
-      end
+      delegate 'cleanup'
       reset_botmodule_lists
     end
 
@@ -506,8 +504,12 @@ module Plugins
       when /^(\S+)\s*(.*)$/
         key = $1
         params = $2
-        (core_modules + plugins).each { |p|
-         next unless p.name == key
+
+       # We test for the mapped commands first
+        k = key.to_sym
+        [core_commands, plugin_commands].each { |pl|
+          next unless pl.has_key?(k)
+          p = pl[k][:botmodule] 
           begin
             return p.help(key, params)
           rescue Exception => err
@@ -515,12 +517,12 @@ module Plugins
             error report_error("#{p.botmodule_class} #{p.name} help() failed:", err)
           end
         }
-        k = key.to_sym
-        [core_commands, plugin_commands].each { |pl|
-          next unless pl.has_key?(k)
-          p = pl[k][:botmodule] 
+
+       # If no such commmand was found, we look for a botmodule with that name
+        (core_modules + plugins).each { |p|
+         next unless p.name == key
           begin
-            return p.help(p.name, topic)
+            return p.help(key, params)
           rescue Exception => err
             #rescue TimeoutError, StandardError, NameError, SyntaxError => err
             error report_error("#{p.botmodule_class} #{p.name} help() failed:", err)