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 ::Bedrock::PubSub::Subscription
195 registerDisplayNameChangedSubscriber(::std::function<
void(::std::string
const&)>) = 0;
198 virtual ::std::shared_ptr<::Core::FileStorageArea>
const getStorageArea()
const = 0;
201 virtual ::Core::Path getSettingsDirectoryPath()
const = 0;
204 virtual bool hasValidSettingsDirectoryPath()
const = 0;
207 virtual ::std::shared_ptr<::IOptions>
const getOptions()
const = 0;
210 virtual ::Social::XboxLiveUser& getLiveUser()
const = 0;
213 virtual void setLiveUser(::std::unique_ptr<::Social::XboxLiveUser>) = 0;
220 virtual ::RelationshipStatus mayChatWith(::std::string
const&) = 0;
223 virtual bool mayChatWithMe(::std::string
const&)
const = 0;
226 virtual bool isMutedPlayer(::std::string
const&) = 0;
229 virtual ::Social::PermissionCheckResult multiplayerAllowed()
const = 0;
232 virtual ::Social::PermissionCheckResult chatAllowed()
const = 0;
235 virtual ::Social::PermissionCheckResult addFriendAllowed()
const = 0;
238 virtual ::Social::PermissionCheckResult userGeneratedContentAllowed()
const = 0;
241 virtual ::Social::PermissionCheckResult createAndJoinClubsAllowed()
const = 0;
244 virtual ::Social::PermissionCheckResult viewingProfilesAllowed()
const = 0;
247 virtual ::Social::PermissionCheckResult uploadCapturesAllowed()
const = 0;
250 virtual bool isRemotePlatformUser()
const = 0;
253 virtual bool shouldClearChatOnJoinGame()
const = 0;
256 virtual int getGameControllerId()
const = 0;
259 virtual void setGameControllerId(
int) = 0;
262 virtual ::std::string getPlatformID()
const = 0;
265 virtual bool hasPremiumPlatformAccess()
const = 0;
268 virtual void checkPremiumPlatformStatusAsync(::std::function<
void(
bool)>) = 0;
271 virtual bool hasPlatformIcons()
const = 0;
274 virtual bool hasPlatformProfileCards()
const = 0;
278 getLinkedXuids(::std::function<
void(::std::string, ::std::string)>, ::std::vector<::std::string>
const&) = 0;
282 getLinkedPlatformIds(::std::function<
void(::std::string, ::std::string)>, ::std::vector<::std::string>
const&) = 0;
285 virtual ::Social::PlatformImageService& getPlatformFriendsImageService() = 0;
292 virtual void getPlatformProfiles(
293 ::std::vector<::std::string>
const&,
294 ::std::function<
void(::std::vector<::Social::PlatformUserProfileData>&&)>
298 virtual ::Social::ProfileImageOptions getDefaultProfileImageOptions()
const = 0;
301 virtual ::std::shared_ptr<::Bedrock::Threading::IAsyncResult<::std::shared_ptr<::mce::Image>>>
305 virtual ::std::shared_ptr<::Bedrock::Threading::IAsyncResult<::Core::PathBuffer<::std::string>>>
309 virtual bool canSignInToXBL()
const = 0;
312 virtual void setNeedsPlatformReconnect() = 0;
315 virtual ::std::string getPlatformOfflineID()
const = 0;
318 virtual ::std::string getPlatformOnlineID()
const = 0;
321 virtual void associateClientInstance(::std::shared_ptr<::IClientInstance>) = 0;
324 virtual ::std::weak_ptr<::IClientInstance> getAssociateClientInstance() = 0;
327 virtual ::std::weak_ptr<::IClientInstance const>
const getAssociateClientInstance()
const = 0;
330 virtual void setPresence(::std::string
const&) = 0;
333 virtual void clearPresence() = 0;
336 virtual bool hasPlayedLegacyGame()
const = 0;
339 virtual bool getLegacyOptionsData(::std::vector<uchar>&)
const = 0;
342 virtual void onAppSuspend() = 0;
345 virtual void onAppResumed() = 0;
348 virtual bool isBanned()
const = 0;
351 virtual ::std::string getBanReason()
const = 0;
354 virtual ::std::string getBanExpiration()
const = 0;
357 virtual void updateAppearanceDisplayName(::std::string
const&) = 0;
360 virtual void initIdentity() = 0;
366 virtual void _onSignOut(::Social::IdentityType) = 0;
369 virtual void _notifyIdentitiesOfSignIn(
370 ::std::shared_ptr<::Social::Identity>,
371 ::std::function<
bool(::Social::IdentityEventResponse, ::std::shared_ptr<::Social::Identity>)>
375 virtual void _notifyIdentitySignInEventSubscribers(::Social::IdentityType) = 0;
378 virtual void _notifyIdentitySignOutEventSubscribers(::Social::IdentityType) = 0;
381 virtual void setStorageArea(::std::shared_ptr<::Core::FileStorageArea>, ::BuildPlatform) = 0;
387 virtual void _finalizeSignIn(
389 ::std::vector<::Social::IdentityType>&&,
390 ::std::set<::Social::IdentityType>&&