void IClientPacket.ExecutePacket(AsyncConnection connection, ByteBuffer packet) { uint objid = packet.ReadObjectIDRev(); TORLog.Info("CharacterListRequest@" + objid); connection.SendPacket(new SMsg_CharacterListResponse(objid)); }
void IClientPacket.ExecutePacket(AsyncConnection connection, ByteBuffer packet) { uint objid = packet.ReadObjectIDRev(); TORLog.Info("GetServerAddress@" + objid); //connection.SendPacket(new SMsg_ServerAddressResponse(objid, "swtor.privateserver.com")); }
public static void ClientSignatureResponse(AsyncConnection con, string objectName, uint id, string signature) { TORLog.Info("ClentSignatureResponse: " + objectName + "@" + id + " = " + signature); if (objectName == "OmegaServerProxyObjectName") { con.SendPacket(new SMsg_ServerSignatureResponse(0x5050, "u796", "userentrypoint13", "9cf74d45:1a6cc459:6fa57dc2")); con.SendPacket(new SMsg_XMLSettings()); } }
void IClientPacket.ExecutePacket(AsyncConnection connection, ByteBuffer packet) { uint objid = packet.ReadObjectIDRev(); packet.ReadByte(); uint charid = packet.ReadUInt(); TORLog.Info("CharacterSelectRequest@" + objid + " - " + charid); connection.SendPacket(new SMsg_CharacterSelectResponse(objid)); connection.SendPacket(new SMsg_CharacterCurrentMap(objid, "ord_main", "4611686019802843831")); connection.SendPacket(new SMsg_CharacterAreaEnter(objid)); connection.SendPacket(new SMsg_CharacterAreaServerSpec(objid, "ord_main", "4611686019802843831")); }
public static void SendPacket(this AsyncConnection con, IServerPacket pkt) { byte opcode = OpcodeManager.Instance.GetOpcode(pkt.GetType().Name); uint packetid = OpcodeManager.Instance.GetPacketID(pkt.GetType().Name); if (packetid == 0) { TORLog.Error("ERROR: No PacketID defined for " + pkt.GetType().Name); return; } ByteBuffer packet = new ByteBuffer(ByteOrder.LittleEndian); packet.WriteByte(opcode); packet.WriteInt(0); // Length packet.WriteByte(0); // ChkByte packet.WriteUInt(packetid); pkt.WritePacket(con, packet); con.SendTORPacket(packet); TORLog.Network("PktSend @ " + con.GetHashCode() + " >> " + pkt.GetType().Name); }
static void Main(string[] args) { Console.Title = "Nexus Shard Server"; Console.WriteLine("Nexus Shard Server\n"); Utility.WriteLegal(); Console.WriteLine(""); AsyncServer server = new AsyncServer(IPAddress.Parse("0.0.0.0"), 20063); server.Start(); server.ConnectionAccepted += new AsyncServer.ConnectionAcceptedHandler(connection => { TORLog.Network("CnxAccept => " + connection.GetHashCode()); connection.DataReceived += new AsyncConnection.ConnectionDataReceivedHandler(data => { if (connection.State == 1) { // rsa packet connection.SetState(2); connection.SendPacket(new SMsg_ClientSignatureRequest("OmegaServerProxyObjectName", 0x0174F5)); return; } ByteBuffer buffer = new ByteBuffer(ByteOrder.LittleEndian, data); byte opcode = (byte)buffer.ReadByte(); byte[] len_data = buffer.ReadBytes(4); byte chk = (byte)buffer.ReadByte(); uint packetid = buffer.ReadUInt(); if (chk != (byte)(opcode ^ len_data[0] ^ len_data[1] ^ len_data[2] ^ len_data[3])) { TORLog.Warn("Received packet with invalid checksum!"); } if (opcode == 1) // Client Ping Packet { TORLog.Network("Ping from " + connection.GetHashCode() + " Seq = " + packetid); ByteBuffer response = new ByteBuffer(ByteOrder.LittleEndian); response.WriteByte(2); // Pong OPC = 2 response.WriteInt(0); // Pong Len response.WriteByte(0); // Pong Chk response.WriteUInt(packetid); // Pong response.WriteInt(0); response.WriteInt(1); response.WriteByte(0); connection.SendTORPacket(response); return; } string packetname = OpcodeManager.Instance.GetPacketName(opcode, packetid); if (packetname == "") { TORLog.Warn("Received unknown packet from SWTOR client\nOpcode = 0x" + opcode.ToString("X2") + " -- PacketID = 0x" + packetid.ToString("X8")); TORLog.Warn("--- dump ---"); TORLog.Warn(Utility.HexDump(data)); } else { try { IClientPacket pkt = Activator.CreateInstance(Type.GetType("ShardServer.Packets.Client." + packetname)) as IClientPacket; TORLog.Network("PktRecv @ " + connection.GetHashCode() + " << " + packetname); pkt.ExecutePacket(connection, buffer); } catch (Exception ex) { TORLog.Error("Exception occured while processing " + packetname, ex); } } }); // Send HELLO packet connection.SendClear(new byte[] { 0x03, 0x0e, 0x00, 0x00, 0x00, 0x0d, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }); // State is 1 connection.SetState(1); connection.EngageReading(); }); TORLog.Info("SHARD Server running, press Enter to exit ..."); Console.ReadLine(); }
public static void RequestServerSignature(AsyncConnection con, string objectName) { uint responseid = 0; string data1 = ""; string data2 = "userentrypoint13"; string sig = ""; switch (objectName) { case "timesource": responseid = 0x010006; data1 = "timesource"; sig = "462a9d1f"; break; case "biomon": responseid = 0x02505e; data1 = "sp1u796[biomonserver:biomon]sylar501.biomon"; sig = "389fc8f0:9adcb7e6"; break; case "worldserver": responseid = 0x035059; data1 = "sp2u796[WorldServer:worldserver]sylar501.worldserver"; sig = "51e518d9:92367cb3:29f2db17"; break; case "gamesystemsserver": responseid = 0x05505a; data1 = "sp3u796[GameSystemsServer:gamesystemsserver]sylar501.gamesystemsserver"; sig = "450a2825"; break; case "chatgateway": responseid = 0x06505c; data1 = "sp4u796[ChatGateway:chatgateway]sylar501.chatgateway"; sig = "900005df"; break; case "auctionserver": responseid = 0x07505b; data1 = "sp5u796[AuctionServer:auctionserver]sylar501.auctionserver"; sig = "9ce839f7"; break; case "mailserver": responseid = 0x085058; data1 = "sp6u796[Mail:mailserver]sylar501.mailserver"; sig = "9759aa23"; break; case "trackingserver": responseid = 0x09505d; data1 = "sp7u796[TrackingServer:trackingserver]sylar501.trackingserver"; sig = "c5b320c1:8cebf93e"; break; case "areaserver": responseid = 0x046953; data1 = "sp8u796[AreaServer-ord_main-4611686019802843831-1-:areaserver]sylar501.areaserver"; sig = "91ac5777:62060b0:29f2db17"; break; default: TORLog.Error("Unknown server signature for " + objectName); return; } con.SendPacket(new SMsg_ServerSignatureResponse(responseid, data1, data2, sig)); }
public static void RequestClientSignature(AsyncConnection con, string objectName, uint id) { con.SendPacket(new SMsg_ClientSignatureRequest(objectName, id)); TORLog.Info("RequestClientSignature: " + objectName + "@" + id); }
public void ExecutePacket(AsyncConnection connection, ByteBuffer packet) { TORLog.Info(connection.GetHashCode() + " leaving the Shard Server."); connection.Close(); }