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);
33class UPico_MatchmakingStats;
34class UPico_MatchmakingRoomList;
35class UPico_MatchmakingRoom;
36class UPico_MatchmakingBrowseResult;
37class UPico_MatchmakingEnqueueResultAndRoom;
38class UPico_MatchmakingEnqueueResult;
39class UPico_MatchmakingAdminSnapshot;
40class UPico_MatchmakingAdminSnapshotCandidateList;
41class UPico_MatchmakingAdminSnapshotCandidate;
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;
109 bool ReportResultsInsecure(
const FString& RoomID,
const TMap<FString, int>& Data, FMatchmakingReportResultsInsecure InDelegate);
123 bool GetStats(
const FString& Pool, uint32 MaxLevel,
EMatchmakingStatApproach Approach = EMatchmakingStatApproach::Trailing, FMatchmakingGetStats InDelegate = FMatchmakingGetStats());
152 bool Cancel(FMatchmakingCancel InDelegate);
213 bool StartMatch(
const FString& RoomId, FMatchmakingStartMatch InDelegate);
217 ppfID GetppfID(
const FString& StringID);
247 UFUNCTION(BlueprintCallable, meta = (WorldContext =
"WorldContextObject"), Category =
"OnlinePico|Matchmaking")
248 static
void ReportResultsInsecure(UObject* WorldContextObject, const FString& RoomID, const TMap<FString,
int>& Data, FMatchmakingReportResultsInsecure InDelegate);
257 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Matchmaking")
259 static
void GetStats(UObject* WorldContextObject, const FString& Pool, int32 MaxLevel,
EMatchmakingStatApproach approach, FMatchmakingGetStats InDelegate);
268 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Matchmaking")
269 static
void Browse2(UObject* WorldContextObject, const FString& Pool,
FPicoMatchmakingOptions MatchmakingOptions, FMatchmakingBrowse2 InDelegate);
279 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Matchmaking")
280 static
void Cancel(UObject* WorldContextObject, FMatchmakingCancel InDelegate);
288 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Matchmaking")
289 static
void CreateAndEnqueueRoom2(UObject* WorldContextObject, const FString& Pool,
FPicoMatchmakingOptions MatchmakingOptions, FMatchmakingCreateAndEnqueueRoom2 InDelegate);
301 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Matchmaking")
302 static
void Enqueue2(UObject* WorldContextObject, const FString& pool,
FPicoMatchmakingOptions MatchmakingOptions, FMatchmakingEnqueue2 InDelegate);
312 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Matchmaking")
313 static
void GetAdminSnapshot(UObject* WorldContextObject, FMatchmakingGetAdminSnapshot InDelegate);
324 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Matchmaking")
325 static
void StartMatch(UObject* WorldContextObject, const FString& RoomId, FMatchmakingStartMatch InDelegate);
332class ONLINESUBSYSTEMPICO_API UPico_MatchmakingStats : public UObject
336 unsigned int DrawCount;
337 unsigned int LossCount;
338 unsigned int SkillLevel;
340 double SkillStandardDeviation;
341 unsigned int WinCount;
344 void InitParams(ppfMatchmakingStatsHandle InHandle);
346 UFUNCTION(BlueprintPure, Category =
"Pico Platform|Matchmaking|Matchmaking Stats")
347 int32 GetDrawCount();
349 UFUNCTION(BlueprintPure, Category =
"Pico Platform|Matchmaking|Matchmaking Stats")
350 int32 GetLossCount();
352 UFUNCTION(BlueprintPure, Category =
"Pico Platform|Matchmaking|Matchmaking Stats")
353 int32 GetSkillLevel();
355 UFUNCTION(BlueprintPure, Category =
"Pico Platform|Matchmaking|Matchmaking Stats")
356 float GetSkillMean();
358 UFUNCTION(BlueprintPure, Category =
"Pico Platform|Matchmaking|Matchmaking Stats")
359 float GetSkillStandardDeviation();
361 UFUNCTION(BlueprintPure, Category =
"Pico Platform|Matchmaking|Matchmaking Stats")
364 UFUNCTION(BlueprintPure, Category =
"Pico Platform|Matchmaking|Matchmaking Stats")
365 FString GetDebugString();
370class ONLINESUBSYSTEMPICO_API UPico_MatchmakingBrowseResult :
public UObject
375 UPico_MatchmakingEnqueueResult* EnqueueResult;
377 UPico_MatchmakingRoomList* MatchmakingRooms;
379 void InitParams(ppfMatchmakingBrowseResultHandle InHandle);
381 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Browse Result")
382 UPico_MatchmakingEnqueueResult* GetMatchmakingEnqueueResult();
384 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Browse Result")
385 UPico_MatchmakingRoomList* GetMatchmakingRooms();
387 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Browse Result")
388 FString GetDebugString();
393class ONLINESUBSYSTEMPICO_API UPico_MatchmakingRoomList : public UObject
398 TArray<UPico_MatchmakingRoom*> MatchmakingRoomArray;
399 FString NextPageParam = FString();
404 void InitParams(ppfMatchmakingRoomArrayHandle InHandle);
406 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Room Array")
407 UPico_MatchmakingRoom* GetElement(int32 Index);
409 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Room Array")
410 FString GetNextPageParam();
412 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Room Array")
415 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Room Array")
416 int32 GetTotalSize();
418 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Room Array")
421 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Room Array")
422 FString GetDebugString();
427class ONLINESUBSYSTEMPICO_API UPico_MatchmakingRoom : public UObject
433 unsigned int PingTime;
437 void InitParams(ppfMatchmakingRoomHandle InHandle);
439 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Room")
440 UPico_Room* GetRoom();
442 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Room")
445 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Room")
446 bool GetHasPingTime();
448 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Room")
449 FString GetDebugString();
454class ONLINESUBSYSTEMPICO_API UPico_MatchmakingEnqueueResultAndRoom : public UObject
460 UPico_MatchmakingEnqueueResult* MatchmakingEnqueueResult;
465 void InitParams(ppfMatchmakingEnqueueResultAndRoomHandle InHandle);
467 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Enqueue Result And Room")
468 UPico_MatchmakingEnqueueResult* GetMatchmakingEnqueueResult();
470 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Enqueue Result And Room")
471 UPico_Room* GetRoom();
473 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Enqueue Result And Room")
474 FString GetDebugString();
479class ONLINESUBSYSTEMPICO_API UPico_MatchmakingEnqueueResult : public UObject
485 UPico_MatchmakingAdminSnapshot* AdminSnapshotOptional;
486 unsigned int AverageWait;
487 unsigned int MatchesInLastHourCount;
488 unsigned int MaxExpectedWait;
490 unsigned int RecentMatchPercentage;
493 void InitParams(ppfMatchmakingEnqueueResultHandle InHandle);
495 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Enqueue Result")
496 UPico_MatchmakingAdminSnapshot* GetAdminSnapshotOptional();
498 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Enqueue Result")
499 int32 GetAverageWait();
501 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Enqueue Result")
502 int32 GetMatchesInLastHourCount();
504 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Enqueue Result")
505 int32 GetMaxExpectedWait();
507 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Enqueue Result")
510 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Enqueue Result")
511 int32 GetRecentMatchPercentage();
513 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Enqueue Result")
514 FString GetDebugString();
519class ONLINESUBSYSTEMPICO_API UPico_MatchmakingAdminSnapshot : public UObject
525 UPico_MatchmakingAdminSnapshotCandidateList* CandidateList;
526 double MyCurrentThreshold;
529 void InitParams(ppfMatchmakingAdminSnapshotHandle InHandle);
531 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Admin Snapshot")
532 UPico_MatchmakingAdminSnapshotCandidateList* GetCandidateList();
534 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Admin Snapshot")
535 float GetMyCurrentThreshold();
537 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Admin Snapshot")
538 FString GetDebugString();
543class ONLINESUBSYSTEMPICO_API UPico_MatchmakingAdminSnapshotCandidateList : public UObject
548 TArray<UPico_MatchmakingAdminSnapshotCandidate*> MatchmakingAdminSnapshotCandidateArray;
549 FString NextPageParam = FString();
554 void InitParams(ppfMatchmakingAdminSnapshotCandidateArrayHandle InHandle);
556 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking AdminSnapshot Candidate Array")
557 UPico_MatchmakingAdminSnapshotCandidate* GetElement(int32 Index);
559 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking AdminSnapshot Candidate Array")
560 FString GetNextPageParam();
562 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking AdminSnapshot Candidate Array")
565 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking AdminSnapshot Candidate Array")
566 int32 GetTotalSize();
568 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking AdminSnapshot Candidate Array")
571 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking AdminSnapshot Candidate Array")
572 FString GetDebugString();
577class ONLINESUBSYSTEMPICO_API UPico_MatchmakingAdminSnapshotCandidate : public UObject
584 double TheirCurrentThreshold;
587 void InitParams(ppfMatchmakingAdminSnapshotCandidateHandle InHandle);
589 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Admin Snapshot Candidate")
592 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Admin Snapshot Candidate")
593 float GetMyTotalScore();
595 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Admin Snapshot Candidate")
596 float GetTheirCurrentThreshold();
598 UFUNCTION(BlueprintPure, Category = "Pico Platform|Matchmaking|Matchmaking Admin Snapshot Candidate")
599 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:237
EMatchmakingStatApproach
Matchmaking stat approach.
Definition: OnlineSubsystemPicoNames.h:793
Matchmaking options.
Definition: OnlineSubsystemPicoNames.h:777