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_Matchmaking.generated.h"
26DECLARE_LOG_CATEGORY_EXTERN(PicoMatchmaking, Log, All);
47DECLARE_MULTICAST_DELEGATE_FourParams(FMatchmakingMatchFoundNotify,
bool,
int,
const FString&,
UPico_Room* );
48DECLARE_MULTICAST_DELEGATE_ThreeParams(FMatchmakingCancelNotify,
bool,
int,
const FString& );
50DECLARE_DYNAMIC_DELEGATE_ThreeParams(FMatchmakingReportResultsInsecure,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage);
51DECLARE_DYNAMIC_DELEGATE_FourParams(FMatchmakingGetStats,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage,
UPico_MatchmakingStats*, MatchmakingStats);
52DECLARE_DYNAMIC_DELEGATE_FourParams(FMatchmakingBrowse2,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage,
UPico_MatchmakingBrowseResult*, MatchmakingBrowseResult);
53DECLARE_DYNAMIC_DELEGATE_ThreeParams(FMatchmakingCancel,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage);
54DECLARE_DYNAMIC_DELEGATE_FourParams(FMatchmakingCreateAndEnqueueRoom2,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage,
UPico_MatchmakingEnqueueResultAndRoom*, MatchmakingEnqueueResultAndRoom);
55DECLARE_DYNAMIC_DELEGATE_FourParams(FMatchmakingEnqueue2,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage,
UPico_MatchmakingEnqueueResult*, MatchmakingEnqueueResult);
56DECLARE_DYNAMIC_DELEGATE_FourParams(FMatchmakingGetAdminSnapshot,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage,
UPico_MatchmakingAdminSnapshot*, MatchmakingAdminSnapshot);
57DECLARE_DYNAMIC_DELEGATE_ThreeParams(FMatchmakingStartMatch,
bool, bIsError,
int, ErrorCode,
const FString&, ErrorMessage);
75 FOnlineSubsystemPico& PicoSubsystem;
81 FDelegateHandle MatchmakingMatchFoundHandle;
82 void OnMatchmakingMatchFoundNotification(ppfMessageHandle Message,
bool bIsError);
84 FDelegateHandle MatchmakingCancelHandle;
85 void OnMatchmakingCancelNotification(ppfMessageHandle Message,
bool bIsError);
87 FMatchmakingMatchFoundNotify MatchmakingMatchFoundNotify;
88 FMatchmakingCancelNotify MatchmakingCancelNotify;
90 FMatchmakingReportResultsInsecure ReportResultsInsecureDelegate;
91 FMatchmakingGetStats GetStatsDelegate;
92 FMatchmakingBrowse2 Browse2Delegate;
93 FMatchmakingCancel CancelDelegate;
94 FMatchmakingCreateAndEnqueueRoom2 CreateAndEnqueueRoom2Delegate;
95 FMatchmakingEnqueue2 Enqueue2Delegate;
96 FMatchmakingGetAdminSnapshot GetAdminSnapshotDelegate;
97 FMatchmakingStartMatch StartMatchDelegate;
111 bool ReportResultsInsecure(
const FString& RoomID,
const TMap<FString, int>& Data, FMatchmakingReportResultsInsecure InDelegate);
127 bool GetStats(
const FString& Pool, uint32 MaxLevel,
EMatchmakingStatApproach Approach = EMatchmakingStatApproach::Trailing, FMatchmakingGetStats InDelegate = FMatchmakingGetStats());
159 bool Cancel(FMatchmakingCancel InDelegate);
227 bool StartMatch(
const FString& RoomId, FMatchmakingStartMatch InDelegate);
231 ppfID GetppfID(
const FString& StringID);
262 UFUNCTION(BlueprintCallable, meta = (WorldContext =
"WorldContextObject"), Category =
"OnlinePico|Matchmaking")
263 static
void ReportResultsInsecure(UObject* WorldContextObject, const FString& RoomID, const TMap<FString,
int>& Data, FMatchmakingReportResultsInsecure InDelegate);
273 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Matchmaking")
275 static
void GetStats(UObject* WorldContextObject, const FString& Pool, int32 MaxLevel,
EMatchmakingStatApproach approach, FMatchmakingGetStats InDelegate);
285 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Matchmaking")
286 static
void Browse2(UObject* WorldContextObject, const FString& Pool,
FPicoMatchmakingOptions MatchmakingOptions, FMatchmakingBrowse2 InDelegate);
297 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Matchmaking")
298 static
void Cancel(UObject* WorldContextObject, FMatchmakingCancel InDelegate);
307 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Matchmaking")
308 static
void CreateAndEnqueueRoom2(UObject* WorldContextObject, const FString& Pool,
FPicoMatchmakingOptions MatchmakingOptions, FMatchmakingCreateAndEnqueueRoom2 InDelegate);
321 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Matchmaking")
322 static
void Enqueue2(UObject* WorldContextObject, const FString& pool,
FPicoMatchmakingOptions MatchmakingOptions, FMatchmakingEnqueue2 InDelegate);
333 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Matchmaking")
334 static
void GetAdminSnapshot(UObject* WorldContextObject, FMatchmakingGetAdminSnapshot InDelegate);
346 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Matchmaking")
347 static
void StartMatch(UObject* WorldContextObject, const FString& RoomId, FMatchmakingStartMatch InDelegate);
359 unsigned int DrawCount;
360 unsigned int LossCount;
361 unsigned int SkillLevel;
363 double SkillStandardDeviation;
364 unsigned int WinCount;
367 void InitParams(ppfMatchmakingStatsHandle InHandle);
370 UFUNCTION(BlueprintPure, Category =
"Pico Platform|Matchmaking|Matchmaking Stats")
371 int32 GetDrawCount();
374 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Stats")
375 int32 GetLossCount();
378 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Stats")
379 int32 GetSkillLevel();
382 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Stats")
383 float GetSkillMean();
386 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Stats")
387 float GetSkillStandardDeviation();
390 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Stats")
393 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Stats")
394 FString GetDebugString();
409 void InitParams(ppfMatchmakingBrowseResultHandle InHandle);
412 UFUNCTION(BlueprintPure, Category =
"Pico Platform|Matchmaking|Matchmaking Browse Result")
416 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Browse Result")
419 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Browse Result")
420 FString GetDebugString();
430 TArray<UPico_MatchmakingRoom*> MatchmakingRoomArray;
431 FString NextPageParam = FString();
436 void InitParams(ppfMatchmakingRoomArrayHandle InHandle);
439 UFUNCTION(BlueprintPure, Category =
"Pico Platform|Matchmaking|Matchmaking Room Array")
443 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Room Array")
444 FString GetNextPageParam();
447 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Room Array")
450 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Room Array")
451 int32 GetTotalSize();
454 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Room Array")
457 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Room Array")
458 FString GetDebugString();
469 unsigned int PingTime;
473 void InitParams(ppfMatchmakingRoomHandle InHandle);
476 UFUNCTION(BlueprintPure, Category =
"Pico Platform|Matchmaking|Matchmaking Room")
480 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Room")
484 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Room")
485 bool GetHasPingTime();
487 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Room")
488 FString GetDebugString();
504 void InitParams(ppfMatchmakingEnqueueResultAndRoomHandle InHandle);
507 UFUNCTION(BlueprintPure, Category =
"Pico Platform|Matchmaking|Matchmaking Enqueue Result And Room")
511 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Enqueue Result And Room")
514 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Enqueue Result And Room")
515 FString GetDebugString();
527 unsigned int AverageWait;
528 unsigned int MatchesInLastHourCount;
529 unsigned int MaxExpectedWait;
531 unsigned int RecentMatchPercentage;
534 void InitParams(ppfMatchmakingEnqueueResultHandle InHandle);
537 UFUNCTION(BlueprintPure, Category =
"Pico Platform|Matchmaking|Matchmaking Enqueue Result")
541 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Enqueue Result")
542 int32 GetAverageWait();
545 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Enqueue Result")
546 int32 GetMatchesInLastHourCount();
549 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Enqueue Result")
550 int32 GetMaxExpectedWait();
553 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Enqueue Result")
557 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Enqueue Result")
558 int32 GetRecentMatchPercentage();
560 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Enqueue Result")
561 FString GetDebugString();
573 double MyCurrentThreshold;
576 void InitParams(ppfMatchmakingAdminSnapshotHandle InHandle);
579 UFUNCTION(BlueprintPure, Category =
"Pico Platform|Matchmaking|Matchmaking Admin Snapshot")
582 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Admin Snapshot")
583 float GetMyCurrentThreshold();
586 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Admin Snapshot")
587 FString GetDebugString();
597 TArray<UPico_MatchmakingAdminSnapshotCandidate*> MatchmakingAdminSnapshotCandidateArray;
598 FString NextPageParam = FString();
603 void InitParams(ppfMatchmakingAdminSnapshotCandidateArrayHandle InHandle);
606 UFUNCTION(BlueprintPure, Category =
"Pico Platform|Matchmaking|Matchmaking AdminSnapshot Candidate Array")
609 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking AdminSnapshot Candidate Array")
610 FString GetNextPageParam();
613 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking AdminSnapshot Candidate Array")
616 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking AdminSnapshot Candidate Array")
617 int32 GetTotalSize();
620 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking AdminSnapshot Candidate Array")
623 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking AdminSnapshot Candidate Array")
624 FString GetDebugString();
636 double TheirCurrentThreshold;
639 void InitParams(ppfMatchmakingAdminSnapshotCandidateHandle InHandle);
642 UFUNCTION(BlueprintPure, Category =
"Pico Platform|Matchmaking|Matchmaking Admin Snapshot Candidate")
646 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Admin Snapshot Candidate")
647 float GetMyTotalScore();
650 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Admin Snapshot Candidate")
651 float GetTheirCurrentThreshold();
653 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Admin Snapshot Candidate")
654 FString GetDebugString();
PicoMatchmakingInterface class.
Definition: Pico_Matchmaking.h:73
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 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:251
UPico_DataStore class.
Definition: Pico_DataStore.h:30
UPico_MatchmakingAdminSnapshotCandidate class.
Definition: Pico_Matchmaking.h:630
UPico_MatchmakingAdminSnapshotCandidateList class.
Definition: Pico_Matchmaking.h:593
UPico_MatchmakingAdminSnapshot class.
Definition: Pico_Matchmaking.h:567
UPico_MatchmakingBrowseResult class.
Definition: Pico_Matchmaking.h:400
UPico_MatchmakingEnqueueResultAndRoom class.
Definition: Pico_Matchmaking.h:494
UPico_MatchmakingEnqueueResult class.
Definition: Pico_Matchmaking.h:521
UPico_MatchmakingRoom class.
Definition: Pico_Matchmaking.h:464
UPico_MatchmakingRoomList class.
Definition: Pico_Matchmaking.h:426
UPico_MatchmakingStats class.
Definition: Pico_Matchmaking.h:356
UPico_Room class.
Definition: Pico_Room.h:584
UPico_UserArray class.
Definition: Pico_User.h:510
UPico_User class.
Definition: Pico_User.h:422
EMatchmakingStatApproach
Matchmaking stat approach.
Definition: OnlineSubsystemPicoNames.h:793
Matchmaking options.
Definition: OnlineSubsystemPicoNames.h:777