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."); } }
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(); }
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(); } } } }
public static PacketType ReadPacketType(PacketClient cl) { byte[] ShortData = new byte[2]; cl.sClient.Receive(ShortData); return (PacketType)IPAddress.NetworkToHostOrder(BitConverter.ToInt16(ShortData, 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); } }
public static PacketType ReadPacketType(PacketClient cl) { byte[] ShortData = new byte[2]; cl.sClient.Receive(ShortData); return((PacketType)IPAddress.NetworkToHostOrder(BitConverter.ToInt16(ShortData, 0))); }