X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=lib%2Frbot%2Fplugins.rb;h=54b814e0eb400c89e5c58c09c0f017a3141ce93d;hb=8836539ba33a7507c23af1f410dbf78d36503148;hp=893bb4142650da70c11f6f3137db7314a8c6e9d3;hpb=3f638c7caec51c834b1703d8fe0415c5ea786224;p=user%2Fhenk%2Fcode%2Fruby%2Frbot.git diff --git a/lib/rbot/plugins.rb b/lib/rbot/plugins.rb index 893bb414..54b814e0 100644 --- a/lib/rbot/plugins.rb +++ b/lib/rbot/plugins.rb @@ -99,6 +99,10 @@ module Plugins @registry = BotRegistryAccessor.new(@bot, self.class.to_s.gsub(/^.*::/, "")) end + def flush_registry + @registry.flush + end + def map(*args) @handler.map(*args) # register this map @@ -200,7 +204,8 @@ module Plugins debug "loading plugin #{tmpfilename}" plugin_module.module_eval(plugin_string) processed << file - rescue TimeoutError, StandardError, NameError, LoadError, SyntaxError => err + rescue Exception => err + # rescue TimeoutError, StandardError, NameError, LoadError, SyntaxError => err puts "warning: plugin #{tmpfilename} load failed: " + err puts err.backtrace.join("\n") end @@ -211,6 +216,7 @@ module Plugins # call the save method for each active plugin def save + delegate 'flush_registry' delegate 'save' end @@ -250,7 +256,8 @@ module Plugins if(@@plugins.has_key?(key)) begin return @@plugins[key].help(key, params) - rescue TimeoutError, StandardError, NameError, SyntaxError => err + rescue Exception => err + #rescue TimeoutError, StandardError, NameError, SyntaxError => err puts "plugin #{@@plugins[key].name} help() failed: " + err puts err.backtrace.join("\n") end @@ -267,7 +274,8 @@ module Plugins if(p.respond_to? method) begin p.send method, *args - rescue TimeoutError, StandardError, NameError, SyntaxError => err + rescue Exception => err + #rescue TimeoutError, StandardError, NameError, SyntaxError => err puts "plugin #{p.name} #{method}() failed: " + err puts err.backtrace.join("\n") end @@ -284,7 +292,8 @@ module Plugins @@bot.auth.allow?(m.plugin, m.source, m.replyto)) begin @@plugins[m.plugin].privmsg(m) - rescue TimeoutError, StandardError, NameError, SyntaxError => err + rescue Exception => err + #rescue TimeoutError, StandardError, NameError, SyntaxError => err puts "plugin #{@@plugins[m.plugin].name} privmsg() failed: " + err puts err.backtrace.join("\n") end