X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=lib%2Frbot%2Fplugins.rb;h=b0626b9687181c8416e5d3e68e19ce0efaa439b4;hb=a4ff366eea4c88083be8a3d30cc6395f17b55fe2;hp=42ff2aaa959382c6992b25b9bba7f8f3670d38a8;hpb=5aa914133c6482c500cf439d65584282212beb6b;p=user%2Fhenk%2Fcode%2Fruby%2Frbot.git diff --git a/lib/rbot/plugins.rb b/lib/rbot/plugins.rb index 42ff2aaa..b0626b96 100644 --- a/lib/rbot/plugins.rb +++ b/lib/rbot/plugins.rb @@ -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,25 +504,28 @@ module Plugins when /^(\S+)\s*(.*)$/ key = $1 params = $2 - (core_modules + plugins).each { |p| - # debug "checking #{p.name.inspect} against #{key.inspect}" + + # 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(params) + 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) - end if p.name == key + end } - [core_commands, plugin_commands].each { |pl| - # debug "looking for #{key.inspect} in #{pl.keys.sort.inspect}" - if pl.has_key?(key) - p = pl[key][:botmodule] - begin - 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) - end + + # 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(key, params) + rescue Exception => err + #rescue TimeoutError, StandardError, NameError, SyntaxError => err + error report_error("#{p.botmodule_class} #{p.name} help() failed:", err) end } end