public BotMessage(string message, string currentNick) : base(message) { parameters = ""; parameterList = new List <string>(); command = ""; if (Type == "PRIVMSG") { Match match = Regex.Match(MessageString, "^(\\||" + currentNick + "(,|:)?[ ])", RegexOptions.IgnoreCase); if (!match.Success) { return; } parameterList = MessageString.Substring(match.Value.Length).Trim().Split(' ').ToList(); parameters = MessageString.Substring(match.Value.Length).Trim(); if (parameters.Length > 0) { parameterList = parameters.Split(' ').ToList(); command = parameterList[0]; parameterList.RemoveAt(0); if (parameterList.Count > 0) { parameters = parameters.Remove(0, command.Length + 1); } else { parameters = ""; } } else { parameters = ""; } } }
public IRCMessage(string p_message) { rawMessage = p_message; if (rawMessage.StartsWith("PING ")) { messageType = "PING"; messageString = rawMessage.Split(' ')[1].TrimStart(':'); } else { messageList = rawMessage.Split(' ').ToList <string>(); messageType = messageList[1]; if (messageList[0].Contains('!')) { string[] userArray = messageList[0].Split('!'); User.Name = userArray[0].TrimStart(':'); string[] userHostArray = userArray[1].Split('@'); User.User = userHostArray[0]; User.Hostmask = userHostArray[1]; } else { User.Name = messageList[0].TrimStart(':'); User.User = ""; User.Hostmask = ""; } if (messageType == "JOIN") { TargetType = TargetTypes.CHANNEL; replyTo = messageList[2].TrimStart(':'); } else if (messageType == "PRIVMSG" || messageType == "TOPIC") { if (messageList[2].TrimStart(':').StartsWith("#")) { TargetType = TargetTypes.CHANNEL; replyTo = messageList[2].TrimStart(':').ToLowerInvariant(); } else { TargetType = TargetTypes.USER; replyTo = User.Name.ToLowerInvariant(); } messageString = String.Join(" ", messageList.ToArray(), 3, messageList.Count - 3); if (messageString.StartsWith(":")) { messageString = messageString.Substring(1, messageString.Length - 1); } if (MessageString.StartsWith(Convert.ToChar((byte)1).ToString())) { int messageEnd = MessageString.IndexOf(Convert.ToChar((byte)1), 1); if (messageEnd > 1) { ctcpString = MessageString.Substring(1, messageEnd - 1); ctcp = true; } } } } }