17#include "CoreMinimal.h"
18#include "OnlineSubsystemPico.h"
19#include "UObject/NoExportTypes.h"
20#include "OnlineSubsystemPicoNames.h"
21#include "PPF_Platform.h"
22#include "Pico_Room.generated.h"
25DECLARE_LOG_CATEGORY_EXTERN(PicoRoom, Log, All);
37DECLARE_MULTICAST_DELEGATE_FourParams(FRoomUpdateNotify,
bool,
int,
const FString&, UPico_Room* );
38DECLARE_MULTICAST_DELEGATE_ThreeParams(FRoomUpdateOwnerNotify,
bool,
int,
const FString&);
39DECLARE_MULTICAST_DELEGATE_FourParams(FRoomJoinNotify,
bool,
int,
const FString&, UPico_Room* );
40DECLARE_MULTICAST_DELEGATE_FourParams(FRoomLeaveNotify,
bool,
int,
const FString&, UPico_Room* );
41DECLARE_MULTICAST_DELEGATE_FourParams(FRoomInviteAcceptedNotify,
bool,
int,
const FString&,
const FString& );
43DECLARE_DYNAMIC_DELEGATE_ThreeParams(FRoomLaunchInvitableUserFlow,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage);
44DECLARE_DYNAMIC_DELEGATE_FourParams(FRoomUpdateDataStore,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage, UPico_Room*, Room);
45DECLARE_DYNAMIC_DELEGATE_FourParams(FRoomCreateAndJoinPrivate2,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage, UPico_Room*, Room);
46DECLARE_DYNAMIC_DELEGATE_FourParams(FRoomGet,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage, UPico_Room*, Room);
47DECLARE_DYNAMIC_DELEGATE_FourParams(FRoomGetCurrent,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage, UPico_Room*, Room);
48DECLARE_DYNAMIC_DELEGATE_FourParams(FRoomGetCurrentForUser,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage, UPico_Room*, Room);
49DECLARE_DYNAMIC_DELEGATE_FourParams(FRoomGetInvitableUsers2,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage, UPico_UserArray*, UserArray);
50DECLARE_DYNAMIC_DELEGATE_FourParams(FRoomGetModeratedRooms,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage, UPico_RoomArray*, RoomArray);
51DECLARE_DYNAMIC_DELEGATE_FourParams(FRoomInviteUser,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage, UPico_Room*, Room);
52DECLARE_DYNAMIC_DELEGATE_FourParams(FRoomJoin2,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage, UPico_Room*, Room);
53DECLARE_DYNAMIC_DELEGATE_FourParams(FRoomKickUser,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage, UPico_Room*, Room);
54DECLARE_DYNAMIC_DELEGATE_FourParams(FRoomLeave,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage, UPico_Room*, Room);
55DECLARE_DYNAMIC_DELEGATE_FourParams(FRoomSetDescription,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage, UPico_Room*, Room);
56DECLARE_DYNAMIC_DELEGATE_FourParams(FRoomUpdateMembershipLockStatus,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage, UPico_Room*, Room);
57DECLARE_DYNAMIC_DELEGATE_ThreeParams(FRoomUpdateOwner,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage);
58DECLARE_DYNAMIC_DELEGATE_FourParams(FRoomUpdatePrivateRoomJoinPolicy,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage, UPico_Room*, Room);
76 FOnlineSubsystemPico& PicoSubsystem;
82 FDelegateHandle RoomUpdateHandle;
83 void OnRoomUpdateNotification(ppfMessageHandle Message,
bool bIsError);
85 FDelegateHandle RoomUpdateOwnerHandle;
86 void OnRoomUpdateOwnerNotification(ppfMessageHandle Message,
bool bIsError);
88 FDelegateHandle RoomJoinHandle;
89 void OnRoomJoinNotification(ppfMessageHandle Message,
bool bIsError);
91 FDelegateHandle RoomLeaveHandle;
92 void OnRoomLeaveNotification(ppfMessageHandle Message,
bool bIsError);
94 FDelegateHandle RoomInviteAcceptedHandle;
95 void OnRoomInviteAcceptedNotification(ppfMessageHandle Message,
bool bIsError);
97 FRoomUpdateNotify RoomUpdateNotify;
98 FRoomUpdateOwnerNotify RoomUpdateOwnerNotify;
99 FRoomJoinNotify RoomJoinNotify;
100 FRoomLeaveNotify RoomLeaveNotify;
101 FRoomInviteAcceptedNotify RoomInviteAcceptedNotify;
103 FRoomLaunchInvitableUserFlow LaunchInvitableUserFlowDelegate;
104 FRoomUpdateDataStore UpdateDataStoreDelegate;
105 FRoomCreateAndJoinPrivate2 CreateAndJoinPrivate2Delegate;
106 FRoomGet GetDelegate;
107 FRoomGetCurrent GetCurrentDelegate;
108 FRoomGetCurrentForUser GetCurrentForUserDelegate;
109 FRoomGetInvitableUsers2 GetInvitableUsers2Delegate;
110 FRoomGetModeratedRooms GetModeratedRoomsDelegate;
111 FRoomInviteUser InviteUserDelegate;
112 FRoomJoin2 Join2Delegate;
113 FRoomKickUser KickUserDelegate;
114 FRoomLeave LeaveDelegate;
115 FRoomSetDescription SetDescriptionDelegate;
116 FRoomUpdateMembershipLockStatus UpdateMembershipLockStatusDelegate;
117 FRoomUpdateOwner UpdateOwnerDelegate;
118 FRoomUpdatePrivateRoomJoinPolicy UpdatePrivateRoomJoinPolicyDelegate;
144 bool UpdateDataStore(
const FString& RoomID,
const TMap<FString, FString>& Data, FRoomUpdateDataStore OnUpdateDataStoreCallback);
178 bool Get(
const FString& RoomID, FRoomGet OnGetCallback);
202 bool GetCurrentForUser(
const FString& UserId, FRoomGetCurrentForUser OnGetCurrentForUserCallback);
230 bool GetModeratedRooms(
int PageIndex,
int PageSize, FRoomGetModeratedRooms OnGetModeratedRoomsCallback);
245 bool InviteUser(
const FString& RoomID,
const FString& Token, FRoomInviteUser OnInviteUserCallback);
273 bool KickUser(
const FString& RoomID,
const FString& UserID,
int KickDurationSeconds, FRoomKickUser OnKickUserCallback);
286 bool Leave(
const FString& RoomID, FRoomLeave OnLeaveCallback);
299 bool SetDescription(
const FString& RoomID,
const FString& Description, FRoomSetDescription OnSetDescriptionCallback);
330 bool UpdateOwner(
const FString& RoomID,
const FString& UserID, FRoomUpdateOwner OnUpdateOwnerCallback);
356 ppfID GetppfID(
const FString& StringID);
386 UFUNCTION(BlueprintCallable, meta = (WorldContext =
"WorldContextObject"), Category =
"OnlinePico|Room")
387 static
void LaunchInvitableUserFlow(UObject* WorldContextObject, const FString& RoomID, FRoomLaunchInvitableUserFlow OnLaunchInvitableUserFlowCallback);
396 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
397 static
void UpdateDataStore(UObject* WorldContextObject, const FString& RoomID, const TMap<FString, FString>& Data, FRoomUpdateDataStore OnUpdateDataStoreCallback);
414 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
415 static
void CreateAndJoinPrivate2(UObject* WorldContextObject,
ERoomJoinPolicy JoinPolicy, int32 MaxUsers,
FPicoRoomOptions RoomOptions, FRoomCreateAndJoinPrivate2 OnCreateAndJoinPrivate2Callback);
421 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
422 static
void Get(UObject* WorldContextObject, const FString& RoomID, FRoomGet OnGetCallback);
427 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
428 static
void GetCurrent(UObject* WorldContextObject, FRoomGetCurrent OnGetCurrentCallback);
436 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
437 static
void GetCurrentForUser(UObject* WorldContextObject, const FString& UserId, FRoomGetCurrentForUser OnGetCurrentForUserCallback);
446 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
447 static
void GetInvitableUsers2(UObject* WorldContextObject,
FPicoRoomOptions RoomOptions, FRoomGetInvitableUsers2 OnGetInvitableUsers2Callback);
454 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
455 static
void GetModeratedRooms(UObject* WorldContextObject,
int PageIndex,
int PageSize, FRoomGetModeratedRooms OnGetModeratedRoomsCallback);
464 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
465 static
void InviteUser(UObject* WorldContextObject, const FString& RoomID, const FString& Token, FRoomInviteUser OnInviteUserCallback);
473 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
474 static
void Join2(UObject* WorldContextObject, const FString& RoomID,
FPicoRoomOptions RoomOptions, FRoomJoin2 OnJoin2Callback);
482 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
483 static
void KickUser(UObject* WorldContextObject, const FString& RoomID, const FString& UserID, int32 KickDurationSeconds, FRoomKickUser OnKickUserCallback);
490 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
491 static
void Leave(UObject* WorldContextObject, const FString& RoomID, FRoomLeave OnLeaveCallback);
498 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
499 static
void SetDescription(UObject* WorldContextObject, const FString& RoomID, const FString& Description, FRoomSetDescription OnSetDescriptionCallback);
511 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
512 static
void UpdateMembershipLockStatus(UObject* WorldContextObject, const FString& RoomID,
ERoomMembershipLockStatus MembershipLockStatus, FRoomUpdateMembershipLockStatus OnUpdateMembershipLockStatusCallback);
519 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
520 static
void UpdateOwner(UObject* WorldContextObject, const FString& RoomID, const FString& UserID, FRoomUpdateOwner OnUpdateOwnerCallback);
534 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
535 static
void UpdatePrivateRoomJoinPolicy(UObject* WorldContextObject, const FString& RoomID,
ERoomJoinPolicy JoinPolicy, FRoomUpdatePrivateRoomJoinPolicy OnUpdatePrivateRoomJoinPolicyCallback);
540class ONLINESUBSYSTEMPICO_API UPico_Room : public UObject
546 UPico_DataStore* DataStore =
nullptr;
549 UPico_User* Owner =
nullptr;
552 UPico_UserArray* Users =
nullptr;
554 FString Description = FString();
558 FString RoomID = FString();
560 bool bIsMembershipLocked =
false;
566 int32 MaxUserNum = 0;
571 void InitParams(ppfRoomHandle InRoomHandle);
573 UFUNCTION(BlueprintPure, Category =
"Pico Platform|Room|Room")
574 UPico_DataStore* GetDataStore();
576 UFUNCTION(BlueprintPure, Category =
"Pico Platform|Room|Room")
577 UPico_User* GetOwner();
579 UFUNCTION(BlueprintPure, Category =
"Pico Platform|Room|Room")
580 UPico_UserArray* GetUsers();
582 UFUNCTION(BlueprintPure, Category =
"Pico Platform|Room|Room")
583 FString GetDescription();
587 UFUNCTION(BlueprintPure, Category =
"Pico Platform|Room|Room")
590 UFUNCTION(BlueprintPure, Category =
"Pico Platform|Room|Room")
591 bool GetIsMembershipLocked();
593 UFUNCTION(BlueprintPure, Category =
"Pico Platform|Room|Room")
596 UFUNCTION(BlueprintPure, Category =
"Pico Platform|Room|Room")
599 UFUNCTION(BlueprintPure, Category =
"Pico Platform|Room|Room")
602 UFUNCTION(BlueprintPure, Category =
"Pico Platform|Room|Room")
605 UFUNCTION(BlueprintPure, Category =
"Pico Platform|Room|Room")
606 FString GetDebugString();
611class ONLINESUBSYSTEMPICO_API UPico_RoomArray :
public UObject
616 TArray<UPico_Room*> RoomArray;
617 FString NextPageParam = FString();
622 void InitParams(ppfRoomArrayHandle InppfRoomArrayHandle);
624 UFUNCTION(BlueprintPure, Category = "Pico Platform|Room|Room Array")
625 UPico_Room* GetElement(int32 Index);
627 UFUNCTION(BlueprintPure, Category = "Pico Platform|Room|Room Array")
628 FString GetNextPageParam();
630 UFUNCTION(BlueprintPure, Category = "Pico Platform|Room|Room Array")
633 UFUNCTION(BlueprintPure, Category = "Pico Platform|Room|Room Array")
634 int32 GetTotalSize();
636 UFUNCTION(BlueprintPure, Category = "Pico Platform|Room|Room Array")
639 UFUNCTION(BlueprintPure, Category = "Pico Platform|Room|Room Array")
640 FString GetDebugString();
PicoRoomInterface class.
Definition: Pico_Room.h:74
OnlinePicoRoom Blueprint Function class.
Definition: Pico_Room.h:377
ERoomType
The type of room you can create.
Definition: OnlineSubsystemPicoNames.h:172
ERoomMembershipLockStatus
Room membership lock status.
Definition: OnlineSubsystemPicoNames.h:769
ERoomJoinabilit
The joinability of a room.
Definition: OnlineSubsystemPicoNames.h:194
ERoomJoinPolicy
The join policy type of a room.
Definition: OnlineSubsystemPicoNames.h:182
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 Leave(const FString &RoomID, FRoomLeave OnLeaveCallback)
Leaves the current 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.
Room options.
Definition: OnlineSubsystemPicoNames.h:753