public static void initUDP() { packets[0x2F] = new x2fREQUESTGAME(); packets[0x30] = new x30GAMEDETAILS(); packets[0x31] = new x31CREATEGAME(); packets[0x32] = new x32REFRESHGAME(); }
async void onPacket(Object packet, IPEndPoint from) { await Task.Run(() => { try{ if (packet is x2fREQUESTGAME) { x2fREQUESTGAME p = (x2fREQUESTGAME)packet; if (g.id == p.gameId) { Console.WriteLine("Responding to gameinforequest"); g.sendGameDetails(from); } } else if (packet is x31CREATEGAME) { x2fREQUESTGAME p = new x2fREQUESTGAME(); p.product = "W3XP"; p.version = 30; p.gameId = ((x31CREATEGAME)packet).gameId; sendUDPPacket(p, from); } else if (packet is x30GAMEDETAILS) { x30GAMEDETAILS p = (x30GAMEDETAILS)packet; Console.WriteLine("GAME CREATED IN LAN : "); Console.WriteLine(p.product); Console.WriteLine(p.gameId); Console.WriteLine(p.gameName); Console.WriteLine(p.players + " / " + p.slots); Console.WriteLine(string.Join('-', p.stats)); } else if (packet is x32REFRESHGAME) { //idgaf lol } else { Console.WriteLine("Unhandled packet " + packet.GetType().Name + " received."); } }catch (Exception x) { System.Console.WriteLine(x); } }); }
public void sendGameDetails(IPEndPoint to) { x30GAMEDETAILS pkt = new x30GAMEDETAILS(); pkt.product = "W3XP"; pkt.gameVersion = 30; pkt.gameId = id; pkt.entryKey = entryKey; pkt.gameName = "|c0000ffffBig boy club"; pkt.passwd = ""; pkt.stats = GetStatStringData(); pkt.slots = (uint)gameMap.MapNumPlayers; pkt.gameflags = 9; pkt.players = (uint)players.Count(); pkt.freeslots = pkt.slots - pkt.players; //? lol pkt.age = 0; pkt.port = 6112; //System.Console.WriteLine(string.Join('-',pkt.stats)); p.sendUDPPacket(pkt, to); }