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