safety check

This commit is contained in:
Joshua
2024-04-25 13:44:54 -04:00
parent 1cab9033a3
commit e982007518
2 changed files with 43 additions and 38 deletions

View File

@@ -247,28 +247,33 @@ void UAdvancedFriendsLibrary::GetStoredFriendsList(APlayerController *PlayerCont
TArray< TSharedRef<FOnlineFriend> > FriendList; TArray< TSharedRef<FOnlineFriend> > FriendList;
FriendsInterface->GetFriendsList(Player->GetControllerId(), EFriendsLists::ToString((EFriendsLists::Default)), FriendList); if (FriendsInterface->GetFriendsList(Player->GetControllerId(), EFriendsLists::ToString((EFriendsLists::Default)), FriendList))
for (int32 i = 0; i < FriendList.Num(); i++)
{ {
TSharedRef<FOnlineFriend> Friend = FriendList[i]; for (int32 i = 0; i < FriendList.Num(); i++)
FBPFriendInfo BPF; {
FOnlineUserPresence pres = Friend->GetPresence(); FBPFriendInfo BPF;
FOnlineUserPresence pres = FriendList[i]->GetPresence();
BPF.OnlineState = ((EBPOnlinePresenceState)((int32)pres.Status.State)); BPF.OnlineState = ((EBPOnlinePresenceState)((int32)pres.Status.State));
BPF.DisplayName = Friend->GetDisplayName(); BPF.DisplayName = FriendList[i]->GetDisplayName();
BPF.RealName = Friend->GetRealName(); BPF.RealName = FriendList[i]->GetRealName();
BPF.UniqueNetId.SetUniqueNetId(Friend->GetUserId()); BPF.UniqueNetId.SetUniqueNetId(FriendList[i]->GetUserId());
BPF.bIsPlayingSameGame = pres.bIsPlayingThisGame; BPF.bIsPlayingSameGame = pres.bIsPlayingThisGame;
BPF.PresenceInfo.bIsOnline = pres.bIsOnline; BPF.PresenceInfo.bIsOnline = pres.bIsOnline;
BPF.PresenceInfo.bHasVoiceSupport = pres.bHasVoiceSupport; BPF.PresenceInfo.bHasVoiceSupport = pres.bHasVoiceSupport;
BPF.PresenceInfo.bIsPlaying = pres.bIsPlaying; BPF.PresenceInfo.bIsPlaying = pres.bIsPlaying;
BPF.PresenceInfo.PresenceState = ((EBPOnlinePresenceState)((int32)pres.Status.State)); BPF.PresenceInfo.PresenceState = ((EBPOnlinePresenceState)((int32)pres.Status.State));
BPF.PresenceInfo.StatusString = pres.Status.StatusStr; BPF.PresenceInfo.StatusString = pres.Status.StatusStr;
BPF.PresenceInfo.bIsJoinable = pres.bIsJoinable; BPF.PresenceInfo.bIsJoinable = pres.bIsJoinable;
BPF.PresenceInfo.bIsPlayingThisGame = pres.bIsPlayingThisGame; BPF.PresenceInfo.bIsPlayingThisGame = pres.bIsPlayingThisGame;
FriendsList.Add(BPF); FriendsList.Add(BPF);
}
return;
} }
UE_LOG(AdvancedFriendsLog, Warning, TEXT("GetFriendsList Failed to get any friends!"));
return;
} }

View File

@@ -76,29 +76,29 @@ void UGetFriendsCallbackProxy::OnReadFriendsListCompleted(int32 LocalUserNum, bo
TArray<FBPFriendInfo> FriendsListOut; TArray<FBPFriendInfo> FriendsListOut;
TArray< TSharedRef<FOnlineFriend> > FriendList; TArray< TSharedRef<FOnlineFriend> > FriendList;
Friends->GetFriendsList(LocalUserNum, ListName, FriendList); if (Friends->GetFriendsList(LocalUserNum, ListName, FriendList))
for (int32 i = 0; i < FriendList.Num(); i++)
{ {
TSharedRef<FOnlineFriend> Friend = FriendList[i]; for (int32 i = 0; i < FriendList.Num(); i++)
FBPFriendInfo BPF; {
FOnlineUserPresence pres = Friend->GetPresence(); FBPFriendInfo BPF;
BPF.OnlineState = ((EBPOnlinePresenceState)((int32)pres.Status.State)); FOnlineUserPresence pres = FriendList[i]->GetPresence();
BPF.DisplayName = Friend->GetDisplayName(); BPF.OnlineState = ((EBPOnlinePresenceState)((int32)pres.Status.State));
BPF.RealName = Friend->GetRealName(); BPF.DisplayName = FriendList[i]->GetDisplayName();
BPF.UniqueNetId.SetUniqueNetId(Friend->GetUserId()); BPF.RealName = FriendList[i]->GetRealName();
BPF.bIsPlayingSameGame = pres.bIsPlayingThisGame; BPF.UniqueNetId.SetUniqueNetId(FriendList[i]->GetUserId());
BPF.bIsPlayingSameGame = pres.bIsPlayingThisGame;
BPF.PresenceInfo.bIsOnline = pres.bIsOnline; BPF.PresenceInfo.bIsOnline = pres.bIsOnline;
BPF.PresenceInfo.bHasVoiceSupport = pres.bHasVoiceSupport; BPF.PresenceInfo.bHasVoiceSupport = pres.bHasVoiceSupport;
BPF.PresenceInfo.bIsPlaying = pres.bIsPlaying; BPF.PresenceInfo.bIsPlaying = pres.bIsPlaying;
BPF.PresenceInfo.PresenceState = ((EBPOnlinePresenceState)((int32)pres.Status.State)); BPF.PresenceInfo.PresenceState = ((EBPOnlinePresenceState)((int32)pres.Status.State));
BPF.PresenceInfo.StatusString = pres.Status.StatusStr; BPF.PresenceInfo.StatusString = pres.Status.StatusStr;
BPF.PresenceInfo.bIsJoinable = pres.bIsJoinable; BPF.PresenceInfo.bIsJoinable = pres.bIsJoinable;
BPF.PresenceInfo.bIsPlayingThisGame = pres.bIsPlayingThisGame; BPF.PresenceInfo.bIsPlayingThisGame = pres.bIsPlayingThisGame;
FriendsListOut.Add(BPF); FriendsListOut.Add(BPF);
}
} }
OnSuccess.Broadcast(FriendsListOut); OnSuccess.Broadcast(FriendsListOut);