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;
147 bool UpdateDataStore(
const FString& RoomID,
const TMap<FString, FString>& Data, FRoomUpdateDataStore OnUpdateDataStoreCallback);
183 bool Get(
const FString& RoomID, FRoomGet OnGetCallback);
209 bool GetCurrentForUser(
const FString& UserId, FRoomGetCurrentForUser OnGetCurrentForUserCallback);
242 bool GetModeratedRooms(
int PageIndex,
int PageSize, FRoomGetModeratedRooms OnGetModeratedRoomsCallback);
258 bool InviteUser(
const FString& RoomID,
const FString& Token, FRoomInviteUser OnInviteUserCallback);
288 bool KickUser(
const FString& RoomID,
const FString& UserID,
int KickDurationSeconds, FRoomKickUser OnKickUserCallback);
302 bool Leave(
const FString& RoomID, FRoomLeave OnLeaveCallback);
316 bool SetDescription(
const FString& RoomID,
const FString& Description, FRoomSetDescription OnSetDescriptionCallback);
349 bool UpdateOwner(
const FString& RoomID,
const FString& UserID, FRoomUpdateOwner OnUpdateOwnerCallback);
376 ppfID GetppfID(
const FString& StringID);
407 UFUNCTION(BlueprintCallable, meta = (WorldContext =
"WorldContextObject"), Category =
"OnlinePico|Room")
408 static
void LaunchInvitableUserFlow(UObject* WorldContextObject, const FString& RoomID, FRoomLaunchInvitableUserFlow OnLaunchInvitableUserFlowCallback);
418 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
419 static
void UpdateDataStore(UObject* WorldContextObject, const FString& RoomID, const TMap<FString, FString>& Data, FRoomUpdateDataStore OnUpdateDataStoreCallback);
437 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
438 static
void CreateAndJoinPrivate2(UObject* WorldContextObject,
ERoomJoinPolicy JoinPolicy, int32 MaxUsers,
FPicoRoomOptions RoomOptions, FRoomCreateAndJoinPrivate2 OnCreateAndJoinPrivate2Callback);
445 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
446 static
void Get(UObject* WorldContextObject, const FString& RoomID, FRoomGet OnGetCallback);
452 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
453 static
void GetCurrent(UObject* WorldContextObject, FRoomGetCurrent OnGetCurrentCallback);
462 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
463 static
void GetCurrentForUser(UObject* WorldContextObject, const FString& UserId, FRoomGetCurrentForUser OnGetCurrentForUserCallback);
473 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
474 static
void GetInvitableUsers2(UObject* WorldContextObject,
FPicoRoomOptions RoomOptions, FRoomGetInvitableUsers2 OnGetInvitableUsers2Callback);
485 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
486 static
void GetModeratedRooms(UObject* WorldContextObject,
int PageIndex,
int PageSize, FRoomGetModeratedRooms OnGetModeratedRoomsCallback);
496 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
497 static
void InviteUser(UObject* WorldContextObject, const FString& RoomID, const FString& Token, FRoomInviteUser OnInviteUserCallback);
506 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
507 static
void Join2(UObject* WorldContextObject, const FString& RoomID,
FPicoRoomOptions RoomOptions, FRoomJoin2 OnJoin2Callback);
516 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
517 static
void KickUser(UObject* WorldContextObject, const FString& RoomID, const FString& UserID, int32 KickDurationSeconds, FRoomKickUser OnKickUserCallback);
525 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
526 static
void Leave(UObject* WorldContextObject, const FString& RoomID, FRoomLeave OnLeaveCallback);
534 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
535 static
void SetDescription(UObject* WorldContextObject, const FString& RoomID, const FString& Description, FRoomSetDescription OnSetDescriptionCallback);
548 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
549 static
void UpdateMembershipLockStatus(UObject* WorldContextObject, const FString& RoomID,
ERoomMembershipLockStatus MembershipLockStatus, FRoomUpdateMembershipLockStatus OnUpdateMembershipLockStatusCallback);
557 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
558 static
void UpdateOwner(UObject* WorldContextObject, const FString& RoomID, const FString& UserID, FRoomUpdateOwner OnUpdateOwnerCallback);
573 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
574 static
void UpdatePrivateRoomJoinPolicy(UObject* WorldContextObject, const FString& RoomID,
ERoomJoinPolicy JoinPolicy, FRoomUpdatePrivateRoomJoinPolicy OnUpdatePrivateRoomJoinPolicyCallback);
597 FString Description = FString();
601 FString RoomID = FString();
603 bool bIsMembershipLocked =
false;
609 int32 MaxUserNum = 0;
614 void InitParams(ppfRoomHandle InRoomHandle);
617 UFUNCTION(BlueprintPure, Category =
"Pico Platform|Room|Room")
621 UFUNCTION(BlueprintPure, Category = "Pico Platform|Room|Room")
625 UFUNCTION(BlueprintPure, Category = "Pico Platform|Room|Room")
629 UFUNCTION(BlueprintPure, Category = "Pico Platform|Room|Room")
630 FString GetDescription();
635 UFUNCTION(BlueprintPure, Category = "Pico Platform|Room|Room")
639 UFUNCTION(BlueprintPure, Category = "Pico Platform|Room|Room")
640 bool GetIsMembershipLocked();
643 UFUNCTION(BlueprintPure, Category = "Pico Platform|Room|Room")
647 UFUNCTION(BlueprintPure, Category = "Pico Platform|Room|Room")
651 UFUNCTION(BlueprintPure, Category = "Pico Platform|Room|Room")
655 UFUNCTION(BlueprintPure, Category = "Pico Platform|Room|Room")
658 UFUNCTION(BlueprintPure, Category = "Pico Platform|Room|Room")
659 FString GetDebugString();
670 TArray<UPico_Room*> RoomArray;
671 FString NextPageParam = FString();
676 void InitParams(ppfRoomArrayHandle InppfRoomArrayHandle);
679 UFUNCTION(BlueprintPure, Category =
"Pico Platform|Room|Room Array")
683 UFUNCTION(BlueprintPure, Category = "Pico Platform|Room|Room Array")
684 FString GetNextPageParam();
687 UFUNCTION(BlueprintPure, Category = "Pico Platform|Room|Room Array")
690 UFUNCTION(BlueprintPure, Category = "Pico Platform|Room|Room Array")
691 int32 GetTotalSize();
694 UFUNCTION(BlueprintPure, Category = "Pico Platform|Room|Room Array")
697 UFUNCTION(BlueprintPure, Category = "Pico Platform|Room|Room Array")
698 FString GetDebugString();
PicoRoomInterface class.
Definition: Pico_Room.h:74
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. The payload returned is roomarray....
OnlinePicoRoom Blueprint Function class.
Definition: Pico_Room.h:397
UPico_DataStore class.
Definition: Pico_DataStore.h:30
UPico_RoomArray class.
Definition: Pico_Room.h:666
UPico_Room class.
Definition: Pico_Room.h:584
UPico_UserArray class.
Definition: Pico_User.h:510
UPico_User class.
Definition: Pico_User.h:422
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
Room options.
Definition: OnlineSubsystemPicoNames.h:753