You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

47 lines
1.1 KiB

  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.Networking;
  5. namespace Multiplayer
  6. {
  7. public class LoginManager
  8. {
  9. private ServerManager ServerManager;
  10. public LoginManager(ServerManager ServerManager)
  11. {
  12. this.ServerManager = ServerManager;
  13. RegisterHandles();
  14. }
  15. public void RegisterHandles()
  16. {
  17. ServerManager.Server.RegisterHandler(LoginMsgID.Name, OnPlayerLogin);
  18. }
  19. //Called when a player logs in
  20. public void OnPlayerLogin(NetworkMessage msg)
  21. {
  22. StringMsg stringMsg;
  23. if (!Utility.ReadMessage<StringMsg>(msg, out stringMsg))
  24. return;
  25. Debug.Log("Player login: " + stringMsg.String);
  26. if (ServerManager.AllPlayers.ContainsKey(stringMsg.playerID))
  27. {
  28. Debug.Log(stringMsg.String + " already logged in");
  29. return;
  30. }
  31. Player newPlayer = new Player(msg.conn, stringMsg.String);
  32. ServerManager.AllPlayers.Add(newPlayer.ID, newPlayer);
  33. }
  34. }
  35. }