5#include "CoreMinimal.h"
6#include "OnlineSubsystemPico.h"
7#include "UObject/NoExportTypes.h"
8#include "OnlineSubsystemPicoNames.h"
9#include "PPF_Platform.h"
10#include "Kismet/BlueprintFunctionLibrary.h"
11#include "Pico_Room.generated.h"
14DECLARE_LOG_CATEGORY_EXTERN(PicoRoom, Log, All);
26DECLARE_MULTICAST_DELEGATE_FourParams(FRoomUpdateNotify,
bool,
int,
const FString&,
UPico_Room* );
27DECLARE_MULTICAST_DELEGATE_ThreeParams(FRoomUpdateOwnerNotify,
bool,
int,
const FString&);
28DECLARE_MULTICAST_DELEGATE_FourParams(FRoomJoinNotify,
bool,
int,
const FString&,
UPico_Room* );
29DECLARE_MULTICAST_DELEGATE_FourParams(FRoomLeaveNotify,
bool,
int,
const FString&,
UPico_Room* );
30DECLARE_MULTICAST_DELEGATE_FourParams(FRoomInviteAcceptedNotify,
bool,
int,
const FString&,
const FString& );
32DECLARE_DYNAMIC_DELEGATE_ThreeParams(FRoomLaunchInvitableUserFlow,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage);
33DECLARE_DYNAMIC_DELEGATE_FourParams(FRoomUpdateDataStore,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage,
UPico_Room*, Room);
34DECLARE_DYNAMIC_DELEGATE_FourParams(FRoomCreateAndJoinPrivate2,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage,
UPico_Room*, Room);
35DECLARE_DYNAMIC_DELEGATE_FourParams(FRoomGet,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage,
UPico_Room*, Room);
36DECLARE_DYNAMIC_DELEGATE_FourParams(FRoomGetCurrent,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage,
UPico_Room*, Room);
37DECLARE_DYNAMIC_DELEGATE_FourParams(FRoomGetCurrentForUser,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage,
UPico_Room*, Room);
38DECLARE_DYNAMIC_DELEGATE_FourParams(FRoomGetInvitableUsers2,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage,
UPico_UserArray*, UserArray);
39DECLARE_DYNAMIC_DELEGATE_FourParams(FRoomGetModeratedRooms,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage,
UPico_RoomArray*, RoomArray);
40DECLARE_DYNAMIC_DELEGATE_FourParams(FRoomInviteUser,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage,
UPico_Room*, Room);
41DECLARE_DYNAMIC_DELEGATE_FourParams(FRoomJoin2,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage,
UPico_Room*, Room);
42DECLARE_DYNAMIC_DELEGATE_FourParams(FRoomKickUser,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage,
UPico_Room*, Room);
43DECLARE_DYNAMIC_DELEGATE_FourParams(FRoomLeave,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage,
UPico_Room*, Room);
44DECLARE_DYNAMIC_DELEGATE_FourParams(FRoomSetDescription,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage,
UPico_Room*, Room);
45DECLARE_DYNAMIC_DELEGATE_FourParams(FRoomUpdateMembershipLockStatus,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage,
UPico_Room*, Room);
46DECLARE_DYNAMIC_DELEGATE_ThreeParams(FRoomUpdateOwner,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage);
47DECLARE_DYNAMIC_DELEGATE_FourParams(FRoomUpdatePrivateRoomJoinPolicy,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage,
UPico_Room*, Room);
48DECLARE_DYNAMIC_DELEGATE_FourParams(FRoomJoinOrCreateNamedRoom,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage,
UPico_Room*, Room);
49DECLARE_DYNAMIC_DELEGATE_FourParams(FRoomGetNamedRooms,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage,
UPico_RoomArray*, RoomArray);
67 FOnlineSubsystemPico& PicoSubsystem;
73 FDelegateHandle RoomUpdateHandle;
74 void OnRoomUpdateNotification(ppfMessageHandle Message,
bool bIsError);
76 FDelegateHandle RoomUpdateOwnerHandle;
77 void OnRoomUpdateOwnerNotification(ppfMessageHandle Message,
bool bIsError);
79 FDelegateHandle RoomJoinHandle;
80 void OnRoomJoinNotification(ppfMessageHandle Message,
bool bIsError);
82 FDelegateHandle RoomLeaveHandle;
83 void OnRoomLeaveNotification(ppfMessageHandle Message,
bool bIsError);
85 FDelegateHandle RoomInviteAcceptedHandle;
86 void OnRoomInviteAcceptedNotification(ppfMessageHandle Message,
bool bIsError);
88 FRoomUpdateNotify RoomUpdateNotify;
89 FRoomUpdateOwnerNotify RoomUpdateOwnerNotify;
90 FRoomJoinNotify RoomJoinNotify;
91 FRoomLeaveNotify RoomLeaveNotify;
92 FRoomInviteAcceptedNotify RoomInviteAcceptedNotify;
94 FRoomLaunchInvitableUserFlow LaunchInvitableUserFlowDelegate;
95 FRoomUpdateDataStore UpdateDataStoreDelegate;
96 FRoomCreateAndJoinPrivate2 CreateAndJoinPrivate2Delegate;
98 FRoomGetCurrent GetCurrentDelegate;
99 FRoomGetCurrentForUser GetCurrentForUserDelegate;
100 FRoomGetInvitableUsers2 GetInvitableUsers2Delegate;
101 FRoomGetModeratedRooms GetModeratedRoomsDelegate;
102 FRoomInviteUser InviteUserDelegate;
103 FRoomJoin2 Join2Delegate;
104 FRoomKickUser KickUserDelegate;
105 FRoomLeave LeaveDelegate;
106 FRoomSetDescription SetDescriptionDelegate;
107 FRoomUpdateMembershipLockStatus UpdateMembershipLockStatusDelegate;
108 FRoomUpdateOwner UpdateOwnerDelegate;
109 FRoomUpdatePrivateRoomJoinPolicy UpdatePrivateRoomJoinPolicyDelegate;
110 FRoomJoinOrCreateNamedRoom JoinOrCreateNamedRoomDelegate;
111 FRoomGetNamedRooms GetNamedRoomsDelegate;
140 bool UpdateDataStore(
const FString& RoomID,
const TMap<FString, FString>& Data, FRoomUpdateDataStore OnUpdateDataStoreCallback);
176 bool Get(
const FString& RoomID, FRoomGet OnGetCallback);
202 bool GetCurrentForUser(
const FString& UserId, FRoomGetCurrentForUser OnGetCurrentForUserCallback);
235 bool GetModeratedRooms(
int PageIndex,
int PageSize, FRoomGetModeratedRooms OnGetModeratedRoomsCallback);
251 bool InviteUser(
const FString& RoomID,
const FString& Token, FRoomInviteUser OnInviteUserCallback);
281 bool KickUser(
const FString& RoomID,
const FString& UserID,
int KickDurationSeconds, FRoomKickUser OnKickUserCallback);
295 bool Leave(
const FString& RoomID, FRoomLeave OnLeaveCallback);
309 bool SetDescription(
const FString& RoomID,
const FString& Description, FRoomSetDescription OnSetDescriptionCallback);
342 bool UpdateOwner(
const FString& RoomID,
const FString& UserID, FRoomUpdateOwner OnUpdateOwnerCallback);
376 bool GetNamedRooms(
int PageIndex,
int PageSize, FRoomGetNamedRooms OnGetNamedRoomsCallback);
397 ppfID GetppfID(
const FString& StringID);
428 UFUNCTION(BlueprintCallable, meta = (WorldContext =
"WorldContextObject"), Category =
"OnlinePico|Room")
429 static
void LaunchInvitableUserFlow(UObject* WorldContextObject, const FString& RoomID, FRoomLaunchInvitableUserFlow OnLaunchInvitableUserFlowCallback);
439 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
440 static
void UpdateDataStore(UObject* WorldContextObject, const FString& RoomID, const TMap<FString, FString>& Data, FRoomUpdateDataStore OnUpdateDataStoreCallback);
458 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
459 static
void CreateAndJoinPrivate2(UObject* WorldContextObject,
ERoomJoinPolicy JoinPolicy, int32 MaxUsers,
FPicoRoomOptions RoomOptions, FRoomCreateAndJoinPrivate2 OnCreateAndJoinPrivate2Callback);
466 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
467 static
void Get(UObject* WorldContextObject, const FString& RoomID, FRoomGet OnGetCallback);
473 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
474 static
void GetCurrent(UObject* WorldContextObject, FRoomGetCurrent OnGetCurrentCallback);
483 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
484 static
void GetCurrentForUser(UObject* WorldContextObject, const FString& UserId, FRoomGetCurrentForUser OnGetCurrentForUserCallback);
494 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
495 static
void GetInvitableUsers2(UObject* WorldContextObject,
FPicoRoomOptions RoomOptions, FRoomGetInvitableUsers2 OnGetInvitableUsers2Callback);
506 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
507 static
void GetModeratedRooms(UObject* WorldContextObject,
int PageIndex,
int PageSize, FRoomGetModeratedRooms OnGetModeratedRoomsCallback);
517 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
518 static
void InviteUser(UObject* WorldContextObject, const FString& RoomID, const FString& Token, FRoomInviteUser OnInviteUserCallback);
527 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
528 static
void Join2(UObject* WorldContextObject, const FString& RoomID,
FPicoRoomOptions RoomOptions, FRoomJoin2 OnJoin2Callback);
537 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
538 static
void KickUser(UObject* WorldContextObject, const FString& RoomID, const FString& UserID, int32 KickDurationSeconds, FRoomKickUser OnKickUserCallback);
546 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
547 static
void Leave(UObject* WorldContextObject, const FString& RoomID, FRoomLeave OnLeaveCallback);
555 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
556 static
void SetDescription(UObject* WorldContextObject, const FString& RoomID, const FString& Description, FRoomSetDescription OnSetDescriptionCallback);
569 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
570 static
void UpdateMembershipLockStatus(UObject* WorldContextObject, const FString& RoomID,
ERoomMembershipLockStatus MembershipLockStatus, FRoomUpdateMembershipLockStatus OnUpdateMembershipLockStatusCallback);
578 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
579 static
void UpdateOwner(UObject* WorldContextObject, const FString& RoomID, const FString& UserID, FRoomUpdateOwner OnUpdateOwnerCallback);
594 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
595 static
void UpdatePrivateRoomJoinPolicy(UObject* WorldContextObject, const FString& RoomID,
ERoomJoinPolicy JoinPolicy, FRoomUpdatePrivateRoomJoinPolicy OnUpdatePrivateRoomJoinPolicyCallback);
602 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
603 static
void GetNamedRooms(UObject* WorldContextObject,
int PageIndex,
int PageSize, FRoomGetNamedRooms OnGetNamedRoomsCallback);
612 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Room")
613 static
void JoinOrCreateNamedRoom(UObject* WorldContextObject,
ERoomJoinPolicy JoinPolicy,
bool CreateIfNotExist, int32 MaxUsers,
FPicoRoomOptions Options, FRoomJoinOrCreateNamedRoom OnRoomJoinOrCreateNamedRoomCallback);
619 UFUNCTION(BlueprintPure, Category = "OnlinePico|Room")
620 static
FPicoRoomOptions GetCreatePrivateRoomOptions(const FString& DataStoreKey, const FString& DataStoreValue);
628 UFUNCTION(BlueprintPure, Category = "OnlinePico|Room")
629 static
FPicoRoomOptions GetJoinOrCreateNamedRoomOptions(const FString& DataStoreKey, const FString& DataStoreValue, const FString& Name, const FString& Password);
652 FString Description = FString();
658 FString RoomID = FString();
660 bool bIsMembershipLocked =
false;
666 int32 MaxUserNum = 0;
673 void InitParams(ppfRoomHandle InRoomHandle);
676 UFUNCTION(BlueprintPure, Category =
"Pico Platform|Room|Room")
680 UFUNCTION(BlueprintPure, Category = "Pico Platform|Room|Room")
684 UFUNCTION(BlueprintPure, Category = "Pico Platform|Room|Room")
688 UFUNCTION(BlueprintPure, Category = "Pico Platform|Room|Room")
689 FString GetDescription();
692 UFUNCTION(BlueprintPure, Category = "Pico Platform|Room|Room")
698 UFUNCTION(BlueprintPure, Category = "Pico Platform|Room|Room")
702 UFUNCTION(BlueprintPure, Category = "Pico Platform|Room|Room")
703 bool GetIsMembershipLocked();
706 UFUNCTION(BlueprintPure, Category = "Pico Platform|Room|Room")
710 UFUNCTION(BlueprintPure, Category = "Pico Platform|Room|Room")
714 UFUNCTION(BlueprintPure, Category = "Pico Platform|Room|Room")
718 UFUNCTION(BlueprintPure, Category = "Pico Platform|Room|Room")
719 int32 GetPlayerNumber();
722 UFUNCTION(BlueprintPure, Category = "Pico Platform|Room|Room")
725 UFUNCTION(BlueprintPure, Category = "Pico Platform|Room|Room")
726 FString GetDebugString();
737 TArray<UPico_Room*> RoomArray;
744 void InitParams(ppfRoomArrayHandle InppfRoomArrayHandle);
747 UFUNCTION(BlueprintPure, Category =
"Pico Platform|Room|Room Array")
751 UFUNCTION(BlueprintPure, Category = "Pico Platform|Room|Room Array")
754 UFUNCTION(BlueprintPure, Category = "Pico Platform|Room|Room Array")
755 int32 GetTotalSize();
758 UFUNCTION(BlueprintPure, Category = "Pico Platform|Room|Room Array")
761 UFUNCTION(BlueprintPure, Category = "Pico Platform|Room|Room Array")
762 int32 GetPageIndex();
764 UFUNCTION(BlueprintPure, Category = "Pico Platform|Room|Room Array")
767 UFUNCTION(BlueprintPure, Category = "Pico Platform|Room|Room Array")
768 FString GetDebugString();
PicoRoomInterface class.
Definition: Pico_Room.h:65
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 in the app.
bool Leave(const FString &RoomID, FRoomLeave OnLeaveCallback)
Leaves the current room.
bool JoinOrCreateNamedRoom(ERoomJoinPolicy JoinPolicy, bool CreateIfNotExist, uint32 MaxUsers, FPicoRoomOptions Options, FRoomJoinOrCreateNamedRoom OnRoomJoinOrCreateNamedRoomCallback)
Join or 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:418
UPico_DataStore class.
Definition: Pico_DataStore.h:18
UPico_RoomArray class.
Definition: Pico_Room.h:733
UPico_Room class.
Definition: Pico_Room.h:639
UPico_UserArray class.
Definition: Pico_User.h:608
UPico_User class.
Definition: Pico_User.h:515
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