LoginLogic.cs 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. using MongoDB.Driver;
  2. using NetCore;
  3. using NetCore.Protocol.MemoryPack;
  4. using NetServer.MongoDB;
  5. using NetServer.MongoDB.DBData;
  6. using NetServerCore.Attribute;
  7. using Protocol.Protocol.MemoryPack.MemoryMessage;
  8. namespace NetServer.ServerLogic.Login;
  9. [LogicEnrollAtt((int)GameSendType.Login, 100)]
  10. public class LoginLogic : GameLogicBasic
  11. {
  12. public override async Task GameLogic(MemoryRequest internalMemoryRequst, IConnection iConnection,
  13. InternalMemoryResponese internalMemoryResponese)
  14. {
  15. Console.WriteLine("登录成功");
  16. PlayerData playerData = await PlayerDataLink.PlayerDbLink.FindOneDataAsyncPlayerData(Builders<PlayerData>.Filter
  17. .Eq(r => r.account, internalMemoryRequst.LoginRequest.account));
  18. if (playerData == null)
  19. {
  20. playerData = new PlayerData();
  21. playerData.account = internalMemoryRequst.LoginRequest.account;
  22. playerData.password = internalMemoryRequst.LoginRequest.password;
  23. playerData.playerId = System.DateTime.Now.Ticks;
  24. playerData.playerLevel = 1;
  25. playerData.levelBattleId = 1;
  26. playerData.PlayerHero = new List<PlayerHero>();
  27. playerData.PlayerHero.Add(new PlayerHero() { heroId = 101, heroLevel = 1 });
  28. PlayerDataLink.PlayerDbLink.InsertPlayerData(playerData);
  29. }
  30. LoginResponse loginResponse = new LoginResponse();
  31. loginResponse.playerLevel = playerData.playerLevel;
  32. loginResponse.levelBattleId = playerData.levelBattleId;
  33. loginResponse.heroDatas = new List<HeroData>();
  34. for (int i = 0; i < playerData.PlayerHero.Count; i++)
  35. {
  36. loginResponse.heroDatas.Add(playerData.PlayerHeroToHeroData(playerData.PlayerHero[i]));
  37. }
  38. loginResponse.ItemDatas = new List<ItemData>();
  39. if (playerData.PlayerItemDatas != null)
  40. {
  41. for (int i = 0; i < playerData.PlayerItemDatas.Count; i++)
  42. {
  43. loginResponse.ItemDatas.Add(new ItemData()
  44. {
  45. itemId = playerData.PlayerItemDatas[i].itemId,
  46. itemCount = playerData.PlayerItemDatas[i].itemCount,
  47. guid = playerData.PlayerItemDatas[i].guid
  48. });
  49. }
  50. }
  51. loginResponse.EquipDatas = new List<EquipData>();
  52. if (playerData.PlayerItemDatas != null)
  53. {
  54. for (int i = 0; i < playerData.PlayerEquipDatas.Count; i++)
  55. {
  56. loginResponse.EquipDatas.Add(new EquipData()
  57. {
  58. itemId = playerData.PlayerEquipDatas[i].itemId,
  59. quality = playerData.PlayerEquipDatas[i].quality,
  60. zyEqId = playerData.PlayerEquipDatas[i].zyEqId,
  61. isEquip = playerData.PlayerEquipDatas[i].isEquip
  62. });
  63. }
  64. }
  65. MemoryResponse memoryResponse = new MemoryResponse();
  66. memoryResponse.LoginResponse = loginResponse;
  67. memoryResponse.GameSendType = GameSendType.Login;
  68. _logicManager.SendResponse(memoryResponse, internalMemoryResponese, iConnection);
  69. }
  70. }