/* * Handles intercepted packets */ private static void PacketHandler(Packet packet) { byte[] data = new byte[packet.Count]; packet.CopyTo(data, 0); string str = Encoding.Default.GetString(data); // If this is a hostquery message we will respond if (str.Contains("HostQuery_X")) { Console.WriteLine(str); // Convert data to useable object string json = str.Split(new string[] { "HostQuery_X" }, StringSplitOptions.None)[1]; try { HostQuery_X query = JsonConvert.DeserializeObject <HostQuery_X>(json); // For every server we want to show we will send a response packet back foreach (string ServerID in ServerList) { HostResponse_X response = CraftResponse(ServerID, query); SendResponse(response); } } catch (Exception e) { Console.WriteLine(e.Message); } } }
private static HostResponse_X CraftResponse(string serverID, HostQuery_X query) { HostResponse_X response = new HostResponse_X() { Result = new Result { Settings = new Settings() { GameTags = "", MapName = "None", GameMode = 0, MaxPlayerCount = 0, ServerName = "", Password = "", bPublic = false, TeamSettings = new Teamsetting[] { new Teamsetting(), new Teamsetting() } } }, ServerID = serverID, MetaData = JsonConvert.SerializeObject(new MetaData() { OwnerID = "Steam|76561198033133742|0", OwnerName = $"/r/RocketLeagueMods", ServerName = $"RocketLeagueMods {serverID}", ServerMap = "Labs_Underpass_P", ServerGameMode = 0, bPassword = false, NumPlayers = 1, MaxPlayers = 10 }), Nonce = query.Nonce }; return(response); }