PICO Unreal Platform SDK
Pico_User.h
1// Copyright 2022 Pico Technology Co., Ltd.All rights reserved.
2// This plugin incorporates portions of the Unreal® Engine. Unreal® is a trademark or registered trademark of Epic Games, Inc.In the United States of America and elsewhere.
3// Unreal® Engine, Copyright 1998 – 2022, Epic Games, Inc.All rights reserved.
4#pragma once
5
6#include "CoreMinimal.h"
7#include "UObject/NoExportTypes.h"
8#include "PPF_Platform.h"
9#include "OnlineSubsystemPicoNames.h"
10#include "OnlineSubsystemPico.h"
11#include "Pico_Room.h"
12#include "Pico_User.generated.h"
13
15
16DECLARE_LOG_CATEGORY_EXTERN(PicoUser, Log, All);
17
18class UPico_Room;
19
23DECLARE_DYNAMIC_DELEGATE_ThreeParams(FGetLoggedInUserFriendsAndRooms, bool, bIsError, const FString&, ErrorMessage, UPico_UserAndRoomArray*, UserAndRoomArray);
24DECLARE_DYNAMIC_DELEGATE_ThreeParams(FGetNextUserAndRoomArrayPage, bool, bIsError, const FString&, ErrorMessage, UPico_UserAndRoomArray*, UserAndRoomArray);
25DECLARE_DYNAMIC_DELEGATE_ThreeParams(FGetLoggedInUserFriends, bool, bIsError, const FString&, ErrorMessage, UPico_UserArray*, UserArray);
26DECLARE_DYNAMIC_DELEGATE_ThreeParams(FGetNextUserPage, bool, bIsError, const FString&, ErrorMessage, UPico_UserArray*, UserArray);
27DECLARE_DYNAMIC_DELEGATE_ThreeParams(FGetLoginUser, bool, bIsError, const FString&, ErrorMessage, UPico_User*, User);
28DECLARE_DYNAMIC_DELEGATE_ThreeParams(FGetUserInfo, bool, bIsError, const FString&, ErrorMessage, UPico_User*, User);
29DECLARE_DYNAMIC_DELEGATE_ThreeParams(FGetPermissionResult, bool, bIsError, const FString&, ErrorMessage, UPico_PermissionResult*, PermissionResult);
30
42class ONLINESUBSYSTEMPICO_API FPicoUserInterface
43{
44private:
45
46 FOnlineSubsystemPico& PicoSubsystem;
47
48public:
49 FPicoUserInterface(FOnlineSubsystemPico& InSubsystem);
51
52 FGetLoginUser GetLoginUserDelegate;
53 FGetLoggedInUserFriendsAndRooms GetLoggedInUserFriendsAndRoomsDelegate;
54 FGetNextUserAndRoomArrayPage GetNextUserAndRoomArrayPageDelegate;
55 FGetLoggedInUserFriends GetLoggedInUserFriendsDelegate;
56 FGetNextUserPage GetNextUserFriendsPageDelegate;
57 FGetUserInfo GetUserInfoDelegate;
58 FGetPermissionResult GetAuthorizePermissionsDelegate;;
59 FGetPermissionResult RequestUserPermissionsDelegate;
60
69 bool GetLoginUser(FGetLoginUser InGetLoginUserDelegate);
70
80 bool GetUserInfo(const FString& UserId, FGetUserInfo InGetUserInfoDelegate);
81
90 bool GetLoggedInUserAndRoom(FGetLoggedInUserFriendsAndRooms OnGetLoggedInuserFriendsAndRoomsCallback);
91
102 bool GetNextUserAndRoomArrayPage(UPico_UserAndRoomArray* InUserAndRoomArray, FGetNextUserAndRoomArrayPage OnGetNextUserAndRoomArrayPageCallback);
103
112 bool GetUserFriends(FGetLoggedInUserFriends OnGetLoggedInUserFriendsCallback);
113
123 bool GetNextUserPage(UPico_UserArray* InUserArray, FGetNextUserPage OnGetNextUserPageCallback);
124
135 bool GetAuthorizePermissions(FGetPermissionResult OnGetPermissionResultCallback);
136
152 bool RequestUserPermissions(TArray<FString> Permissions, FGetPermissionResult OnGetPermissionResultCallback);
153};
169UCLASS()
170class ONLINESUBSYSTEMPICO_API UOnlinePicoUserFunction : public UBlueprintFunctionLibrary
171{
172 GENERATED_BODY()
173
174
175public:
176
186 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|User")
187 static void PicoGetLoggedInUserAndRoom(UObject* WorldContextObject, FGetLoggedInUserFriendsAndRooms InGetLoggedInuserFriendsAndRoomsCallback);
188
199 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|User")
200 static void PicoGetNextUserAndRoomArrayPage(UObject* WorldContextObject, UPico_UserAndRoomArray* InUserAndRoomArray, FGetNextUserAndRoomArrayPage InGetNextUserAndRoomArrayPageCallback);
201
202
212 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|User")
213 static void PicoGetUserFriends(UObject* WorldContextObject, FGetLoggedInUserFriends InGetLoggedInUserFriendsDelegate);
214
225 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|User")
226 static void PicoGetNextUserPage(UObject* WorldContextObject, UPico_UserArray* InUserArray, FGetNextUserPage InGetNextUserPageDelegate);
227
237 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|User")
238 static bool GetLoginUser(UObject* WorldContextObject, FGetLoginUser InGetLoginUserDelegate);
239
250 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|User")
251 static bool GetPicoUserInfo(UObject* WorldContextObject, const FString& UserId, FGetUserInfo InGetUserInfoDelegate);
252
264 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|User")
265 static bool GetAuthorizePermissions(UObject* WorldContextObject, FGetPermissionResult OnGetPermissionResultCallback);
266
267
284 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|User")
285 static bool RequestUserPermissions(UObject* WorldContextObject, TArray<FString> Permissions, FGetPermissionResult OnGetPermissionResultCallback);
286
287};
288 // end of BP_User // end of BlueprintFunction
291
292UCLASS(BlueprintType)
293class ONLINESUBSYSTEMPICO_API UPico_User : public UObject
294{
295 GENERATED_BODY()
296public:
297 void InitParams(ppfUser* ppfUserHandle);
298
299private:
300 FString DisplayName = FString();
301 FString ImageUrl = FString();
302 FString ID = FString();
303 FString InviteToken = FString();
304 FString SmallImageUrl = FString();
305 FString PresencePackage = FString();
306 EUserPresenceStatus UserPresenceStatus = EUserPresenceStatus::Unknow;
307 EUserGender UserGender = EUserGender::Unknow;
308 FString Presence = FString();
309 FString PresenceDeeplinkMessage = FString();
310 FString PresenceDestinationApiName = FString();
311 FString PresenceLobbySessionId = FString();
312 FString PresenceMatchSessionId = FString();
313 FString PresenceExtra = FString();
314 FString StoreRegion = FString();
315
316public:
317
318 UFUNCTION(BlueprintPure, Category = "Pico Platform|User|User")
319 FString GetDisplayName();
320
321 UFUNCTION(BlueprintPure, Category = "Pico Platform|User|User")
322 FString GetImageURL();
323
324 UFUNCTION(BlueprintPure, Category = "Pico Platform|User|User")
325 FString GetID();
326
327 UFUNCTION(BlueprintPure, Category = "Pico Platform|User|User")
328 FString GetInviteToken();
329
330 UFUNCTION(BlueprintPure, Category = "Pico Platform|User|User")
331 FString GetSmallImageUrl();
332
333 UFUNCTION(BlueprintPure, Category = "Pico Platform|User|User")
334 FString GetPresencePackage();
335
336 UFUNCTION(BlueprintPure, Category = "Pico Platform|User|User")
337 EUserPresenceStatus GetUserPresenceStatus();
338
339 UFUNCTION(BlueprintPure, Category = "Pico Platform|User|User")
340 EUserGender GetGender();
341
342 UFUNCTION(BlueprintPure, Category = "Pico Platform|User|User")
343 FString GetPresence();
344
345 UFUNCTION(BlueprintPure, Category = "Pico Platform|User|User")
346 FString GetPresenceDeeplinkMessage();
347
348 UFUNCTION(BlueprintPure, Category = "Pico Platform|User|User")
349 FString GetPresenceDestinationApiName();
350
351 UFUNCTION(BlueprintPure, Category = "Pico Platform|User|User")
352 FString GetPresenceLobbySessionId();
353
354 UFUNCTION(BlueprintPure, Category = "Pico Platform|User|User")
355 FString GetPresenceMatchSessionId();
356
357 UFUNCTION(BlueprintPure, Category = "Pico Platform|User|User")
358 FString GetPresenceExtra();
359
360 UFUNCTION(BlueprintPure, Category = "Pico Platform|User|User")
361 FString GetStoreRegion();
362};
363
364UCLASS(BlueprintType)
365class ONLINESUBSYSTEMPICO_API UPico_UserArray : public UObject
366{
367
368 GENERATED_BODY()
369
370public:
371 void InitParams(ppfUserArray* InppfUserArrayHandle);
372
373private:
374 UPROPERTY()
375 TArray<UPico_User*> UserArray;
376 FString NextPageParam;
377 int32 Size;
378 bool bHasNextPage;
379
380public:
381
382
383 UFUNCTION(BlueprintPure, Category = "Pico Platform|User|User Array")
384 UPico_User* GetElement(int32 Index);
385
386 UFUNCTION(BlueprintPure, Category = "Pico Platform|User|User Array")
387 FString GetNextPageParam();
388
389 UFUNCTION(BlueprintPure, Category = "Pico Platform|User|User Array")
390 int32 GetSize();
391
392 UFUNCTION(BlueprintPure, Category = "Pico Platform|User|User Array")
393 bool HasNextPage();
394
395};
396
397UCLASS(BlueprintType)
398class ONLINESUBSYSTEMPICO_API UPico_UserAndRoom : public UObject
399{
400
401 GENERATED_BODY()
402private:
403 UPROPERTY()
404 UPico_Room* Room = nullptr;
405
406 UPROPERTY()
407 UPico_User* User = nullptr;
408public:
409 void InitParams(ppfUserAndRoom* InppfUserAndRoomHandle);
410
411 UFUNCTION(BlueprintPure, Category = "Pico Platform|User|User And Room")
412 UPico_Room* GetRoom();
413
414 UFUNCTION(BlueprintPure, Category = "Pico Platform|User|User And Room")
415 UPico_User* GetUser();
416};
417
418UCLASS(BlueprintType)
419class ONLINESUBSYSTEMPICO_API UPico_UserAndRoomArray : public UObject
420{
421
422 GENERATED_BODY()
423
424private:
425 UPROPERTY()
426 TArray<UPico_UserAndRoom*> UserAndRoomArray;
427 FString NextPageParam = FString();
428 int32 Size = 0;
429 bool bHasNextPage;
430public:
431 void InitParams(ppfUserAndRoomArray* InppfUserAndRoomArrayHandle);
432
433 UFUNCTION(BlueprintPure, Category = "Pico Platform|User|User And Room Array")
434 UPico_UserAndRoom* GetElement(int32 Index);
435
436 UFUNCTION(BlueprintPure, Category = "Pico Platform|User|User And Room Array")
437 FString GetNextPageParam();
438
439 UFUNCTION(BlueprintPure, Category = "Pico Platform|User|User And Room Array")
440 int32 GetSize();
441
442 UFUNCTION(BlueprintPure, Category = "Pico Platform|User|User And Room Array")
443 bool HasNextPage();
444};
445
446UCLASS(BlueprintType)
447class ONLINESUBSYSTEMPICO_API UPico_PermissionResult : public UObject
448{
449 GENERATED_BODY()
450
451private:
452 UPROPERTY()
453 TArray<FString> AuthorizedPermissions;
454 int32 Size = 0;
455 FString AccessionToken = FString();
456 FString UserID = FString();
457public:
458 void InitParams(ppfPermissionResult* InppfPermissionResultHandle);
459
460 UFUNCTION(BlueprintPure, Category = "Pico Platform|User|Permission")
461 FString GetAuthorizedPermission(int32 Index);
462
463 UFUNCTION(BlueprintPure, Category = "Pico Platform|User|Permission")
464 int32 GetSize();
465
466 UFUNCTION(BlueprintPure, Category = "Pico Platform|User|Permission")
467 FString GetAccessToken();
468
469 UFUNCTION(BlueprintPure, Category = "Pico Platform|User|Permission")
470 FString GetUserID();
471};
472
473//
PicoUserInterface class.
Definition: Pico_User.h:43
bool GetUserFriends(FGetLoggedInUserFriends OnGetLoggedInUserFriendsCallback)
Gets the friend list of the current user. Friends who don't use this app won't appear in this list.
bool GetNextUserPage(UPico_UserArray *InUserArray, FGetNextUserPage OnGetNextUserPageCallback)
Gets the next page of user list.
bool GetLoggedInUserAndRoom(FGetLoggedInUserFriendsAndRooms OnGetLoggedInuserFriendsAndRoomsCallback)
Gets the friends of the logged-in user and the rooms the friends might be in. If a friend is not in a...
bool RequestUserPermissions(TArray< FString > Permissions, FGetPermissionResult OnGetPermissionResultCallback)
Requests user permissions. The user will received a pop-up notification window.
bool GetAuthorizePermissions(FGetPermissionResult OnGetPermissionResultCallback)
Gets the authorized permissions.
bool GetUserInfo(const FString &UserId, FGetUserInfo InGetUserInfoDelegate)
Gets the information by user ID.
bool GetNextUserAndRoomArrayPage(UPico_UserAndRoomArray *InUserAndRoomArray, FGetNextUserAndRoomArrayPage OnGetNextUserAndRoomArrayPageCallback)
Gets the friend list of the current user.
bool GetLoginUser(FGetLoginUser InGetLoginUserDelegate)
Gets the information about the current logged-in user.
OnlinePicoUser Blueprint Function class.
Definition: Pico_User.h:171