43class User :
public ::std::enable_shared_from_this<::Social::User> {
48 virtual ~User() =
default;
51 virtual void initStorageAreas() = 0;
54 virtual ::GameUserType getType()
const = 0;
57 virtual bool isPrimaryUser()
const = 0;
60 virtual bool isAnonymous()
const = 0;
63 virtual bool isConnected()
const = 0;
66 virtual bool isReady()
const = 0;
69 virtual bool needsPlatformReconnect()
const = 0;
72 virtual bool isSignedIn(::Social::IdentityType)
const = 0;
75 virtual bool isSignInInProgress(::Social::IdentityType)
const = 0;
78 virtual bool isSignInInProgress()
const = 0;
84 virtual void cancelSignIn(::Social::IdentityType) = 0;
87 virtual void signOut(::Social::IdentityType, ::std::function<
void(
bool)>) = 0;
90 virtual void clearCachedCredentials(::Social::IdentityType) = 0;
93 virtual bool hasNetworkPrivileges()
const = 0;
96 virtual ::Bedrock::PubSub::Subscription registerIdentitySignInSubscriber(
97 ::Social::IdentityType,
98 ::std::function<
void(uint, ::Social::IdentityType)>
102 virtual ::Bedrock::PubSub::Subscription registerIdentitySignOutSubscriber(
103 ::Social::IdentityType,
104 ::std::function<
void(uint, ::Social::IdentityType)>
108 virtual ::CallbackToken connectAsync(::std::function<
void(::Social::UserPlatformConnectionResult)>,
bool) = 0;
111 virtual void enterOfflineMode(::std::function<
void(
bool)>) = 0;
114 virtual ::Social::UserPlatformConnectionState getPlatformConnectionState()
const = 0;
117 virtual uint getLocalUserId()
const = 0;
120 virtual ::std::string
const& getId(::Social::IdentityType)
const = 0;
123 virtual ::std::string
const& getMinecraftAccountID()
const = 0;
127 getAuthToken(::Social::IdentityType, ::std::string
const&, ::std::function<
void(
::Social::AuthToken)>)
const = 0;
130 virtual ::std::shared_ptr<::Bedrock::Threading::IAsyncResult<::Social::AuthToken>>
131 getAuthToken(::Social::IdentityType, ::std::string
const&)
const = 0;
134 virtual ::std::string
const& getPlayFabSessionTicket()
const = 0;
137 virtual ::std::string
const& getPlayFabEntityToken()
const = 0;
140 virtual ::std::shared_ptr<::Social::Identity> getIdentity(::Social::IdentityType) = 0;
143 virtual ::std::shared_ptr<::Social::Identity const>
const getIdentity(::Social::IdentityType)
const = 0;
146 virtual bool hasIdentity(::Social::IdentityType)
const = 0;
149 virtual void setShouldTransferDeviceAccountToXboxLive(
bool const) = 0;
152 virtual bool shouldLinkPlayFabAndLiveAccounts()
const = 0;
155 virtual ::std::shared_ptr<::Bedrock::Threading::IAsyncResult<bool>> unlinkXboxLiveAccount() = 0;
164 virtual ::Social::UserData
const getUserData(::std::string
const&)
const = 0;
170 virtual void tick() = 0;
173 virtual void finalize() = 0;
176 virtual void disconnect() = 0;
179 virtual void signOutFromPlatform() = 0;
182 virtual bool isFinalized()
const = 0;
185 virtual ::CloudSaveSystemWrapper& getCloudSaveSystem() = 0;
188 virtual ::std::string getDisplayName()
const = 0;
191 virtual ::std::string getDisplayName(::Social::IdentityType)
const = 0;
194 virtual ::std::shared_ptr<::Core::FileStorageArea>
const getStorageArea()
const = 0;
197 virtual ::Core::Path getSettingsDirectoryPath()
const = 0;
200 virtual bool hasValidSettingsDirectoryPath()
const = 0;
203 virtual ::std::shared_ptr<::IOptions>
const getOptions()
const = 0;
206 virtual ::Social::XboxLiveUser& getLiveUser()
const = 0;
209 virtual void setLiveUser(::std::unique_ptr<::Social::XboxLiveUser>) = 0;
216 virtual ::RelationshipStatus mayChatWith(::std::string
const&) = 0;
219 virtual bool mayChatWithMe(::std::string
const&)
const = 0;
222 virtual bool isMutedPlayer(::std::string
const&) = 0;
225 virtual ::Social::PermissionCheckResult multiplayerAllowed()
const = 0;
228 virtual ::Social::PermissionCheckResult chatAllowed()
const = 0;
231 virtual ::Social::PermissionCheckResult addFriendAllowed()
const = 0;
234 virtual ::Social::PermissionCheckResult userGeneratedContentAllowed()
const = 0;
237 virtual ::Social::PermissionCheckResult createAndJoinClubsAllowed()
const = 0;
240 virtual ::Social::PermissionCheckResult viewingProfilesAllowed()
const = 0;
243 virtual ::Social::PermissionCheckResult uploadCapturesAllowed()
const = 0;
246 virtual bool isRemotePlatformUser()
const = 0;
249 virtual bool shouldClearChatOnJoinGame()
const = 0;
252 virtual int getGameControllerId()
const = 0;
255 virtual void setGameControllerId(
int) = 0;
258 virtual ::std::string getPlatformID()
const = 0;
261 virtual bool hasPremiumPlatformAccess()
const = 0;
264 virtual void checkPremiumPlatformStatusAsync(::std::function<
void(
bool)>) = 0;
267 virtual bool hasPlatformIcons()
const = 0;
270 virtual bool hasPlatformProfileCards()
const = 0;
274 getLinkedXuids(::std::function<
void(::std::string, ::std::string)>, ::std::vector<::std::string>
const&) = 0;
278 getLinkedPlatformIds(::std::function<
void(::std::string, ::std::string)>, ::std::vector<::std::string>
const&) = 0;
281 virtual ::Social::PlatformImageService& getPlatformFriendsImageService() = 0;
288 virtual void getPlatformProfiles(
289 ::std::vector<::std::string>
const&,
290 ::std::function<
void(::std::vector<::Social::PlatformUserProfileData>&&)>
294 virtual ::Social::ProfileImageOptions getDefaultProfileImageOptions()
const = 0;
297 virtual ::std::shared_ptr<::Bedrock::Threading::IAsyncResult<::std::shared_ptr<::mce::Image>>>
301 virtual ::std::shared_ptr<::Bedrock::Threading::IAsyncResult<::Core::PathBuffer<::std::string>>>
305 virtual bool canSignInToXBL()
const = 0;
308 virtual void setNeedsPlatformReconnect() = 0;
311 virtual ::std::string getPlatformOfflineID()
const = 0;
314 virtual ::std::string getPlatformOnlineID()
const = 0;
317 virtual void associateClientInstance(::std::shared_ptr<::IClientInstance>) = 0;
320 virtual ::std::weak_ptr<::IClientInstance> getAssociateClientInstance() = 0;
323 virtual ::std::weak_ptr<::IClientInstance const>
const getAssociateClientInstance()
const = 0;
326 virtual void setPresence(::std::string
const&) = 0;
329 virtual void clearPresence() = 0;
332 virtual bool hasPlayedLegacyGame()
const = 0;
335 virtual bool getLegacyOptionsData(::std::vector<uchar>&)
const = 0;
338 virtual void onAppSuspend() = 0;
341 virtual void onAppResumed() = 0;
344 virtual bool isBanned()
const = 0;
347 virtual ::std::string
const& getBanReason()
const = 0;
350 virtual ::std::string
const& getBanExpiration()
const = 0;
353 virtual void initIdentity() = 0;
359 virtual void _onSignOut(::Social::IdentityType) = 0;
362 virtual void _notifyIdentitiesOfSignIn(
363 ::std::shared_ptr<::Social::Identity>,
364 ::std::function<
bool(::Social::IdentityEventResponse, ::std::shared_ptr<::Social::Identity>)>
368 virtual void _notifyIdentitySignInEventSubscribers(::Social::IdentityType) = 0;
371 virtual void _notifyIdentitySignOutEventSubscribers(::Social::IdentityType) = 0;
374 virtual void setStorageArea(::std::shared_ptr<::Core::FileStorageArea>, ::BuildPlatform) = 0;
380 virtual void _finalizeSignIn(
382 ::std::vector<::Social::IdentityType>&&,
383 ::std::set<::Social::IdentityType>&&