LeviLamina
Loading...
Searching...
No Matches
ServerScriptManager.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4#include "mc/deps/core/threading/Scheduler.h"
5#include "mc/deps/scripting/script_engine/DependencyLocator.h"
6#include "mc/scripting/ScriptFormPromiseTracker.h"
7#include "mc/scripting/ScriptPluginManager.h"
8#include "mc/scripting/ScriptPluginResult.h"
9#include "mc/scripting/ScriptPrintLogger.h"
10#include "mc/scripting/ScriptSettings.h"
11#include "mc/scripting/ScriptTickListener.h"
12#include "mc/scripting/debugger/ScriptDebugger.h"
13#include "mc/scripting/debugger/ScriptDebuggerWatchdog.h"
14
15
16// auto generated inclusion list
17#include "mc/deps/core/utility/NonOwnerPointer.h"
18#include "mc/deps/core/utility/optional_ref.h"
19#include "mc/deps/game_refs/OwnerPtr.h"
20#include "mc/scripting/PluginExecutionGroup.h"
21#include "mc/world/events/EventListenerDispatcher.h"
22#include "mc/world/events/EventResult.h"
23
24// auto generated forward declare list
25// clang-format off
28class ItemRegistryRef;
33class PackManifest;
35class Scheduler;
39class ScriptDebugger;
47class ScriptWatchdog;
48class ServerInstance;
50class ServerLevel;
52struct ScriptSettings;
54namespace ScriptModuleMinecraft { class IScriptItemCustomComponentRegistry; }
55namespace ScriptModuleMinecraft { class ScriptBlockCustomComponentsRegistry; }
56namespace ScriptModuleMinecraft { class ScriptGlobalEventListeners; }
57namespace Scripting { class DependencyLocator; }
58namespace Scripting { class IRuntime; }
59namespace Scripting { class RegistryManager; }
60namespace Scripting { class ScriptEngine; }
61namespace Scripting { class WeakLifetimeScope; }
62namespace Scripting { struct ModuleDescriptor; }
63namespace cereal { struct ReflectionCtx; }
64// clang-format on
65
66class ServerScriptManager : public ::EventListenerDispatcher<::ServerInstanceEventListener>,
67 public ::EventListenerDispatcher<::LevelEventListener> {
68public:
69 // ServerScriptManager inner types define
70 enum class RuntimeVersion : int {
71 V1 = 1,
72 V2 = 2,
73 };
74
75public:
76 // member variables
77 // NOLINTBEGIN
78 ::ll::TypedStorage<8, 704, ::ScriptSettings> mSettings;
79 ::ll::TypedStorage<8, 8, ::ServerLevel&> mServerLevel;
80 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::Scheduler>> mServerScheduler;
81 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::cereal::ReflectionCtx>> mCerealContext;
82 ::ll::TypedStorage<1, 1, ::RegisterDiagnosticsStatsTypes> mRegisterDiagnosticsStatsTypes;
83 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::IScriptTelemetryLogger>> mTelemetryLogger;
84 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ScriptClientDiagnosticsListener>> mClientDiagnosticsListener;
85 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::LevelEventHandlerRegistrar>> mLevelEventHandlerRegistrar;
86 ::ll::TypedStorage<8, 16, ::OwnerPtr<::ScriptModuleMinecraft::ScriptBlockCustomComponentsRegistry>>
87 mBlockCustomComponentsRegistry;
88 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ScriptModuleMinecraft::IScriptItemCustomComponentRegistry>>
89 mItemCustomComponentRegistry;
90 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ScriptModuleMinecraft::ScriptGlobalEventListeners>>
91 mGlobalEventListeners;
92 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::Scripting::ScriptEngine>> mScriptEngine;
93 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ScriptPluginManager>> mScriptPluginManager;
94 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ScriptAsyncJobCoordinator>> mAsyncJobCoordinator;
95 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ScriptFormPromiseTracker>> mFormPromiseTracker;
96 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ScriptDebuggerWatchdog>> mScriptDebuggerWatchdog;
97 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ScriptDebugger>> mScriptDebugger;
98 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ScriptDiagnosticsPublishToFile>> mDiagnosticsPublishToFile;
99 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ScriptDiagnostics>> mScriptDiagnostics;
100 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ScriptTickListener>> mScriptTickListener;
101 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ScriptContentLogEndPoint>> mScriptContentLogEndPoint;
102 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ScriptWatchdog>> mScriptWatchdog;
103 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::Scripting::DependencyLocator>> mDependencyLocator;
104 ::ll::TypedStorage<8, 24, ::std::vector<::std::shared_ptr<::Scripting::IRuntime>>> mSharedRuntimes;
105 ::ll::TypedStorage<
106 8,
107 24,
108 ::std::vector<::std::function<
110 mModuleFilters;
111 // NOLINTEND
112
113public:
114 // virtual functions
115 // NOLINTBEGIN
116 // vIndex: 13
117 virtual ::EventResult onEvent(::ServerInstanceRequestResourceReload const& reloadEvent) /*override*/;
118
119 // vIndex: 13
120 virtual ::EventResult onEvent(::LevelStartLeaveGameEvent const& levelStartLeaveGameEvent) /*override*/;
121
122 // vIndex: 0
123 virtual ~ServerScriptManager() /*override*/;
124
125 // vIndex: 6
126 virtual ::EventResult onServerUpdateEnd(::ServerInstance& instance) /*override*/;
127
128 // vIndex: 9
129 virtual ::EventResult onServerThreadStarted(::ServerInstance& instance) /*override*/;
130 // NOLINTEND
131
132public:
133 // member functions
134 // NOLINTBEGIN
136 ::ScriptSettings&& settings,
137 ::ServerLevel& serverLevel,
139 ::MinecraftCommands& commands,
140 ::IMinecraftEventing& minecraftEventings,
141 ::ItemRegistryRef itemRegistry,
142 ::ServerInstance& server,
144 );
145
146 MCAPI void _initModules(::ServerInstance& server, ::ServerLevel& serverLevel);
147
148 MCAPI void _loadPlugins(::ServerLevel& serverLevel, bool fromReload);
149
150 MCAPI void _onPreReload(
151 ::ServerInstance& serverInstance,
152 ::ServerLevel& level,
154 );
155
156 MCAPI void _runPlugins(::PluginExecutionGroup exeGroup, ::ServerInstance& serverInstance);
157
158 MCAPI void _sendScriptModuleStartupEvent(::ServerLevel& level) const;
159
160 MCAPI void _sendWorldInitializeEvent(::ServerLevel& level) const;
161 // NOLINTEND
162
163public:
164 // static functions
165 // NOLINTBEGIN
166 MCAPI static void _sendWorldInitializeEventImpl(
167 ::ServerLevel& level,
171 bool lastEventInList
172 );
173 // NOLINTEND
174
175public:
176 // constructor thunks
177 // NOLINTBEGIN
178 MCAPI void* $ctor(
179 ::ScriptSettings&& settings,
180 ::ServerLevel& serverLevel,
182 ::MinecraftCommands& commands,
183 ::IMinecraftEventing& minecraftEventings,
184 ::ItemRegistryRef itemRegistry,
185 ::ServerInstance& server,
187 );
188 // NOLINTEND
189
190public:
191 // destructor thunk
192 // NOLINTBEGIN
193 MCAPI void $dtor();
194 // NOLINTEND
195
196public:
197 // virtual function thunks
198 // NOLINTBEGIN
199 MCAPI ::EventResult $onEvent(::ServerInstanceRequestResourceReload const& reloadEvent);
200
201 MCAPI ::EventResult $onEvent(::LevelStartLeaveGameEvent const& levelStartLeaveGameEvent);
202
203 MCAPI ::EventResult $onServerUpdateEnd(::ServerInstance& instance);
204
205 MCAPI ::EventResult $onServerThreadStarted(::ServerInstance& instance);
206 // NOLINTEND
207
208public:
209 // vftables
210 // NOLINTBEGIN
211 MCAPI static void** $vftableForEventListenerDispatcherLevelEventListener();
212
213 MCAPI static void** $vftableForEventListenerDispatcherServerInstanceEventListener();
214 // NOLINTEND
215};
Definition NonOwnerPointer.h:9
Definition EventListenerDispatcher.h:6
Definition IMinecraftEventing.h:143
Definition IScriptTelemetryLogger.h:10
Definition ItemRegistryRef.h:29
Definition LevelEventHandlerRegistrar.h:10
Definition LevelEventListener.h:16
Definition MinecraftCommands.h:33
Definition MinecraftGameTest.h:21
Definition PackManifest.h:19
Definition RegisterDiagnosticsStatsTypes.h:10
Definition Scheduler.h:13
Definition ScriptAsyncJobCoordinator.h:10
Definition ScriptClientDiagnosticsListener.h:14
Definition ScriptContentLogEndPoint.h:10
Definition ScriptDebuggerWatchdog.h:8
Definition ScriptDebugger.h:26
Definition ScriptDiagnosticsPublishToFile.h:16
Definition ScriptDiagnostics.h:11
Definition ScriptFormPromiseTracker.h:32
Definition IScriptItemCustomComponentRegistry.h:23
Definition ScriptBlockCustomComponentsRegistry.h:44
Definition ScriptPluginManager.h:26
Definition ScriptPluginResult.h:11
Definition ScriptTickListener.h:21
Definition ScriptWatchdog.h:5
Definition RegistryManager.h:12
Definition WeakLifetimeScope.h:12
Definition ServerInstanceEventListener.h:17
Definition ServerInstance.h:65
Definition ServerLevel.h:52
Definition ServerScriptManager.h:67
Definition optional_ref.h:10
Definition LevelStartLeaveGameEvent.h:13
Definition ScriptSettings.h:17
Definition ModuleDescriptor.h:7
Definition ServerInstanceRequestResourceReload.h:5