Space Plunder
Loading...
Searching...
No Matches
UEOSTutorialGameInstance Class Reference

#include <EOSTutorialGameInstance.h>

Inheritance diagram for UEOSTutorialGameInstance:

Public Member Functions

virtual void Init () override
 
void LoginWithEOS (FString ID, FString Token, FString LoginType)
 
FString GetPlayerUserName ()
 
bool GetIsPlayerLoggedIn ()
 
FName GetCurrentSessionName ()
 
void CreateEOSSession (FName SessionName, bool bIsDedicatedServer, bool bIsLAN, bool bIsPresence, int32 MaxNumPlayers)
 
void FindSessionAndJoin ()
 
void DestroySession ()
 
void OnLoginEOSCompleted (int32 LocalUserNum, bool bSuccess, const FUniqueNetId &UserID, const FString &Error)
 
void OnCreateSessionCompleted (FName SessionName, bool bSuccess)
 
void OnDestroySessionCompleted (FName SessionName, bool bSuccess)
 
void OnFindSessionCompleted (bool bSuccess)
 
void OnJoinSessionCompleted (FName SessionName, EOnJoinSessionCompleteResult::Type Result)
 
void EOSVoiceChatLogin ()
 
void OnVoiceChatLoginCompleted (const FString &PlayerName, const FVoiceChatResult &Result)
 
void SetInputVolumeEOS (float NewVolume)
 
void SetMuteInputVolumeEOS (bool bIsMuted)
 
void SetInputOutputMode (int32 Value)
 

Public Attributes

TSharedPtr< FOnlineSessionSearch > OnlineSessionSearch
 
FString OpenLevelText
 
IVoiceChatUser * VoiceChatUser
 

Private Attributes

FName CurrentSessionName
 

Member Function Documentation

◆ CreateEOSSession()

void UEOSTutorialGameInstance::CreateEOSSession ( FName SessionName,
bool bIsDedicatedServer,
bool bIsLAN,
bool bIsPresence,
int32 MaxNumPlayers )
96{
97 const IOnlineSubsystem* OnlineSubSystem = Online::GetSubsystem(this->GetWorld());
98 if(OnlineSubSystem != nullptr)
99 {
100 IOnlineSessionPtr OnlineSessionPtr = OnlineSubSystem->GetSessionInterface();
101 if(OnlineSessionPtr != nullptr)
102 {
103 CurrentSessionName = SessionName;
104 FOnlineSessionSettings SessionSettings;
105 SessionSettings.bShouldAdvertise = true;
106 SessionSettings.bIsDedicated = bIsDedicatedServer;
107 SessionSettings.bAllowJoinInProgress = true;
108 SessionSettings.bAllowInvites = true;
109 SessionSettings.bIsLANMatch = bIsLAN;
110 SessionSettings.NumPublicConnections = MaxNumPlayers;
111 SessionSettings.bUseLobbiesIfAvailable = true; // Glitched?
112 SessionSettings.bUseLobbiesVoiceChatIfAvailable = true; // Glitched?
113 SessionSettings.bUsesPresence = bIsPresence;
114 SessionSettings.bAllowJoinViaPresence = bIsPresence;
115 SessionSettings.Set(SEARCH_KEYWORDS, FString("Lobby"), EOnlineDataAdvertisementType::ViaOnlineService);
116 OnlineSessionPtr->OnCreateSessionCompleteDelegates.AddUObject(this, &UEOSTutorialGameInstance::OnCreateSessionCompleted);
117 OnlineSessionPtr->CreateSession(0,FName("Random"), SessionSettings);
118 }
119 }
120}
FName CurrentSessionName
Definition EOSTutorialGameInstance.h:78
void OnCreateSessionCompleted(FName SessionName, bool bSuccess)
Definition EOSTutorialGameInstance.cpp:122

◆ DestroySession()

void UEOSTutorialGameInstance::DestroySession ( )
204{
205 const IOnlineSubsystem* OnlineSubSystem = Online::GetSubsystem(this->GetWorld());
206 if(OnlineSubSystem != nullptr)
207 {
208 IOnlineSessionPtr OnlineSessionPtr = OnlineSubSystem->GetSessionInterface();
209 if(OnlineSessionPtr != nullptr)
210 {
211 OnlineSessionPtr->OnDestroySessionCompleteDelegates.AddUObject(this, &UEOSTutorialGameInstance::OnDestroySessionCompleted);
212 OnlineSessionPtr->DestroySession(GetCurrentSessionName());
213 }
214 }
215}
FName GetCurrentSessionName()
Definition EOSTutorialGameInstance.cpp:55
void OnDestroySessionCompleted(FName SessionName, bool bSuccess)
Definition EOSTutorialGameInstance.cpp:336

◆ EOSVoiceChatLogin()

void UEOSTutorialGameInstance::EOSVoiceChatLogin ( )
221{
222 const IOnlineSubsystem* OnlineSubSystem = Online::GetSubsystem(this->GetWorld());
223 if(OnlineSubSystem != nullptr)
224 {
225 IOnlineIdentityPtr OnlineIdentity = OnlineSubSystem->GetIdentityInterface();
226 if(OnlineIdentity != nullptr)
227 {
229 {
230 IVoiceChat* VoiceChat = IVoiceChat::Get();
231 if(VoiceChat != nullptr)
232 {
233 // VoiceChat->Initialize();
234 VoiceChatUser = VoiceChat->CreateUser();
235 if(VoiceChatUser != nullptr)
236 {
237 TSharedPtr<const FUniqueNetId> UserId = OnlineIdentity->GetUniquePlayerId(0);
238 FPlatformUserId PlatformUserId = OnlineIdentity->GetPlatformUserIdFromUniqueNetId(*UserId);
239 // VoiceChatUser->GetLoggedInPlayerName();
240 VoiceChatUser->Login(PlatformUserId, UserId->ToString(), TEXT(""), FOnVoiceChatLoginCompleteDelegate::CreateUObject(this, &UEOSTutorialGameInstance::OnVoiceChatLoginCompleted));
241 }
242 }
243 }
244 }
245 }
246}
bool GetIsPlayerLoggedIn()
Definition EOSTutorialGameInstance.cpp:38
IVoiceChatUser * VoiceChatUser
Definition EOSTutorialGameInstance.h:66
void OnVoiceChatLoginCompleted(const FString &PlayerName, const FVoiceChatResult &Result)
Definition EOSTutorialGameInstance.cpp:248

◆ FindSessionAndJoin()

void UEOSTutorialGameInstance::FindSessionAndJoin ( )
132{
133 const IOnlineSubsystem* OnlineSubSystem = Online::GetSubsystem(this->GetWorld());
134 if(OnlineSubSystem != nullptr)
135 {
136 IOnlineSessionPtr OnlineSessionPtr = OnlineSubSystem->GetSessionInterface();
137 if(OnlineSessionPtr != nullptr)
138 {
139 OnlineSessionSearch = MakeShareable(new FOnlineSessionSearch());
140 OnlineSessionSearch->QuerySettings.Set(SEARCH_LOBBIES, true, EOnlineComparisonOp::Equals);
141 OnlineSessionSearch->bIsLanQuery = false;
142 OnlineSessionSearch->MaxSearchResults = 20;
143 // OnlineSessionSearch->QuerySettings.SearchParams.Empty();
144 OnlineSessionPtr->OnFindSessionsCompleteDelegates.AddUObject(this, &UEOSTutorialGameInstance::OnFindSessionCompleted);
145 OnlineSessionPtr->FindSessions(0, OnlineSessionSearch.ToSharedRef());
146 }
147 }
148}
void OnFindSessionCompleted(bool bSuccess)
Definition EOSTutorialGameInstance.cpp:150
TSharedPtr< FOnlineSessionSearch > OnlineSessionSearch
Definition EOSTutorialGameInstance.h:46

◆ GetCurrentSessionName()

FName UEOSTutorialGameInstance::GetCurrentSessionName ( )
56{
57 if(CurrentSessionName.IsValid())
58 {
59 return CurrentSessionName;
60 }
61 return FName("InvalidName");
62}

◆ GetIsPlayerLoggedIn()

bool UEOSTutorialGameInstance::GetIsPlayerLoggedIn ( )
39{
40 const IOnlineSubsystem* OnlineSubSystem = Online::GetSubsystem(this->GetWorld());
41 if(OnlineSubSystem != nullptr)
42 {
43 IOnlineIdentityPtr OnlineIdentity = OnlineSubSystem->GetIdentityInterface();
44 if(OnlineIdentity != nullptr)
45 {
46 if(OnlineIdentity->GetLoginStatus(0) == ELoginStatus::LoggedIn)
47 {
48 return true;
49 }
50 }
51 }
52 return false;
53}

◆ GetPlayerUserName()

FString UEOSTutorialGameInstance::GetPlayerUserName ( )
22{
23 const IOnlineSubsystem* OnlineSubSystem = Online::GetSubsystem(this->GetWorld());
24 if(OnlineSubSystem != nullptr)
25 {
26 IOnlineIdentityPtr OnlineIdentity = OnlineSubSystem->GetIdentityInterface();
27 if(OnlineIdentity != nullptr)
28 {
29 if(OnlineIdentity->GetLoginStatus(0) == ELoginStatus::LoggedIn)
30 {
31 return OnlineIdentity->GetPlayerNickname(0);
32 }
33 }
34 }
35 return FString("Default Name");
36}

◆ Init()

void UEOSTutorialGameInstance::Init ( )
overridevirtual
12{
13 Super::Init();
14 IOnlineSubsystem* OnlineSubsystem = IOnlineSubsystem::Get();
15 if(OnlineSubsystem != nullptr)
16 {
17 UE_LOG(LogTemp,Warning,TEXT("Found Subsystem %s"), *OnlineSubsystem->GetSubsystemName().ToString());
18 }
19}

◆ LoginWithEOS()

void UEOSTutorialGameInstance::LoginWithEOS ( FString ID,
FString Token,
FString LoginType )
64{
65 const IOnlineSubsystem* OnlineSubSystem = Online::GetSubsystem(this->GetWorld());
66 if(OnlineSubSystem != nullptr)
67 {
68 IOnlineIdentityPtr OnlineIdentity = OnlineSubSystem->GetIdentityInterface();
69 if(OnlineIdentity != nullptr)
70 {
71 FOnlineAccountCredentials AccountDetails;
72 AccountDetails.Id = ID;
73 AccountDetails.Token = Token;
74 AccountDetails.Type = LoginType;
75 OnlineIdentity->OnLoginCompleteDelegates->AddUObject(this, &UEOSTutorialGameInstance::OnLoginEOSCompleted);
76 OnlineIdentity->Login(0, AccountDetails);
77 }
78 }
79}
void OnLoginEOSCompleted(int32 LocalUserNum, bool bSuccess, const FUniqueNetId &UserID, const FString &Error)
Definition EOSTutorialGameInstance.cpp:82

◆ OnCreateSessionCompleted()

void UEOSTutorialGameInstance::OnCreateSessionCompleted ( FName SessionName,
bool bSuccess )
123{
124 UE_LOG(LogTemp,Warning,TEXT("Session Name: %s"), *SessionName.ToString());
125 if(bSuccess)
126 {
127 GetWorld()->ServerTravel(OpenLevelText);
128 }
129}
FString OpenLevelText
Definition EOSTutorialGameInstance.h:50

◆ OnDestroySessionCompleted()

void UEOSTutorialGameInstance::OnDestroySessionCompleted ( FName SessionName,
bool bSuccess )
337{
338 UE_LOG(LogTemp,Warning,TEXT("Session Destroyed"));
339}

◆ OnFindSessionCompleted()

void UEOSTutorialGameInstance::OnFindSessionCompleted ( bool bSuccess)
151{
152 if(bSuccess)
153 {
154 const IOnlineSubsystem* OnlineSubSystem = Online::GetSubsystem(this->GetWorld());
155 if(OnlineSubSystem != nullptr)
156 {
157 IOnlineSessionPtr OnlineSessionPtr = OnlineSubSystem->GetSessionInterface();
158 if(OnlineSessionPtr != nullptr)
159 {
160 OnlineSessionPtr->OnJoinSessionCompleteDelegates.AddUObject(this, &UEOSTutorialGameInstance::OnJoinSessionCompleted);
161 if(OnlineSessionSearch->SearchResults.IsValidIndex(0))
162 {
163 OnlineSessionPtr->JoinSession(0, FName("Random"), OnlineSessionSearch->SearchResults[0]);
164 }
165 else
166 {
167 CreateEOSSession(FName("Random"), false, false, false, 10);
168 }
169 }
170 }
171 }
172 else
173 {
174 CreateEOSSession(FName("Random"), false, false, false, 10);
175 }
176}
void OnJoinSessionCompleted(FName SessionName, EOnJoinSessionCompleteResult::Type Result)
Definition EOSTutorialGameInstance.cpp:178
void CreateEOSSession(FName SessionName, bool bIsDedicatedServer, bool bIsLAN, bool bIsPresence, int32 MaxNumPlayers)
Definition EOSTutorialGameInstance.cpp:95

◆ OnJoinSessionCompleted()

void UEOSTutorialGameInstance::OnJoinSessionCompleted ( FName SessionName,
EOnJoinSessionCompleteResult::Type Result )
179{
180 if(Result == EOnJoinSessionCompleteResult::Success)
181 {
182 if(APlayerController* PlayerController = UGameplayStatics::GetPlayerController(GetWorld(), 0))
183 {
184 FString JoinAddress;
185 const IOnlineSubsystem* OnlineSubSystem = Online::GetSubsystem(this->GetWorld());
186 if(OnlineSubSystem != nullptr)
187 {
188 IOnlineSessionPtr OnlineSessionPtr = OnlineSubSystem->GetSessionInterface();
189 if(OnlineSessionPtr != nullptr)
190 {
191 OnlineSessionPtr->GetResolvedConnectString(FName("Random"), JoinAddress);
192 UE_LOG(LogTemp,Warning,TEXT("Join Address: %s"), *JoinAddress);
193 if(!JoinAddress.IsEmpty())
194 {
195 PlayerController->ClientTravel(JoinAddress, ETravelType::TRAVEL_Absolute);
196 }
197 }
198 }
199 }
200 }
201}

◆ OnLoginEOSCompleted()

void UEOSTutorialGameInstance::OnLoginEOSCompleted ( int32 LocalUserNum,
bool bSuccess,
const FUniqueNetId & UserID,
const FString & Error )
84{
85 if(bSuccess)
86 {
87 UE_LOG(LogTemp, Warning, TEXT("Login Success - UserID - %s"), *UserID.ToString());
88 }
89 else
90 {
91 UE_LOG(LogTemp, Error, TEXT("Login Failed - %s"), *Error);
92 }
93}

◆ OnVoiceChatLoginCompleted()

void UEOSTutorialGameInstance::OnVoiceChatLoginCompleted ( const FString & PlayerName,
const FVoiceChatResult & Result )
249{
250 if(Result.IsSuccess())
251 {
252 UE_LOG(LogTemp,Warning,TEXT("Success Creating Voice Chat"));
253 }
254}

◆ SetInputOutputMode()

void UEOSTutorialGameInstance::SetInputOutputMode ( int32 Value)
307{
308 const IOnlineSubsystem* OnlineSubSystem = Online::GetSubsystem(this->GetWorld());
309 if(OnlineSubSystem != nullptr)
310 {
311 IOnlineIdentityPtr OnlineIdentity = OnlineSubSystem->GetIdentityInterface();
312 if(OnlineIdentity != nullptr)
313 {
315 {
316 IVoiceChat* VoiceChat = IVoiceChat::Get();
317 if(VoiceChat != nullptr)
318 {
319 VoiceChatUser = VoiceChat->CreateUser();
320 if(VoiceChatUser != nullptr)
321 {
322 const FString InputDevice = VoiceChatUser->GetAvailableInputDeviceInfos()[Value].DisplayName;
323 const FString OutputDevice = VoiceChatUser->GetAvailableOutputDeviceInfos()[Value].DisplayName;
324 UE_LOG(LogTemp,Warning,TEXT("Using Microphone - %s"), *InputDevice);
325 UE_LOG(LogTemp,Warning,TEXT("Using Speakers - %s"), *OutputDevice);
326
327 VoiceChatUser->SetInputDeviceId(InputDevice);
328 VoiceChatUser->SetOutputDeviceId(OutputDevice);
329 }
330 }
331 }
332 }
333 }
334}

◆ SetInputVolumeEOS()

void UEOSTutorialGameInstance::SetInputVolumeEOS ( float NewVolume)
257{
258 const IOnlineSubsystem* OnlineSubSystem = Online::GetSubsystem(this->GetWorld());
259 if(OnlineSubSystem != nullptr)
260 {
261 IOnlineIdentityPtr OnlineIdentity = OnlineSubSystem->GetIdentityInterface();
262 if(OnlineIdentity != nullptr)
263 {
265 {
266 IVoiceChat* VoiceChat = IVoiceChat::Get();
267 if(VoiceChat != nullptr)
268 {
269 VoiceChatUser = VoiceChat->CreateUser();
270 if(VoiceChatUser != nullptr)
271 {
272 TSharedPtr<const FUniqueNetId> UserId = OnlineIdentity->GetUniquePlayerId(0);
273 VoiceChatUser->SetPlayerVolume(UserId->ToString(), NewVolume);
274 }
275 }
276 }
277 }
278 }
279}

◆ SetMuteInputVolumeEOS()

void UEOSTutorialGameInstance::SetMuteInputVolumeEOS ( bool bIsMuted)
282{
283 const IOnlineSubsystem* OnlineSubSystem = Online::GetSubsystem(this->GetWorld());
284 if(OnlineSubSystem != nullptr)
285 {
286 IOnlineIdentityPtr OnlineIdentity = OnlineSubSystem->GetIdentityInterface();
287 if(OnlineIdentity != nullptr)
288 {
290 {
291 IVoiceChat* VoiceChat = IVoiceChat::Get();
292 if(VoiceChat != nullptr)
293 {
294 VoiceChatUser = VoiceChat->CreateUser();
295 if(VoiceChatUser != nullptr)
296 {
297 TSharedPtr<const FUniqueNetId> UserId = OnlineIdentity->GetUniquePlayerId(0);
298 VoiceChatUser->SetPlayerMuted(UserId->ToString(), bIsMuted);
299 }
300 }
301 }
302 }
303 }
304}

Member Data Documentation

◆ CurrentSessionName

FName UEOSTutorialGameInstance::CurrentSessionName
private

◆ OnlineSessionSearch

TSharedPtr<FOnlineSessionSearch> UEOSTutorialGameInstance::OnlineSessionSearch

◆ OpenLevelText

FString UEOSTutorialGameInstance::OpenLevelText

◆ VoiceChatUser

IVoiceChatUser* UEOSTutorialGameInstance::VoiceChatUser

The documentation for this class was generated from the following files: