For Creating Party, I created this Function,
In this I used partyobject variable with Fnakamaparty type, but we didn’t get the userpresences in that data, IF any one joins or Leaves.
void UBackendGameinstance::Creatyparty(bool openparty, int32 maximumPlayers)
{
bool Open = openparty;
int32 MaxPlayers = maximumPlayers;
FOnCreateParty CreatePartySuccessDelegate;
CreatePartySuccessDelegate.AddDynamic(this, &UBackendGameinstance::OnCreatePartySuccess);
FOnRtError CreatePartyErrorDelegate;
CreatePartyErrorDelegate.AddDynamic(this, &UBackendGameinstance::OnCreatePartyError);
rtClient->CreateParty(Open, MaxPlayers, CreatePartySuccessDelegate, CreatePartyErrorDelegate);
}
void UBackendGameinstance::OnCreatePartySuccess(FNakamaParty Party)
{
partyId = *Party.Id;
partyObject = Party;
UE_LOG(LogTemp, Log, TEXT(“Successfully created party: %s”), *Party.Id);
this->partyCreateDelegate.Broadcast();
}
void UBackendGameinstance::OnCreatePartyError(const FNakamaRtError& Error)
{
UE_LOG(LogTemp, Error, TEXT(“Error creating party: %s”), *Error.Message);
this->partyCreateDelegate.Broadcast();
}
This is the Function for Joining party
void UBackendGameinstance::JoinParty(FString party_ID)
{
FOnJoinParty JoinPartySuccessDelegate;
JoinPartySuccessDelegate.AddDynamic(this, &UBackendGameinstance::OnJoinPartySuccess);
FOnRtError JoinPartyErrorDelegate;
JoinPartyErrorDelegate.AddDynamic(this, &UBackendGameinstance::OnJoinPartyError);
rtClient->JoinParty(party_ID, JoinPartySuccessDelegate, JoinPartyErrorDelegate);
}
void UBackendGameinstance::OnJoinPartySuccess(FString PartyId)
{
UE_LOG(LogTemp, Log, TEXT(“Successfully joined party: %s”), *PartyId);
this->partyjoinDelegate.Broadcast();
}
void UBackendGameinstance::OnJoinPartyError(const FNakamaRtError& Error)
{
UE_LOG(LogTemp, Error, TEXT(“Error joining party: %s”), *Error.Message);
}