public Irc Read( string server ) { Irc _irc; string host, nick, password, srvPass, owner, user, real, channel, key, additional; int port; ConsoleColor colour; RFC1459.ReplyCode lkc; IConfig irc = config.Configs[ server ]; nick = irc.GetString ( "Nick" ); real = irc.GetString ( "Realname" ); user = irc.GetString ( "Username" ); host = irc.GetString ( "Host" ); srvPass = irc.GetString ( "Server_Password" ); port = irc.GetInt ( "Port" ); owner = irc.GetString ( "Owner" ); password = irc.GetString ( "NickPassword" ); if ( !string.IsNullOrEmpty ( password ) ) password = new SymCryptography ( SymCryptography.ServiceProviderEnum.Rijndael ).Decrypt ( password ); lkc = ( RFC1459.ReplyCode ) irc.GetInt ( "LastKnownCode" ); colour = ( ConsoleColor ) irc.GetInt ( "Colour" ); channel = irc.GetString ( "MainChannel" ); key = irc.GetString ( "MainKey" ); additional = irc.GetString ( "Channels" ); Stack<ChannelData> chanBuffer = new Stack<ChannelData> ( ); foreach ( string ch in additional.Split ( ',' ) ) { string[] chankey = ch.Split ( ':' ); chanBuffer.Push ( new ChannelData ( ) { Channel = chankey[ 0 ], Key = chankey[ 1 ] } ); } _irc = new Irc ( nick, real, user, password, host, "", port, lkc, colour, channel, key ); _irc.ChannelBuffer = chanBuffer; return _irc; }
public void Save( Irc irc ) { IConfig server = null; ; string host = irc.Host; string nick = irc.Nick; string user = irc.Username; string real = irc.Realname; int port = irc.Port; string owner = irc.Owner; string nspass = irc.NickPass; string srvpass = irc.ServerPass; Stack<ChannelData> buffer = irc.ChannelBuffer; if ( !string.IsNullOrEmpty ( nspass ) ) nspass = new SymCryptography ( SymCryptography.ServiceProviderEnum.Rijndael ).Encrypt ( nspass ); // Last known code RFC1459.ReplyCode lkc = irc.Code; ConsoleColor colour = irc.Colour; if ( config.Configs[ irc.Server ] == null ) server = config.AddConfig ( irc.Server ); else server = config.Configs[ irc.Server ]; server.Set ( "Host", host ); server.Set ( "Port", port ); server.Set ( "Nick", nick ); server.Set ( "Server_Password", srvpass ); server.Set ( "Username", user ); server.Set ( "Realname", real ); server.Set ( "NickPassword", nspass ); server.Set ( "Owner", owner ); server.Set ( "LastKnownCode", ( int ) lkc ); server.Set ( "Colour", ( int ) colour ); server.Set ( "MainChannel", "{nokey}" ); server.Set ( "MainKey", "{nokey}" ); if ( buffer.Count > 0 ) server.Set ( "Channels", string.Join ( ",", buffer.ToArray ( ) ) ); config.Save ( ); }