LeviLamina
Loading...
Searching...
No Matches
ServerNetworkHandler.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/certificates/identity/PlayerAuthenticationInfo.h"
7#include "mc/client/network/blob_cache/client_blob_cache/TransferBuilder.h"
8#include "mc/common/SubClientId.h"
9#include "mc/comprehensive/ParticleType.h"
10#include "mc/deps/core/minecraft/threading/EnableQueueForMainThread.h"
11#include "mc/deps/core/platform/BuildPlatform.h"
12#include "mc/deps/core/resource/PackIdVersion.h"
13#include "mc/deps/core/threading/SharedAsync.h"
14#include "mc/deps/core/utility/NonOwnerPointer.h"
15#include "mc/deps/core/utility/ServiceReference.h"
16#include "mc/deps/core/utility/optional_ref.h"
17#include "mc/deps/game_refs/OwnerPtr.h"
18#include "mc/events/event_data/ServerTelemetryData.h"
19#include "mc/network/IncomingPacketFilterResult.h"
20#include "mc/network/MinecraftPacketIds.h"
21#include "mc/network/NetEventCallback.h"
22#include "mc/network/NetworkIdentifier.h"
23#include "mc/network/NetworkServerConfig.h"
24#include "mc/network/Nonce.h"
25#include "mc/network/OutgoingPacketFilterResult.h"
26#include "mc/network/PacketViolationResponse.h"
27#include "mc/network/ServerNetworkHandlerDependencies.h"
28#include "mc/network/XboxLiveUserObserver.h"
29#include "mc/network/connection/DisconnectFailReason.h"
30#include "mc/network/connection/DisconnectionStage.h"
31#include "mc/platform/MultiplayerServiceObserver.h"
32#include "mc/platform/UUID.h"
33#include "mc/platform/brstd/move_only_function.h"
34#include "mc/platform/threading/Mutex.h"
35#include "mc/server/DenyList.h"
36#include "mc/server/ServerTextEvent.h"
37#include "mc/server/commands/CommandPermissionLevel.h"
38#include "mc/server/commands/PlayerPermissionLevel.h"
39#include "mc/server/config/server_configuration/ServerConfigurationJoinInfo.h"
40#include "mc/world/level/LevelListener.h"
41
42// auto generated forward declare list
43// clang-format off
44class Abilities;
47class AllowList;
48class AnimatePacket;
50class AppConfigs;
56class BlockSource;
57class BookEditPacket;
58class BossEventPacket;
73class DebugInfoPacket;
76class EmoteListPacket;
77class EmotePacket;
78class EntityContext;
79class GameCallbacks;
83class IEDUSystems;
84class ILevel;
85class IMinecraftApp;
87class InteractPacket;
90class LabTablePacket;
93class LoginPacket;
103class NpcRequestPacket;
104class Packet;
105class PacketSender;
107class PermissionsFile;
110class Player;
114class PlayerSkinPacket;
127class RespawnPacket;
128class Scheduler;
133class ServerLocator;
135class ServerPlayer;
152class SubChunkPacket;
156class TaskGroup;
158class TextPacket;
162class Vec3;
163struct ActorUniqueID;
164struct AsyncJoinAllow;
165struct AsyncJoinDeny;
166struct ChatEvent;
168struct MessToken;
170struct PackInfoData;
171namespace Automation { class AutomationClient; }
172namespace Bedrock::Safety { class RedactableString; }
173namespace ClientBlobCache::Server { class ActiveTransfersManager; }
174namespace Json { class Value; }
175namespace ResourcePackPathLifetimeHelpers { class ResourcePackPathCache; }
176namespace Social { class GameConnectionInfo; }
177namespace Social { struct OnlineId; }
178// clang-format on
179
180class ServerNetworkHandler : public ::Bedrock::Threading::EnableQueueForMainThread,
181 public ::NetEventCallback,
182 public ::LevelListener,
185public:
186 // ServerNetworkHandler inner types declare
187 // clang-format off
188 class Client;
189 struct NonceWithTTL;
191 // clang-format on
192
193 // ServerNetworkHandler inner types define
194 class Client {
195 public:
196 // member variables
197 // NOLINTBEGIN
198 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ConnectionRequest>> mPrimaryRequest;
199 ::ll::TypedStorage<8, 320, ::PlayerAuthenticationInfo> mPrimaryPlayerInfo;
200 ::ll::TypedStorage<8, 32, ::std::string> mClientInfoPartyId;
201 ::ll::TypedStorage<8, 64, ::std::unordered_map<::SubClientId, ::PlayerAuthenticationInfo>> mSubClientPlayerInfo;
202 // NOLINTEND
203
204 public:
205 // prevent constructor by default
206 Client();
207
208 public:
209 // member functions
210 // NOLINTBEGIN
211 MCAPI
212 Client(::std::unique_ptr<::ConnectionRequest> primaryRequest, ::PlayerAuthenticationInfo primaryPlayerInfo);
213
214 MCAPI void addSubClientPlayerInfo(::SubClientId subClientId, ::PlayerAuthenticationInfo playerInfo);
215
216 MCAPI void removeSubClientPlayerInfo(::SubClientId subClientId);
217
218 MCAPI ~Client();
219 // NOLINTEND
220
221 public:
222 // constructor thunks
223 // NOLINTBEGIN
224 MCAPI void*
225 $ctor(::std::unique_ptr<::ConnectionRequest> primaryRequest, ::PlayerAuthenticationInfo primaryPlayerInfo);
226 // NOLINTEND
227
228 public:
229 // destructor thunk
230 // NOLINTBEGIN
231 MCAPI void $dtor();
232 // NOLINTEND
233 };
234
236 public:
237 // member variables
238 // NOLINTBEGIN
239 ::ll::TypedStorage<8, 32, ::Social::Nonce> mValue;
240 ::ll::TypedStorage<8, 8, ::std::chrono::steady_clock::time_point> mTtl;
241 // NOLINTEND
242
243 public:
244 // member functions
245 // NOLINTBEGIN
246 MCAPI ~NonceWithTTL();
247 // NOLINTEND
248
249 public:
250 // destructor thunk
251 // NOLINTBEGIN
252 MCFOLD void $dtor();
253 // NOLINTEND
254 };
255
257 public:
258 // member variables
259 // NOLINTBEGIN
260 ::ll::TypedStorage<8, 248, ::ClientBlobCache::Server::TransferBuilder> mTransferBuilder;
261 // NOLINTEND
262 };
263
264public:
265 // member variables
266 // NOLINTBEGIN
267 ::ll::TypedStorage<
268 8,
269 64,
270 ::std::unordered_map<::NetworkIdentifier, ::std::unique_ptr<::ServerNetworkHandler::Client>>>
271 mClients;
272 ::ll::TypedStorage<8, 8, ::GameCallbacks&> mGameCallbacks;
273 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::ILevel>> mLevel;
274 ::ll::TypedStorage<8, 8, ::ServerNetworkSystem&> mNetwork;
275 ::ll::TypedStorage<8, 8, ::PrivateKeyManager&> mServerKeys;
276 ::ll::TypedStorage<8, 8, ::ServerLocator&> mServerLocator;
277 ::ll::TypedStorage<8, 8, ::gsl::not_null<::PacketSender*>> mPacketSender;
278 ::ll::TypedStorage<8, 8, ::AllowList&> mAllowList;
279 ::ll::TypedStorage<8, 8, ::PermissionsFile*> mPermissionsFile;
280 ::ll::TypedStorage<8, 104, ::DenyList> mServerDenyList;
281 ::ll::TypedStorage<8, 72, ::NetworkServerConfig> mNetworkServerConfig;
282 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::ScriptPackSettingsCache>> mPackSettingsCache;
283 ::ll::TypedStorage<1, 1, bool> mHasDisplayedPackErrors;
284 ::ll::TypedStorage<8, 176, ::NetworkIdentifier> mMyId;
285 ::ll::TypedStorage<4, 4, int const> mMaxChunkRadius;
286 ::ll::TypedStorage<8, 8, ::MinecraftCommands&> mMinecraftCommands;
287 ::ll::TypedStorage<8, 8, ::IMinecraftApp&> mApp;
288 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::TextFilteringProcessor>> mTextFilteringProcessor;
289 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ClientBlobCache::Server::ActiveTransfersManager>> mClientCacheManager;
290 ::ll::TypedStorage<8, 64, ::std::unordered_map<::NetworkIdentifier, ::Json::Value>>
291 mServerStorageForClientsConnectingAttempt;
292 ::ll::TypedStorage<8, 64, ::std::unordered_map<::std::string, ::ServerNetworkHandler::NonceWithTTL>> mPlayerNonces;
293 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ClassroomModeNetworkHandler>> mCompanionHandler;
294 ::ll::TypedStorage<8, 80, ::Bedrock::Threading::Mutex> mValidatePlayerMutex;
295 ::ll::TypedStorage<1, 1, bool> mAllowIncoming;
296 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::IServerNetworkController>> mServerNetworkController;
297 ::ll::TypedStorage<8, 32, ::std::string> mServerName;
298 ::ll::TypedStorage<4, 4, int> mMaxNumPlayers;
299 ::ll::TypedStorage<8, 64, ::std::unordered_set<::mce::UUID>> mKnownEmotePieceIdLookup;
300 ::ll::TypedStorage<8, 24, ::std::vector<::mce::UUID>> mKnownEmotePieceIds;
301 ::ll::TypedStorage<
302 8,
303 64,
304 ::std::unordered_map<
305 uint64,
306 ::std::unordered_map<::std::string, ::std::shared_ptr<::ResourcePackFileUploadManager>>>>
307 mResourceUploadManagers;
308 ::ll::TypedStorage<8, 16, ::gsl::not_null<::std::shared_ptr<::Bedrock::Threading::SharedAsync<void>>>>
309 mPreviousUpload;
310 ::ll::
311 TypedStorage<8, 8, ::gsl::not_null<::std::unique_ptr<::ResourcePackPathLifetimeHelpers::ResourcePackPathCache>>>
312 mResourcePackPathCache;
313 ::ll::TypedStorage<8, 8, ::gsl::not_null<::std::unique_ptr<::ServerConnectionAuthValidator>>>
314 mConnectionAuthValidator;
315 ::ll::TypedStorage<8, 8, ::gsl::not_null<::std::unique_ptr<::TaskGroup>>> mNetworkTaskGroup;
316 ::ll::TypedStorage<8, 8, ::gsl::not_null<::std::unique_ptr<::AsyncJoinTaskManager>>> mAsyncJoinTaskManager;
317 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::TaskGroup>> mIOTaskGroup;
318 ::ll::TypedStorage<1, 1, bool> mIsTrial;
319 ::ll::TypedStorage<8, 64, ::std::unordered_map<::PackIdVersion, ::std::string>> mPackIdToContentKey;
320 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::GameSpecificNetEventCallback>> mGameSpecificNetEventCallback;
321 ::ll::TypedStorage<
322 8,
323 64,
324 ::std::unordered_map<::NetworkIdentifier, ::std::unique_ptr<::ServerNetworkHandler::TransferBuilderBatcher>>>
325 mTransferBuilderBatcher;
326 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::GameTestNetworkAdapter>> mGameTestAdapter;
327 ::ll::TypedStorage<8, 40, ::ServiceReference<::AppConfigs>> mAppConfigs;
328 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::BiomeDefinitionListPacket const>> mBiomeDefinitionListWithoutCSCG;
329 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::BiomeDefinitionListPacket const>> mBiomeDefinitionListWithCSCG;
330 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::IEDUSystems>> mEduSystems;
331 ::ll::TypedStorage<8, 368, ::std::optional<::ServerConfiguration::ServerConfigurationJoinInfo>>
332 mServerConfigurationJoinInfo;
333 ::ll::TypedStorage<8, 128, ::Social::Events::ServerTelemetryData> mServerTelemetryData;
334 ::ll::TypedStorage<8, 256, ::ServerNetworkHandlerDependencies const> mDependencies;
335 // NOLINTEND
336
337public:
338 // prevent constructor by default
339 ServerNetworkHandler& operator=(ServerNetworkHandler const&);
340 ServerNetworkHandler(ServerNetworkHandler const&);
341 ServerNetworkHandler();
342
343public:
344 // virtual functions
345 // NOLINTBEGIN
346 virtual ~ServerNetworkHandler() /*override*/;
347
348 virtual void onValidPacketReceived(
349 ::NetworkIdentifier const& netId,
350 ::MinecraftPacketIds packetId,
351 ::SubClientId senderSubId,
352 ::SubClientId
353 ) /*override*/;
354
355 virtual void onWebsocketRequest(
356 ::std::string const& serverAddress,
357 ::std::string const& payload,
358 ::std::function<void()> errorCallback
359 ) /*override*/;
360
361 virtual void onInvalidPlayerJoinedLobby(::mce::UUID const& uuid, ::std::string const& xuid) /*override*/;
362
363 virtual void onPlayerJoinedLobby(::Social::OnlineId const& player, ::Social::Nonce const& nonce) /*override*/;
364
365 virtual void onPlayerLeftLobby(::Social::OnlineId const& player) /*override*/;
366
367 virtual void onXboxUserBlocked(::std::string const& xuid) /*override*/;
368
369 virtual void onXboxUserUnblocked(::std::string const& xuid) /*override*/;
370
371 virtual void onPlayerReady(::Player&) /*override*/;
372
373 virtual void handlePacketViolation(
374 ::std::shared_ptr<::IPacketSecurityController> const& packetSecurityController,
375 ::std::error_code const& errorCode,
376 ::PacketViolationResponse const response,
377 ::MinecraftPacketIds const packetId,
378 ::std::string&& context,
379 ::NetworkIdentifier const& netId,
380 ::SubClientId const clientSubId,
381 ::SubClientId const senderSubId,
382 uint const packetSize
383 ) /*override*/;
384
385 virtual void sendPacketViolationWarningPacket(
386 ::std::error_code const& errorCode,
387 ::PacketViolationResponse violationResponse,
388 ::MinecraftPacketIds violatingPacketId,
389 ::std::string const& context,
390 ::NetworkIdentifier const& netId,
391 ::SubClientId clientSubId
392 ) /*override*/;
393
394 virtual void sendServerLegacyParticle(::ParticleType name, ::Vec3 const& pos, ::Vec3 const& data, int) /*override*/;
395
396 virtual void
397 onTransferRequest(::NetworkIdentifier const& id, ::Social::GameConnectionInfo const& destination) /*override*/;
398
399 virtual void onDisconnect(
400 ::NetworkIdentifier const& id,
401 ::Connection::DisconnectFailReason const discoReason,
402 ::Connection::DisconnectionStage const skipMessage,
403 ::std::string const&,
404 ::std::string const&,
405 bool,
406 ::std::string const&
407 ) /*override*/;
408
409 virtual ::IncomingPacketFilterResult allowIncomingPacketId(
410 ::NetworkIdentifierWithSubId const& sender,
411 ::MinecraftPacketIds packetId,
412 uint64 packetSize
413 ) /*override*/;
414
415 virtual ::OutgoingPacketFilterResult
416 allowOutgoingPacket(::std::vector<::NetworkIdentifierWithSubId> const& ids, ::Packet const& packet) /*override*/;
417
418 virtual void handle(::NetworkIdentifier const& source, ::ActorEventPacket const& packet) /*override*/;
419
420 virtual void handle(::NetworkIdentifier const& source, ::ActorPickRequestPacket const& packet) /*override*/;
421
422 virtual void handle(::NetworkIdentifier const& source, ::AnimatePacket const& packet) /*override*/;
423
424 virtual void
425 handle(::NetworkIdentifier const& source, ::std::shared_ptr<::BlockActorDataPacket> packet) /*override*/;
426
427 virtual void handle(::NetworkIdentifier const& source, ::BlockPickRequestPacket const& packet) /*override*/;
428
429 virtual void handle(::NetworkIdentifier const& source, ::LecternUpdatePacket const& packet) /*override*/;
430
431 virtual void handle(::NetworkIdentifier const& source, ::BookEditPacket const& packet) /*override*/;
432
433 virtual void handle(::NetworkIdentifier const& packet, ::BossEventPacket const&) /*override*/;
434
435 virtual void handle(::NetworkIdentifier const& source, ::ClientCameraAimAssistPacket const& packet) /*override*/;
436
437 virtual void handle(::NetworkIdentifier const& source, ::ClientCacheStatusPacket const& packet) /*override*/;
438
439 virtual void handle(::NetworkIdentifier const& source, ::ClientCacheBlobStatusPacket const& packet) /*override*/;
440
441 virtual void
442 handle(::NetworkIdentifier const& source, ::ClientMovementPredictionSyncPacket const& packet) /*override*/;
443
444 virtual void handle(::NetworkIdentifier const& source, ::ClientToServerHandshakePacket const&) /*override*/;
445
446 virtual void handle(::NetworkIdentifier const& source, ::CommandBlockUpdatePacket const& packet) /*override*/;
447
448 virtual void handle(::NetworkIdentifier const& source, ::CommandRequestPacket const& packet) /*override*/;
449
450 virtual void handle(::NetworkIdentifier const&, ::CompletedUsingItemPacket const&) /*override*/;
451
452 virtual void handle(::NetworkIdentifier const& source, ::ContainerClosePacket const& packet) /*override*/;
453
454 virtual void handle(::NetworkIdentifier const& source, ::DebugInfoPacket const& packet) /*override*/;
455
456 virtual void handle(::NetworkIdentifier const&, ::CreatePhotoPacket const&) /*override*/;
457
458 virtual void handle(::NetworkIdentifier const& source, ::DisconnectPacket const& packet) /*override*/;
459
460 virtual void handle(::NetworkIdentifier const& source, ::EmoteListPacket const& packet) /*override*/;
461
462 virtual void handle(::NetworkIdentifier const& source, ::EmotePacket const& packet) /*override*/;
463
464 virtual void handle(::NetworkIdentifier const& source, ::InteractPacket const& packet) /*override*/;
465
466 virtual void
467 handle(::NetworkIdentifier const& source, ::std::shared_ptr<::InventoryTransactionPacket> packet) /*override*/;
468
469 virtual void handle(::NetworkIdentifier const& source, ::ItemStackRequestPacket const& packet) /*override*/;
470
471 virtual void handle(::NetworkIdentifier const& source, ::LabTablePacket const& packet) /*override*/;
472
473 virtual void handle(::NetworkIdentifier const& source, ::LevelSoundEventPacket const& packet) /*override*/;
474
475 virtual void handle(::NetworkIdentifier const& source, ::std::shared_ptr<::LoginPacket> packet) /*override*/;
476
477 virtual void handle(::NetworkIdentifier const& source, ::PartyChangedPacket const& packet) /*override*/;
478
479 virtual void handle(::NetworkIdentifier const& source, ::MapCreateLockedCopyPacket const& packet) /*override*/;
480
481 virtual void handle(::NetworkIdentifier const& source, ::MapInfoRequestPacket const& packet) /*override*/;
482
483 virtual void handle(::NetworkIdentifier const& source, ::std::shared_ptr<::MobEquipmentPacket> packet) /*override*/;
484
485 virtual void handle(::NetworkIdentifier const& source, ::ModalFormResponsePacket const& packet) /*override*/;
486
487 virtual void handle(::NetworkIdentifier const& source, ::NetworkStackLatencyPacket const& packet) /*override*/;
488
489 virtual void handle(::NetworkIdentifier const& source, ::NpcRequestPacket const& packet) /*override*/;
490
491 virtual void handle(::NetworkIdentifier const&, ::PhotoTransferPacket const&) /*override*/;
492
493 virtual void handle(::NetworkIdentifier const& source, ::PlayerActionPacket const& packet) /*override*/;
494
495 virtual void handle(::NetworkIdentifier const& source, ::PlayerAuthInputPacket const& packet) /*override*/;
496
497 virtual void handle(::NetworkIdentifier const& source, ::PlayerHotbarPacket const& packet) /*override*/;
498
499 virtual void handle(::NetworkIdentifier const& source, ::PlayerSkinPacket const& packet) /*override*/;
500
501 virtual void
502 handle(::NetworkIdentifier const& source, ::PlayerToggleCrafterSlotRequestPacket const& packet) /*override*/;
503
504 virtual void handle(::NetworkIdentifier const& packet, ::PositionTrackingDBClientRequestPacket const&) /*override*/;
505
506 virtual void handle(::NetworkIdentifier const&, ::PurchaseReceiptPacket const&) /*override*/;
507
508 virtual void handle(::NetworkIdentifier const& source, ::RequestChunkRadiusPacket const& packet) /*override*/;
509
510 virtual void handle(::NetworkIdentifier const& source, ::ResourcePackChunkRequestPacket const& packet) /*override*/;
511
512 virtual void handle(::NetworkIdentifier const&, ::ResourcePacksReadyForValidationPacket const&) /*override*/;
513
514 virtual void handle(::NetworkIdentifier const& source, ::RespawnPacket const& packet) /*override*/;
515
516 virtual void handle(::NetworkIdentifier const& source, ::SetDefaultGameTypePacket const& packet) /*override*/;
517
518 virtual void handle(::NetworkIdentifier const& source, ::SetDifficultyPacket const& packet) /*override*/;
519
520 virtual void
521 handle(::NetworkIdentifier const& source, ::SetLocalPlayerAsInitializedPacket const& packet) /*override*/;
522
523 virtual void handle(::NetworkIdentifier const& source, ::SetPlayerGameTypePacket const& packet) /*override*/;
524
525 virtual void handle(::NetworkIdentifier const& source, ::UpdatePlayerGameTypePacket const& packet) /*override*/;
526
527 virtual void handle(::NetworkIdentifier const& source, ::ScriptMessagePacket const& packet) /*override*/;
528
529 virtual void handle(::NetworkIdentifier const& source, ::ShowCreditsPacket const& packet) /*override*/;
530
531 virtual void handle(::NetworkIdentifier const& source, ::SimpleEventPacket const& packet) /*override*/;
532
533 virtual void handle(::NetworkIdentifier const& source, ::SpawnExperienceOrbPacket const& packet) /*override*/;
534
535 virtual void handle(::NetworkIdentifier const& source, ::StructureBlockUpdatePacket const& packet) /*override*/;
536
537 virtual void
538 handle(::NetworkIdentifier const& source, ::StructureTemplateDataRequestPacket const& packet) /*override*/;
539
540 virtual void
541 handle(::NetworkIdentifier const& source, ::std::shared_ptr<::SubClientLoginPacket> packet) /*override*/;
542
543 virtual void handle(::NetworkIdentifier const& source, ::TextPacket const& packet) /*override*/;
544
545 virtual void handle(::NetworkIdentifier const& source, ::MultiplayerSettingsPacket const& packet) /*override*/;
546
547 virtual void handle(::NetworkIdentifier const& source, ::SettingsCommandPacket const& packet) /*override*/;
548
549 virtual void handle(::NetworkIdentifier const& source, ::AnvilDamagePacket const& packet) /*override*/;
550
551 virtual void handle(::NetworkIdentifier const& source, ::SubChunkRequestPacket const& packet) /*override*/;
552
553 virtual void handle(::NetworkIdentifier const& source, ::CodeBuilderSourcePacket const& packet) /*override*/;
554
555 virtual void handle(::NetworkIdentifier const&, ::ChangeMobPropertyPacket const&) /*override*/;
556
557 virtual void handle(::NetworkIdentifier const& source, ::RequestAbilityPacket const& packet) /*override*/;
558
559 virtual void handle(::NetworkIdentifier const& source, ::RequestNetworkSettingsPacket const& packet) /*override*/;
560
561 virtual void handle(::NetworkIdentifier const& source, ::RequestPermissionsPacket const& packet) /*override*/;
562
563 virtual void handle(::NetworkIdentifier const& source, ::EditorNetworkPacket const& packet) /*override*/;
564
565 virtual void handle(::NetworkIdentifier const& source, ::GameTestRequestPacket const& packet) /*override*/;
566
567 virtual void
568 handle(::NetworkIdentifier const& source, ::SetPlayerInventoryOptionsPacket const& packet) /*override*/;
569
570 virtual void handle(::NetworkIdentifier const& source, ::ServerboundLoadingScreenPacket const& packet) /*override*/;
571
572 virtual void handle(::NetworkIdentifier const& source, ::ServerboundDiagnosticsPacket const& packet) /*override*/;
573
574 virtual void handle(::NetworkIdentifier const& source, ::UpdateClientOptionsPacket const& packet) /*override*/;
575
576 virtual void
577 handle(::NetworkIdentifier const& source, ::ServerboundPackSettingChangePacket const& packet) /*override*/;
578
579 virtual void handle(::NetworkIdentifier const& source, ::ServerboundDataStorePacket const& packet) /*override*/;
580
581 virtual void
582 handle(::NetworkIdentifier const& source, ::ServerboundDataDrivenScreenClosedPacket const& packet) /*override*/;
583
584 virtual void sendSubClientLoginMessageLocal(
585 ::NetworkIdentifier const& source,
586 ::SubClientConnectionRequest const& connectionRequest,
587 ::PlayerAuthenticationInfo const& playerInfo,
588 ::SubClientId subid
589 );
590
591 virtual void onTick() /*override*/;
592
593 virtual ::GameSpecificNetEventCallback* getGameSpecificNetEventCallback() /*override*/;
594
595 virtual void onConnect(::NetworkIdentifier const& id) /*override*/;
596
597 virtual void completeHandshake(::NetworkIdentifier const& source);
598
599 virtual ::std::optional<::PlayerAuthenticationInfo>
600 _validateLoginPacket(::NetworkIdentifier const& source, ::LoginPacket const& packet);
601
602 virtual void _onClientAsyncAuthorized(
603 ::NetworkIdentifier const& source,
604 ::ConnectionRequest const& request,
605 ::PlayerAuthenticationInfo const& playerInfo,
606 ::std::optional<::MessToken> const& hostMessToken
607 );
608
609 virtual ::ServerPlayer* _getServerPlayer(::NetworkIdentifier const& source, ::SubClientId subId);
610 // NOLINTEND
611
612public:
613 // member functions
614 // NOLINTBEGIN
615 MCAPI ServerNetworkHandler(
616 ::GameCallbacks& gameCallbacks,
618 ::std::optional<::ServerConfiguration::ServerConfigurationJoinInfo> const& serverJoinInfo,
619 ::Social::Events::ServerTelemetryData const& serveTelemetryData,
620 ::ServerNetworkSystem& network,
621 ::PrivateKeyManager& serverKeys,
622 ::Bedrock::NotNullNonOwnerPtr<::MinecraftServiceKeyManager> minecraftServiceKeys,
623 ::ServerLocator& serverLocator,
624 ::PacketSender& packetSender,
625 ::AllowList& allowList,
626 ::PermissionsFile* permissionsFile,
627 ::std::string const& hostPublicKey,
628 int maxChunkRadius,
629 int maxNumPlayers,
630 ::MinecraftCommands& commandHandler,
631 ::IMinecraftApp& app,
632 ::std::unordered_map<::PackIdVersion, ::std::string> const& packIdToContentKey,
633 ::Scheduler& scheduler,
637 ::NetworkServerConfig networkServerConfig,
638 ::std::shared_ptr<::ScriptPackSettingsCache> packSettingsCache,
640 );
641
642 MCAPI void _buildSubChunkPacketData(
643 ::NetworkIdentifier const& source,
644 ::ServerPlayer const* player,
645 ::SubChunkRequestPacket const& packet,
646 ::SubChunkPacket& responsePacket,
647 uint requestCount,
648 bool clientCacheEnabled
649 );
650
651 MCAPI void _cleanupResourceUploadManager(::NetworkIdentifier const& source);
652
653 MCAPI ::ServerPlayer& _createNewPlayer(
654 ::NetworkIdentifier const& source,
655 ::SubClientConnectionRequest const& connectionRequest,
656 ::PlayerAuthenticationInfo const& playerInfo,
657 ::SubClientId subid
658 );
659
660 MCAPI void _decideIfSkinIsTrusted(::SerializedSkinRef& skin);
661
662 MCAPI void _displayGameMessage(::Player const& sender, ::ChatEvent& chatEvent);
663
664 MCAPI ::std::string _extractFirstConnectionData(::NetworkIdentifier const& source);
665
666 MCAPI int _getActiveAndInProgressPlayerCount(::mce::UUID excludePlayer) const;
667
668 MCAPI ::std::string _getDisplayName(
669 ::PlayerAuthenticationInfo const& authInfo,
670 ::BuildPlatform platform,
671 ::std::string const& thirdPartyName
672 ) const;
673
674 MCAPI ::std::optional<::MessToken> _getJoinerMessToken(::std::string const& eduTokenChain);
675
676 MCAPI ::std::optional<::MessToken> _getMessToken(::std::string const& eduTokenChain, bool isHostingPlayer);
677
678 MCAPI ::ResourcePackFileUploadManager&
679 _getResourcePackFileUploadManager(::NetworkIdentifier const& source, ::std::string const& resourceName);
680
681 MCAPI void _handleFinalVerdict(
682 ::std::variant<
683 ::std::reference_wrapper<::ConnectionRequest const>,
684 ::std::reference_wrapper<::SubClientConnectionRequest const>> const& connectionRequest,
685 ::PlayerAuthenticationInfo const& playerInfo,
686 ::NetworkIdentifier const& source,
687 ::SubClientId subClientId,
688 ::std::optional<::MessToken> messToken,
689 ::nonstd::expected<::AsyncJoinAllow, ::AsyncJoinDeny> finalVerdict
690 );
691
692 MCAPI void
693 _handleSetCommandsEnabled(::ServerPlayer const& playerSettingGameType, ::SimpleEventPacket const& packet) const;
694
695 MCAPI void _handleSetDefaultGameType(
696 ::ServerPlayer const& playerSettingGameType,
697 ::SetDefaultGameTypePacket const& packet
698 ) const;
699
700 MCAPI void _handleSetDifficulty(::ServerPlayer const& player, ::SetDifficultyPacket const& packet) const;
701
702 MCAPI void
703 _handleSetPlayerGameType(::ServerPlayer& playerSettingGameType, ::SetPlayerGameTypePacket const& packet) const;
704
705 MCAPI bool _isPrimaryOrSecondaryPlayerInServer(::mce::UUID const& playerId) const;
706
707 MCAPI bool _isServerTextEnabled(::ServerTextEvent const& textEvent) const;
708
709 MCAPI bool _loadNewPlayer(::ServerPlayer& newPlayer, bool isXboxLive);
710
711 MCAPI void _onClientAuthenticated(::NetworkIdentifier const& source, ::PlayerAuthenticationInfo const& playerInfo);
712
713 MCAPI void _onPlayerLeft(::ServerPlayer* player, bool skipMessage);
714
715 MCAPI void _onSubClientAuthenticated(
716 ::NetworkIdentifier const& source,
717 ::std::shared_ptr<::SubClientLoginPacket> packet,
718 ::PlayerAuthenticationInfo const& playerInfo
719 );
720
721 MCAPI void _processServerAuthPlayerActions(
722 ::ServerPlayer& player,
723 ::NetworkIdentifier const& source,
724 ::PlayerActionPacket const& packet
725 );
726
727 MCAPI void _processValidatedLoginPacket(
728 ::NetworkIdentifier const& source,
729 ::std::shared_ptr<::LoginPacket> packet,
730 ::PlayerAuthenticationInfo const& playerInfo,
731 ::std::optional<::MessToken> const& hostMessToken
732 );
733
734 MCAPI void _sendAdditionalLevelData(::ServerPlayer& newPlayer, ::NetworkIdentifier const& source);
735
736 MCAPI void _sendLevelData(::ServerPlayer& newPlayer, ::NetworkIdentifier const& source);
737
738 MCAPI bool _updatePermissions(
739 ::ServerPlayer const& requester,
740 ::RequestPermissionsPacket const& packet,
741 ::Abilities& abilities,
742 ::PermissionsHandler& permissions,
743 ::Player* player
744 );
745
746 MCAPI void addToDenyList(::mce::UUID const& uuid, ::std::string const& xuid);
747
748 MCAPI void addToDenyList(::mce::UUID const& uuid, ::std::string const& xuid, ::DenyList::Duration const& duration);
749
750 MCAPI void allowIncomingConnections(::std::string const& serverName, bool shouldAnnounce);
751
752 MCAPI ::OwnerPtr<::EntityContext> createNewPlayer(
753 ::NetworkIdentifier const& source,
754 ::ConnectionRequest const& connectionRequest,
755 ::PlayerAuthenticationInfo const& playerInfo
756 );
757
758 MCAPI ::OwnerPtr<::EntityContext> createSimulatedPlayer(
759 ::std::string const& name,
760 ::std::string const& xuid,
761 ::std::optional<::ActorUniqueID> idOverride
762 );
763
764#ifdef LL_PLAT_C
765 MCAPI void disallowIncomingConnections();
766#endif
767
768 MCAPI void disconnectClient(
769 ::NetworkIdentifier const& id,
770 ::SubClientId subId,
771 ::Connection::DisconnectFailReason disconnectReason
772 );
773
774 MCAPI void disconnectClientWithMessage(
775 ::NetworkIdentifier const& id,
776 ::SubClientId subId,
777 ::Connection::DisconnectFailReason discoReason,
778 ::std::string const& message,
779 ::std::optional<::std::string> filteredMessage
780 );
781
782 MCAPI void
783 disconnectPrimaryClient(::NetworkIdentifier const& id, ::Connection::DisconnectFailReason disconnectReason);
784
785 MCAPI void
786 engineCancelResponseHelper(::NetworkIdentifier const& source, ::ResourcePackClientResponsePacket const& packet);
787
788 MCAPI void engineDownloadingFinishedResponseHelper(
789 ::NetworkIdentifier const& source,
791 );
792
793 MCAPI void engineDownloadingResponseHelper(
794 ::NetworkIdentifier const& source,
796 );
797
798 MCAPI ::ConnectionRequest const& fetchConnectionRequest(::NetworkIdentifier const& source);
799
800 MCAPI ::PlayerAuthenticationInfo fetchPlayerAuthenticationInfo(::NetworkIdentifier const& source);
801
802 MCAPI ::CommandPermissionLevel getCommandsOpPermissionLevel();
803
804 MCAPI ::std::string getGlobalMultiplayerCorrelationId() const;
805
806#ifdef LL_PLAT_C
807 MCAPI ::std::string getServerName() const;
808#endif
809
810 MCAPI bool isDedicatedServer();
811
812 MCAPI void onReady_ClientGeneration(::Player& newPlayer, ::NetworkIdentifier const&);
813
814 MCAPI void onStartShutdown();
815
816 MCAPI void persistPlayerPermissionsToDisk(
817 ::UserEntityIdentifierComponent const& userIdentifier,
818 ::PlayerPermissionLevel playerPermission
819 );
820
821 MCAPI ::std::unique_ptr<uint64, ::std::function<void(uint64*)>> registerAsyncJoinCallback(
823 ::NetworkIdentifier const&,
825 ::SubClientId,
826 ::std::shared_ptr<::AsyncVerdictPromise>
827 )> callback
828 );
829
830 MCAPI void removeFromDenyList(::mce::UUID const& uuid, ::std::string const& xuid);
831
832 MCAPI void sendLoginMessageLocal(
833 ::NetworkIdentifier const& source,
834 ::ConnectionRequest const& connectionRequest,
835 ::ServerPlayer& player
836 );
837
838#ifdef LL_PLAT_C
839 MCAPI void setAllowListActive(bool active);
840#endif
841
842#ifdef LL_PLAT_S
843 MCAPI void setAutomationClient(::Bedrock::NonOwnerPointer<::Automation::AutomationClient> client);
844#endif
845
846#ifdef LL_PLAT_C
847 MCAPI void setConnectionNonceActive(bool active);
848
849 MCAPI void setEduSystems(::Bedrock::NonOwnerPointer<::IEDUSystems> eduSystems);
850
851 MCAPI void setIsTrial(bool isTrial);
852#endif
853
854 MCAPI int setMaxNumPlayers(int maxPlayers);
855
856 MCAPI void setNewPlayerPermissions(::ServerPlayer& newPlayer);
857
858 MCAPI bool tryToLoadPlayer(
859 ::ServerPlayer& player,
860 ::ConnectionRequest const& connectionRequest,
861 ::PlayerAuthenticationInfo const& playerInfo
862 );
863
864 MCAPI void updateServerAnnouncement();
865 // NOLINTEND
866
867public:
868 // static functions
869 // NOLINTBEGIN
870 MCAPI static void _populateCDNValues(
871 ::std::vector<::PackInfoData>& resourcePacksData,
872 ::std::vector<::std::pair<::std::string, ::std::string>>& cdnUrls,
873 ::std::string const& deviceModel
874 );
875
876 MCAPI static void _updateCommandBlock(
877 ::BlockSource& region,
878 ::CommandBlockUpdatePacket const& packet,
879 ::Bedrock::Safety::RedactableString const* redactedName
880 );
881
882 MCAPI static void handle(::Player* player, ::PlayerAuthInputPacket const& packet);
883
884 MCAPI static void handle(::ServerPlayer* player, ::std::shared_ptr<::InventoryTransactionPacket> packet);
885 // NOLINTEND
886
887public:
888 // constructor thunks
889 // NOLINTBEGIN
890 MCAPI void* $ctor(
891 ::GameCallbacks& gameCallbacks,
893 ::std::optional<::ServerConfiguration::ServerConfigurationJoinInfo> const& serverJoinInfo,
894 ::Social::Events::ServerTelemetryData const& serveTelemetryData,
895 ::ServerNetworkSystem& network,
896 ::PrivateKeyManager& serverKeys,
897 ::Bedrock::NotNullNonOwnerPtr<::MinecraftServiceKeyManager> minecraftServiceKeys,
898 ::ServerLocator& serverLocator,
899 ::PacketSender& packetSender,
900 ::AllowList& allowList,
901 ::PermissionsFile* permissionsFile,
902 ::std::string const& hostPublicKey,
903 int maxChunkRadius,
904 int maxNumPlayers,
905 ::MinecraftCommands& commandHandler,
906 ::IMinecraftApp& app,
907 ::std::unordered_map<::PackIdVersion, ::std::string> const& packIdToContentKey,
908 ::Scheduler& scheduler,
912 ::NetworkServerConfig networkServerConfig,
913 ::std::shared_ptr<::ScriptPackSettingsCache> packSettingsCache,
915 );
916 // NOLINTEND
917
918public:
919 // destructor thunk
920 // NOLINTBEGIN
921 MCAPI void $dtor();
922 // NOLINTEND
923
924public:
925 // virtual function thunks
926 // NOLINTBEGIN
927 MCAPI void $onValidPacketReceived(
928 ::NetworkIdentifier const& netId,
929 ::MinecraftPacketIds packetId,
930 ::SubClientId senderSubId,
931 ::SubClientId
932 );
933
934 MCAPI void $onWebsocketRequest(
935 ::std::string const& serverAddress,
936 ::std::string const& payload,
937 ::std::function<void()> errorCallback
938 );
939
940 MCAPI void $onInvalidPlayerJoinedLobby(::mce::UUID const& uuid, ::std::string const& xuid);
941
942 MCAPI void $onPlayerJoinedLobby(::Social::OnlineId const& player, ::Social::Nonce const& nonce);
943
944 MCAPI void $onPlayerLeftLobby(::Social::OnlineId const& player);
945
946 MCAPI void $onXboxUserBlocked(::std::string const& xuid);
947
948 MCAPI void $onXboxUserUnblocked(::std::string const& xuid);
949
950 MCFOLD void $onPlayerReady(::Player&);
951
952 MCAPI void $handlePacketViolation(
953 ::std::shared_ptr<::IPacketSecurityController> const& packetSecurityController,
954 ::std::error_code const& errorCode,
955 ::PacketViolationResponse const response,
956 ::MinecraftPacketIds const packetId,
957 ::std::string&& context,
958 ::NetworkIdentifier const& netId,
959 ::SubClientId const clientSubId,
960 ::SubClientId const senderSubId,
961 uint const packetSize
962 );
963
964 MCAPI void $sendPacketViolationWarningPacket(
965 ::std::error_code const& errorCode,
966 ::PacketViolationResponse violationResponse,
967 ::MinecraftPacketIds violatingPacketId,
968 ::std::string const& context,
969 ::NetworkIdentifier const& netId,
970 ::SubClientId clientSubId
971 );
972
973 MCAPI void $sendServerLegacyParticle(::ParticleType name, ::Vec3 const& pos, ::Vec3 const& data, int);
974
975 MCAPI void $onTransferRequest(::NetworkIdentifier const& id, ::Social::GameConnectionInfo const& destination);
976
977 MCAPI void $onDisconnect(
978 ::NetworkIdentifier const& id,
979 ::Connection::DisconnectFailReason const discoReason,
980 ::Connection::DisconnectionStage const skipMessage,
981 ::std::string const&,
982 ::std::string const&,
983 bool,
984 ::std::string const&
985 );
986
987 MCAPI ::IncomingPacketFilterResult $allowIncomingPacketId(
988 ::NetworkIdentifierWithSubId const& sender,
989 ::MinecraftPacketIds packetId,
990 uint64 packetSize
991 );
992
993 MCAPI ::OutgoingPacketFilterResult
994 $allowOutgoingPacket(::std::vector<::NetworkIdentifierWithSubId> const& ids, ::Packet const& packet);
995
996 MCAPI void $handle(::NetworkIdentifier const& source, ::ActorEventPacket const& packet);
997
998 MCAPI void $handle(::NetworkIdentifier const& source, ::ActorPickRequestPacket const& packet);
999
1000 MCAPI void $handle(::NetworkIdentifier const& source, ::AnimatePacket const& packet);
1001
1002 MCAPI void $handle(::NetworkIdentifier const& source, ::std::shared_ptr<::BlockActorDataPacket> packet);
1003
1004 MCAPI void $handle(::NetworkIdentifier const& source, ::BlockPickRequestPacket const& packet);
1005
1006 MCAPI void $handle(::NetworkIdentifier const& source, ::LecternUpdatePacket const& packet);
1007
1008 MCAPI void $handle(::NetworkIdentifier const& source, ::BookEditPacket const& packet);
1009
1010 MCAPI void $handle(::NetworkIdentifier const& packet, ::BossEventPacket const&);
1011
1012 MCAPI void $handle(::NetworkIdentifier const& source, ::ClientCameraAimAssistPacket const& packet);
1013
1014 MCAPI void $handle(::NetworkIdentifier const& source, ::ClientCacheStatusPacket const& packet);
1015
1016 MCAPI void $handle(::NetworkIdentifier const& source, ::ClientCacheBlobStatusPacket const& packet);
1017
1018 MCAPI void $handle(::NetworkIdentifier const& source, ::ClientMovementPredictionSyncPacket const& packet);
1019
1020 MCAPI void $handle(::NetworkIdentifier const& source, ::ClientToServerHandshakePacket const&);
1021
1022 MCAPI void $handle(::NetworkIdentifier const& source, ::CommandBlockUpdatePacket const& packet);
1023
1024 MCAPI void $handle(::NetworkIdentifier const& source, ::CommandRequestPacket const& packet);
1025
1026 MCFOLD void $handle(::NetworkIdentifier const&, ::CompletedUsingItemPacket const&);
1027
1028 MCAPI void $handle(::NetworkIdentifier const& source, ::ContainerClosePacket const& packet);
1029
1030 MCAPI void $handle(::NetworkIdentifier const& source, ::DebugInfoPacket const& packet);
1031
1032 MCFOLD void $handle(::NetworkIdentifier const&, ::CreatePhotoPacket const&);
1033
1034 MCAPI void $handle(::NetworkIdentifier const& source, ::DisconnectPacket const& packet);
1035
1036 MCAPI void $handle(::NetworkIdentifier const& source, ::EmoteListPacket const& packet);
1037
1038 MCAPI void $handle(::NetworkIdentifier const& source, ::EmotePacket const& packet);
1039
1040 MCAPI void $handle(::NetworkIdentifier const& source, ::InteractPacket const& packet);
1041
1042 MCAPI void $handle(::NetworkIdentifier const& source, ::std::shared_ptr<::InventoryTransactionPacket> packet);
1043
1044 MCAPI void $handle(::NetworkIdentifier const& source, ::ItemStackRequestPacket const& packet);
1045
1046 MCAPI void $handle(::NetworkIdentifier const& source, ::LabTablePacket const& packet);
1047
1048 MCAPI void $handle(::NetworkIdentifier const& source, ::LevelSoundEventPacket const& packet);
1049
1050 MCAPI void $handle(::NetworkIdentifier const& source, ::std::shared_ptr<::LoginPacket> packet);
1051
1052 MCAPI void $handle(::NetworkIdentifier const& source, ::PartyChangedPacket const& packet);
1053
1054 MCAPI void $handle(::NetworkIdentifier const& source, ::MapCreateLockedCopyPacket const& packet);
1055
1056 MCAPI void $handle(::NetworkIdentifier const& source, ::MapInfoRequestPacket const& packet);
1057
1058 MCAPI void $handle(::NetworkIdentifier const& source, ::std::shared_ptr<::MobEquipmentPacket> packet);
1059
1060 MCAPI void $handle(::NetworkIdentifier const& source, ::ModalFormResponsePacket const& packet);
1061
1062 MCAPI void $handle(::NetworkIdentifier const& source, ::NetworkStackLatencyPacket const& packet);
1063
1064 MCAPI void $handle(::NetworkIdentifier const& source, ::NpcRequestPacket const& packet);
1065
1066 MCFOLD void $handle(::NetworkIdentifier const&, ::PhotoTransferPacket const&);
1067
1068 MCAPI void $handle(::NetworkIdentifier const& source, ::PlayerActionPacket const& packet);
1069
1070 MCAPI void $handle(::NetworkIdentifier const& source, ::PlayerAuthInputPacket const& packet);
1071
1072 MCAPI void $handle(::NetworkIdentifier const& source, ::PlayerHotbarPacket const& packet);
1073
1074 MCAPI void $handle(::NetworkIdentifier const& source, ::PlayerSkinPacket const& packet);
1075
1076 MCAPI void $handle(::NetworkIdentifier const& source, ::PlayerToggleCrafterSlotRequestPacket const& packet);
1077
1078 MCAPI void $handle(::NetworkIdentifier const& packet, ::PositionTrackingDBClientRequestPacket const&);
1079
1080 MCFOLD void $handle(::NetworkIdentifier const&, ::PurchaseReceiptPacket const&);
1081
1082 MCAPI void $handle(::NetworkIdentifier const& source, ::RequestChunkRadiusPacket const& packet);
1083
1084 MCAPI void $handle(::NetworkIdentifier const& source, ::ResourcePackChunkRequestPacket const& packet);
1085
1086 MCAPI void $handle(::NetworkIdentifier const&, ::ResourcePacksReadyForValidationPacket const&);
1087
1088 MCAPI void $handle(::NetworkIdentifier const& source, ::RespawnPacket const& packet);
1089
1090 MCAPI void $handle(::NetworkIdentifier const& source, ::SetDefaultGameTypePacket const& packet);
1091
1092 MCAPI void $handle(::NetworkIdentifier const& source, ::SetDifficultyPacket const& packet);
1093
1094 MCAPI void $handle(::NetworkIdentifier const& source, ::SetLocalPlayerAsInitializedPacket const& packet);
1095
1096 MCAPI void $handle(::NetworkIdentifier const& source, ::SetPlayerGameTypePacket const& packet);
1097
1098 MCAPI void $handle(::NetworkIdentifier const& source, ::UpdatePlayerGameTypePacket const& packet);
1099
1100 MCAPI void $handle(::NetworkIdentifier const& source, ::ScriptMessagePacket const& packet);
1101
1102 MCAPI void $handle(::NetworkIdentifier const& source, ::ShowCreditsPacket const& packet);
1103
1104 MCAPI void $handle(::NetworkIdentifier const& source, ::SimpleEventPacket const& packet);
1105
1106 MCAPI void $handle(::NetworkIdentifier const& source, ::SpawnExperienceOrbPacket const& packet);
1107
1108 MCAPI void $handle(::NetworkIdentifier const& source, ::StructureBlockUpdatePacket const& packet);
1109
1110 MCAPI void $handle(::NetworkIdentifier const& source, ::StructureTemplateDataRequestPacket const& packet);
1111
1112 MCAPI void $handle(::NetworkIdentifier const& source, ::std::shared_ptr<::SubClientLoginPacket> packet);
1113
1114 MCAPI void $handle(::NetworkIdentifier const& source, ::TextPacket const& packet);
1115
1116 MCAPI void $handle(::NetworkIdentifier const& source, ::MultiplayerSettingsPacket const& packet);
1117
1118 MCAPI void $handle(::NetworkIdentifier const& source, ::SettingsCommandPacket const& packet);
1119
1120 MCAPI void $handle(::NetworkIdentifier const& source, ::AnvilDamagePacket const& packet);
1121
1122 MCAPI void $handle(::NetworkIdentifier const& source, ::SubChunkRequestPacket const& packet);
1123
1124 MCAPI void $handle(::NetworkIdentifier const& source, ::CodeBuilderSourcePacket const& packet);
1125
1126 MCFOLD void $handle(::NetworkIdentifier const&, ::ChangeMobPropertyPacket const&);
1127
1128 MCAPI void $handle(::NetworkIdentifier const& source, ::RequestAbilityPacket const& packet);
1129
1130 MCAPI void $handle(::NetworkIdentifier const& source, ::RequestNetworkSettingsPacket const& packet);
1131
1132 MCAPI void $handle(::NetworkIdentifier const& source, ::RequestPermissionsPacket const& packet);
1133
1134 MCAPI void $handle(::NetworkIdentifier const& source, ::EditorNetworkPacket const& packet);
1135
1136 MCAPI void $handle(::NetworkIdentifier const& source, ::GameTestRequestPacket const& packet);
1137
1138 MCAPI void $handle(::NetworkIdentifier const& source, ::SetPlayerInventoryOptionsPacket const& packet);
1139
1140 MCAPI void $handle(::NetworkIdentifier const& source, ::ServerboundLoadingScreenPacket const& packet);
1141
1142 MCAPI void $handle(::NetworkIdentifier const& source, ::ServerboundDiagnosticsPacket const& packet);
1143
1144 MCAPI void $handle(::NetworkIdentifier const& source, ::UpdateClientOptionsPacket const& packet);
1145
1146 MCAPI void $handle(::NetworkIdentifier const& source, ::ServerboundPackSettingChangePacket const& packet);
1147
1148 MCAPI void $handle(::NetworkIdentifier const& source, ::ServerboundDataStorePacket const& packet);
1149
1150 MCAPI void $handle(::NetworkIdentifier const& source, ::ServerboundDataDrivenScreenClosedPacket const& packet);
1151
1152 MCAPI void $sendSubClientLoginMessageLocal(
1153 ::NetworkIdentifier const& source,
1154 ::SubClientConnectionRequest const& connectionRequest,
1155 ::PlayerAuthenticationInfo const& playerInfo,
1156 ::SubClientId subid
1157 );
1158
1159 MCAPI void $onTick();
1160
1161 MCAPI ::GameSpecificNetEventCallback* $getGameSpecificNetEventCallback();
1162
1163 MCAPI void $onConnect(::NetworkIdentifier const& id);
1164
1165 MCAPI void $completeHandshake(::NetworkIdentifier const& source);
1166
1167 MCAPI ::std::optional<::PlayerAuthenticationInfo>
1168 $_validateLoginPacket(::NetworkIdentifier const& source, ::LoginPacket const& packet);
1169
1170 MCAPI void $_onClientAsyncAuthorized(
1171 ::NetworkIdentifier const& source,
1172 ::ConnectionRequest const& request,
1173 ::PlayerAuthenticationInfo const& playerInfo,
1174 ::std::optional<::MessToken> const& hostMessToken
1175 );
1176
1177 MCAPI ::ServerPlayer* $_getServerPlayer(::NetworkIdentifier const& source, ::SubClientId subId);
1178
1179
1180 // NOLINTEND
1181
1182public:
1183 // vftables
1184 // NOLINTBEGIN
1185 MCAPI static void** $vftableForNetEventCallback();
1186
1187 MCAPI static void** $vftableForMultiplayerServiceObserver();
1188
1189 MCAPI static void** $vftableForXboxLiveUserObserver();
1190
1191 MCAPI static void** $vftableForLevelListener();
1192
1193 MCAPI static void** $vftableForEnableQueueForMainThread();
1194 // NOLINTEND
1195};
Definition Abilities.h:15
Definition ActorEventPacket.h:19
Definition ActorPickRequestPacket.h:19
Definition AllowList.h:16
Definition AnimatePacket.h:19
Definition AnvilDamagePacket.h:19
Definition AppConfigs.h:25
Definition AsyncJoinTaskManager.h:23
Definition AsyncVerdictPromise.h:14
Definition AutomationClient.h:27
Definition NonOwnerPointer.h:9
Definition RedactableString.h:10
Definition EnableQueueForMainThread.h:11
Definition BiomeDefinitionListPacket.h:19
Definition BlockActorDataPacket.h:19
Definition BlockPickRequestPacket.h:19
Definition BlockSource.h:73
Definition BookEditPacket.h:19
Definition BossEventPacket.h:23
Definition ChangeMobPropertyPacket.h:19
Definition ClassroomModeNetworkHandler.h:20
Definition ActiveTransfersManager.h:20
Definition ClientCacheBlobStatusPacket.h:16
Definition ClientCacheStatusPacket.h:19
Definition ClientCameraAimAssistPacket.h:19
Definition ClientMovementPredictionSyncPacket.h:19
Definition ClientToServerHandshakePacket.h:19
Definition CodeBuilderSourcePacket.h:19
Definition CommandBlockUpdatePacket.h:23
Definition CommandRequestPacket.h:19
Definition CompletedUsingItemPacket.h:19
Definition ConnectionRequest.h:20
Definition ContainerClosePacket.h:19
Definition CreatePhotoPacket.h:19
Definition DebugInfoPacket.h:19
Definition DisconnectPacket.h:19
Definition EditorNetworkPacket.h:19
Definition EmoteListPacket.h:19
Definition EmotePacket.h:19
Definition EntityContext.h:17
Definition GameCallbacks.h:5
Definition GameSpecificNetEventCallback.h:11
Definition GameTestNetworkAdapter.h:17
Definition GameTestRequestPacket.h:19
Definition IEDUSystems.h:14
Definition ILevel.h:219
Definition IMinecraftApp.h:19
Definition IPacketSecurityController.h:22
Definition InteractPacket.h:19
Definition InventoryTransactionPacket.h:22
Definition ItemStackRequestPacket.h:18
Definition Value.h:16
Definition LabTablePacket.h:19
Definition LecternUpdatePacket.h:19
Definition LevelListener.h:28
Definition LevelSoundEventPacket.h:19
Definition LoginPacket.h:19
Definition MapCreateLockedCopyPacket.h:19
Definition MapInfoRequestPacket.h:19
Definition MinecraftCommands.h:36
Definition MinecraftGameTest.h:22
Definition MinecraftServiceKeyManager.h:19
Definition MobEquipmentPacket.h:19
Definition ModalFormResponsePacket.h:20
Definition MultiplayerSettingsPacket.h:19
Definition NetEventCallback.h:260
Definition NetworkIdentifier.h:10
Definition NetworkStackLatencyPacket.h:19
Definition NpcRequestPacket.h:19
Definition PacketSender.h:17
Definition Packet.h:31
Definition PartyChangedPacket.h:19
Definition PermissionsFile.h:20
Definition PermissionsHandler.h:16
Definition PhotoTransferPacket.h:19
Definition PlayerActionPacket.h:19
Definition PlayerAuthInputPacket.h:27
Definition PlayerHotbarPacket.h:19
Definition PlayerSkinPacket.h:19
Definition PlayerToggleCrafterSlotRequestPacket.h:19
Definition Player.h:137
Definition PositionTrackingDBClientRequestPacket.h:20
Definition PrivateKeyManager.h:9
Definition PurchaseReceiptPacket.h:19
Definition RequestAbilityPacket.h:19
Definition RequestChunkRadiusPacket.h:19
Definition RequestNetworkSettingsPacket.h:19
Definition RequestPermissionsPacket.h:19
Definition ResourcePackChunkRequestPacket.h:19
Definition ResourcePackClientResponsePacket.h:17
Definition ResourcePackFileUploadManager.h:28
Definition ResourcePackPathCache.h:15
Definition ResourcePacksReadyForValidationPacket.h:20
Definition RespawnPacket.h:19
Definition Scheduler.h:15
Definition ScriptMessagePacket.h:19
Definition ScriptPackSettingsCache.h:17
Definition SerializedSkinRef.h:31
Definition ServerConnectionAuthValidator.h:17
Definition ServerLocator.h:19
Definition ServerNetworkHandler.h:194
Definition ServerNetworkHandler.h:256
Definition ServerNetworkSystem.h:34
Definition ServerPlayer.h:74
Definition ServerboundDataDrivenScreenClosedPacket.h:20
Definition ServerboundDataStorePacket.h:19
Definition ServerboundDiagnosticsPacket.h:19
Definition ServerboundLoadingScreenPacket.h:19
Definition ServerboundPackSettingChangePacket.h:19
Definition ServiceReference.h:8
Definition SetDefaultGameTypePacket.h:19
Definition SetDifficultyPacket.h:19
Definition SetLocalPlayerAsInitializedPacket.h:19
Definition SetPlayerGameTypePacket.h:19
Definition SetPlayerInventoryOptionsPacket.h:19
Definition SettingsCommandPacket.h:19
Definition ShowCreditsPacket.h:19
Definition SimpleEventPacket.h:19
Definition GameConnectionInfo.h:23
Definition MultiplayerServiceObserver.h:19
Definition XboxLiveUserObserver.h:15
Definition SpawnExperienceOrbPacket.h:19
Definition StructureBlockUpdatePacket.h:18
Definition StructureTemplateDataRequestPacket.h:19
Definition SubChunkPacket.h:18
Definition SubChunkRequestPacket.h:19
Definition SubClientConnectionRequest.h:16
Definition SubClientLoginPacket.h:18
Definition TaskGroup.h:55
Definition TextFilteringProcessor.h:20
Definition TextPacket.h:19
Definition UpdateClientOptionsPacket.h:19
Definition UpdatePlayerGameTypePacket.h:19
Definition UserEntityIdentifierComponent.h:17
Definition Vec3.h:10
Definition move_only_function.h:9
Definition UUID.h:7
Definition optional_ref.h:10
Definition ActorUniqueID.h:10
Definition AsyncJoinAllow.h:5
Definition AsyncJoinDeny.h:8
Definition ChatEvent.h:14
Definition IServerNetworkController.h:10
Definition MessToken.h:11
Definition NetworkIdentifierWithSubId.h:10
Definition NetworkServerConfig.h:9
Definition PackInfoData.h:15
Definition PlayerAuthenticationInfo.h:9
Definition ServerNetworkHandlerDependencies.h:5
Definition ServerNetworkHandler.h:235
Definition ServerTelemetryData.h:7
Definition Nonce.h:10
Definition OnlineId.h:7
Definition context.h:5