24{
25 Super::PostLogin(NewPlayer);
26 if(NewPlayer != nullptr)
27 {
29 FUniqueNetIdRepl UniqueNetIdRepl;
30 if(NewPlayer->IsLocalController())
31 {
32 const ULocalPlayer* LocalPlayer = NewPlayer->GetLocalPlayer();
33 if(LocalPlayer != nullptr)
34 {
35 UniqueNetIdRepl = LocalPlayer->GetPreferredUniqueNetId();
36 }
37 else
38 {
39 const UNetConnection* RemoteNetConnection = Cast<UNetConnection>(NewPlayer->Player);
40 check(IsValid(RemoteNetConnection));
41 UniqueNetIdRepl = RemoteNetConnection->PlayerId;
42 }
43 }
44 else
45 {
46 const UNetConnection* RemoteNetConnection = Cast<UNetConnection>(NewPlayer->Player);
47 check(IsValid(RemoteNetConnection));
48 UniqueNetIdRepl = RemoteNetConnection->PlayerId;
49 }
50 const TSharedPtr<const FUniqueNetId> UniqueNetId = UniqueNetIdRepl.GetUniqueNetId();
51
52 if(UniqueNetId ==
nullptr){
Logout(NewPlayer);
return;}
53 check(UniqueNetId != nullptr)
54 const IOnlineSubsystem* OnlineSubsystem = Online::GetSubsystem(NewPlayer->GetWorld());
55 if(OnlineSubsystem != nullptr)
56 {
57 const IOnlineSessionPtr Session = OnlineSubsystem->GetSessionInterface();
58 if(Session != nullptr)
59 {
60 const IMenuSystem* GameInstance = Cast<IMenuSystem>(GetGameInstance());
61 if(GameInstance)
62 {
63 const bool bRegistrationSuccess = Session->RegisterPlayer(FName(GameInstance->
GetCurrentSessionName()),*UniqueNetId,
false);
64 if(bRegistrationSuccess)
65 {
66 UE_LOG(LogMenuSystem,
Warning,TEXT(
"Player Registered!"));
67 }
68 }
69 }
70 }
71 }
72}