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/scripting/RegisterDiagnosticsStatsTypes.h"
22#include "mc/scripting/ScriptSettings.h"
23#include "mc/scripting/ServerScriptManagerEvents.h"
24#include "mc/world/events/EventListenerDispatcher.h"
25#include "mc/world/events/EventResult.h"
26#include "mc/world/events/LevelEventListener.h"
27#include "mc/world/events/ServerInstanceEventListener.h"
28
29// auto generated forward declare list
30// clang-format off
34class ItemRegistryRef;
38class PackManifest;
39class Scheduler;
43class ScriptDebugger;
51class ScriptWatchdog;
52class ServerInstance;
53class ServerLevel;
56namespace ScriptModuleMinecraft { class CustomCommandRegistry; }
57namespace ScriptModuleMinecraft { class IScriptItemCustomComponentRegistry; }
58namespace ScriptModuleMinecraft { class ScriptBlockCustomComponentsRegistry; }
59namespace ScriptModuleMinecraft { class ScriptCustomComponentParameterCache; }
60namespace ScriptModuleMinecraft { class ScriptCustomSpawnRulesRegistry; }
61namespace ScriptModuleMinecraft { class ScriptGlobalEventListeners; }
62namespace Scripting { class DependencyLocator; }
63namespace Scripting { class IRuntime; }
64namespace Scripting { class RegistryManager; }
65namespace Scripting { class ScriptEngine; }
66namespace Scripting { class WeakLifetimeScope; }
67namespace Scripting { struct ModuleDescriptor; }
68namespace cereal { struct ReflectionCtx; }
69// clang-format on
70
71class ServerScriptManager : public ::EventListenerDispatcher<::ServerInstanceEventListener>,
72 public ::EventListenerDispatcher<::LevelEventListener> {
73public:
74 // ServerScriptManager inner types define
75 enum class RuntimeVersion : int {
76 V1 = 1,
77 V2 = 2,
78 };
79
80public:
81 // member variables
82 // NOLINTBEGIN
83 ::ll::TypedStorage<8, 144, ::ServerScriptManagerEvents> mScriptStateEvents;
84 ::ll::TypedStorage<8, 704, ::ScriptSettings> mSettings;
85 ::ll::TypedStorage<8, 8, ::ServerLevel&> mServerLevel;
86 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::Scheduler>> mServerScheduler;
87 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::cereal::ReflectionCtx>> mCerealContext;
88 ::ll::TypedStorage<1, 1, ::RegisterDiagnosticsStatsTypes> mRegisterDiagnosticsStatsTypes;
89 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::IScriptTelemetryLogger>> mTelemetryLogger;
90 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ScriptClientDiagnosticsListener>> mClientDiagnosticsListener;
91 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::LevelEventHandlerRegistrar>> mLevelEventHandlerRegistrar;
92 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ScriptModuleMinecraft::CustomCommandRegistry>> mCustomCommandRegistry;
93 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ScriptModuleMinecraft::ScriptCustomComponentParameterCache>>
94 mCustomComponentParameterCache;
95 ::ll::TypedStorage<8, 16, ::OwnerPtr<::ScriptModuleMinecraft::ScriptBlockCustomComponentsRegistry>>
96 mBlockCustomComponentsRegistry;
97 ::ll::TypedStorage<8, 16, ::OwnerPtr<::ScriptModuleMinecraft::IScriptItemCustomComponentRegistry>>
98 mItemCustomComponentRegistry;
99 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ScriptModuleMinecraft::ScriptCustomSpawnRulesRegistry>>
100 mCustomSpawnRulesRegistry;
101 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ScriptModuleMinecraft::ScriptGlobalEventListeners>>
102 mGlobalEventListeners;
103 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::Scripting::ScriptEngine>> mScriptEngine;
104 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ScriptPluginManager>> mScriptPluginManager;
105 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ScriptAsyncJobCoordinator>> mAsyncJobCoordinator;
106 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ScriptFormPromiseTracker>> mFormPromiseTracker;
107 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ScriptDebuggerWatchdog>> mScriptDebuggerWatchdog;
108 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ScriptDebugger>> mScriptDebugger;
109 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ScriptDiagnosticsPublishToFile>> mDiagnosticsPublishToFile;
110 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ScriptDiagnostics>> mScriptDiagnostics;
111 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ScriptTickListener>> mScriptTickListener;
112 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ScriptContentLogEndPoint>> mScriptContentLogEndPoint;
113 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ScriptWatchdog>> mScriptWatchdog;
114 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::AsyncJoinRegistrar>> mAsyncJoinRegistrar;
115 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::Scripting::DependencyLocator>> mDependencyLocator;
116 ::ll::TypedStorage<8, 24, ::std::vector<::std::shared_ptr<::Scripting::IRuntime>>> mSharedRuntimes;
117 ::ll::TypedStorage<
118 8,
119 24,
120 ::std::vector<::std::function<bool(
121 ::PackManifest const&,
125 )>>>
126 mModuleFilters;
127 // NOLINTEND
128
129public:
130 // prevent constructor by default
131 ServerScriptManager& operator=(ServerScriptManager const&);
134
135public:
136 // virtual functions
137 // NOLINTBEGIN
138 // vIndex: 13
139 virtual ::EventResult onEvent(::ServerInstanceRequestResourceReload const& reloadEvent) /*override*/;
140
141 // vIndex: 13
142 virtual ::EventResult onEvent(::LevelStartLeaveGameEvent const& levelStartLeaveGameEvent) /*override*/;
143
144 // vIndex: 0
145 virtual ~ServerScriptManager() /*override*/;
146
147 // vIndex: 6
148 virtual ::EventResult onServerUpdateEnd(::ServerInstance& instance) /*override*/;
149
150 // vIndex: 9
151 virtual ::EventResult onServerThreadStarted(::ServerInstance& instance) /*override*/;
152 // NOLINTEND
153
154public:
155 // member functions
156 // NOLINTBEGIN
158 ::ScriptSettings&& settings,
159 ::ServerLevel& serverLevel,
161 ::MinecraftCommands& commands,
162 ::IMinecraftEventing& eventing,
163 ::ItemRegistryRef itemRegistry,
164 ::ServerInstance& server,
166 ::std::unique_ptr<::AsyncJoinRegistrar>&& asyncJoinRegistrar
167 );
168
169 MCAPI void _initModules(::ServerInstance& server, ::ServerLevel& serverLevel);
170
171 MCAPI void _loadPlugins(::ServerLevel& serverLevel, bool fromReload);
172
173 MCAPI void _onPreReload(
174 ::ServerInstance& serverInstance,
175 ::ServerLevel& level,
177 );
178
179 MCAPI void _runPlugins(::PluginExecutionGroup exeGroup, ::ServerInstance& serverInstance);
180
181 MCAPI void _sendScriptModuleStartupEvent(::ServerLevel& level) const;
182
183 MCAPI void _sendWorldInitializeEvent(::ServerLevel& level) const;
184 // NOLINTEND
185
186public:
187 // static functions
188 // NOLINTBEGIN
189 MCAPI static void _sendWorldInitializeEventImpl(
190 ::ServerLevel& level,
194 bool lastEventInList
195 );
196 // NOLINTEND
197
198public:
199 // constructor thunks
200 // NOLINTBEGIN
201 MCAPI void* $ctor(
202 ::ScriptSettings&& settings,
203 ::ServerLevel& serverLevel,
205 ::MinecraftCommands& commands,
206 ::IMinecraftEventing& eventing,
207 ::ItemRegistryRef itemRegistry,
208 ::ServerInstance& server,
210 ::std::unique_ptr<::AsyncJoinRegistrar>&& asyncJoinRegistrar
211 );
212 // NOLINTEND
213
214public:
215 // destructor thunk
216 // NOLINTBEGIN
217 MCAPI void $dtor();
218 // NOLINTEND
219
220public:
221 // virtual function thunks
222 // NOLINTBEGIN
223 MCAPI ::EventResult $onEvent(::ServerInstanceRequestResourceReload const& reloadEvent);
224
225 MCAPI ::EventResult $onEvent(::LevelStartLeaveGameEvent const& levelStartLeaveGameEvent);
226
227 MCAPI ::EventResult $onServerUpdateEnd(::ServerInstance& instance);
228
229 MCAPI ::EventResult $onServerThreadStarted(::ServerInstance& instance);
230 // NOLINTEND
231
232public:
233 // vftables
234 // NOLINTBEGIN
236
238 // NOLINTEND
239};
Definition AsyncJoinRegistrar.h:19
Definition NonOwnerPointer.h:9
Definition EventListenerDispatcher.h:6
Definition IMinecraftEventing.h:144
Definition IScriptTelemetryLogger.h:10
Definition ItemRegistryRef.h:32
Definition LevelEventHandlerRegistrar.h:10
Definition MinecraftCommands.h:33
Definition MinecraftGameTest.h:21
Definition PackManifest.h:31
Definition Scheduler.h:13
Definition ScriptAsyncJobCoordinator.h:11
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:35
Definition IScriptItemCustomComponentRegistry.h:20
Definition ScriptBlockCustomComponentsRegistry.h:53
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 ServerInstance.h:73
Definition ServerLevel.h:54
Definition ServerScriptManager.h:72
static MCAPI void ** $vftableForEventListenerDispatcherLevelEventListener()
static MCAPI void ** $vftableForEventListenerDispatcherServerInstanceEventListener()
Definition optional_ref.h:10
Definition LevelStartLeaveGameEvent.h:13
Definition ScriptSettings.h:17
Definition ModuleDescriptor.h:7
Definition ServerInstanceRequestResourceReload.h:13