3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/client/gui/DirtyFlag.h"
7#include "mc/client/gui/GameEventNotification.h"
8#include "mc/client/gui/screens/controllers/ClientInstanceScreenController.h"
9#include "mc/client/gui/screens/controllers/ModalScreenButtonId.h"
10#include "mc/client/gui/screens/controllers/ScreenExitBehavior.h"
11#include "mc/legacy/ActorUniqueID.h"
12#include "mc/server/commands/PlayerPermissionLevel.h"
13#include "mc/world/actor/player/LayeredAbilities.h"
19namespace Json {
class Value; }
26 ::ll::TypedStorage<1, 1, bool> mEDUPermissionsPopupActive;
27 ::ll::TypedStorage<1, 1, bool> mPermissionDropdownActive;
28 ::ll::TypedStorage<8, 1464, ::LayeredAbilities> mStartAbilityCache;
29 ::ll::TypedStorage<8, 1464, ::LayeredAbilities> mAbilities;
30 ::ll::TypedStorage<8, 8, ::ActorUniqueID> mDefaultPlayerId;
31 ::ll::TypedStorage<8, 8, uint64> mSelectedPlayerIndex;
32 ::ll::TypedStorage<1, 1, bool> mCanEdit;
33 ::ll::TypedStorage<1, 1, bool> mPlayerListInitialized;
34 ::ll::TypedStorage<1, 1, bool> mContentAreaActive;
35 ::ll::TypedStorage<8, 24, ::std::vector<::std::string>> mPermissionNames;
36 ::ll::TypedStorage<8, 24, ::std::vector<::ActorUniqueID>> mClientIds;
37 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::UserDataScreenController>> mUserDataScreenController;
42 PermissionsScreenController();
47 virtual ~PermissionsScreenController() =
default;
49 virtual void onOpen() ;
51 virtual ::ui::DirtyFlag tick() ;
53 virtual ::ui::DirtyFlag handleGameEventNotification(::ui::GameEventNotification notification) ;
55 virtual void addStaticScreenVars(::Json::Value& globalVars) ;
57 virtual void onLeave() ;
63 MCAPI PermissionsScreenController(
64 ::std::shared_ptr<::ClientInstanceScreenModel> model,
65 ::ActorUniqueID defaultPlayerId,
66 ::std::weak_ptr<::UserDataScreenController> userDataScreenController,
67 ::ScreenExitBehavior exitBehavior
70 MCAPI
void _closeEduPermissionsPopup();
72 MCAPI
void _confirmationDeoppingOtherDialog(::std::function<
void(::ModalScreenButtonId)> callback);
74 MCAPI
void _confirmationDeoppingSelfDialog(::std::function<
void(::ModalScreenButtonId)> callback);
76 MCAPI
void _confirmationNoCheatsDialog(::std::function<
void(::ModalScreenButtonId)> callback);
78 MCAPI
void _decidePermissions();
80 MCAPI
void _evaluateCanEdit();
82 MCAPI
bool _isLocalPlayerSelected()
const;
84 MCAPI
bool _isNonXboxLivePlayerSelected()
const;
86 MCAPI
void _populateClientIds();
88 MCAPI
void _setCurrentPermissionLevel(::PlayerPermissionLevel permissionLevel,
bool checkDefaultCustomAbilities);
90 MCAPI
void _syncAbilities();
97 ::std::shared_ptr<::ClientInstanceScreenModel> model,
98 ::ActorUniqueID defaultPlayerId,
99 ::std::weak_ptr<::UserDataScreenController> userDataScreenController,
100 ::ScreenExitBehavior exitBehavior
107 MCAPI
void $onOpen();
109 MCAPI ::ui::DirtyFlag $tick();
111 MCAPI ::ui::DirtyFlag $handleGameEventNotification(::ui::GameEventNotification notification);
113 MCAPI
void $addStaticScreenVars(::Json::Value& globalVars);
115 MCAPI
void $onLeave();
Definition ClientInstanceScreenController.h:5
Definition ClientInstanceScreenModel.h:5
Definition PermissionsScreenController.h:5
Definition UserDataScreenController.h:5