]> git.netwichtig.de Git - user/henk/code/ruby/rbot.git/blobdiff - lib/rbot/ircbot.rb
Fix messagemapper for optional arguments
[user/henk/code/ruby/rbot.git] / lib / rbot / ircbot.rb
index d83a5fe4152c780d1b9dadc8f1aef855c48a61a3..432b61c40d4180653331bb5f5152d7ad098203e3 100644 (file)
@@ -408,8 +408,9 @@ class IrcBot
     }
     @client[:privmsg] = proc { |data|
       m = PrivMessage.new(self, server, data[:source], data[:target], data[:message])
-      debug "Message target is #{data[:target].inspect}"
-      debug "Bot is #{myself.inspect}"
+      # debug "Message source is #{data[:source].inspect}"
+      # debug "Message target is #{data[:target].inspect}"
+      # debug "Bot is #{myself.inspect}"
 
       # TODO use the new Netmask class
       # @config['irc.ignore_users'].each { |mask| return if Irc.netmaskmatch(mask,m.source) }
@@ -605,7 +606,7 @@ class IrcBot
       rescue SystemExit
         log_session_end
         exit 0
-      rescue Errno::ETIMEDOUT, TimeoutError, SocketError => e
+      rescue Errno::ETIMEDOUT, Errno::ECONNABORTED, TimeoutError, SocketError => e
         error "network exception: #{e.class}: #{e}"
         debug e.backtrace.join("\n")
       rescue BDB::Fatal => e
@@ -809,7 +810,9 @@ class IrcBot
       debug "Saving"
       save
       debug "Cleaning up"
-      @plugins.cleanup
+      @save_mutex.synchronize do
+        @plugins.cleanup
+      end
       # debug "Closing registries"
       # @registry.close
       debug "Cleaning up the db environment"
@@ -848,8 +851,10 @@ class IrcBot
 
   # call the rescan method for all of the botmodules
   def rescan
-    @lang.rescan
-    @plugins.rescan
+    @save_mutex.synchronize do
+      @lang.rescan
+      @plugins.rescan
+    end
   end
 
   # channel:: channel to join
@@ -878,6 +883,11 @@ class IrcBot
       sendq "MODE #{channel} #{mode} #{target}", channel, 2
   end
 
+  # kicking a user
+  def kick(channel, user, msg)
+      sendq "KICK #{channel} #{user} :#{msg}", channel, 2
+  end
+
   # m::     message asking for help
   # topic:: optional topic help is requested for
   # respond to online help requests