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_Matchmaking.generated.h"
14DECLARE_LOG_CATEGORY_EXTERN(PicoMatchmaking, Log, All);
35DECLARE_MULTICAST_DELEGATE_FourParams(FMatchmakingMatchFoundNotify,
bool,
int,
const FString&,
UPico_Room* );
36DECLARE_MULTICAST_DELEGATE_ThreeParams(FMatchmakingCancelNotify,
bool,
int,
const FString& );
38DECLARE_DYNAMIC_DELEGATE_ThreeParams(FMatchmakingReportResultsInsecure,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage);
39DECLARE_DYNAMIC_DELEGATE_FourParams(FMatchmakingGetStats,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage,
UPico_MatchmakingStats*, MatchmakingStats);
40DECLARE_DYNAMIC_DELEGATE_FourParams(FMatchmakingBrowse2,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage,
UPico_MatchmakingBrowseResult*, MatchmakingBrowseResult);
41DECLARE_DYNAMIC_DELEGATE_FourParams(FMatchmakingBrowse2CustomPage,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage,
UPico_MatchmakingBrowseResult*, MatchmakingBrowseResult);
42DECLARE_DYNAMIC_DELEGATE_ThreeParams(FMatchmakingCancel,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage);
43DECLARE_DYNAMIC_DELEGATE_FourParams(FMatchmakingCreateAndEnqueueRoom2,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage,
UPico_MatchmakingEnqueueResultAndRoom*, MatchmakingEnqueueResultAndRoom);
44DECLARE_DYNAMIC_DELEGATE_FourParams(FMatchmakingEnqueue2,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage,
UPico_MatchmakingEnqueueResult*, MatchmakingEnqueueResult);
45DECLARE_DYNAMIC_DELEGATE_FourParams(FMatchmakingGetAdminSnapshot,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage,
UPico_MatchmakingAdminSnapshot*, MatchmakingAdminSnapshot);
46DECLARE_DYNAMIC_DELEGATE_ThreeParams(FMatchmakingStartMatch,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage);
64 FOnlineSubsystemPico& PicoSubsystem;
70 FDelegateHandle MatchmakingMatchFoundHandle;
71 void OnMatchmakingMatchFoundNotification(ppfMessageHandle Message,
bool bIsError);
73 FDelegateHandle MatchmakingCancelHandle;
74 void OnMatchmakingCancelNotification(ppfMessageHandle Message,
bool bIsError);
76 FMatchmakingMatchFoundNotify MatchmakingMatchFoundNotify;
77 FMatchmakingCancelNotify MatchmakingCancelNotify;
79 FMatchmakingReportResultsInsecure ReportResultsInsecureDelegate;
80 FMatchmakingGetStats GetStatsDelegate;
81 FMatchmakingBrowse2 Browse2Delegate;
82 FMatchmakingBrowse2CustomPage Browse2CustomPageDelegate;
83 FMatchmakingCancel CancelDelegate;
84 FMatchmakingCreateAndEnqueueRoom2 CreateAndEnqueueRoom2Delegate;
85 FMatchmakingEnqueue2 Enqueue2Delegate;
86 FMatchmakingGetAdminSnapshot GetAdminSnapshotDelegate;
87 FMatchmakingStartMatch StartMatchDelegate;
101 bool ReportResultsInsecure(
const FString& RoomID,
const TMap<FString, int>& Data, FMatchmakingReportResultsInsecure InDelegate);
117 bool GetStats(
const FString& Pool, uint32 MaxLevel,
EMatchmakingStatApproach Approach = EMatchmakingStatApproach::Trailing, FMatchmakingGetStats InDelegate = FMatchmakingGetStats());
165 bool Cancel(FMatchmakingCancel InDelegate);
233 bool StartMatch(
const FString& RoomId, FMatchmakingStartMatch InDelegate);
237 ppfID GetppfID(
const FString& StringID);
269 UFUNCTION(BlueprintCallable, meta = (WorldContext =
"WorldContextObject"), Category =
"OnlinePico|Matchmaking")
270 static
void ReportResultsInsecure(UObject* WorldContextObject, const FString& RoomID, const TMap<FString,
int>& Data, FMatchmakingReportResultsInsecure InDelegate);
281 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Matchmaking")
283 static
void GetStats(UObject* WorldContextObject, const FString& Pool, int32 MaxLevel,
EMatchmakingStatApproach approach, FMatchmakingGetStats InDelegate);
294 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Matchmaking")
295 static
void Browse2(UObject* WorldContextObject, const FString& Pool,
FPicoMatchmakingOptions MatchmakingOptions, FMatchmakingBrowse2 InDelegate);
306 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Matchmaking")
307 static
void Browse2CustomPage(UObject* WorldContextObject, const FString& Pool,
FPicoMatchmakingOptions MatchmakingOptions,
int PageIndex,
int PageSize, FMatchmakingBrowse2CustomPage InDelegate);
319 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Matchmaking")
320 static
void Cancel(UObject* WorldContextObject, FMatchmakingCancel InDelegate);
330 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Matchmaking")
331 static
void CreateAndEnqueueRoom2(UObject* WorldContextObject, const FString& Pool,
FPicoMatchmakingOptions MatchmakingOptions, FMatchmakingCreateAndEnqueueRoom2 InDelegate);
345 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Matchmaking")
346 static
void Enqueue2(UObject* WorldContextObject, const FString& Pool,
FPicoMatchmakingOptions MatchmakingOptions, FMatchmakingEnqueue2 InDelegate);
358 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Matchmaking")
359 static
void GetAdminSnapshot(UObject* WorldContextObject, FMatchmakingGetAdminSnapshot InDelegate);
372 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Matchmaking")
373 static
void StartMatch(UObject* WorldContextObject, const FString& RoomId, FMatchmakingStartMatch InDelegate);
385 unsigned int DrawCount;
386 unsigned int LossCount;
387 unsigned int SkillLevel;
389 double SkillStandardDeviation;
390 unsigned int WinCount;
393 void InitParams(ppfMatchmakingStatsHandle InHandle);
396 UFUNCTION(BlueprintPure, Category =
"Pico Platform|Matchmaking|Matchmaking Stats")
397 int32 GetDrawCount();
400 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Stats")
401 int32 GetLossCount();
404 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Stats")
405 int32 GetSkillLevel();
408 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Stats")
409 float GetSkillMean();
412 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Stats")
413 float GetSkillStandardDeviation();
416 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Stats")
419 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Stats")
420 FString GetDebugString();
435 void InitParams(ppfMatchmakingBrowseResultHandle InHandle);
438 UFUNCTION(BlueprintPure, Category =
"Pico Platform|Matchmaking|Matchmaking Browse Result")
442 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Browse Result")
445 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Browse Result")
446 FString GetDebugString();
456 TArray<UPico_MatchmakingRoom*> MatchmakingRoomArray;
460 void InitParams(ppfMatchmakingRoomArrayHandle InHandle);
463 UFUNCTION(BlueprintPure, Category =
"Pico Platform|Matchmaking|Matchmaking Room Array")
468 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Room Array")
471 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Room Array")
472 int32 GetTotalSize();
474 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Room Array")
475 FString GetDebugString();
486 unsigned int PingTime;
490 void InitParams(ppfMatchmakingRoomHandle InHandle);
493 UFUNCTION(BlueprintPure, Category =
"Pico Platform|Matchmaking|Matchmaking Room")
497 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Room")
501 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Room")
502 bool GetHasPingTime();
504 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Room")
505 FString GetDebugString();
521 void InitParams(ppfMatchmakingEnqueueResultAndRoomHandle InHandle);
524 UFUNCTION(BlueprintPure, Category =
"Pico Platform|Matchmaking|Matchmaking Enqueue Result And Room")
528 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Enqueue Result And Room")
531 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Enqueue Result And Room")
532 FString GetDebugString();
544 unsigned int AverageWait;
545 unsigned int MatchesInLastHourCount;
546 unsigned int MaxExpectedWait;
548 unsigned int RecentMatchPercentage;
551 void InitParams(ppfMatchmakingEnqueueResultHandle InHandle);
554 UFUNCTION(BlueprintPure, Category =
"Pico Platform|Matchmaking|Matchmaking Enqueue Result")
558 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Enqueue Result")
559 int32 GetAverageWait();
562 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Enqueue Result")
563 int32 GetMatchesInLastHourCount();
566 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Enqueue Result")
567 int32 GetMaxExpectedWait();
570 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Enqueue Result")
574 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Enqueue Result")
575 int32 GetRecentMatchPercentage();
577 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Enqueue Result")
578 FString GetDebugString();
590 double MyCurrentThreshold;
593 void InitParams(ppfMatchmakingAdminSnapshotHandle InHandle);
596 UFUNCTION(BlueprintPure, Category =
"Pico Platform|Matchmaking|Matchmaking Admin Snapshot")
599 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Admin Snapshot")
600 float GetMyCurrentThreshold();
603 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Admin Snapshot")
604 FString GetDebugString();
614 TArray<UPico_MatchmakingAdminSnapshotCandidate*> MatchmakingAdminSnapshotCandidateArray;
618 void InitParams(ppfMatchmakingAdminSnapshotCandidateArrayHandle InHandle);
621 UFUNCTION(BlueprintPure, Category =
"Pico Platform|Matchmaking|Matchmaking AdminSnapshot Candidate Array")
624 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking AdminSnapshot Candidate Array")
625 int32 GetTotalSize();
628 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking AdminSnapshot Candidate Array")
631 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking AdminSnapshot Candidate Array")
632 FString GetDebugString();
644 double TheirCurrentThreshold;
647 void InitParams(ppfMatchmakingAdminSnapshotCandidateHandle InHandle);
650 UFUNCTION(BlueprintPure, Category =
"Pico Platform|Matchmaking|Matchmaking Admin Snapshot Candidate")
654 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Admin Snapshot Candidate")
655 float GetMyTotalScore();
658 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Admin Snapshot Candidate")
659 float GetTheirCurrentThreshold();
661 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Admin Snapshot Candidate")
662 FString GetDebugString();
PicoMatchmakingInterface class.
Definition: Pico_Matchmaking.h:62
bool Cancel(FMatchmakingCancel InDelegate)
Cancels a matchmaking request. Call this function to cancel an enqueue request before a match is made...
bool GetAdminSnapshot(FMatchmakingGetAdminSnapshot InDelegate)
Debugs the state of the current matchmaking pool queue.
bool Browse2(const FString &Pool, FPicoMatchmakingOptions MatchmakingOptions, FMatchmakingBrowse2 InDelegate)
Gets rooms by matchmakinging pool name. The user can join the room with RoomService....
bool Browse2CustomPage(const FString &Pool, FPicoMatchmakingOptions MatchmakingOptions, int PageIndex, int PageSize, FMatchmakingBrowse2CustomPage InDelegate)
Gets rooms by matchmakinging pool name and specify the page number and the number of pages per page.
bool CreateAndEnqueueRoom2(const FString &Pool, FPicoMatchmakingOptions MatchmakingOptions, FMatchmakingCreateAndEnqueueRoom2 InDelegate)
Creates a matchmaking room, then enqueues and joins it.
bool ReportResultsInsecure(const FString &RoomID, const TMap< FString, int > &Data, FMatchmakingReportResultsInsecure InDelegate)
Reports the result of a skill-rating match.
bool StartMatch(const FString &RoomId, FMatchmakingStartMatch InDelegate)
Reports that a skill-rating match has started. You can use this method after joining the room.
bool Enqueue2(const FString &pool, FPicoMatchmakingOptions MatchmakingOptions, FMatchmakingEnqueue2 InDelegate)
Enqueues for an available matchmaking room to join. When the server finds a match,...
bool GetStats(const FString &Pool, uint32 MaxLevel, EMatchmakingStatApproach Approach=EMatchmakingStatApproach::Trailing, FMatchmakingGetStats InDelegate=FMatchmakingGetStats())
Gets the matchmaking statistics for the current user.
OnlinePicoMatchmaking Blueprint Function class.
Definition: Pico_Matchmaking.h:257
UPico_DataStore class.
Definition: Pico_DataStore.h:18
UPico_MatchmakingAdminSnapshotCandidate class.
Definition: Pico_Matchmaking.h:638
UPico_MatchmakingAdminSnapshotCandidateList class.
Definition: Pico_Matchmaking.h:610
UPico_MatchmakingAdminSnapshot class.
Definition: Pico_Matchmaking.h:584
UPico_MatchmakingBrowseResult class.
Definition: Pico_Matchmaking.h:426
UPico_MatchmakingEnqueueResultAndRoom class.
Definition: Pico_Matchmaking.h:511
UPico_MatchmakingEnqueueResult class.
Definition: Pico_Matchmaking.h:538
UPico_MatchmakingRoom class.
Definition: Pico_Matchmaking.h:481
UPico_MatchmakingRoomList class.
Definition: Pico_Matchmaking.h:452
UPico_MatchmakingStats class.
Definition: Pico_Matchmaking.h:382
UPico_Room class.
Definition: Pico_Room.h:638
UPico_UserArray class.
Definition: Pico_User.h:539
UPico_User class.
Definition: Pico_User.h:451
EMatchmakingStatApproach
Matchmaking stat approach.
Definition: OnlineSubsystemPicoNames.h:806
Matchmaking options.
Definition: OnlineSubsystemPicoNames.h:790