Exemplo n.º 1
0
bool FFriendItem::IsGameJoinable() const
{
	if (OnlineFriend.IsValid())
	{
		const FOnlineUserPresence& FriendPresence = OnlineFriend->GetPresence();
		const bool bIsOnline = FriendPresence.Status.State != EOnlinePresenceState::Offline;
		const bool bIsJoinable = 
			FriendPresence.bIsJoinable && 
			!GetGameSessionId().IsEmpty() && 
			GetGameSessionId() != FFriendsAndChatManager::Get()->GetGameSessionId();
		return bIsOnline && bIsJoinable;
	}
	return false;
}
Exemplo n.º 2
0
	virtual bool IsFriendInSameSession(const TSharedPtr< const IFriendItem >& FriendItem) const override
	{
		TSharedPtr<const FUniqueNetId> MySessionId = GetGameSessionId();
		bool bMySessionValid = MySessionId.IsValid() && MySessionId->IsValid();

		TSharedPtr<const FUniqueNetId> FriendSessionId = FriendItem->GetGameSessionId();
		bool bFriendSessionValid = FriendSessionId.IsValid() && FriendSessionId->IsValid();

		return (bMySessionValid && bFriendSessionValid && (*FriendSessionId == *MySessionId));
	}
Exemplo n.º 3
0
bool FFriendGameInviteItem::IsGameJoinable() const
{
	FString SessionId = GetGameSessionId();
	if (!SessionId.IsEmpty())
	{
		if (SessionId != FFriendsAndChatManager::Get()->GetGameSessionId())
		{
			return true;
		}
	}
	return false;
}