89 enum class InstanceState :
int {
97 struct CreateServerLevelOps {
100 using CreateDimensionFactoryCallback =
102 ::Bedrock::NotNullNonOwnerPtr<::ILevel>,
109 ::ll::TypedStorage<8, 8, ::ServerInstance&> mInstance;
110 ::ll::TypedStorage<1, 1, bool> mServerAuthSound;
111 ::ll::TypedStorage<8, 8, ::IMinecraftEventing&> mEventing;
112 ::ll::TypedStorage<8, 8, ::ResourcePackManager&> mClientResourcePackManager;
117 ::Bedrock::NotNullNonOwnerPtr<::ILevel>,
120 mCreateDimensionFactoryAndManager;
125 CreateServerLevelOps& operator=(CreateServerLevelOps
const&);
126 CreateServerLevelOps(CreateServerLevelOps
const&);
127 CreateServerLevelOps();
130 struct NetworkToggleOptions {
134 ::ll::TypedStorage<8, 8, ::AppPlatform const&> mPlatform;
135 ::ll::TypedStorage<1, 1, bool> mDisableLanSignaling;
136 ::ll::TypedStorage<1, 1, bool> mIsServerVisibleToLanDiscovery;
137 ::ll::TypedStorage<1, 1, bool> mEnablePacketRateLimiting;
138 ::ll::TypedStorage<8, 8, ::ConnectionDefinition const&> mConnectionDefinition;
143 NetworkToggleOptions& operator=(NetworkToggleOptions
const&);
144 NetworkToggleOptions(NetworkToggleOptions
const&);
145 NetworkToggleOptions();
148 struct PostLevelArgs {
152 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ServerLevel>> mLevel;
153 ::ll::TypedStorage<8, 72, ::Experiments> mExperiments;
154 ::ll::TypedStorage<8, 1344, ::LevelSettings> mLevelSettings;
155 ::ll::TypedStorage<8, 8, ::ResourcePackManager&> mClientResourcePackManager;
156 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::IResourcePackRepository>> mResourcePackRepository;
157 ::ll::TypedStorage<8, 104, ::std::optional<::CommandsRegistryConfiguration const>>
158 mCommandsRegistryConfiguration;
159 ::ll::TypedStorage<4, 20, ::ConnectionDefinition> mConnectionDefinition;
160 ::ll::TypedStorage<8, 32, ::OwnerPtr<::EntityContext>> mLevelEntityContext;
161 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::ScriptPackSettingsCache>> mPackSettingsCache;
162 ::ll::TypedStorage<1, 1, bool> mEnableItemStackNetManager;
172 PostLevelArgs& operator=(PostLevelArgs
const&);
173 PostLevelArgs(PostLevelArgs
const&);
181 ::ll::TypedStorage<8, 32, ::std::string> mLevelName;
185 ::std::unordered_map<::std::string, ::std::unique_ptr<::BiomeJsonDocumentGlueResolvedBiomeData>>>
186 mBiomeIdToResolvedData;
187 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::ServerInstance::PostLevelArgs>> mPost;
194 ::ll::TypedStorage<8, 8, ::std::chrono::steady_clock::time_point> mLastSyncTime;
195 ::ll::TypedStorage<1, 1, bool const> mIsDedicatedServer;
196 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::Minecraft>> mMinecraft;
197 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::ServerNetworkSystem>> mNetwork;
198 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::LoopbackPacketSender>> mPacketSender;
199 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::Timer>> mSimTimer;
200 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::Timer>> mRealTimer;
201 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::Scheduler>> mScheduler;
202 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::EducationOptions>> mEducationOptions;
203 ::ll::TypedStorage<8, 8, ::LevelStorage*> mStorage;
204 ::ll::TypedStorage<1, 1, ::std::atomic<bool>> mInUpdate;
205 ::ll::TypedStorage<4, 4, ::std::atomic<int>> mWriteRefCounter;
206 ::ll::TypedStorage<1, 1, ::std::atomic<bool>> mThreadShouldJoin;
207 ::ll::TypedStorage<8, 80, ::std::mutex> mMutexDestruction;
208 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::ServerInstanceEventCoordinator>> mEventCoordinator;
209 ::ll::TypedStorage<4, 4, ::std::atomic<::ServerInstance::InstanceState>> mInstanceState;
210 ::ll::TypedStorage<8, 16, ::std::thread> mServerInstanceThread;
211 ::ll::TypedStorage<8, 80, ::std::mutex> mResumeMutex;
212 ::ll::TypedStorage<8, 72, ::std::condition_variable> mResumeSignal;
213 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::Scripting::RegistryManager>> mScriptRegistryManager;
214 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ServerScriptManager>> mServerScriptManager;
215 ::ll::TypedStorage<8, 64, ::std::function<void(
char const*)>> mScriptWatchdogCriticalErrorCallback;
216 ::ll::TypedStorage<8, 64, ::std::function<void(::Connection::DisconnectFailReason,
char const*)>>
217 mUnrecoverableErrorCallback;
218 ::ll::TypedStorage<1, 1, bool> mHandledLevelCorruption;
219 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::TextFilteringProcessor>> mTextFilteringProcessor;
220 ::ll::TypedStorage<8, 8, ::std::chrono::microseconds> mWakeupInterval;
221 ::ll::TypedStorage<8, 32, ::std::string> mLevelId;
222 ::ll::TypedStorage<8, 32, ::std::string> mServerName;
223 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::WorldSessionEndPoint>> mWorldSessionEndPoint;
224 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::Core::FileStorageArea>> mStorageAreaForLevel;
225 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::ItemRegistry>> mServerItemRegistry;
226 ::ll::TypedStorage<1, 1, bool> mEnableItemStackNetManager;
227 ::ll::TypedStorage<1, 1, bool> mEnableRealmsStories;
228 ::ll::TypedStorage<1, 1, bool> mbFlaggedForEarlyDestruction;
229 ::ll::TypedStorage<8, 8, ::ServiceRegistrationToken<::ServerInstance>> mServiceRegistrationToken;
230 ::ll::TypedStorage<1, 1, bool> mHasScheduledLeaveGame;
231 ::ll::TypedStorage<8, 32, ::std::optional<::std::vector<::WorldSaveAndExitPackTelemetryData>>>
232 mWorldSaveAndExitPackTelemetry;
233 ::ll::TypedStorage<1, 1, bool> mCriticalDiskErrorTelemetrySent;
234 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::Editor::IEditorManager>> mEditorManager;
235 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::CDNConfig>> mCDNConfig;
236 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::ServerTextSettings>> mServerTextSettings;
237 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::cereal::ReflectionCtx>> mCerealContext;
238 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::LinkedAssetValidator>> mLinkedAssetValidator;
239 ::ll::TypedStorage<1, 1, ::ServerGraphicsSettings> mGraphicsSettings;
240 ::ll::TypedStorage<8, 8, ::gsl::not_null<::std::unique_ptr<::ServerInstanceMessenger::IMessenger>>> mMessenger;
244 ::ll::TypedStorage<8, 8, ::
std::unique_ptr<::ServerInitialization::IServerInitializer>> mInitializer;
249 mServerPerformanceDataRegistrationToken;
259 virtual ~ServerInstance() = default;
261 virtual
void onLowMemory(::LowMemorySeverity) ;
263 virtual
void onLevelCorrupt() ;
265 virtual
void onGameModeChanged() ;
267 virtual
void onTick(
int nTick,
int maxTick) ;
269 virtual
void onInternetUpdate() ;
271 virtual
void onGameSessionReset() ;
273 virtual
void onLevelExit() ;
275 virtual
void onRequestResourceReload() ;
277 virtual
void onLowDiskSpace(
bool const bSet, uint64) ;
279 virtual
void onOutOfDiskSpace(
bool const bSet, uint64) ;
281 virtual
void onCriticalDiskError(
bool const bSet, ::Core::LevelStorageState const& errorCode) ;
283 virtual
void onAppSuspended() ;
285 virtual
void onAppResumed() ;
287 virtual
void updateScreens() ;
304 MCNAPI ::std::string getLevelId()
const;
309 MCAPI
void leaveGameSync();
316 MCNAPI
bool requestInGamePause(
bool status);
318 MCNAPI
void setWorldSaveAndExitPackTelemetry(::std::vector<::WorldSaveAndExitPackTelemetryData> packs);
321 MCAPI
void startLeaveGame();
333 ::ServerInstance& instance,
341 MCNAPI static ::brstd::move_only_function<
346 MCNAPI
static bool forceOffClientChunkGeneration(
::LevelData& levelData);
368 MCNAPI static ::std::string
const& POST_INIT_ERROR();