Write Party Data
Last updated on
Write Party Data is an exclusive feature for the game server. It's possible that multiple servers can write to the same party at the same time. To avoid this, our SDK has a timestamp in the backend to ensure that the latest write data will never be overwritten with older data.
This function you can modify from Previous Data that we called oldPartyData that you can get from the lambda or even you can input your own new Party Data.
- Unreal Engine
- Unity
FString PartyId = FString("SomePartyId");
FRegistry::ServerLobby.WritePartyStorage(PartyId, [](FJsonObjectWrapper OldPartyData)
{
// You can choose either to create new PartyDataStorage or modified from OldPartyDataStorage
/*FJsonObjectWrapper NewPartyData;
TSharedPtr<FJsonObject> MyNewJsonValue;
MyNewJsonValue->SetStringField(FString("MyNewFieldName"), FString("MyNewStringValue"));
NewPartyData.JsonObject->SetObjectField(FString("NewField"), MyNewJsonValue);
return NewPartyData;*/
FJsonObjectWrapper ModifiedPartyData = OldPartyData;
TSharedPtr<FJsonObject> MyNewJsonValue;
MyNewJsonValue->SetStringField(FString("MyNewFieldName"), FString("MyNewStringValue"));
ModifiedPartyData.JsonObject->SetObjectField(FString("NewField"), MyNewJsonValue);
return OldPartyData;
}, THandler<FAccelByteModelsPartyDataNotif>::CreateLambda([](const FAccelByteModelsPartyDataNotif& Result)
{
// Do something if WritePartyStorage has been successful
}), FErrorHandler::CreateLambda([](int32 ErrorCode, const FString ErrorMessage)
{
// Do something if WritePartyStorage has an error
UE_LOG(LogTemp, Log, TEXT("Error WritePartyStorage, Error Code: %d Error Message: %s"), ErrorCode, *ErrorMessage);
}));
string partyId = "SomePartyId";
AccelByteServerPlugin.GetLobby().WritePartyStorage(partyId,
result =>
{
if (result.IsError)
{
// Do something if WritePartyStorage has an error
Debug.Log($"Error WritePartyStorage, Error Code: {result.Error.Code} Error Message: {result.Error.Message}");
}
else
{
// Do something if WritePartyStorage has been successful
}
},
oldPartyData =>
{
// You can modify oldPartyData or you can input your new party data
/*Dictionary<string, object> newPartyData = null;
newPartyData.Add("newKey", "newValue");
return newPartyData;*/
Dictionary<string, object> modifiedOldPartyData = oldPartyData;
modifiedOldPartyData.Add("newKey", "newValue");
return modifiedOldPartyData;
});