static public void PrivmsgAction(Message message) { if (message.ParamsArray[1] == ContextCollection.Server.Client.Nickname) // Private message { var ctx = ContextCollection.GetByName(message.Nick); if (ctx != null) { ctx.WriteMessage(message.Nick, message.Text); } else { IrcQuery query = new IrcQuery(message.Nick); ContextCollection.Add(query, true); query.WriteMessage(message.Nick, message.Text); } } else // Channel { var ctx = ContextCollection.GetByName(message.ParamsArray[1]); if (ctx != null) { ctx.WriteMessage(message.Nick, message.Text); } } }
static public void QueryCommand(string _params) { Match m = Regex.Match(_params.Trim(), @"^([A-Za-z0-9_\-\[\]\\^{}|`]+)$"); if (m.Groups[1] == null || m.Groups[1].Value.Length == 0) { ContextCollection.Current.WriteLine("Usage: /query [<nickname>]"); return; } var ctx = ContextCollection.GetByName(m.Groups[1].Value); if (ctx == null) { IrcQuery query = new IrcQuery(m.Groups[1].Value); ContextCollection.Add(query); } else { ContextCollection.Current = ctx; Program.MainWindow.UpdateContext(); } }