def whois
      connected do
        fiber = Fiber.current
        callbacks = {}

        # User is online.
        callbacks[311] = @thaum.on(311) do |event_data|
          nick = event_data[:params].split(' ')[1]
          if nick.downcase == @nick.downcase
            @online = true
            # TODO: Add properties.
          end
        end

        # User is not online.
        callbacks[401] = @thaum.on(401) do |event_data|
          nick = event_data[:params].split(' ')[1]
          if nick.downcase == @nick.downcase
            @online = false
            fiber.resume
          end
        end

        # End of WHOIS.
        callbacks[318] = @thaum.on(318) do |event_data|
          nick = event_data[:params].split(' ')[1]
          if nick.downcase == @nick.downcase
            fiber.resume
          end
        end

        raw "WHOIS #{@nick}"
        Fiber.yield

        callbacks.each do |type, callback|
          @thaum.callbacks[type].delete(callback)
        end
      end

      self
    end
def whois
      connected do
        fiber = Fiber.current
        callbacks = {}

        # User is online.
        callbacks[311] = @thaum.on(311) do |event_data|
          nick = event_data[:params].split(' ')[1]
          if nick.downcase == @nick.downcase
            @online = true
            # TODO: Add properties.
          end
        end

        # User is not online.
        callbacks[401] = @thaum.on(401) do |event_data|
          nick = event_data[:params].split(' ')[1]
          if nick.downcase == @nick.downcase
            @online = false
            fiber.resume
          end
        end

        # End of WHOIS.
        callbacks[318] = @thaum.on(318) do |event_data|
          nick = event_data[:params].split(' ')[1]
          if nick.downcase == @nick.downcase
            fiber.resume
          end
        end

        raw "WHOIS #{@nick}"
        Fiber.yield

        callbacks.each do |type, callback|
          @thaum.callbacks[type].delete(callback)
        end
      end

      self
    end
Updates the properties of an user.