anchor.diff:     * The IRC Parser to use.
      */
     IrcParser get parser;
  -  
  +
     /**
      * Bot Configuration
      */
     Configuration get config;
  -  
  +
     /**
      * The Client's Nickname
      */
     String get nickname;
  -  
  +
     /**
      * Gets the Channels the Client is in
      */
     Iterable<Channel> get channels;
  -  
  +
     /**
      * Gets the Server's MOTD
      * Not Ready until the ReadyEvent is posted
      */
     String get motd;
  -  
  +
     /**
      * Flag for if the Client is connected.
      */
     bool get connected;
  -  
  +
     /**
      * Provides information about what the server supports.
      */
     Map<String, dynamic> get supported;
  -  
  +
     /**
      * Sends the [message] to the [target] as a message.
      *
  
positive.code:     }
      send("KICK ${channel.name} ${user}${reason != null ? ' :' + reason : ''}");
    }
    
    void loginOperator(String name, String password) {
      send("OPER ${name} ${password}");
    }
    
    void invite(String user, String channel) {
      send("INVITE ${user} ${channel}");
    }
    
    Future<ServerVersionEvent> getServerVersion([String target]);
    Future<String> getChannelTopic(String channel);
    
    Future<bool> isUserOn(String name);
    
    bool get hasNetworkName => supported.containsKey("NETWORK");
    String get networkName => supported["NETWORK"];
  }
  
negative.code:     }
      send("PART ${channel}");
    }
  
    /**
     * Disconnects the Client with the specified [reason].
     * If [force] is true, then the socket is forcibly closed.
     * When it is forcibly closed, a future is returned.
     */
    Future disconnect({String reason: "Client Disconnecting"});
  
    /**
     * Connects to the IRC Server
     * Any errors are sent through the [ErrorEvent].
     */
    void connect();
  
    /**
     * Posts a Event to the Event Dispatching System
     * The purpose of this method was to assist in checking for Error Events.
  