Skip to content
LeviMC
English
AutoLightDark
LeviLamina
Loading...
Searching...
No Matches
ServerLevel.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/common/SubClientId.h"
7#include "mc/deps/core/utility/NonOwnerPointer.h"
8#include "mc/deps/core/utility/UniqueOwnerPointer.h"
9#include "mc/deps/core/utility/pub_sub/Subscription.h"
10#include "mc/deps/game_refs/OwnerPtr.h"
11#include "mc/server/commands/CurrentCmdVersion.h"
12#include "mc/util/IDType.h"
13#include "mc/util/TagRegistry.h"
14#include "mc/world/actor/player/PlayerDeathManager.h"
15#include "mc/world/level/BossbarManager.h"
16#include "mc/world/level/CommandOriginSystem.h"
17#include "mc/world/level/Level.h"
18#include "mc/world/level/LevelChunkMetaDataManager.h"
19#include "mc/world/persistence/DynamicPropertiesDefinition.h"
20
21// auto generated forward declare list
22// clang-format off
23class Actor;
25class Command;
26class CommandManager;
27class CommandOrigin;
29class Experiments;
30class HashedString;
32class LevelSettings;
33class MapDataManager;
34class MobEvents;
36class Player;
38class Random;
44class TagCacheManager;
45class TickTimeManager;
47class TradeTables;
51struct LevelTagIDType;
53namespace GameModeExt { struct MessengerFactory; }
54namespace PositionTrackingDB { class PositionTrackingDBServer; }
55namespace ServerInitialization { class IServerInitializer; }
56// clang-format on
57
58class ServerLevel : public ::Level {
59public:
60 // member variables
61 // NOLINTBEGIN
62 ::ll::TypedStorage<8, 8, ::ResourcePackManager&> mServerResourcePackManager;
63 ::ll::TypedStorage<8, 8, ::ResourcePackManager&> mClientResourcePackManager;
64 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::TradeTables>> mTradeTable;
65 ::ll::TypedStorage<8, 16, ::Bedrock::UniqueOwnerPointer<::CommandManager>> mCommandManager;
66 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::MobEvents>> mMobEvents;
67 ::ll::TypedStorage<8, 16, ::gsl::not_null<::Bedrock::UniqueOwnerPointer<::TagCacheManager>>> mTagCacheManager;
68 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::PositionTrackingDB::PositionTrackingDBServer>>
69 mServerPositionTrackerDB;
70 ::ll::TypedStorage<8, 64, ::BossbarManager> mBossbarManager;
71 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::VolumeEntityManagerServer>> mVolumeEntityManager;
72 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::DynamicPropertiesManager>> mDynamicPropertiesManager;
73 ::ll::TypedStorage<8, 72, ::DynamicPropertiesDefinition> mDynamicPropertiesDefinition;
74 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mOnActorEntityAdded;
75 ::ll::TypedStorage<8, 16, ::gsl::not_null<::Bedrock::UniqueOwnerPointer<::ChunkGenerationManager>>>
76 mChunkGenerationManager;
77 ::ll::TypedStorage<8, 16, ::gsl::not_null<::OwnerPtr<::TickTimeManagerServer>>> mTickTimeManager;
78 ::ll::TypedStorage<8, 16, ::gsl::not_null<::Bedrock::UniqueOwnerPointer<::ServerPlayerSleepManager>>>
79 mServerPlayerSleepManager;
80 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mOnPlayerWakeUpSubscription;
81 ::ll::TypedStorage<8, 168, ::PlayerDeathManager> mPlayerDeathManager;
82 ::ll::TypedStorage<8, 48, ::LevelChunkMetaDataManager> mLevelChunkMetaDataManager;
83 ::ll::TypedStorage<8, 16, ::gsl::not_null<::Bedrock::UniqueOwnerPointer<::ServerMapDataManager>>> mMapDataManager;
84 ::ll::TypedStorage<8, 8, ::std::chrono::steady_clock::time_point> mNextTelemetrySendTime;
85 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::ServerSubChunkLighter>> mServerSubChunkLighter;
86 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ServerLevelStatCollectors>> mScriptStatCollectors;
87 // NOLINTEND
88
89public:
90 // prevent constructor by default
91 ServerLevel& operator=(ServerLevel const&);
92 ServerLevel(ServerLevel const&);
93 ServerLevel();
94
95public:
96 // virtual functions
97 // NOLINTBEGIN
98 virtual ~ServerLevel() /*override*/ = default;
99
100 virtual bool initialize(
101 ::std::string const& levelName,
102 ::LevelSettings const& levelSettings,
103 ::Experiments const& experiments,
104 ::std::string const* levelId,
105 ::std::optional<::std::reference_wrapper<
106 ::std::unordered_map<::std::string, ::std::unique_ptr<::BiomeJsonDocumentGlueResolvedBiomeData>>>>
107 biomeIdToResolvedData,
109 ) /*override*/;
110
111 virtual ::PlayerSleepManager const& getPlayerSleepManager() const /*override*/;
112
113 virtual ::PlayerSleepManager& getPlayerSleepManager() /*override*/;
114
115 virtual ::Bedrock::NonOwnerPointer<::ServerPlayerSleepManager> getServerPlayerSleepManager() /*override*/;
116
117 virtual ::Bedrock::NonOwnerPointer<::ServerPlayerSleepManager const> getServerPlayerSleepManager() const
118 /*override*/;
119
120 virtual void setCommandsEnabled(bool commandsEnabled) /*override*/;
121
122 virtual void setWorldTemplateOptionsUnlocked() /*override*/;
123
124 virtual ::ResourcePackManager* getClientResourcePackManager() const /*override*/;
125
126 virtual ::ResourcePackManager* getServerResourcePackManager() const /*override*/;
127
128 virtual ::TradeTables* getTradeTables() /*override*/;
129
130 virtual void runCommand(
131 ::HashedString const& commandStr,
132 ::CommandOrigin& origin,
133 ::CommandOriginSystem originSystem,
134 ::CurrentCmdVersion const commandVersion
135 ) /*override*/;
136
137 virtual void
138 runCommand(::Command& command, ::CommandOrigin& origin, ::CommandOriginSystem originSystem) /*override*/;
139
140 virtual void decrementTagCache(
141 ::std::string const& tag,
143 ) /*override*/;
144
145 virtual void incrementTagCache(
146 ::std::string const& tag,
148 ) /*override*/;
149
150 virtual ::Bedrock::NonOwnerPointer<::TagCacheManager> getTagCacheManager() /*override*/;
151
152 virtual ::LevelChunkMetaDataManager* getLevelChunkMetaDataManager() /*override*/;
153
154 virtual void loadFunctionManager() /*override*/;
155
156 virtual ::Random& getThreadRandom() const /*override*/;
157
158 virtual ::PositionTrackingDB::PositionTrackingDBServer* getPositionTrackerDBServer() const /*override*/;
159
160 virtual ::Bedrock::NonOwnerPointer<::VolumeEntityManagerServer> tryGetVolumeEntityManagerServer() const
161 /*override*/;
162
163 virtual void clearAllGenerationRequests(::NetworkIdentifier const& player, ::SubClientId clientId) /*override*/;
164
165 virtual ::Bedrock::NonOwnerPointer<::ChunkGenerationManager> getChunkGenerationManager() /*override*/;
166
167 virtual ::Bedrock::NonOwnerPointer<::ChunkGenerationManager const> getChunkGenerationManager() const /*override*/;
168
169 virtual ::Bedrock::NotNullNonOwnerPtr<::MapDataManager> getMapDataManager() /*override*/;
170
171 virtual ::GameModeExt::MessengerFactory createMessengerFactory() const /*override*/;
172
173 virtual ::std::weak_ptr<::ISubChunkLighter> getSubChunkLighter() const /*override*/;
174
175 virtual void _subTick() /*override*/;
176
177 virtual ::TickTimeManager const& _getTickTimeManager() const /*override*/;
178
179 virtual ::TickTimeManager& _getTickTimeManager() /*override*/;
180
181 virtual ::PlayerDeathManager* _getPlayerDeathManager() /*override*/;
182
183 virtual ::MapDataManager& _getMapDataManager() /*override*/;
184
185 virtual void _initializeMapDataManager() /*override*/;
186 // NOLINTEND
187
188public:
189 // member functions
190 // NOLINTBEGIN
191 MCNAPI void _onActorEntityAdded(::Actor& actor);
192
193 MCNAPI void _onPlayerWakeUp(::Player& player);
194
195 MCNAPI ::Bedrock::NotNullNonOwnerPtr<::WorldClockRegistryServer> getWorldClockRegistryServer() const;
196 // NOLINTEND
197
198public:
199 // virtual function thunks
200 // NOLINTBEGIN
201 MCAPI bool $initialize(
202 ::std::string const& levelName,
203 ::LevelSettings const& levelSettings,
204 ::Experiments const& experiments,
205 ::std::string const* levelId,
206 ::std::optional<::std::reference_wrapper<
207 ::std::unordered_map<::std::string, ::std::unique_ptr<::BiomeJsonDocumentGlueResolvedBiomeData>>>>
208 biomeIdToResolvedData,
210 );
211
212 MCNAPI ::PlayerSleepManager const& $getPlayerSleepManager() const;
213
214 MCNAPI ::PlayerSleepManager& $getPlayerSleepManager();
215
216 MCNAPI ::Bedrock::NonOwnerPointer<::ServerPlayerSleepManager> $getServerPlayerSleepManager();
217
218 MCNAPI ::Bedrock::NonOwnerPointer<::ServerPlayerSleepManager const> $getServerPlayerSleepManager() const;
219
220 MCNAPI void $setCommandsEnabled(bool commandsEnabled);
221
223
224 MCNAPI ::ResourcePackManager* $getClientResourcePackManager() const;
225
226 MCNAPI ::ResourcePackManager* $getServerResourcePackManager() const;
227
228 MCNAPI ::TradeTables* $getTradeTables();
229
230 MCNAPI void $runCommand(
231 ::HashedString const& commandStr,
232 ::CommandOrigin& origin,
233 ::CommandOriginSystem originSystem,
234 ::CurrentCmdVersion const commandVersion
235 );
236
237 MCNAPI void $runCommand(::Command& command, ::CommandOrigin& origin, ::CommandOriginSystem originSystem);
238
240 ::std::string const& tag,
242 );
243
245 ::std::string const& tag,
247 );
248
249 MCNAPI ::Bedrock::NonOwnerPointer<::TagCacheManager> $getTagCacheManager();
250
251 MCNAPI ::LevelChunkMetaDataManager* $getLevelChunkMetaDataManager();
252
253 MCNAPI void $loadFunctionManager();
254
255 MCNAPI ::Random& $getThreadRandom() const;
256
257 MCNAPI ::PositionTrackingDB::PositionTrackingDBServer* $getPositionTrackerDBServer() const;
258
259 MCNAPI ::Bedrock::NonOwnerPointer<::VolumeEntityManagerServer> $tryGetVolumeEntityManagerServer() const;
260
261 MCNAPI void $clearAllGenerationRequests(::NetworkIdentifier const& player, ::SubClientId clientId);
262
263 MCNAPI ::Bedrock::NonOwnerPointer<::ChunkGenerationManager> $getChunkGenerationManager();
264
265 MCNAPI ::Bedrock::NonOwnerPointer<::ChunkGenerationManager const> $getChunkGenerationManager() const;
266
267 MCNAPI ::Bedrock::NotNullNonOwnerPtr<::MapDataManager> $getMapDataManager();
268
269 MCNAPI ::GameModeExt::MessengerFactory $createMessengerFactory() const;
270
271 MCNAPI ::std::weak_ptr<::ISubChunkLighter> $getSubChunkLighter() const;
272
273 MCAPI void $_subTick();
274
275 MCNAPI ::TickTimeManager const& $_getTickTimeManager() const;
276
277 MCNAPI ::TickTimeManager& $_getTickTimeManager();
278
279 MCNAPI ::PlayerDeathManager* $_getPlayerDeathManager();
280
281 MCNAPI ::MapDataManager& $_getMapDataManager();
282
284
285
286 // NOLINTEND
287};
Definition Actor.h:116
Definition ChunkGenerationManager.h:17
Definition CommandManager.h:18
Definition CommandOrigin.h:32
Definition Command.h:17
Definition DynamicPropertiesManager.h:19
Definition Experiments.h:14
Definition HashedString.h:5
Definition ISubChunkLighter.h:16
Definition LevelSettings.h:39
MCAPI void $_subTick()
Definition MapDataManager.h:24
Definition MobEvents.h:17
Definition NetworkIdentifier.h:10
Definition PlayerSleepManager.h:9
Definition Player.h:131
Definition PositionTrackingDBServer.h:22
Definition Random.h:10
Definition ResourcePackManager.h:29
Definition IServerInitializer.h:21
Definition ServerLevelStatCollectors.h:14
MCAPI void $clearAllGenerationRequests(::NetworkIdentifier const &player, ::SubClientId clientId)
MCAPI::PlayerSleepManager & $getPlayerSleepManager()
MCAPI ::Bedrock::NonOwnerPointer<::VolumeEntityManagerServer > $tryGetVolumeEntityManagerServer() const
MCAPI void $_initializeMapDataManager()
MCAPI::MapDataManager & $_getMapDataManager()
MCAPI::PositionTrackingDB::PositionTrackingDBServer * $getPositionTrackerDBServer() const
MCAPI::TickTimeManager const & $_getTickTimeManager() const
MCAPI::ResourcePackManager * $getServerResourcePackManager() const
MCAPI void $setCommandsEnabled(bool commandsEnabled)
MCAPI ::Bedrock::NonOwnerPointer<::ServerPlayerSleepManager const > $getServerPlayerSleepManager() const
MCAPI void $runCommand(::Command &command, ::CommandOrigin &origin, ::CommandOriginSystem originSystem)
MCAPI ::std::weak_ptr<::ISubChunkLighter > $getSubChunkLighter() const
MCAPI void $loadFunctionManager()
MCAPI::LevelChunkMetaDataManager * $getLevelChunkMetaDataManager()
MCAPI::PlayerSleepManager const & $getPlayerSleepManager() const
MCAPI void $runCommand(::HashedString const &commandStr, ::CommandOrigin &origin, ::CommandOriginSystem originSystem, ::CurrentCmdVersion const commandVersion)
MCAPI ::Bedrock::NonOwnerPointer<::ChunkGenerationManager const > $getChunkGenerationManager() const
MCAPI void $incrementTagCache(::std::string const &tag, ::TagRegistry<::IDType<::LevelTagIDType >, ::IDType<::LevelTagSetIDType > > &tagRegistry)
MCAPI void $setWorldTemplateOptionsUnlocked()
MCAPI::TickTimeManager & $_getTickTimeManager()
MCAPI ::Bedrock::NonOwnerPointer<::ChunkGenerationManager > $getChunkGenerationManager()
MCAPI void _onPlayerWakeUp(::Player &player)
MCAPI::Random & $getThreadRandom() const
MCAPI::PlayerDeathManager * $_getPlayerDeathManager()
MCAPI void $decrementTagCache(::std::string const &tag, ::TagRegistry<::IDType<::LevelTagIDType >, ::IDType<::LevelTagSetIDType > > &tagRegistry)
MCAPI ::Bedrock::NotNullNonOwnerPtr<::MapDataManager > $getMapDataManager()
MCAPI ::Bedrock::NonOwnerPointer<::ServerPlayerSleepManager > $getServerPlayerSleepManager()
MCAPI::ResourcePackManager * $getClientResourcePackManager() const
MCAPI ::Bedrock::NotNullNonOwnerPtr<::WorldClockRegistryServer > getWorldClockRegistryServer() const
MCAPI::GameModeExt::MessengerFactory $createMessengerFactory() const
MCAPI void _onActorEntityAdded(::Actor &actor)
MCAPI ::Bedrock::NonOwnerPointer<::TagCacheManager > $getTagCacheManager()
MCAPI::TradeTables * $getTradeTables()
Definition ServerMapDataManager.h:21
Definition ServerPlayerSleepManager.h:22
Definition ServerSubChunkLighter.h:16
Definition TagCacheManager.h:18
Definition TagRegistry.h:9
Definition TickTimeManagerServer.h:25
Definition TickTimeManager.h:16
Definition TradeTables.h:19
Definition VolumeEntityManagerServer.h:19
Definition WorldClockRegistryServer.h:21
Definition BiomeJsonDocumentGlueResolvedBiomeData.h:11
Definition MessengerFactory.h:13
Definition IDType.h:6
Definition LevelTagIDType.h:5
Definition LevelTagSetIDType.h:5