Skip to content
LeviMC
English
AutoLightDark
LeviLamina
Loading...
Searching...
No Matches
ServerScoreboard.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/utility/NonOwnerPointer.h"
7#include "mc/deps/core/utility/pub_sub/Subscription.h"
8#include "mc/world/scores/ObjectiveSortOrder.h"
9#include "mc/world/scores/Scoreboard.h"
10#include "mc/world/scores/ScoreboardId.h"
11
12// auto generated forward declare list
13// clang-format off
14class Actor;
15class BasicTimer;
18class EntityContext;
22class LevelStorage;
23class Objective;
24class PacketSender;
25class Player;
31struct RemoveScore;
32// clang-format on
33
34class ServerScoreboard : public ::Scoreboard {
35public:
36 // ServerScoreboard inner types declare
37 // clang-format off
38 struct unit_test_ctor_t;
39 // clang-format on
40
41 // ServerScoreboard inner types define
43
44public:
45 // member variables
46 // NOLINTBEGIN
47 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::BasicTimer>> mSaveTimer;
48 ::ll::TypedStorage<8, 8, ::LevelStorage*> mLevelStorage;
49 ::ll::TypedStorage<1, 1, bool> mIsDirty;
50 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::GameplayUserManager> const> mGameplayUserManager;
51 ::ll::TypedStorage<8, 24, ::std::vector<::Objective const*>> mTrackedObjectives;
52 ::ll::TypedStorage<8, 8, ::PacketSender*> mPacketSender;
53 ::ll::TypedStorage<8, 16, ::ScoreboardId> mLastUniqueSBID;
54 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mOnSaveSubscription;
55 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mOnLevelStorageManagerStartLeaveGameSubscription;
56 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mOnRemoveActorEntityReferencesSubscription;
57 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mOnGameplayUserRemovedSubscription;
58 // NOLINTEND
59
60public:
61 // prevent constructor by default
62 ServerScoreboard();
63
64public:
65 // virtual functions
66 // NOLINTBEGIN
67 virtual ~ServerScoreboard() /*override*/ = default;
68
69 virtual void onObjectiveAdded(::Objective const& objective) /*override*/;
70
71 virtual void onObjectiveRemoved(::Objective& objective) /*override*/;
72
73 virtual void onScoreChanged(::ScoreboardId const& id, ::Objective const& obj) /*override*/;
74
75 virtual void onPlayerScoreRemoved(::ScoreboardId const& id, ::Objective const& objective) /*override*/;
76
77 virtual void setPacketSender(::PacketSender* sender) /*override*/;
78
79 virtual ::DisplayObjective const* setDisplayObjective(
80 ::std::string const& displaySlotName,
81 ::Objective const& objective,
82 ::ObjectiveSortOrder const order
83 ) /*override*/;
84
85 virtual ::Objective* clearDisplayObjective(::std::string const& displaySlotName) /*override*/;
86
87 virtual void onPlayerJoined(::Player const& player) /*override*/;
88
89 virtual void onPlayerIdentityUpdated(::PlayerScoreboardId const& playerId) /*override*/;
90
91 virtual void tick() /*override*/;
92
93 virtual ::ScoreboardId const& createScoreboardId(::Player const& player) /*override*/;
94
95 virtual ::ScoreboardId const& createScoreboardId(::Actor const& entity) /*override*/;
96
97 virtual ::ScoreboardId const& createScoreboardId(::std::string const& name) /*override*/;
98
99 virtual void writeToLevelStorage() /*override*/;
100
101 virtual bool isClientSide() const /*override*/;
102 // NOLINTEND
103
104public:
105 // member functions
106 // NOLINTBEGIN
107 MCAPI ServerScoreboard(
108 ::CommandSoftEnumRegistry registry,
109 ::LevelStorage* levelStorage,
110 ::Bedrock::NotNullNonOwnerPtr<::GameplayUserManager> gameplayUserManager
111 );
112
113 MCNAPI void
114 _clearAllScoreTagsForObjective(::std::string const& displaySlotName, ::DisplayObjective const& displayObjective);
115
116 MCNAPI void _onGameplayUserRemoved(::EntityContext& entity);
117
119
120 MCNAPI void _onSaveEvent(::LevelStorage&);
121
124 ::ScoreboardIdentityRef const& identityDef,
125 ::std::string const& objName,
126 int score
127 );
128
129 MCNAPI void _updateScoreTag(::ScoreboardId const& scoreboardId, bool assertOnFakePlayer);
130
131 MCNAPI void
133
134 MCNAPI void intializeWithActorManager(::IActorManagerConnector& actorManagerConnector);
135 // NOLINTEND
136
137public:
138 // constructor thunks
139 // NOLINTBEGIN
140 MCAPI void* $ctor(
141 ::CommandSoftEnumRegistry registry,
142 ::LevelStorage* levelStorage,
143 ::Bedrock::NotNullNonOwnerPtr<::GameplayUserManager> gameplayUserManager
144 );
145 // NOLINTEND
146
147public:
148 // virtual function thunks
149 // NOLINTBEGIN
150 MCNAPI void $onObjectiveAdded(::Objective const& objective);
151
152 MCNAPI void $onObjectiveRemoved(::Objective& objective);
153
154 MCAPI void $onScoreChanged(::ScoreboardId const& id, ::Objective const& obj);
155
156 MCNAPI void $onPlayerScoreRemoved(::ScoreboardId const& id, ::Objective const& objective);
157
158 MCNAPI void $setPacketSender(::PacketSender* sender);
159
161 ::std::string const& displaySlotName,
162 ::Objective const& objective,
163 ::ObjectiveSortOrder const order
164 );
165
166 MCNAPI ::Objective* $clearDisplayObjective(::std::string const& displaySlotName);
167
168 MCNAPI void $onPlayerJoined(::Player const& player);
169
170 MCNAPI void $onPlayerIdentityUpdated(::PlayerScoreboardId const& playerId);
171
172 MCNAPI void $tick();
173
174 MCNAPI ::ScoreboardId const& $createScoreboardId(::Player const& player);
175
176 MCNAPI ::ScoreboardId const& $createScoreboardId(::Actor const& entity);
177
178 MCNAPI ::ScoreboardId const& $createScoreboardId(::std::string const& name);
179
180 MCNAPI void $writeToLevelStorage();
181
182 MCNAPI bool $isClientSide() const;
183
184
185 // NOLINTEND
186};
Definition Actor.h:116
Definition BasicTimer.h:5
Definition CommandSoftEnumRegistry.h:10
Definition DisplayObjective.h:14
Definition EntityContext.h:15
Definition GameplayUserManager.h:25
Definition IActorManagerConnector.h:14
Definition ILevelStorageManagerConnector.h:13
Definition LevelStorage.h:26
Definition Objective.h:15
Definition PacketSender.h:17
Definition Player.h:131
Definition ScoreboardIdentityRef.h:16
MCAPI ::std::variant<::RemoveScore, ::ChangePlayerScore, ::ChangeEntityScore, ::ChangeFakePlayerScore > _unpackIdentityDefToScorePacket(::ScoreboardIdentityRef const &identityDef, ::std::string const &objName, int score)
MCAPI void initializeWithLevelStorageManagerConnector(::ILevelStorageManagerConnector &levelStorageManagerConnector)
MCAPI void $onPlayerJoined(::Player const &player)
MCAPI void _onRemoveActorEntityReferences(::Actor &actor)
MCAPI void $onObjectiveAdded(::Objective const &objective)
MCAPI void $tick()
MCAPI void $onPlayerIdentityUpdated(::PlayerScoreboardId const &playerId)
MCAPI void _clearAllScoreTagsForObjective(::std::string const &displaySlotName, ::DisplayObjective const &displayObjective)
MCAPI void $writeToLevelStorage()
MCAPI void $onObjectiveRemoved(::Objective &objective)
MCAPI void intializeWithActorManager(::IActorManagerConnector &actorManagerConnector)
MCAPI void _onGameplayUserRemoved(::EntityContext &entity)
MCAPI::DisplayObjective const * $setDisplayObjective(::std::string const &displaySlotName, ::Objective const &objective, ::ObjectiveSortOrder const order)
MCAPI void $onPlayerScoreRemoved(::ScoreboardId const &id, ::Objective const &objective)
MCAPI void _updateScoreTag(::ScoreboardId const &scoreboardId, bool assertOnFakePlayer)
MCAPI void _onSaveEvent(::LevelStorage &)
MCAPI void $setPacketSender(::PacketSender *sender)
MCAPI::ScoreboardId const & $createScoreboardId(::Player const &player)
MCAPI bool $isClientSide() const
MCAPI::Objective * $clearDisplayObjective(::std::string const &displaySlotName)
STL namespace.
Definition ChangeEntityScore.h:9
Definition ChangeFakePlayerScore.h:8
Definition ChangePlayerScore.h:9
Definition PlayerScoreboardId.h:6
Definition RemoveScore.h:8
Definition ScoreboardId.h:11
Definition ServerScoreboard.h:42