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() ;
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 _confirmationBanningPlayerDialog(
73 ::std::string
const& selectedPlayerName,
74 ::std::function<
void(::ModalScreenButtonId)> callback
77 MCAPI
void _confirmationDeoppingOtherDialog(::std::function<
void(::ModalScreenButtonId)> callback);
79 MCAPI
void _confirmationDeoppingSelfDialog(::std::function<
void(::ModalScreenButtonId)> callback);
81 MCAPI
void _confirmationKickingPlayerDialog(
82 ::std::string
const& selectedPlayerName,
83 ::std::function<
void(::ModalScreenButtonId)> callback
86 MCAPI
void _confirmationNoCheatsDialog(::std::function<
void(::ModalScreenButtonId)> callback);
88 MCAPI
void _confirmationRemovingPlayerDialog(::std::function<
void(::ModalScreenButtonId)> callback);
90 MCAPI
void _decidePermissions();
92 MCAPI
void _evaluateCanEdit();
94 MCAPI
void _handleOperatorAbility();
96 MCAPI
bool _isLocalPlayerSelected()
const;
98 MCAPI
bool _isNonXboxLivePlayerSelected()
const;
100 MCAPI
void _populateClientIds();
102 MCAPI
void _registerBindings();
104 MCAPI
void _registerEventHandlers();
106 MCAPI
void _setCurrentPermissionLevel(::PlayerPermissionLevel permissionLevel,
bool checkDefaultCustomAbilities);
108 MCAPI
void _setPermissionLevelEdu(::PlayerPermissionLevel permissionLevel);
110 MCAPI
void _setPermissionLevelRealms(::PlayerPermissionLevel permissionLevel);
112 MCAPI
void _syncAbilities();
114 MCAPI
void openEduPermissionsPopup(::ActorUniqueID
id);
121 ::std::shared_ptr<::ClientInstanceScreenModel> model,
122 ::ActorUniqueID defaultPlayerId,
123 ::std::weak_ptr<::UserDataScreenController> userDataScreenController,
124 ::ScreenExitBehavior exitBehavior
137 MCAPI
void $onOpen();
139 MCAPI ::ui::DirtyFlag $tick();
141 MCAPI ::ui::DirtyFlag $handleGameEventNotification(::ui::GameEventNotification notification);
143 MCAPI
void $addStaticScreenVars(::Json::Value& globalVars);
145 MCAPI
void $onLeave();
Definition ClientInstanceScreenController.h:5
Definition ClientInstanceScreenModel.h:5
Definition PermissionsScreenController.h:5
static MCAPI void ** $vftableForScreenController()
static MCAPI void ** $vftableForEnableNonOwnerReferences()
Definition UserDataScreenController.h:5