Stream Chat Unreal SDK
Loading...
Searching...
No Matches
UserManager.h
1// Copyright 2026 Stream.IO, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "OwnUser.h"
7#include "OwnUserDto.h"
8#include "Subsystems/EngineSubsystem.h"
9#include "User/User.h"
10#include "User/UserRef.h"
11
12#include "UserManager.generated.h"
13
14struct FUserObjectDto;
15struct FOwnUserDto;
16
17UCLASS()
18class STREAMCHAT_API UUserManager final : public UEngineSubsystem
19{
20 GENERATED_BODY()
21
22public:
23 virtual void Initialize(FSubsystemCollectionBase& Collection) override;
24 static UUserManager* Get();
25
26 const FUser& GetUser(const FUserRef&);
27 bool HasUser(const FUserRef&) const;
28 FUserRef UpsertUser(const FUser&);
29 FUserRef UpsertUser(const FUserDto&);
30 FUserRef UpsertUser(const FUserObjectDto&);
31 FUserRef UpsertUser(const FString& Id);
32 TArray<FUserRef> UpsertUsers(const TArray<FUser>&);
33 TArray<FUserRef> UpsertUsers(const TArray<FUserObjectDto>&);
34 FUserUpdatedMultiDelegate& OnUserUpdated(const FUserRef&);
35
36 const FOwnUser& SetCurrentUser(const FOwnUserDto& Dto);
37
44 void SetBlockedUserIds(const TArray<FString>& BlockedUserIds);
45
47 void SetUserBlocked(const FString& UserId, bool bBlocked);
48
49 void ResetCurrentUser();
50 bool HasCurrentUser() const;
51 UFUNCTION(BlueprintPure, Category = "Stream|Users")
52 const FOwnUser& GetCurrentUser() const;
53
54private:
55 TOptional<FOwnUser> CurrentUser;
56 TMap<FString, FUser> Users;
57 TMap<FString, FUserUpdatedMultiDelegate> UserUpdatedDelegates;
58};
@ UserId
The user ID of the user that sent the message.
@ Id
Message ID.
#/components/schemas/OwnUser
Definition OwnUserDto.h:17
The currently connected Stream Chat user.
Definition OwnUser.h:18
Common fields for users.
Definition UserDto.h:16
TArray< FString > BlockedUserIds
Ids of the users that this user has blocked.
Definition UserDto.h:60
A Stream Chat user.
Definition User.h:20
#/components/schemas/UserObject Used in both requests and responses
Definition UserObjectDto.h:17
A reference to a unique User.
Definition UserRef.h:23