Google

# File rbot/message.rb, line 99
    def initialize(bot, source, target, message)
      super(bot, source, target, message)
      @target = target
      @private = false
      @plugin = nil
      @action = false
      
      if target.downcase == @bot.nick.downcase
        @private = true
        @address = true
        @channel = nil
        @replyto = @sourcenick
      else
        @replyto = @target
        @channel = @target
      end

      # check for option extra addressing prefixes, e.g "|search foo", or
      # "!version" - first match wins
      bot.addressing_prefixes.each {|mprefix|
        if @message.gsub!(/^#{Regexp.escape(mprefix)}\s*/, "")
          @address = true
          break
        end
      }
      
      # even if they used above prefixes, we allow for silly people who
      # combine all possible types, e.g. "|rbot: hello", or 
      # "/msg rbot rbot: hello", etc
      if @message.gsub!(/^\s*#{bot.nick}\s*([:;,>]|\s)\s*/, "")
        @address = true
      end
      
      if(@message =~ /^\001ACTION\s(.+)\001/)
        @message = $1
        @action = true
      end
      
      # free splitting for plugins
      @params = @message.dup
      if @params.gsub!(/^\s*(\S+)[\s$]*/, "")
        @plugin = $1.downcase
        @params = nil unless @params.length > 0
      end
    end