diff options
Diffstat (limited to 'lib/rbot')
-rw-r--r-- | lib/rbot/message.rb | 7 | ||||
-rw-r--r-- | lib/rbot/messagemapper.rb | 2 |
2 files changed, 8 insertions, 1 deletions
diff --git a/lib/rbot/message.rb b/lib/rbot/message.rb index 99f4bb7f..ba0d8cc9 100644 --- a/lib/rbot/message.rb +++ b/lib/rbot/message.rb @@ -132,6 +132,12 @@ module Irc attr_accessor :ignored alias :ignored? :ignored + # should the message handler be excuted in new thread? + # if set to true or false, this overrides :thread option in map. if it's nil, + # the map option takes effect + attr_accessor :thread + alias :thread? :thread + # instantiate a new Message # bot:: associated bot class # server:: Server where the message took place @@ -150,6 +156,7 @@ module Irc @replied = false @server = server @ignored = false + @thread = nil @identified = false if @msg_wants_id && @server.capabilities[:"identify-msg"] diff --git a/lib/rbot/messagemapper.rb b/lib/rbot/messagemapper.rb index b08a503f..2b9fc5e3 100644 --- a/lib/rbot/messagemapper.rb +++ b/lib/rbot/messagemapper.rb @@ -207,7 +207,7 @@ class Bot debug "checking auth for #{auth}" if m.bot.auth.allow?(auth, m.source, m.replyto) debug "template match found and auth'd: #{action.inspect} #{options.inspect}" - if tmpl.options[:thread] || tmpl.options[:threaded] + if m.thread || (m.thread == nil && tmpl.options[:thread] || tmpl.options[:threaded]) Thread.new do begin @parent.send(action, m, options) |