44class User :
public ::std::enable_shared_from_this<::Social::User> {
49 virtual ~User() =
default;
52 virtual void initStorageAreas() = 0;
55 virtual ::GameUserType getType()
const = 0;
58 virtual bool isPrimaryUser()
const = 0;
61 virtual bool isAnonymous()
const = 0;
64 virtual bool isConnected()
const = 0;
67 virtual bool isReady()
const = 0;
70 virtual bool needsPlatformReconnect()
const = 0;
73 virtual bool isSignedIn(::Social::IdentityType)
const = 0;
76 virtual bool isSignInInProgress(::Social::IdentityType)
const = 0;
79 virtual bool isSignInInProgress()
const = 0;
85 virtual void cancelSignIn(::Social::IdentityType) = 0;
88 virtual void signOut(::Social::IdentityType, ::std::function<
void(
bool)>) = 0;
91 virtual void clearCachedCredentials(::Social::IdentityType) = 0;
94 virtual bool hasNetworkPrivileges()
const = 0;
97 virtual ::Bedrock::PubSub::Subscription registerIdentitySignInSubscriber(
98 ::Social::IdentityType,
99 ::std::function<
void(uint, ::Social::IdentityType)>
103 virtual ::Bedrock::PubSub::Subscription registerIdentitySignOutSubscriber(
104 ::Social::IdentityType,
105 ::std::function<
void(uint, ::Social::IdentityType)>
109 virtual ::CallbackToken connectAsync(::std::function<
void(::Social::UserPlatformConnectionResult)>,
bool) = 0;
112 virtual void enterOfflineMode(::std::function<
void(
bool)>) = 0;
115 virtual ::Social::UserPlatformConnectionState getPlatformConnectionState()
const = 0;
118 virtual uint getLocalUserId()
const = 0;
121 virtual ::std::string
const& getId(::Social::IdentityType)
const = 0;
124 virtual ::std::string
const& getMinecraftAccountID()
const = 0;
128 getAuthToken(::Social::IdentityType, ::std::string
const&, ::std::function<
void(
::Social::AuthToken)>)
const = 0;
131 virtual ::Bedrock::Threading::Async<::Social::AuthToken>
132 getAuthToken(::Social::IdentityType, ::std::string
const&)
const = 0;
135 virtual ::std::string
const& getPlayFabSessionTicket()
const = 0;
138 virtual ::std::string
const& getPlayFabEntityToken()
const = 0;
141 virtual ::std::shared_ptr<::Social::Identity> getIdentity(::Social::IdentityType) = 0;
144 virtual ::std::shared_ptr<::Social::Identity const>
const getIdentity(::Social::IdentityType)
const = 0;
147 virtual bool hasIdentity(::Social::IdentityType)
const = 0;
150 virtual void setShouldTransferDeviceAccountToXboxLive(
bool const) = 0;
153 virtual bool shouldLinkPlayFabAndLiveAccounts()
const = 0;
156 virtual ::Bedrock::Threading::Async<bool> unlinkXboxLiveAccount() = 0;
165 virtual ::Social::UserData
const getUserData(::std::string
const&)
const = 0;
171 virtual void tick() = 0;
174 virtual void finalize() = 0;
177 virtual void disconnect() = 0;
180 virtual void signOutFromPlatform() = 0;
183 virtual bool isFinalized()
const = 0;
186 virtual ::CloudSaveSystemWrapper& getCloudSaveSystem() = 0;
189 virtual ::std::string getDisplayName()
const = 0;
192 virtual ::std::string getDisplayName(::Social::IdentityType)
const = 0;
195 virtual ::Bedrock::PubSub::Subscription
196 registerDisplayNameChangedSubscriber(::std::function<
void(::std::string
const&)>) = 0;
199 virtual ::std::shared_ptr<::Core::FileStorageArea>
const getStorageArea()
const = 0;
202 virtual ::Core::Path getSettingsDirectoryPath()
const = 0;
205 virtual bool hasValidSettingsDirectoryPath()
const = 0;
208 virtual ::std::shared_ptr<::IOptions>
const getOptions()
const = 0;
211 virtual ::Social::XboxLiveUser& getLiveUser()
const = 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;
290 virtual void getPlatformProfiles(
291 ::std::vector<::std::string>
const&,
292 ::std::function<
void(::std::vector<::Social::PlatformUserProfileData>&&)>
296 virtual ::Social::ProfileImageOptions getDefaultProfileImageOptions()
const = 0;
299 virtual ::Bedrock::Threading::Async<::std::shared_ptr<::mce::Image>>
303 virtual ::Bedrock::Threading::Async<::Core::PathBuffer<::std::string>>
307 virtual bool canSignInToXBL()
const = 0;
310 virtual void setNeedsPlatformReconnect() = 0;
313 virtual ::std::string getPlatformOfflineID()
const = 0;
316 virtual ::std::string getPlatformOnlineID()
const = 0;
319 virtual void associateClientInstance(::std::shared_ptr<::IClientInstance>) = 0;
322 virtual ::std::weak_ptr<::IClientInstance> getAssociateClientInstance() = 0;
325 virtual ::std::weak_ptr<::IClientInstance const>
const getAssociateClientInstance()
const = 0;
328 virtual void setPresence(::std::string
const&) = 0;
331 virtual void clearPresence() = 0;
334 virtual bool hasPlayedLegacyGame()
const = 0;
337 virtual bool getLegacyOptionsData(::std::vector<uchar>&)
const = 0;
340 virtual void onAppSuspend() = 0;
343 virtual void onAppResumed() = 0;
346 virtual ::std::optional<::Social::UserBanDetails> getBanInfo()
const = 0;
349 virtual void updateAppearanceDisplayName(::std::string
const&) = 0;
352 virtual void initIdentity() = 0;
358 virtual void _onSignOut(::Social::IdentityType) = 0;
361 virtual void _notifyIdentitiesOfSignIn(
362 ::std::shared_ptr<::Social::Identity>,
363 ::std::function<
bool(::Social::IdentityEventResponse, ::std::shared_ptr<::Social::Identity>)>
367 virtual void _notifyIdentitySignInEventSubscribers(::Social::IdentityType) = 0;
370 virtual void _notifyIdentitySignOutEventSubscribers(::Social::IdentityType) = 0;
373 virtual void setStorageArea(::std::shared_ptr<::Core::FileStorageArea>, ::BuildPlatform) = 0;
379 virtual void _finalizeSignIn(
381 ::std::vector<::Social::IdentityType>&&,
382 ::std::set<::Social::IdentityType>&&