3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/client/gui/DirtyFlag.h"
7#include "mc/client/gui/screens/controllers/MainMenuScreenController.h"
8#include "mc/client/gui/screens/controllers/RealmPlayer.h"
9#include "mc/client/network/realms/RealmsAPI.h"
10#include "mc/client/network/realms/World.h"
11#include "mc/server/commands/PlayerPermissionLevel.h"
20namespace Json {
class Value; }
21namespace Realms {
struct Player; }
28 enum class SearchState :
int {};
30 enum class RealmPlayerList :
int {};
32 using InviteList = ::std::map<::std::string, ::RealmsAPI::InviteAction>;
37 ::ll::TypedStorage<8, 200, ::RealmPlayer> EMPTY_PLAYER;
38 ::ll::TypedStorage<1, 1, bool> mLoading;
39 ::ll::TypedStorage<1, 1, bool> mListsLoaded;
40 ::ll::TypedStorage<1, 1, bool> mFromExistingWorld;
41 ::ll::TypedStorage<8, 64, ::std::function<void()>> mFollowUpActionAfterCreation;
42 ::ll::TypedStorage<1, 1, bool> mRefreshUI;
43 ::ll::TypedStorage<1, 1, bool> mClickedRefresh;
44 ::ll::TypedStorage<8, 656, ::Realms::World> mWorld;
45 ::ll::TypedStorage<1, 1, bool> mInvitesSent;
46 ::ll::TypedStorage<8, 8, ::std::chrono::steady_clock::time_point> mLastRefreshUpdate;
47 ::ll::TypedStorage<8, 8, ::std::chrono::steady_clock::time_point> mLastFriendListUpdate;
48 ::ll::TypedStorage<1, 1, bool> mNewWorld;
49 ::ll::TypedStorage<1, 1, bool> mPermissionsDirty;
50 ::ll::TypedStorage<8, 8, ::std::chrono::steady_clock::time_point> mLastTryJoin;
51 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ProgressHandler>> mProgressHandler;
52 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::PlatformMultiplayerRestrictions>> mPlatformMultiplayerRestrictions;
53 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::DropdownScreenController>> mMembersDropdownController;
54 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::DropdownScreenController>> mInvitedFriendsDropdownController;
55 ::ll::TypedStorage<4, 4, int> mUninvitedFriendsPageIndex;
56 ::ll::TypedStorage<4, 4, int> mInvitedFriendsPageIndex;
57 ::ll::TypedStorage<4, 4, int> mMembersPageIndex;
58 ::ll::TypedStorage<4, 4, int> mBlockedPlayersPageIndex;
59 ::ll::TypedStorage<1, 1, ::PlayerPermissionLevel> mDefaultPermission;
60 ::ll::TypedStorage<1, 1, ::PlayerPermissionLevel> mDefaultPermissionOld;
61 ::ll::TypedStorage<8, 32, ::std::string> mUninvitedFriendsLastFilter;
62 ::ll::TypedStorage<8, 32, ::std::string> mInvitedFriendsLastFilter;
63 ::ll::TypedStorage<8, 32, ::std::string> mMembersLastFilter;
64 ::ll::TypedStorage<8, 32, ::std::string> mBlockedPlayersLastFilter;
65 ::ll::TypedStorage<4, 4, int> mPreviousMembersPageIndex;
66 ::ll::TypedStorage<4, 4, int> mPreviousInvitedFriendsPageIndex;
67 ::ll::TypedStorage<4, 4, int> mPreviousUninvitedFriendsPageIndex;
68 ::ll::TypedStorage<4, 4, int> mPreviousBlockedPlayersPageIndex;
69 ::ll::TypedStorage<8, 64, ::std::unordered_map<::std::string, ::RealmPlayer>> mCompleteWorldPlayerList;
70 ::ll::TypedStorage<8, 64, ::std::unordered_map<::std::string, ::Social::PlatformUserProfileData>>
71 mLinkedPlatformAccounts;
72 ::ll::TypedStorage<4, 4, ::std::atomic<uint>> mLinkedAccountLoadCounter;
73 ::ll::TypedStorage<8, 24, ::std::vector<::std::string>> mCurrentMembersList;
74 ::ll::TypedStorage<8, 24, ::std::vector<::std::string>> mFullMembersList;
75 ::ll::TypedStorage<8, 24, ::std::vector<::std::string>> mFilteredMembersList;
76 ::ll::TypedStorage<8, 24, ::std::vector<::std::string>> mCurrentInvitedFriendsList;
77 ::ll::TypedStorage<8, 24, ::std::vector<::std::string>> mFullInvitedFriendsList;
78 ::ll::TypedStorage<8, 24, ::std::vector<::std::string>> mFilteredInvitedFriendsList;
79 ::ll::TypedStorage<8, 24, ::std::vector<::std::string>> mCurrentUninvitedFriendsList;
80 ::ll::TypedStorage<8, 24, ::std::vector<::std::string>> mFullUninvitedFriendsList;
81 ::ll::TypedStorage<8, 24, ::std::vector<::std::string>> mFilteredUninvitedFriendsList;
82 ::ll::TypedStorage<8, 24, ::std::vector<::std::string>> mCurrentBlockedPlayersList;
83 ::ll::TypedStorage<8, 24, ::std::vector<::std::string>> mFullBlockedPlayersList;
84 ::ll::TypedStorage<8, 24, ::std::vector<::std::string>> mFilteredBlockedPlayersList;
85 ::ll::TypedStorage<8, 24, ::std::vector<::std::string>> mPendingXuidsForLinkedAccounts;
86 ::ll::TypedStorage<8, 64, ::std::unordered_set<::std::string>> mPreviouslyObservedXboxLiveFriends;
87 ::ll::TypedStorage<8, 32, ::std::string> mSharePopupBButtonDescription;
88 ::ll::TypedStorage<4, 4, uint> mCurrentUpdatedPlayers;
89 ::ll::TypedStorage<1, 1, bool> mShowLinkedAccounts;
94 RealmsAllowListScreenController();
99 virtual ~RealmsAllowListScreenController() ;
101 virtual void onLeave() ;
103 virtual ::ui::DirtyFlag tick() ;
105 virtual void addStaticScreenVars(::Json::Value& globalVars) ;
107 virtual ::std::string _getButtonBDescription() ;
109 virtual bool _getGamepadHelperVisible() const ;
115 MCAPI RealmsAllowListScreenController(
116 ::std::shared_ptr<::MainMenuScreenModel> model,
117 ::Realms::World const& world,
118 bool const& fromExistingWorld,
119 ::std::function<
void()> followUpCallbackAfterCreation,
120 bool fromSettingsOrAllowListEntryPoint
123 MCAPI
void _buildPlayerList();
125 MCAPI
void _clearFromFriendLists(::std::
string const& xuid);
127 MCAPI
void _clearMemberList();
129 MCAPI
void _finalizeLinkedAccountLoading();
131 MCAPI
void _getBlocklistProfiles(::std::vector<::std::
string> allXuids, ::std::vector<::std::
string> blockList);
133 MCAPI ::std::map<::std::
string, ::RealmsAPI::InviteAction> _getInvitesToSend() const;
136 _getRealmPlayerAtIndex(
int index, ::RealmsAllowListScreenController::RealmPlayerList realmPlayerList);
138 MCAPI ::RealmPlayer* _getRealmPlayerFromXuid(::std::
string const& xuid);
140 MCAPI ::RealmsAllowListScreenController::RealmPlayerList const
141 _getRealmPlayerListFromCollection(::UIPropertyBag const* bag) const;
143 MCAPI
void _handlePlayerInvite(::RealmPlayer& player);
145 MCAPI
void _handleUpdateFailed(::std::function<
void()> callback);
147 MCAPI
void _initializeLinkedAccounts(
148 ::std::vector<::std::
string>& platformIds,
149 ::std::vector<::Social::PlatformUserProfileData> const& platformProfiles
152 MCAPI
void _initializePlayerList(::std::function<
void()> callback);
154 MCAPI
bool _isFriend(::std::
string const& xuid);
156 MCAPI
void _joinRealm();
158 MCAPI
void _markStatusNoLongerChanged(::std::map<::std::
string, ::RealmsAPI::InviteAction> const& changed);
160 MCAPI
void _refreshOrExit(::std::function<
void()> callback);
162 MCAPI
void _registerBindings();
164 MCAPI
void _registerEventHandlers();
166 MCAPI
void _requestPlatformGamerpic(::Social::PlatformUserProfileData const& platformEntry);
168 MCAPI
void _sendInvites(::std::function<
void()> callback);
170 MCAPI
bool _shouldUpdateFriendsList();
172 MCAPI
void _sortPlayerList();
174 MCAPI
void _updateAllListModels();
176 MCAPI
void _updateFriendsList();
178 MCAPI
void _updateLinkedAccountLoading();
180 MCAPI
void _updatePlayerList(
181 ::std::vector<::Realms::Player> const& newPlayers,
182 ::std::vector<::Realms::Player> const& newBlockList
185 MCAPI
void _updatePlayerlistModel(
186 ::std::
string const& filter,
187 ::RealmsAllowListScreenController::RealmPlayerList realmPlayerList,
191 MCAPI
void sendDefaultPermission(::PlayerPermissionLevel const& permission);
193 MCAPI
void sendInvitesWithProgress(::std::function<
void()> callback);
195 MCAPI
void sendUserPermission(
196 ::std::
string const& xuid,
197 ::PlayerPermissionLevel permission,
198 ::PlayerPermissionLevel oldPermission
206 ::std::shared_ptr<::MainMenuScreenModel> model,
207 ::Realms::World const& world,
208 bool const& fromExistingWorld,
209 ::std::function<
void()> followUpCallbackAfterCreation,
210 bool fromSettingsOrAllowListEntryPoint
223 MCAPI
void $onLeave();
225 MCAPI ::ui::DirtyFlag $tick();
227 MCAPI
void $addStaticScreenVars(::Json::Value& globalVars);
229 MCAPI ::std::
string $_getButtonBDescription();
231 MCFOLD
bool $_getGamepadHelperVisible() const;
Definition DropdownScreenController.h:5
Definition MainMenuScreenController.h:5
Definition MainMenuScreenModel.h:5
Definition RealmsAllowListScreenController.h:5
static MCAPI void ** $vftableForScreenController()
static MCAPI void ** $vftableForEnableNonOwnerReferences()
Definition ProgressHandler.h:5
Definition UIPropertyBag.h:5