private void _serverSockets_DataArrival(object sender, WinsockDataArrivalEventArgs e) { //throw new NotImplementedException(); }
public void IRCSock_DataArrival(object sender, WinsockDataArrivalEventArgs e) { string incoming = Encoding.UTF8.GetString((byte[])IRCSock.Get()); string host = ""; string dat = ""; string message = ""; string[] splits; int index = 0; splits = incoming.Split('\r', '\n'); for (int b = 0; (splits.Length - 1) >= b; b++) { splits[b] = splits[b].Replace("\r\n", ""); splits[b] = splits[b].Replace("\n", ""); splits[b] = splits[b].Replace("\r", ""); } do { incoming = splits[index]; if (incoming.Contains(" ")) { if (incoming.Contains("/NAMES list")) { canTalk = true; } if (incoming.Substring(0, 1) == ":") { host = incoming.Substring(1, incoming.IndexOf(" ") - 1); } else { host = incoming.Substring(0, incoming.IndexOf(" ")); } dat = incoming.Substring(incoming.IndexOf(" ") + 1, incoming.Length - (incoming.IndexOf(" ") + 1)); if (dat.Contains(":")) { message = dat.Substring(dat.IndexOf(":") + 1, dat.Length - (dat.IndexOf(":") + 1)); } if (host == "PING") { send("PONG " + dat); return; } string second = dat.Substring(0, dat.IndexOf(" ")); string[] mysplits = dat.Split(new string[] { " " }, 4, StringSplitOptions.None); message = message.Replace("\r\n", ""); switch (second) { case "PRIVMSG": if (ircmode == 1 || ircmode == 3 && message.StartsWith("+") == false) { nh.socket.writeByte(3); nh.socket.writeString("IRC: <" + host.Substring(0, host.IndexOf("!")) + "> " + message); } if (message.StartsWith("=")) { string cmd = mysplits[2].Substring(1, mysplits[2].Length - 1); switch (cmd.ToLower()) { case "=say": if (mysplits.Length > 3) { ircmessage(mysplits[3]); } break; case "=ssay": Packets.chatMessage mypacket; if (mysplits.Length > 3) { mypacket = new Packets.chatMessage(nh.socket, this, mysplits[3], true); } break; case "=help": ircmessage("C# Minebot IRC Client, Version 1.1"); ircmessage("Only functional to relay messages between IRC channels and minecraft servers."); ircmessage("Commands are =say, =ssay, and =help."); break; } } break; case "376": send("JOIN " + channel); ircmessage("Current mode: " + ircmode); break; } } index++; } while (index == splits.Length - 1); incoming = ""; }
private void _clientSocket_DataArrival(object sender, WinsockDataArrivalEventArgs e) { //throw new NotImplementedException(); //List<Keys> data = _clientSocket.Get<List<Keys>>(); object data = _clientSocket.Get(); SendParentPoke(data); }