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
97 registerIdentitySignInSubscriber(::Social::IdentityType, ::std::function<
void(uint, ::Social::IdentityType)>) = 0;
100 virtual ::Bedrock::PubSub::Subscription
101 registerIdentitySignOutSubscriber(::Social::IdentityType, ::std::function<
void(uint, ::Social::IdentityType)>) = 0;
104 virtual ::CallbackToken connectAsync(::std::function<
void(::Social::UserPlatformConnectionResult)>,
bool) = 0;
107 virtual void enterOfflineMode(::std::function<
void(
bool)>) = 0;
110 virtual ::Social::UserPlatformConnectionState getPlatformConnectionState()
const = 0;
113 virtual uint getLocalUserId()
const = 0;
116 virtual ::std::string
const& getId(::Social::IdentityType)
const = 0;
119 virtual ::std::string
const& getMinecraftAccountID()
const = 0;
123 getAuthToken(::Social::IdentityType, ::std::string
const&, ::std::function<
void(
::Social::AuthToken)>)
const = 0;
126 virtual ::std::shared_ptr<::Bedrock::Threading::IAsyncResult<::Social::AuthToken>>
127 getAuthToken(::Social::IdentityType, ::std::string
const&)
const = 0;
130 virtual ::std::string
const& getPlayFabSessionTicket()
const = 0;
133 virtual bool doesPlayFabHaveErrorStatus()
const = 0;
136 virtual ::std::string getPlayFabErrorStatusCodeString()
const = 0;
139 virtual ::std::string
const& getPlayFabEntityToken()
const = 0;
142 virtual ::std::shared_ptr<::Social::Identity> getIdentity(::Social::IdentityType) = 0;
145 virtual ::std::shared_ptr<::Social::Identity const>
const getIdentity(::Social::IdentityType)
const = 0;
148 virtual bool hasIdentity(::Social::IdentityType)
const = 0;
151 virtual void setShouldTransferDeviceAccountToXboxLive(
bool const) = 0;
154 virtual bool shouldLinkPlayFabAndLiveAccounts()
const = 0;
157 virtual ::std::shared_ptr<::Bedrock::Threading::IAsyncResult<bool>> unlinkXboxLiveAccount() = 0;
166 virtual ::Social::UserData
const getUserData(::std::string
const&)
const = 0;
172 virtual void tick() = 0;
175 virtual void finalize() = 0;
178 virtual void disconnect() = 0;
181 virtual void signOutFromPlatform() = 0;
184 virtual bool isFinalized()
const = 0;
187 virtual ::CloudSaveSystemWrapper& getCloudSaveSystem() = 0;
190 virtual ::std::string getDisplayName()
const = 0;
193 virtual ::std::string getDisplayName(::Social::IdentityType)
const = 0;
196 virtual ::std::shared_ptr<::Core::FileStorageArea>
const getStorageArea()
const = 0;
199 virtual ::Core::Path getSettingsDirectoryPath()
const = 0;
202 virtual bool hasValidSettingsDirectoryPath()
const = 0;
205 virtual ::std::shared_ptr<::IOptions>
const getOptions()
const = 0;
208 virtual ::Social::XboxLiveUser& getLiveUser()
const = 0;
211 virtual void setLiveUser(::std::unique_ptr<::Social::XboxLiveUser>) = 0;
218 virtual ::RelationshipStatus mayChatWith(::std::string
const&) = 0;
221 virtual bool mayChatWithMe(::std::string
const&)
const = 0;
224 virtual bool isMutedPlayer(::std::string
const&) = 0;
227 virtual ::Social::PermissionCheckResult multiplayerAllowed()
const = 0;
230 virtual ::Social::PermissionCheckResult chatAllowed()
const = 0;
233 virtual ::Social::PermissionCheckResult addFriendAllowed()
const = 0;
236 virtual ::Social::PermissionCheckResult userGeneratedContentAllowed()
const = 0;
239 virtual ::Social::PermissionCheckResult createAndJoinClubsAllowed()
const = 0;
242 virtual ::Social::PermissionCheckResult viewingProfilesAllowed()
const = 0;
245 virtual ::Social::PermissionCheckResult uploadCapturesAllowed()
const = 0;
248 virtual bool isRemotePlatformUser()
const = 0;
251 virtual bool shouldClearChatOnJoinGame()
const = 0;
254 virtual int getGameControllerId()
const = 0;
257 virtual void setGameControllerId(
int) = 0;
260 virtual ::std::string getPlatformID()
const = 0;
263 virtual bool hasPremiumPlatformAccess()
const = 0;
266 virtual void checkPremiumPlatformStatusAsync(::std::function<
void(
bool)>) = 0;
269 virtual bool hasPlatformIcons()
const = 0;
272 virtual bool hasPlatformProfileCards()
const = 0;
276 getLinkedXuids(::std::function<
void(::std::string, ::std::string)>, ::std::vector<::std::string>
const&) = 0;
280 getLinkedPlatformIds(::std::function<
void(::std::string, ::std::string)>, ::std::vector<::std::string>
const&) = 0;
283 virtual ::Social::PlatformImageService& getPlatformFriendsImageService() = 0;
291 getPlatformProfiles(::std::vector<::std::string>
const&, ::std::function<
void(::std::vector<::Social::PlatformUserProfileData>&&)>) = 0;
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;
363 _notifyIdentitiesOfSignIn(::std::shared_ptr<::Social::Identity>, ::std::function<
bool(::Social::IdentityEventResponse, ::std::shared_ptr<::Social::Identity>)>) = 0;
366 virtual void _notifyIdentitySignInEventSubscribers(::Social::IdentityType) = 0;
369 virtual void _notifyIdentitySignOutEventSubscribers(::Social::IdentityType) = 0;
372 virtual void setStorageArea(::std::shared_ptr<::Core::FileStorageArea>, ::BuildPlatform) = 0;