5#include "CoreMinimal.h"
6#include "OnlineSubsystemPico.h"
7#include "UObject/NoExportTypes.h"
8#include "OnlineSubsystemPicoNames.h"
9#include "PPF_Platform.h"
10#include "Pico_Room.generated.h"
13DECLARE_LOG_CATEGORY_EXTERN(PicoRoom, Log, All);
25DECLARE_MULTICAST_DELEGATE_FourParams(FRoomUpdateNotify,
bool,
int,
const FString&,
UPico_Room* );
26DECLARE_MULTICAST_DELEGATE_ThreeParams(FRoomUpdateOwnerNotify,
bool,
int,
const FString&);
27DECLARE_MULTICAST_DELEGATE_FourParams(FRoomJoinNotify,
bool,
int,
const FString&,
UPico_Room* );
28DECLARE_MULTICAST_DELEGATE_FourParams(FRoomLeaveNotify,
bool,
int,
const FString&,
UPico_Room* );
29DECLARE_MULTICAST_DELEGATE_FourParams(FRoomInviteAcceptedNotify,
bool,
int,
const FString&,
const FString& );
31DECLARE_DYNAMIC_DELEGATE_ThreeParams(FRoomLaunchInvitableUserFlow,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage);
32DECLARE_DYNAMIC_DELEGATE_FourParams(FRoomUpdateDataStore,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage,
UPico_Room*, Room);
33DECLARE_DYNAMIC_DELEGATE_FourParams(FRoomCreateAndJoinPrivate2,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage,
UPico_Room*, Room);
34DECLARE_DYNAMIC_DELEGATE_FourParams(FRoomGet,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage,
UPico_Room*, Room);
35DECLARE_DYNAMIC_DELEGATE_FourParams(FRoomGetCurrent,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage,
UPico_Room*, Room);
36DECLARE_DYNAMIC_DELEGATE_FourParams(FRoomGetCurrentForUser,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage,
UPico_Room*, Room);
37DECLARE_DYNAMIC_DELEGATE_FourParams(FRoomGetInvitableUsers2,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage,
UPico_UserArray*, UserArray);
38DECLARE_DYNAMIC_DELEGATE_FourParams(FRoomGetModeratedRooms,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage,
UPico_RoomArray*, RoomArray);
39DECLARE_DYNAMIC_DELEGATE_FourParams(FRoomInviteUser,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage,
UPico_Room*, Room);
40DECLARE_DYNAMIC_DELEGATE_FourParams(FRoomJoin2,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage,
UPico_Room*, Room);
41DECLARE_DYNAMIC_DELEGATE_FourParams(FRoomKickUser,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage,
UPico_Room*, Room);
42DECLARE_DYNAMIC_DELEGATE_FourParams(FRoomLeave,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage,
UPico_Room*, Room);
43DECLARE_DYNAMIC_DELEGATE_FourParams(FRoomSetDescription,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage,
UPico_Room*, Room);
44DECLARE_DYNAMIC_DELEGATE_FourParams(FRoomUpdateMembershipLockStatus,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage,
UPico_Room*, Room);
45DECLARE_DYNAMIC_DELEGATE_ThreeParams(FRoomUpdateOwner,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage);
46DECLARE_DYNAMIC_DELEGATE_FourParams(FRoomUpdatePrivateRoomJoinPolicy,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage,
UPico_Room*, Room);
47DECLARE_DYNAMIC_DELEGATE_FourParams(FRoomJoinOrCreateNamedRoom,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage,
UPico_Room*, Room);
48DECLARE_DYNAMIC_DELEGATE_FourParams(FRoomGetNamedRooms,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage,
UPico_RoomArray*, RoomArray);
66 FOnlineSubsystemPico& PicoSubsystem;
72 FDelegateHandle RoomUpdateHandle;
73 void OnRoomUpdateNotification(ppfMessageHandle Message,
bool bIsError);
75 FDelegateHandle RoomUpdateOwnerHandle;
76 void OnRoomUpdateOwnerNotification(ppfMessageHandle Message,
bool bIsError);
78 FDelegateHandle RoomJoinHandle;
79 void OnRoomJoinNotification(ppfMessageHandle Message,
bool bIsError);
81 FDelegateHandle RoomLeaveHandle;
82 void OnRoomLeaveNotification(ppfMessageHandle Message,
bool bIsError);
84 FDelegateHandle RoomInviteAcceptedHandle;
85 void OnRoomInviteAcceptedNotification(ppfMessageHandle Message,
bool bIsError);
87 FRoomUpdateNotify RoomUpdateNotify;
88 FRoomUpdateOwnerNotify RoomUpdateOwnerNotify;
89 FRoomJoinNotify RoomJoinNotify;
90 FRoomLeaveNotify RoomLeaveNotify;
91 FRoomInviteAcceptedNotify RoomInviteAcceptedNotify;
93 FRoomLaunchInvitableUserFlow LaunchInvitableUserFlowDelegate;
94 FRoomUpdateDataStore UpdateDataStoreDelegate;
95 FRoomCreateAndJoinPrivate2 CreateAndJoinPrivate2Delegate;
97 FRoomGetCurrent GetCurrentDelegate;
98 FRoomGetCurrentForUser GetCurrentForUserDelegate;
99 FRoomGetInvitableUsers2 GetInvitableUsers2Delegate;
100 FRoomGetModeratedRooms GetModeratedRoomsDelegate;
101 FRoomInviteUser InviteUserDelegate;
102 FRoomJoin2 Join2Delegate;
103 FRoomKickUser KickUserDelegate;
104 FRoomLeave LeaveDelegate;
105 FRoomSetDescription SetDescriptionDelegate;
106 FRoomUpdateMembershipLockStatus UpdateMembershipLockStatusDelegate;
107 FRoomUpdateOwner UpdateOwnerDelegate;
108 FRoomUpdatePrivateRoomJoinPolicy UpdatePrivateRoomJoinPolicyDelegate;
109 FRoomJoinOrCreateNamedRoom JoinOrCreateNamedRoomDelegate;
110 FRoomGetNamedRooms GetNamedRoomsDelegate;
139 bool UpdateDataStore(
const FString& RoomID,
const TMap<FString, FString>& Data, FRoomUpdateDataStore OnUpdateDataStoreCallback);
175 bool Get(
const FString& RoomID, FRoomGet OnGetCallback);
201 bool GetCurrentForUser(
const FString& UserId, FRoomGetCurrentForUser OnGetCurrentForUserCallback);
234 bool GetModeratedRooms(
int PageIndex,
int PageSize, FRoomGetModeratedRooms OnGetModeratedRoomsCallback);
250 bool InviteUser(
const FString& RoomID,
const FString& Token, FRoomInviteUser OnInviteUserCallback);
280 bool KickUser(
const FString& RoomID,
const FString& UserID,
int KickDurationSeconds, FRoomKickUser OnKickUserCallback);
294 bool Leave(
const FString& RoomID, FRoomLeave OnLeaveCallback);
308 bool SetDescription(
const FString& RoomID,
const FString& Description, FRoomSetDescription OnSetDescriptionCallback);
341 bool UpdateOwner(
const FString& RoomID,
const FString& UserID, FRoomUpdateOwner OnUpdateOwnerCallback);
375 bool GetNamedRooms(
int PageIndex,
int PageSize, FRoomGetNamedRooms OnGetNamedRoomsCallback);
396 ppfID GetppfID(
const FString& StringID);
427 UFUNCTION(BlueprintCallable, meta = (WorldContext =
"WorldContextObject"), Category =
"OnlinePico|Room")
428 static
void LaunchInvitableUserFlow(UObject* WorldContextObject, const FString& RoomID, FRoomLaunchInvitableUserFlow OnLaunchInvitableUserFlowCallback);
438 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
439 static
void UpdateDataStore(UObject* WorldContextObject, const FString& RoomID, const TMap<FString, FString>& Data, FRoomUpdateDataStore OnUpdateDataStoreCallback);
457 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
458 static
void CreateAndJoinPrivate2(UObject* WorldContextObject,
ERoomJoinPolicy JoinPolicy, int32 MaxUsers,
FPicoRoomOptions RoomOptions, FRoomCreateAndJoinPrivate2 OnCreateAndJoinPrivate2Callback);
465 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
466 static
void Get(UObject* WorldContextObject, const FString& RoomID, FRoomGet OnGetCallback);
472 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
473 static
void GetCurrent(UObject* WorldContextObject, FRoomGetCurrent OnGetCurrentCallback);
482 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
483 static
void GetCurrentForUser(UObject* WorldContextObject, const FString& UserId, FRoomGetCurrentForUser OnGetCurrentForUserCallback);
493 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
494 static
void GetInvitableUsers2(UObject* WorldContextObject,
FPicoRoomOptions RoomOptions, FRoomGetInvitableUsers2 OnGetInvitableUsers2Callback);
505 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
506 static
void GetModeratedRooms(UObject* WorldContextObject,
int PageIndex,
int PageSize, FRoomGetModeratedRooms OnGetModeratedRoomsCallback);
516 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
517 static
void InviteUser(UObject* WorldContextObject, const FString& RoomID, const FString& Token, FRoomInviteUser OnInviteUserCallback);
526 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
527 static
void Join2(UObject* WorldContextObject, const FString& RoomID,
FPicoRoomOptions RoomOptions, FRoomJoin2 OnJoin2Callback);
536 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
537 static
void KickUser(UObject* WorldContextObject, const FString& RoomID, const FString& UserID, int32 KickDurationSeconds, FRoomKickUser OnKickUserCallback);
545 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
546 static
void Leave(UObject* WorldContextObject, const FString& RoomID, FRoomLeave OnLeaveCallback);
554 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
555 static
void SetDescription(UObject* WorldContextObject, const FString& RoomID, const FString& Description, FRoomSetDescription OnSetDescriptionCallback);
568 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
569 static
void UpdateMembershipLockStatus(UObject* WorldContextObject, const FString& RoomID,
ERoomMembershipLockStatus MembershipLockStatus, FRoomUpdateMembershipLockStatus OnUpdateMembershipLockStatusCallback);
577 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
578 static
void UpdateOwner(UObject* WorldContextObject, const FString& RoomID, const FString& UserID, FRoomUpdateOwner OnUpdateOwnerCallback);
593 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
594 static
void UpdatePrivateRoomJoinPolicy(UObject* WorldContextObject, const FString& RoomID,
ERoomJoinPolicy JoinPolicy, FRoomUpdatePrivateRoomJoinPolicy OnUpdatePrivateRoomJoinPolicyCallback);
601 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
602 static
void GetNamedRooms(UObject* WorldContextObject,
int PageIndex,
int PageSize, FRoomGetNamedRooms OnGetNamedRoomsCallback);
611 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
612 static
void JoinOrCreateNamedRoom(UObject* WorldContextObject,
ERoomJoinPolicy JoinPolicy,
bool CreateIfNotExist, int32 MaxUsers,
FPicoRoomOptions Options, FRoomJoinOrCreateNamedRoom OnRoomJoinOrCreateNamedRoomCallback);
618 UFUNCTION(BlueprintPure, Category = "OnlinePico|Room")
619 static
FPicoRoomOptions GetCreatePrivateRoomOptions(const FString& DataStoreKey, const FString& DataStoreValue);
627 UFUNCTION(BlueprintPure, Category = "OnlinePico|Room")
628 static
FPicoRoomOptions GetJoinOrCreateNamedRoomOptions(const FString& DataStoreKey, const FString& DataStoreValue, const FString& Name, const FString& Password);
651 FString Description = FString();
657 FString RoomID = FString();
659 bool bIsMembershipLocked =
false;
665 int32 MaxUserNum = 0;
670 void InitParams(ppfRoomHandle InRoomHandle);
673 UFUNCTION(BlueprintPure, Category =
"Pico Platform|Room|Room")
677 UFUNCTION(BlueprintPure, Category = "Pico Platform|Room|Room")
681 UFUNCTION(BlueprintPure, Category = "Pico Platform|Room|Room")
685 UFUNCTION(BlueprintPure, Category = "Pico Platform|Room|Room")
686 FString GetDescription();
689 UFUNCTION(BlueprintPure, Category = "Pico Platform|Room|Room")
695 UFUNCTION(BlueprintPure, Category = "Pico Platform|Room|Room")
699 UFUNCTION(BlueprintPure, Category = "Pico Platform|Room|Room")
700 bool GetIsMembershipLocked();
703 UFUNCTION(BlueprintPure, Category = "Pico Platform|Room|Room")
707 UFUNCTION(BlueprintPure, Category = "Pico Platform|Room|Room")
711 UFUNCTION(BlueprintPure, Category = "Pico Platform|Room|Room")
715 UFUNCTION(BlueprintPure, Category = "Pico Platform|Room|Room")
718 UFUNCTION(BlueprintPure, Category = "Pico Platform|Room|Room")
719 FString GetDebugString();
730 TArray<UPico_Room*> RoomArray;
737 void InitParams(ppfRoomArrayHandle InppfRoomArrayHandle);
740 UFUNCTION(BlueprintPure, Category =
"Pico Platform|Room|Room Array")
744 UFUNCTION(BlueprintPure, Category = "Pico Platform|Room|Room Array")
747 UFUNCTION(BlueprintPure, Category = "Pico Platform|Room|Room Array")
748 int32 GetTotalSize();
751 UFUNCTION(BlueprintPure, Category = "Pico Platform|Room|Room Array")
754 UFUNCTION(BlueprintPure, Category = "Pico Platform|Room|Room Array")
755 int32 GetPageIndex();
757 UFUNCTION(BlueprintPure, Category = "Pico Platform|Room|Room Array")
760 UFUNCTION(BlueprintPure, Category = "Pico Platform|Room|Room Array")
761 FString GetDebugString();
PicoRoomInterface class.
Definition: Pico_Room.h:64
bool LaunchInvitableUserFlow(const FString &RoomID, FRoomLaunchInvitableUserFlow OnLaunchInvitableUserFlowCallback)
Launches the invitation flow to let the current user invite friends to a specified room....
bool UpdateDataStore(const FString &RoomID, const TMap< FString, FString > &Data, FRoomUpdateDataStore OnUpdateDataStoreCallback)
Updates the data store of the current room (the caller should be the room owner).
bool CreateAndJoinPrivate2(ERoomJoinPolicy JoinPolicy, uint32 MaxUsers, FPicoRoomOptions RoomOptions, FRoomCreateAndJoinPrivate2 OnCreateAndJoinPrivate2Callback)
Creates a new private room and joins it.
bool InviteUser(const FString &RoomID, const FString &Token, FRoomInviteUser OnInviteUserCallback)
Invites a user to the current room.
bool GetCurrentForUser(const FString &UserId, FRoomGetCurrentForUser OnGetCurrentForUserCallback)
Gets the current room of the specified user.
bool Join2(const FString &RoomID, FPicoRoomOptions options, FRoomJoin2 OnJoin2Callback)
Joins the target room and meanwhile leaves the current room.
bool UpdatePrivateRoomJoinPolicy(const FString &RoomID, ERoomJoinPolicy JoinPolicy, FRoomUpdatePrivateRoomJoinPolicy OnUpdatePrivateRoomJoinPolicyCallback)
Sets the join policy for a specified private room.
bool GetCurrent(FRoomGetCurrent OnGetCurrentCallback)
Gets the data of the room you are currently in.
bool UpdateMembershipLockStatus(const FString &RoomID, ERoomMembershipLockStatus MembershipLockStatus, FRoomUpdateMembershipLockStatus OnUpdateMembershipLockStatusCallback)
Locks/unlocks the membership of a room (the caller should be the room owner) to allow/disallow new me...
bool GetInvitableUsers2(FPicoRoomOptions roomOptions, FRoomGetInvitableUsers2 OnGetInvitableUsers2Callback)
Gets a list of members the user can invite to the room. These members are drawn from the user's frien...
bool KickUser(const FString &RoomID, const FString &UserID, int KickDurationSeconds, FRoomKickUser OnKickUserCallback)
Kicks a user out of a room. For use by homeowners only.
bool SetDescription(const FString &RoomID, const FString &Description, FRoomSetDescription OnSetDescriptionCallback)
Sets the description of a room. For use by homeowners only.
bool UpdateOwner(const FString &RoomID, const FString &UserID, FRoomUpdateOwner OnUpdateOwnerCallback)
Modifies the owner of the room, this person needs to be the person in this room.
bool GetNamedRooms(int PageIndex, int PageSize, FRoomGetNamedRooms OnGetNamedRoomsCallback)
Fetches the list of named rooms created for the application.
bool Leave(const FString &RoomID, FRoomLeave OnLeaveCallback)
Leaves the current room.
bool JoinOrCreateNamedRoom(ERoomJoinPolicy JoinPolicy, bool CreateIfNotExist, uint32 MaxUsers, FPicoRoomOptions Options, FRoomJoinOrCreateNamedRoom OnRoomJoinOrCreateNamedRoomCallback)
Join(Create) a named room.
bool Get(const FString &RoomID, FRoomGet OnGetCallback)
Gets the information about a specified room.
bool GetModeratedRooms(int PageIndex, int PageSize, FRoomGetModeratedRooms OnGetModeratedRoomsCallback)
Gets the list of moderated rooms created for the application. The payload returned is roomarray....
OnlinePicoRoom Blueprint Function class.
Definition: Pico_Room.h:417
UPico_DataStore class.
Definition: Pico_DataStore.h:18
UPico_RoomArray class.
Definition: Pico_Room.h:726
UPico_Room class.
Definition: Pico_Room.h:638
UPico_UserArray class.
Definition: Pico_User.h:539
UPico_User class.
Definition: Pico_User.h:451
ERoomType
The type of room you can create.
Definition: OnlineSubsystemPicoNames.h:160
ERoomMembershipLockStatus
Room membership lock status.
Definition: OnlineSubsystemPicoNames.h:782
ERoomJoinabilit
The joinability of a room.
Definition: OnlineSubsystemPicoNames.h:182
ERoomJoinPolicy
The join policy type of a room.
Definition: OnlineSubsystemPicoNames.h:170
Room options.
Definition: OnlineSubsystemPicoNames.h:764