public Player(IClient client, NetworkingData.LoginRequestData data)
        {
            Client                  = client;
            Name                    = data.Name;
            PlayerReady             = false;
            client.MessageReceived += OnPlayerMessage;

            //TODO refactor: this should come from db/configuration/etc
            spriteRow = Server.Instance.getNextSpriteRow();

            logger.Info($"Connection for {Name} configured, sending login accept.");

            using (Message m = Message.Create((ushort)NetworkingData.Tags.LoginRequestAccepted,
                                              new NetworkingData.LoginInfoData(client.ID)))
            {
                client.SendMessage(m, SendMode.Reliable);
            }
        }
Exemplo n.º 2
0
        private static void OnClientLogin(IClient client, NetworkingData.LoginRequestData data)
        {
            logger.Info($"Login request from ({data.Name}).");
            //TODO secure, load player from DB, etc
            if (Server.Instance.PlayersByName.ContainsKey(data.Name))
            {
                using (Message message = Message.CreateEmpty((ushort)NetworkingData.Tags.LoginRequestDenied))
                {
                    logger.Info($"{data.Name} is already logged in!");
                    client.SendMessage(message, SendMode.Reliable);
                }

                return;
            }

            client.MessageReceived -= OnMessage;

            Server.Instance.AddPlayer(client.ID, new Player(client, data));
        }