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