Esempio n. 1
0
 private void _serverSockets_DataArrival(object sender, WinsockDataArrivalEventArgs e)
 {
     //throw new NotImplementedException();
 }
Esempio n. 2
0
        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 = "";
        }
Esempio n. 3
0
 private void _clientSocket_DataArrival(object sender, WinsockDataArrivalEventArgs e)
 {
     //throw new NotImplementedException();
     //List<Keys> data = _clientSocket.Get<List<Keys>>();
     object data = _clientSocket.Get();
     SendParentPoke(data);
 }