private void OnMode(IrcMessage message) { if (message.Parameters.Count > 0) { if (IrcTarget.IsChannelName(message.Parameters[0])) { this.RaiseEvent(this.ChannelModeChanged, new IrcChannelModeEventArgs(message)); } else { var e = new IrcUserModeEventArgs(message); this.UserModes = (from m in e.Modes.Where((newMode) => newMode.Set).Select((newMode) => newMode.Mode).Union(this.UserModes).Distinct() where !e.Modes.Any((newMode) => !newMode.Set && newMode.Mode == m) select m).ToArray(); this.RaiseEvent(this.UserModeChanged, new IrcUserModeEventArgs(message)); } } }
private void Session_UserModeChanged(object sender, IrcUserModeEventArgs e) { if (this.IsServer) { this.Write("Mode", e.Message.Time, string.Format("You set mode: {0}", IrcUserMode.RenderModes(e.Modes))); } this.SetTitle(); }