public static void Notify(Client client, ulong userID, string userName) { var data = new List<Tdf> { new TdfStruct("DATA", new List<Tdf> { new TdfUnion("ADDR", NetworkAddressMember.Unset, new List<Tdf> { }), new TdfString("BPS", ""), new TdfString("CTY", ""), new TdfMap("DMAP", TdfBaseType.Integer, TdfBaseType.Integer, new Dictionary<object, object> { { (ulong)0x70001, (ulong)55 }, { (ulong)0x70002, (ulong)707 } }), new TdfInteger("HWFG", 0), new TdfStruct("QDAT", new List<Tdf> { new TdfInteger("DBPS", 0), new TdfInteger("NATT", (ulong)NatType.Open), new TdfInteger("UBPS", 0) }), new TdfInteger("UATT", 0) }), new TdfStruct("USER", new List<Tdf> { new TdfInteger("AID", userID), new TdfInteger("ALOC", client.Localization), new TdfInteger("ID", userID), new TdfString("NAME", userName) }) }; client.Notify(Component.UserSessions, 2, 0, data); }
private static void AcceptCallback(IAsyncResult ar) { var socket = (Socket)ar.AsyncState; try { var clientSocket = (Socket)socket.EndAccept(ar); Log.Info($"Client connected from {clientSocket.RemoteEndPoint.ToString()}"); var client = new Client(); client.ID = Interlocked.Increment(ref _clientID); client.Socket = clientSocket; client.Stream = new SslStream(new NetworkStream(clientSocket)); client.EndPoint = (IPEndPoint)clientSocket.RemoteEndPoint; Clients.Add(client.ID, client); client.Stream.BeginAuthenticateAsServer(Certificate.BlazeServer, AuthenticateAsServerCallback, client.ID); } catch (Exception ex) { Log.Error(ex.ToString()); } socket.BeginAccept(AcceptCallback, socket); }
public static void Notify(Client client) { var data = new List<Tdf> { }; client.Notify(Component.Stats, 0x32, 0, data); }
public static void Notify(Client client, ulong userID) { var data = new List<Tdf> { new TdfInteger("FLGS", 3), new TdfInteger("ID", userID) }; client.Notify(Component.UserSessions, 5, 0, data); }
public static void Notify(Client client, ulong playerID) { var data = new List<Tdf> { new TdfInteger("GID", client.GameID), new TdfInteger("PID", playerID), new TdfInteger("REAS", 1) }; client.Notify(Component.GameManager, 0x28, 0, data); }
public static void Notify(Client client, bool ulst = false, bool joining = false) { var pslm = new TdfList("PSLM", TdfBaseType.Integer, new ArrayList { }); pslm.List.AddRange(new ulong[] { 268374015, 268374015, 268374015, 268374015, 268374015 }); var data = new List<Tdf> { new TdfStruct("DATA", new List<Tdf> { new TdfUnion("ADDR", NetworkAddressMember.IPPAirAddress, new List<Tdf> { new TdfStruct("VALU", new List<Tdf> { new TdfStruct("EXIP", new List<Tdf> { new TdfInteger("IP", client.ExternalIP), new TdfInteger("PORT", client.ExternalPort) }), new TdfStruct("INIP", new List<Tdf> { new TdfInteger("IP", client.InternalIP), new TdfInteger("PORT", client.InternalPort) }) }) }), new TdfString("BPS", "ams"), new TdfString("CTY", ""), new TdfInteger("HWFG", 0), pslm, new TdfInteger("UATT", 0) }), new TdfInteger("USID", client.User.ID) }; if (ulst == true) { ((TdfStruct)data[0]).Data.Add(new TdfList("ULST", TdfBaseType.TDF_TYPE_BLAZE_OBJECT_ID, new ArrayList { new TdfVector3("0", 4, 1, client.GameID) })); } if (joining) { var game = GameManager.Games[client.GameID]; var gameClient = BlazeServer.Clients[game.ClientID]; gameClient.Notify(Component.UserSessions, 1, 0, data); } else { client.Notify(Component.UserSessions, 1, 0, data); } }
public static void Notify(Client client) { var game = GameManager.Games[client.GameID]; var data = new List<Tdf> { new TdfInteger("ATTR", (ulong)game.Settings), new TdfInteger("GID", game.ID) }; client.Notify(Component.GameManager, 0x6E, 0, data); }
public static void Notify(Client client) { var game = GameManager.Games[client.GameID]; var data = new List<Tdf> { new TdfInteger("GID", client.GameID), new TdfInteger("GSTA", (ulong)game.State) }; client.Notify(Component.GameManager, 0x64, 0, data); }
public static void Notify(Client client) { var game = GameManager.Games[client.GameID]; var gameClient = BlazeServer.Clients[game.ClientID]; var slotID = game.Slots.FindIndex(slot => slot == client.User.ID); var data = new List<Tdf> { new TdfInteger("GID", client.GameID), new TdfStruct("PDAT", new List<Tdf> { new TdfInteger("EXID", 0), new TdfInteger("GID", client.GameID), new TdfInteger("LOC", client.Localization), new TdfString("NAME", client.User.Name), new TdfMap("PATT", TdfBaseType.String, TdfBaseType.String, new Dictionary<object, object> { { "Premium", "False" } }), new TdfInteger("PID", client.User.ID), new TdfUnion("PNET", NetworkAddressMember.IPPAirAddress, new List<Tdf> { new TdfStruct("VALU", new List<Tdf> { new TdfStruct("EXIP", new List<Tdf> { new TdfInteger("IP", client.ExternalIP), new TdfInteger("PORT", client.ExternalPort) }), new TdfStruct("INIP", new List<Tdf> { new TdfInteger("IP", client.InternalIP), new TdfInteger("PORT", client.InternalPort) }) }) }), new TdfInteger("SID", (ulong)slotID), new TdfInteger("SLOT", 0), new TdfInteger("STAT", 0), new TdfInteger("TIDX", 65535), new TdfInteger("TIME", 0), new TdfVector3("UGID", 0, 0, 0), new TdfInteger("UID", (ulong)client.ID) }) }; gameClient.Notify(Component.GameManager, 0x15, 0, data); }
public static void Notify(Client client, ulong gameID, ulong personaID) { //var game = GameManager.Games[client.GameID]; //var gameClient = BlazeServer.Clients[game.ClientID]; var data = new List<Tdf> { //new TdfInteger("GID", client.GameID), //new TdfInteger("PID", (client.Type == ClientType.GameplayUser) ? gameClient.User.ID : client.User.ID) new TdfInteger("GID", gameID), new TdfInteger("PID", personaID) }; client.Notify(Component.GameManager, 0x1E, 0, data); }
public Request(Client client) { Client = client; }
public static void Notify(Client client) { var game = GameManager.Games[client.GameID]; var data = new List<Tdf> { new TdfStruct("GAME", new List<Tdf> { new TdfList("ADMN", TdfBaseType.Integer, new ArrayList { client.User.ID }), new TdfMap("ATTR", TdfBaseType.String, TdfBaseType.String, game.Attributes), new TdfList("CAP", TdfBaseType.Integer, game.Capacity), new TdfInteger("GID", game.ID), new TdfString("GNAM", game.Name), new TdfInteger("GPVH", 666), //new TdfInteger("GSET", game.gset), TODO new TdfInteger("GSID", 1), new TdfInteger("GSTA", (ulong)game.State), new TdfString("GTYP", "frostbite_multiplayer"), new TdfList("HNET", TdfBaseType.Struct, new ArrayList { new List<Tdf> { new TdfStruct("EXIP", new List<Tdf> { new TdfInteger("IP", game.ExternalIP), new TdfInteger("PORT", game.ExternalPort) }), new TdfStruct("INIP", new List<Tdf> { new TdfInteger("IP", game.InternalIP), new TdfInteger("PORT", game.InternalPort) }) } }, true), new TdfInteger("HSES", 13666), new TdfInteger("MCAP", game.MaxPlayers), new TdfInteger("NRES", game.NotResetable), new TdfInteger("NTOP", (ulong)game.NetworkTopology), new TdfString("PGID", "b6852db1-ba37-4b40-aea3-0bd16efba4f9"), new TdfBlob("PGSR", new byte[] { }), new TdfStruct("PHST", new List<Tdf> { new TdfInteger("HPID", client.User.ID), new TdfInteger("HSLT", 1) }), new TdfInteger("PRES", (ulong)game.PresenceMode), new TdfString("PSAS", "ams"), new TdfInteger("QCAP", (ulong)game.QueueCapacity), new TdfUnion("REAS", NetworkAddressMember.XboxClientAddress, new List<Tdf> { }), new TdfStruct("VALU", new List<Tdf> { new TdfInteger("DCTX", 0) }), new TdfInteger("SEED", 2291), new TdfInteger("TCAP", 0), new TdfStruct("THST", new List<Tdf> { new TdfInteger("HPID", client.GameID), new TdfInteger("HSLT", 0) }), new TdfString("UUID", "714b05dc-93bc-49ac-961c-cb38b574f30a"), new TdfInteger("VOIP", (ulong)game.VoipTopology), new TdfString("VSTR", "67") }) }; client.Notify(Component.GameManager, 0x14, 0, data); }
public static void Notify(Client client) { var game = GameManager.Games[client.GameID]; var slotID = game.Slots.FindIndex(slot => slot == client.User.ID); var data = new List<Tdf> { new TdfStruct("GAME", new List<Tdf> { new TdfList("ADMN", TdfBaseType.Integer, new ArrayList { client.User.ID }), new TdfMap("ATTR", TdfBaseType.String, TdfBaseType.String, game.Attributes), new TdfList("CAP", TdfBaseType.Integer, game.Capacity), new TdfInteger("GID", (ulong)client.GameID), new TdfString("GNAM", game.Name), new TdfInteger("GPVH", 666), new TdfInteger("GSID", 1), new TdfInteger("GSTA", (ulong)game.State), new TdfString("GTYP", "frostbite_multiplayer"), new TdfList("HNET", TdfBaseType.Struct, new ArrayList { new List<Tdf> { new TdfStruct("EXIP", new List<Tdf> { new TdfInteger("IP", game.ExternalIP), new TdfInteger("PORT", game.ExternalPort) }), new TdfStruct("INIP", new List<Tdf> { new TdfInteger("IP", game.InternalIP), new TdfInteger("PORT", game.InternalPort) }) } }, true), new TdfInteger("HSES", 13666), new TdfInteger("IGNO", 0), new TdfInteger("MCAP", game.MaxPlayers), new TdfStruct("NQQS", new List<Tdf> { new TdfInteger("DBPS", 0), new TdfInteger("NATT", 0), new TdfInteger("UBPS", 0) }), new TdfInteger("NRES", (ulong)game.NotResetable), new TdfInteger("NTOP", (ulong)game.NetworkTopology), new TdfString("PGID", ""), new TdfBlob("PGSR", new byte[] { }), new TdfStruct("PHST", new List<Tdf> { new TdfInteger("HPID", client.User.ID), new TdfInteger("HSLT", 1) }), new TdfInteger("PRES", (ulong)game.PresenceMode), new TdfString("PSAS", "ams"), new TdfInteger("QCAP", (ulong)game.QueueCapacity), new TdfInteger("SEED", 2291), new TdfInteger("TCAP", 0), new TdfStruct("THST", new List<Tdf> { new TdfInteger("HPID", (ulong)client.GameID), new TdfInteger("HSLT", 0) }), new TdfString("UUID", "714b05dc-93bc-49ac-961c-cb38b574f30a"), new TdfInteger("VOIP", (ulong)game.VoipTopology), new TdfString("VSTR", "67") }), new TdfList("PROS", TdfBaseType.Struct, new ArrayList { new List<Tdf> { new TdfBlob("BLOB", new byte[] { }), new TdfInteger("EXID", 0), new TdfInteger("GID", client.GameID), new TdfInteger("LOC", client.Localization), new TdfString("NAME", client.User.Name), new TdfMap("PATT", TdfBaseType.String, TdfBaseType.String, new Dictionary<object, object> { { "Premium", "False" } }), new TdfInteger("PID", client.User.ID), new TdfUnion("PNET", NetworkAddressMember.IPPAirAddress, new List<Tdf> { new TdfStruct("VALU", new List<Tdf> { new TdfStruct("EXIP", new List<Tdf> { new TdfInteger("IP", client.ExternalIP), new TdfInteger("PORT", client.ExternalPort) }), new TdfStruct("INIP", new List<Tdf> { new TdfInteger("IP", client.InternalIP), new TdfInteger("PORT", client.InternalPort) }) }) }), new TdfInteger("SID", (ulong)slotID), new TdfInteger("SLOT", 0), new TdfInteger("STAT", 2), new TdfInteger("TIDX", 65535), new TdfInteger("TIME", 0), new TdfVector3("UGID", 0, 0, 0), new TdfInteger("UID", client.User.ID) } }), new TdfInteger("REAS", 0), new TdfStruct("VALU", new List<Tdf> { new TdfInteger("DCTX", 3) }) }; client.Notify(Component.GameManager, 0x16, 0, data); }