Ejemplo n.º 1
0
        private void StartClient(string user, string uuid, string sessionID, int protocolversion, string server_ip, ushort port, ForgeInfo forgeInfo)
        {
            this.sessionid = sessionID;
            this.host      = server_ip;
            this.port      = port;
            player         = new Player(world, user, uuid);

            try
            {
                packetClient = new PacketClient();
                if (!packetClient.Connect(new ServerConnectionInfo(server_ip, port), player, protocolversion, forgeInfo, this))
                {
                    return;
                }

                handler = packetClient.communicationHandler;
                player.SetHandler(handler);

                Console.WriteLine("Server was successfully joined.\nType '" + Settings.internalCmdChar + "quit' to leave the server.");
            }
            catch (SocketException e)
            {
                ConsoleIO.WriteLineFormatted("§8" + e.Message);
                Console.WriteLine("Failed to connect to this IP.");
            }
        }
Ejemplo n.º 2
0
 public Packet(PacketType pType, PacketClient client, bool ClientProtocolPacket, PacketArguments args)
 {
     PacketArgs = args;
     sock = client;
     PacketArgs.packetType = pType;
     PacketArgs.ClientPacket = ClientProtocolPacket;
 }
Ejemplo n.º 3
0
 public Packet(PacketType pType, PacketClient client, bool ClientProtocolPacket, PacketArguments args)
 {
     PacketArgs              = args;
     sock                    = client;
     PacketArgs.packetType   = pType;
     PacketArgs.ClientPacket = ClientProtocolPacket;
 }
 public override void LoadData()
 {
     MyAPIGateway.Entities.OnEntityAdd += EntityAdded;
     Instance = this;
     Net.Register();
     CachedPacketServer = new PacketServer();
     CachedPacketClient = new PacketClient();
 }
Ejemplo n.º 5
0
        private static void MirrorRateTesting()
        {
            var server = new PacketServer(26657);

            server.StartListening();

            var client = new PacketClient("127.0.0.1", 26657);
            var sw     = Stopwatch.StartNew();
            var pc     = 0;

            server.PacketReceived += (s, e) => mirror(e);
            client.PacketReceived += (s, e) => mirror(e);

            if (client.Connect())
            {
                client.Communicator.Send(new PingPacket());
            }
            else
            {
                throw new Exception("How?");
            }

            while (true)
            {
                Thread.Sleep(-1);
            }

            void mirror(PacketReceivedEventArgs e)
            {
                if (e.Packet is PingPacket pingPacket)
                {
                    e.Connection.Communicator.Send(new PongPacket()
                    {
                        Value = pingPacket.Value + 1
                    });
                }
                else if (e.Packet is PongPacket pongPacket)
                {
                    e.Connection.Communicator.Send(new PingPacket()
                    {
                        Value = pongPacket.Value + 1
                    });
                }

                if (e.Connection is PacketClient)
                {
                    pc++;

                    if (sw.ElapsedMilliseconds > 1000)
                    {
                        Console.WriteLine($"Mirrored {pc} packets.");
                        pc = 0;
                        sw.Restart();
                    }
                }
            }
        }
Ejemplo n.º 6
0
 public static PacketType ReadPacketType(PacketClient cl)
 {
     byte[] ShortData = new byte[2];
     cl.sClient.Receive(ShortData);
     return (PacketType)IPAddress.NetworkToHostOrder(BitConverter.ToInt16(ShortData, 0));
 }
Ejemplo n.º 7
0
        private void SendGetToServer()
        {
            try
            {
                try
                {
                    if (channel == null)
                    {
                        channel = new Channel();
                    }

                    for (int i = 0; i < 20; i++)
                    {
                        string v = channel.ReadWhisperChannel();
                        if (v != "")
                        {
                            channelWhisper.Add(v);
                            if (channelWhisper.Count > 3)
                            {
                                channelWhisper.RemoveAt(0);
                            }
                            break;
                        }
                    }
                }
                catch (Exception e)
                {
                    Logging.WriteError("Remote > SendGetToServer()#1: " + e);
                }

                string whisper = channelWhisper.Aggregate("",
                                                          (current, cw) =>
                                                          cw.Replace("~", "-").Replace("|", "-") + "~" + current);
                whisper = whisper.Replace("[Whisper]", "");

                Logging.LogType flag = Logging.LogType.S;
                flag |= Logging.LogType.D;
                flag |= Logging.LogType.E;
                flag |= Logging.LogType.F;
                flag |= Logging.LogType.N;

                PacketClient packetClient = new PacketClient
                {
                    Name         = ObjectManager.Me.Name,
                    Level        = (int)ObjectManager.Me.Level,
                    Health       = (int)ObjectManager.Me.HealthPercent,
                    X            = ObjectManager.Me.Position.X,
                    Y            = ObjectManager.Me.Position.Y,
                    Z            = ObjectManager.Me.Position.Z,
                    LastLog      = Logging.ReadLastString(flag),
                    TargetName   = ObjectManager.Target.Name,
                    TargetLevel  = (int)ObjectManager.Target.Level,
                    TargetHealth = (int)ObjectManager.Target.HealthPercent,
                    InGame       = Usefuls.InGame,
                    SubMapName   = Usefuls.SubMapZoneName,
                    ClassPlayer  = ObjectManager.Me.WowClass.ToString(),
                    BagSpace     = Usefuls.GetContainerNumFreeSlots,
                    LastWhisper  = whisper,
                    Screenshot   = UploadScreenshot()
                };


                string req = packetClient.Name + "|" + packetClient.Level + "|" + packetClient.Health + "|" +
                             packetClient.X + "|" +
                             packetClient.Y + "|" + packetClient.Z + "|" + packetClient.LastLog + "|" +
                             packetClient.TargetName + "|" +
                             packetClient.TargetLevel + "|" + packetClient.TargetHealth + "|" + packetClient.InGame +
                             "|" + packetClient.SubMapName + "|" + packetClient.ClassPlayer + "| |" +
                             packetClient.BagSpace + "|" + packetClient.LastWhisper + "|" + packetClient.Screenshot;


                List <string> result =
                    Others.GetReqWithAuthHeader(RemoteScript + "?sessionId=" + _sessionKey + "&forServer=" + req,
                                                LoginServer.Login, LoginServer.Password);
                if (result[0] == null)
                {
                    result[0] = "";
                }

                string whisperContant = "";
                string whisperFor     = "";
                if (result[0].Contains("|"))
                {
                    try
                    {
                        string[] t = result[0].Split('|');
                        if (t.Length >= 3)
                        {
                            result[0]      = t[0];
                            whisperFor     = t[1];
                            whisperContant = t[2];
                        }
                    }
                    catch (Exception e)
                    {
                        Logging.WriteError("Remote > SendGetToServer()#2: " + e);
                    }
                }
                if (result.Count > 0)
                {
                    if (result[0] == "")
                    {
                        result[0] = "0";
                    }
                    switch ((FlagRequest)Others.ToInt32(result[0]))
                    {
                    case FlagRequest.CloseBot:
                        Logging.WriteDebug("Remote: Close bot.");
                        try
                        {
                            nManager.Pulsator.Dispose(true);
                        }
                        catch
                        {
                        }
                        Process.GetCurrentProcess().Kill();
                        break;

                    case FlagRequest.CloseWow:
                        Logging.WriteDebug("Remote: Close game.");
                        Memory.WowProcess.KillWowProcess();
                        break;

                    case FlagRequest.ShutDownPc:
                        Logging.WriteDebug("Remote: Shutdown Computer.");
                        Others.ShutDownPc();
                        break;

                    case FlagRequest.SendWhisper:
                        if (whisperFor != "" && whisperContant != "")
                        {
                            Chat.SendChatMessageWhisper(whisperContant, whisperFor);
                            channelWhisper.Add("By me To " + whisperFor + ": " + whisperContant);
                            if (channelWhisper.Count > 3)
                            {
                                channelWhisper.RemoveAt(0);
                            }
                        }
                        break;
                    }
                }
            }
            catch (Exception e)
            {
                Logging.WriteError("Remote > SendGetToServer()#3: " + e);
            }
        }
Ejemplo n.º 8
0
 public static PacketType ReadPacketType(PacketClient cl)
 {
     byte[] ShortData = new byte[2];
     cl.sClient.Receive(ShortData);
     return((PacketType)IPAddress.NetworkToHostOrder(BitConverter.ToInt16(ShortData, 0)));
 }