private void Stop() { if (IrcObject != null) { WikiIRC.Run = false; IrcObject.ConnectEvent -= Connected; IrcObject.DisconnectEvent -= Disconnected; IrcObject.OtherMessages -= ProcessOtherMessages; IrcObject.Edit -= ProcessEdit; IrcObject.NewArticle -= ProcessNewArticles; IrcObject.NewUser -= ProcessNewUser; IrcObject.PageMove -= ProcessMove; IrcObject.Upload -= ProcessUpload; IrcObject.Delete -= ProcessDelete; IrcObject.Restore -= ProcessRestore; IrcObject.Protect -= ProcessProtection; IrcObject.Unprotect -= ProcessUnprotection; IrcObject.Block -= ProcessBlock; IrcObject.Unblock -= ProcessUNBlock; IrcObject = null; } }
private void Start() { Stop(); StatusLabelText = "Connecting"; Random n = new Random(); string name = "ircM"; if (string.IsNullOrEmpty(txtNickname.Text)) name += n.Next(1000, 100000).ToString(); else name += txtNickname.Text; IrcObject = new WikiIRC(txtServer.Text, int.Parse(txtPort.Text), name, GetIrcChannel()); WikiIRC.Run = true; IrcObject.OtherMessages += ProcessOtherMessages; IrcObject.ConnectEvent += Connected; IrcObject.DisconnectEvent += Disconnected; IrcObject.Edit += ProcessEdit; IrcObject.NewArticle += ProcessNewArticles; IrcObject.NewUser += ProcessNewUser; IrcObject.PageMove += ProcessMove; IrcObject.Upload += ProcessUpload; IrcObject.Delete += ProcessDelete; IrcObject.Restore += ProcessRestore; IrcObject.Protect += ProcessProtection; IrcObject.Unprotect += ProcessUnprotection; IrcObject.Block += ProcessBlock; IrcObject.Unblock += ProcessUNBlock; IrcObject.Start(); }