Skip to content

Commit 01647da

Browse files
committed
Fix documentation for recent and blocked players
1 parent 654e38a commit 01647da

File tree

3 files changed

+10
-219
lines changed

3 files changed

+10
-219
lines changed

docs/ossv1/friends/blocked_players.mdx

Lines changed: 5 additions & 108 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ EOS Online Framework provides the "blocked players" functionality of the friends
1111

1212
Blocking a player currently has no effect at the plugin level; if you want to prevent a blocked player from interacting with a local user, you'll need to enforce this in your game code.
1313

14+
You no longer need to call `QueryBlockedPlayers` - the plugin automatically caches the blocked players during login and keeps the list of blocked players up-to-date.
15+
1416
:::info
1517
In future, we intend to automatically handle the following scenarios for you:
1618

@@ -20,117 +22,12 @@ In future, we intend to automatically handle the following scenarios for you:
2022
- Automatically rejecting friend invitations from blocked players.
2123
:::
2224

23-
## Reading the blocked players list
24-
25-
<Tabs lazy groupId="code-format" defaultValue="c++" values={[ { label: 'C++', value: 'c++' }, { label: 'Blueprints', value: 'blueprints' } ]}>
26-
<TabItem value="c++">
27-
28-
Before you can get the list of blocked players, you need to call `QueryBlockedPlayers`. Before you call `QueryBlockedPlayers` for the first time, the list of blocked players will be empty. This is similar to how the friends list (`ReadFriendsList`) operation works.
29-
30-
First, get the online friends and identity interfaces:
31-
32-
```cpp
33-
#include "OnlineSubsystem.h"
34-
#include "OnlineSubsystemUtils.h"
35-
#include "Interfaces/OnlineFriendsInterface.h"
36-
#include "Interfaces/OnlineIdentityInterface.h"
37-
38-
// ...
39-
40-
IOnlineSubsystem *Subsystem = Online::GetSubsystem(this->GetWorld());
41-
IOnlineFriendsPtr Friends = Subsystem->GetFriendsInterface();
42-
IOnlineIdentityPtr Identity = Subsystem->GetIdentityInterface();
43-
```
44-
45-
Then, call `QueryBlockedPlayers`:
46-
47-
```cpp
48-
// You need to store the handle so you can deregister the event listener
49-
// in the callback.
50-
this->QueryBlockedPlayersHandle =
51-
Friends->AddOnQueryBlockedPlayersCompleteDelegate_Handle(FOnQueryBlockedPlayersCompleteDelegate::CreateUObject(
52-
this,
53-
&UMyClass::OnQueryBlockedPlayersComplete));
54-
55-
if (!Friends->QueryBlockedPlayers(*Identity->GetUniquePlayerId(0)))
56-
{
57-
// Call failed to start.
58-
}
59-
60-
// ...
61-
62-
void UMyClass::OnQueryBlockedPlayersComplete(
63-
const FUniqueNetId &UserId,
64-
bool bWasSuccessful,
65-
const FString &Error)
66-
{
67-
IOnlineSubsystem *Subsystem = Online::GetSubsystem(this->GetWorld());
68-
IOnlineFriendsPtr Friends = Subsystem->GetFriendsInterface();
69-
IOnlineIdentityPtr Identity = Subsystem->GetIdentityInterface();
70-
71-
Friends->ClearOnQueryBlockedPlayersCompleteDelegate_Handle(this->QueryBlockedPlayersHandle);
72-
73-
// Check bWasSuccessful; if it's true, you can now call GetBlockedPlayers.
74-
}
75-
```
76-
77-
</TabItem>
78-
<TabItem value="blueprints">
79-
80-
Before you can get the list of blocked players, you need to call the "Query Blocked Players" blueprint node. Before you call the "Query Blocked Players" blueprint node for the first time, the list of blocked players will be empty. This is similar to how the friends list ("Read Friends List") blueprint node works.
81-
82-
<Blueprint height="380px" blueprint={`
83-
Begin Object Class=/Script/BlueprintGraph.K2Node_GetSubsystem Name="K2Node_GetSubsystem_0"
84-
CustomClass=Class'"/Script/OnlineSubsystemBlueprints.OnlineFriendsSubsystem"'
85-
NodePosX=-128
86-
NodePosY=788
87-
NodeGuid=B47B1EA9493AA8D8B72D63AEF2B702D0
88-
CustomProperties Pin (PinId=4E41054B485EF1D008DA5B8E49759371,PinName="ReturnValue",Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/OnlineSubsystemBlueprints.OnlineFriendsSubsystem"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,LinkedTo=(K2Node_AsyncAction_2 E9919D9042A1726E0E4F75AE4F06427A,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
89-
End Object
90-
Begin Object Class=/Script/BlueprintGraph.K2Node_AsyncAction Name="K2Node_AsyncAction_2"
91-
ProxyFactoryFunctionName="QueryBlockedPlayers"
92-
ProxyFactoryClass=Class'"/Script/OnlineSubsystemBlueprints.OnlineFriendsSubsystemQueryBlockedPlayers"'
93-
ProxyClass=Class'"/Script/OnlineSubsystemBlueprints.OnlineFriendsSubsystemQueryBlockedPlayers"'
94-
NodePosX=144
95-
NodePosY=768
96-
NodeGuid=41BFD1684E39043CC082C7A399978610
97-
CustomProperties Pin (PinId=42FA9E154A8CEFF5992175AD02F48E90,PinName="execute",PinToolTip="\\nExec",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
98-
CustomProperties Pin (PinId=EF8980AB452B73FD46ED66838C6F85C7,PinName="then",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
99-
CustomProperties Pin (PinId=B2E425B140E33CFE1446F490C0C630D7,PinName="OnCallFailed",PinFriendlyName="On Call Failed",PinToolTip="On Call Failed",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
100-
CustomProperties Pin (PinId=0A288B624D9092968A7233B416BF4A8E,PinName="OnQueryBlockedPlayersComplete",PinFriendlyName="On Query Blocked Players Complete",PinToolTip="On Query Blocked Players Complete",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
101-
CustomProperties Pin (PinId=FA23FB3B49F444B67929A69ECFE0699C,PinName="UserId",PinToolTip="User Id",Direction="EGPD_Output",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject=ScriptStruct'"/Script/Engine.UniqueNetIdRepl"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
102-
CustomProperties Pin (PinId=F35385FD405A60ACE1FD38BF5F2023A9,PinName="bWasSuccessful",PinToolTip="Was Successful",Direction="EGPD_Output",PinType.PinCategory="bool",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
103-
CustomProperties Pin (PinId=4D9D3A694DC70630D9F72284B9CADC84,PinName="Error",PinToolTip="Error",Direction="EGPD_Output",PinType.PinCategory="string",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
104-
CustomProperties Pin (PinId=E9919D9042A1726E0E4F75AE4F06427A,PinName="Subsystem",PinToolTip="Subsystem\\nOnline Friends Subsystem Object Reference",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/OnlineSubsystemBlueprints.OnlineFriendsSubsystem"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,LinkedTo=(K2Node_GetSubsystem_0 4E41054B485EF1D008DA5B8E49759371,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
105-
CustomProperties Pin (PinId=783ACD8E45AC39A1CFF378B93C963458,PinName="UserId",PinToolTip="User Id\\nUnique Net Id Repl Structure",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject=ScriptStruct'"/Script/Engine.UniqueNetIdRepl"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,LinkedTo=(K2Node_CallFunction_1 64465E0C4E34258944DDE4BE0F6DA0D6,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
106-
End Object
107-
Begin Object Class=/Script/BlueprintGraph.K2Node_GetSubsystem Name="K2Node_GetSubsystem_1"
108-
CustomClass=Class'"/Script/OnlineSubsystemBlueprints.OnlineIdentitySubsystem"'
109-
NodePosX=-416
110-
NodePosY=912
111-
NodeGuid=03BB2675460DE11F6B35D08AB8D358F1
112-
CustomProperties Pin (PinId=0B88C2D84CC5FA0DF9693BB1B981F9DB,PinName="ReturnValue",Direction="EGPD_Output",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/OnlineSubsystemBlueprints.OnlineIdentitySubsystem"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,LinkedTo=(K2Node_CallFunction_1 13FDE0C54C48F492621B5392728BA213,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
113-
End Object
114-
Begin Object Class=/Script/BlueprintGraph.K2Node_CallFunction Name="K2Node_CallFunction_1"
115-
bIsPureFunc=True
116-
FunctionReference=(MemberParent=Class'"/Script/OnlineSubsystemBlueprints.OnlineIdentitySubsystem"',MemberName="GetUniquePlayerId")
117-
NodePosX=-176
118-
NodePosY=912
119-
NodeGuid=055BBA364DC61065B504A189E6070B45
120-
CustomProperties Pin (PinId=13FDE0C54C48F492621B5392728BA213,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinToolTip="Target\\nOnline Identity Subsystem Object Reference",PinType.PinCategory="object",PinType.PinSubCategory="",PinType.PinSubCategoryObject=Class'"/Script/OnlineSubsystemBlueprints.OnlineIdentitySubsystem"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,LinkedTo=(K2Node_GetSubsystem_1 0B88C2D84CC5FA0DF9693BB1B981F9DB,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
121-
CustomProperties Pin (PinId=DC58D2A544B340B97E8E2AB8619F8A95,PinName="LocalUserNum",PinToolTip="Local User Num\\nInteger",PinType.PinCategory="int",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,DefaultValue="0",AutogeneratedDefaultValue="0",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
122-
CustomProperties Pin (PinId=64465E0C4E34258944DDE4BE0F6DA0D6,PinName="ReturnValue",PinToolTip="Return Value\\nUnique Net Id Repl Structure\\n\\nGet Unique Player Id",Direction="EGPD_Output",PinType.PinCategory="struct",PinType.PinSubCategory="",PinType.PinSubCategoryObject=ScriptStruct'"/Script/Engine.UniqueNetIdRepl"',PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,LinkedTo=(K2Node_AsyncAction_2 783ACD8E45AC39A1CFF378B93C963458,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
123-
End Object
124-
`} />
125-
</TabItem>
126-
</Tabs>
127-
128-
## Getting the cached blocked players list
25+
## Getting the blocked players list
12926

13027
<Tabs lazy groupId="code-format" defaultValue="c++" values={[ { label: 'C++', value: 'c++' }, { label: 'Blueprints', value: 'blueprints' } ]}>
13128
<TabItem value="c++">
13229

133-
Once `QueryBlockedPlayers` has completed successfully, you can then call `GetBlockedPlayers`:
30+
To get a list of blocked players, call `GetBlockedPlayers`:
13431

13532
```cpp
13633
TArray<TSharedRef<FOnlineBlockedPlayer>> BlockedPlayers;
@@ -147,7 +44,7 @@ for (const auto &BlockedPlayer : BlockedPlayers)
14744
</TabItem>
14845
<TabItem value="blueprints">
14946
150-
Once the "Query Blocked Players" blueprint node has completed successfully, you can then call "Get Blocked Players":
47+
To get a list of blocked players, call "Get Blocked Players":
15148
15249
<Blueprint height="380px" blueprint={`
15350
Begin Object Class=/Script/BlueprintGraph.K2Node_GetSubsystem Name="K2Node_GetSubsystem_0"

0 commit comments

Comments
 (0)