# File lib/rbot/botuser.rb, line 284
      def initialize(username, options={})
        opts = {:transient => false}.merge(options)
        @transient = opts[:transient]

        if @transient
          @username = "*"
          @username << BotUser.sanitize_username(username) if username and not username.to_s.empty?
          @username << BotUser.sanitize_username(object_id)
          reset_password
          @login_by_mask=true
          @autologin=true
        else
          @username = BotUser.sanitize_username(username)
          @password = nil
          reset_login_by_mask
          reset_autologin
        end

        @netmasks = NetmaskList.new
        if opts.key?(:masks) and opts[:masks]
          masks = opts[:masks]
          masks = [masks] unless masks.respond_to?(:each)
          masks.each { |m|
            mask = m.to_irc_netmask
            if @transient and User === m
              mask.nick = "*"
              mask.host = m.host.dup
              mask.user = "*" + m.user.sub(/^\w?[^\w]+/,'')
            end
            add_netmask(mask) unless mask.to_s == "*"
          }
        end
        raise "must provide a usable mask for transient BotUser #{@username}" if @transient and @netmasks.empty?

        @perm = {}
        @perm_temp = {}
      end