184 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ConnectionRequest>> mPrimaryRequest;
185 ::ll::TypedStorage<8, 272, ::PlayerAuthenticationInfo> mPrimaryPlayerInfo;
186 ::ll::TypedStorage<8, 64, ::std::unordered_map<::SubClientId, ::PlayerAuthenticationInfo>> mSubClientPlayerInfo;
192 MCAPI ::PlayerAuthenticationInfo getPrimaryPlayerInfo()
const;
194 MCAPI
void removeSubClientPlayerInfo(::SubClientId subClientId);
202 ::ll::TypedStorage<8, 248, ::ClientBlobCache::Server::TransferBuilder> mTransferBuilder;
212 ::std::unordered_map<::NetworkIdentifier, ::std::unique_ptr<::ServerNetworkHandler::Client>>>
214 ::ll::TypedStorage<8, 8, ::GameCallbacks&> mGameCallbacks;
215 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::ILevel>> mLevel;
216 ::ll::TypedStorage<8, 8, ::ServerNetworkSystem&> mNetwork;
217 ::ll::TypedStorage<8, 8, ::PrivateKeyManager&> mServerKeys;
218 ::ll::TypedStorage<8, 8, ::ServerLocator&> mServerLocator;
219 ::ll::TypedStorage<8, 8, ::gsl::not_null<::PacketSender*>> mPacketSender;
220 ::ll::TypedStorage<1, 1, bool> mUseAllowList;
221 ::ll::TypedStorage<8, 8, ::AllowList&> mAllowList;
222 ::ll::TypedStorage<8, 8, ::PermissionsFile*> mPermissionsFile;
223 ::ll::TypedStorage<8, 104, ::DenyList> mServerDenyList;
224 ::ll::TypedStorage<8, 72, ::NetworkServerConfig> mNetworkServerConfig;
225 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::ScriptPackSettingsCache>> mPackSettingsCache;
226 ::ll::TypedStorage<1, 1, bool> mHasDisplayedPackErrors;
227 ::ll::TypedStorage<8, 176, ::NetworkIdentifier> mMyId;
228 ::ll::TypedStorage<4, 4, int const> mMaxChunkRadius;
229 ::ll::TypedStorage<8, 8, ::MinecraftCommands&> mMinecraftCommands;
230 ::ll::TypedStorage<8, 8, ::IMinecraftApp&> mApp;
231 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::TextFilteringProcessor>> mTextFilteringProcessor;
232 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ClientBlobCache::Server::ActiveTransfersManager>> mClientCacheManager;
233 ::ll::TypedStorage<8, 64, ::std::unordered_map<uint64, ::std::string>> mServerStorageForClientsConnectingAttempt;
234 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ClassroomModeNetworkHandler>> mCompanionHandler;
235 ::ll::TypedStorage<8, 80, ::Bedrock::Threading::Mutex> mValidatePlayerMutex;
236 ::ll::TypedStorage<1, 1, bool> mAllowIncoming;
237 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::IServerNetworkController>> mServerNetworkController;
238 ::ll::TypedStorage<8, 32, ::std::string> mServerName;
239 ::ll::TypedStorage<4, 4, int> mMaxNumPlayers;
240 ::ll::TypedStorage<8, 64, ::std::unordered_set<::mce::UUID>> mKnownEmotePieceIdLookup;
241 ::ll::TypedStorage<8, 24, ::std::vector<::mce::UUID>> mKnownEmotePieceIds;
245 ::std::unordered_map<
247 ::std::unordered_map<::std::string, ::std::shared_ptr<::ResourcePackFileUploadManager>>>>
248 mResourceUploadManagers;
249 ::ll::TypedStorage<8, 16, ::gsl::not_null<::std::shared_ptr<::Bedrock::Threading::SharedAsync<void>>>>
252 TypedStorage<8, 8, ::gsl::not_null<::std::unique_ptr<::ResourcePackPathLifetimeHelpers::ResourcePackPathCache>>>
253 mResourcePackPathCache;
254 ::ll::TypedStorage<8, 8, ::gsl::not_null<::std::unique_ptr<::ServerConnectionAuthValidator>>>
255 mConnectionAuthValidator;
256 ::ll::TypedStorage<8, 8, ::gsl::not_null<::std::unique_ptr<::TaskGroup>>> mAsyncJoinTaskGroup;
257 ::ll::TypedStorage<8, 8, ::gsl::not_null<::std::unique_ptr<::AsyncJoinTaskManager>>> mAsyncJoinTaskManager;
258 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::TaskGroup>> mIOTaskGroup;
259 ::ll::TypedStorage<1, 1, bool> mIsTrial;
260 ::ll::TypedStorage<8, 64, ::std::unordered_map<::PackIdVersion, ::std::string>> mPackIdToContentKey;
261 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::GameSpecificNetEventCallback>> mGameSpecificNetEventCallback;
265 ::std::unordered_map<::NetworkIdentifier, ::std::unique_ptr<::ServerNetworkHandler::TransferBuilderBatcher>>>
266 mTransferBuilderBatcher;
267 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::GameTestNetworkAdapter>> mGameTestAdapter;
268 ::ll::TypedStorage<8, 40, ::ServiceReference<::AppConfigs>> mAppConfigs;
269 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::BiomeDefinitionListPacket const>> mBiomeDefinitionListWithoutCSCG;
270 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::BiomeDefinitionListPacket const>> mBiomeDefinitionListWithCSCG;
271 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::IEDUSystems>> mEduSystems;
272 ::ll::TypedStorage<8, 32, ::std::string> mServerId;
273 ::ll::TypedStorage<8, 32, ::std::string> mScenarioId;
274 ::ll::TypedStorage<8, 32, ::std::string> mWorldId;
275 ::ll::TypedStorage<8, 32, ::std::string> mOwnerId;
276 ::ll::TypedStorage<8, 256, ::ServerNetworkHandlerDependencies const> mDependencies;
281 ServerNetworkHandler& operator=(ServerNetworkHandler
const&);
282 ServerNetworkHandler(ServerNetworkHandler
const&);
283 ServerNetworkHandler();
288 virtual ~ServerNetworkHandler() ;
290 virtual void onValidPacketReceived(
292 ::MinecraftPacketIds packetId,
293 ::SubClientId senderSubId,
297 virtual void onWebsocketRequest(
298 ::std::string
const& serverAddress,
299 ::std::string
const& payload,
300 ::std::function<
void()> errorCallback
303 virtual void onInvalidPlayerJoinedLobby(
::mce::UUID const& uuid, ::std::string
const& xuid) ;
305 virtual void onXboxUserBlocked(::std::string
const& xuid) ;
307 virtual void onXboxUserUnblocked(::std::string
const& xuid) ;
309 virtual void onPlayerReady(
::Player& player) ;
311 virtual void handlePacketViolation(
312 ::std::shared_ptr<::IPacketSecurityController>
const& packetSecurityController,
313 ::std::error_code
const& errorCode,
314 ::PacketViolationResponse
const response,
315 ::MinecraftPacketIds
const packetId,
318 ::SubClientId
const clientSubId,
319 ::SubClientId
const senderSubId,
320 uint
const packetSize
323 virtual void sendPacketViolationWarningPacket(
324 ::std::error_code
const& errorCode,
325 ::PacketViolationResponse violationResponse,
326 ::MinecraftPacketIds violatingPacketId,
329 ::SubClientId clientSubId
332 virtual void sendServerLegacyParticle(::ParticleType name,
::Vec3 const& pos,
::Vec3 const&,
int data) ;
337 virtual void onDisconnect(
339 ::Connection::DisconnectFailReason
const discoReason,
340 ::Connection::DisconnectionStage
const disconnectStage,
341 ::std::string
const& message,
343 ::std::string
const& telemetryOverride
346 virtual ::IncomingPacketFilterResult allowIncomingPacketId(
348 ::MinecraftPacketIds packetId,
352 virtual ::OutgoingPacketFilterResult
353 allowOutgoingPacket(::std::vector<::NetworkIdentifierWithSubId>
const& ids,
::Packet const& packet) ;
362 handle(
::NetworkIdentifier const& source, ::std::shared_ptr<::BlockActorDataPacket> packet) ;
404 handle(
::NetworkIdentifier const& source, ::std::shared_ptr<::InventoryTransactionPacket> packet) ;
412 virtual void handle(
::NetworkIdentifier const& source, ::std::shared_ptr<::LoginPacket> packet) ;
418 virtual void handle(
::NetworkIdentifier const& source, ::std::shared_ptr<::MobEquipmentPacket> packet) ;
475 handle(
::NetworkIdentifier const& source, ::std::shared_ptr<::SubClientLoginPacket> packet) ;
515 virtual void sendSubClientLoginMessageLocal(
522 virtual void onTick() ;
524 virtual ::GameSpecificNetEventCallback* getGameSpecificNetEventCallback() ;
530 virtual ::std::optional<::PlayerAuthenticationInfo>
533 virtual void _onClientAsyncAuthorized(
537 ::std::optional<::MessToken>
const& hostMessToken
540 virtual ::ServerPlayer* _getServerPlayer(
::NetworkIdentifier const& source, ::SubClientId subId);
546 MCAPI ServerNetworkHandler(
551 ::Bedrock::NotNullNonOwnerPtr<::MinecraftServiceKeyManager> minecraftServiceKeys,
561 ::std::unordered_map<::PackIdVersion, ::std::string>
const& packIdToContentKey,
567 ::std::shared_ptr<::ScriptPackSettingsCache> packSettingsCache,
571 MCAPI
void SetServerIdentifiers(
572 ::std::string
const& serverId,
573 ::std::string
const& worldId,
574 ::std::string
const& scenarioId,
575 ::std::string
const& ownerId
578 MCAPI
void _buildSubChunkPacketData(
584 bool clientCacheEnabled
589 MCAPI ::ServerPlayer& _createNewPlayer(
602 MCAPI
int _getActiveAndInProgressPlayerCount(
::mce::UUID excludePlayer)
const;
604 MCAPI ::std::optional<::MessToken> _getMessToken(::std::string
const& eduTokenChain,
bool isHostingPlayer);
606 MCAPI ::ResourcePackFileUploadManager&
607 _getResourcePackFileUploadManager(
::NetworkIdentifier const& source, ::std::string
const& resourceName);
609 MCAPI
void _handleFinalVerdict(
611 ::std::reference_wrapper<::ConnectionRequest const>,
612 ::std::reference_wrapper<::SubClientConnectionRequest const>>
const& connectionRequest,
615 ::SubClientId subClientId,
616 ::std::optional<::MessToken> messToken,
617 ::nonstd::expected<::AsyncJoinAllow, ::AsyncJoinDeny> finalVerdict
620 MCAPI
void _handleSetDefaultGameType(
627 MCAPI
bool _isPrimaryPlayerInServer(
::mce::UUID playerId)
const;
629 MCAPI
bool _isServerTextEnabled(::ServerTextEvent
const& textEvent)
const;
631 MCAPI
bool _loadNewPlayer(
::ServerPlayer& newPlayer,
bool isXboxLive);
635 MCAPI
void _onPlayerLeft(
::ServerPlayer* player,
bool skipMessage);
637 MCAPI
void _onSubClientAuthenticated(
639 ::std::shared_ptr<::SubClientLoginPacket> packet,
643 MCAPI
bool _playerHasPermissionToFly(
648 MCAPI
void _processServerAuthPlayerActions(
654 MCAPI
void _processValidatedLoginPacket(
656 ::std::shared_ptr<::LoginPacket> packet,
658 ::std::optional<::MessToken>
const& hostMessToken
665 MCAPI
bool _updatePermissions(
673 MCAPI
void allowIncomingConnections(::std::string
const& serverName,
bool shouldAnnounce);
675 MCAPI ::OwnerPtr<::EntityContext> createNewPlayer(
681 MCAPI ::OwnerPtr<::EntityContext> createSimulatedPlayer(
682 ::std::string
const& name,
683 ::std::string
const& xuid,
684 ::std::optional<::ActorUniqueID> idOverride
687 MCAPI
void disallowIncomingConnections();
689 MCAPI
void disconnectClient(
692 ::Connection::DisconnectFailReason disconnectReason
695 MCAPI
void disconnectClientWithMessage(
698 ::Connection::DisconnectFailReason discoReason,
699 ::std::string
const& message,
700 ::std::optional<::std::string> filteredMessage,
705 disconnectPrimaryClient(
::NetworkIdentifier const&
id, ::Connection::DisconnectFailReason disconnectReason);
707 MCAPI
void engineDownloadingFinishedResponseHelper(
712 MCAPI_C
void engineDownloadingResponseHelper(
717 MCAPI ::PlayerAuthenticationInfo fetchPlayerAuthenticationInfo(
::NetworkIdentifier const& source);
721 MCAPI
void persistPlayerPermissionsToDisk(
723 ::PlayerPermissionLevel playerPermission
726 MCAPI
void removeFromDenyList(
::mce::UUID const& uuid, ::std::string
const& xuid);
728 MCAPI
void sendLoginMessageLocal(
740 MCAPI
bool trytLoadPlayer(
746 MCAPI
void updateServerAnnouncement();
752 MCAPI
static void _updateCommandBlock(
769 ::Bedrock::NotNullNonOwnerPtr<::MinecraftServiceKeyManager> minecraftServiceKeys,
779 ::std::unordered_map<::PackIdVersion, ::std::string>
const& packIdToContentKey,
785 ::std::shared_ptr<::ScriptPackSettingsCache> packSettingsCache,
800 MCAPI
void $onValidPacketReceived(
802 ::MinecraftPacketIds packetId,
803 ::SubClientId senderSubId,
808 MCAPI
void $onWebsocketRequest(
809 ::std::string
const& serverAddress,
810 ::std::string
const& payload,
811 ::std::function<
void()> errorCallback
814 MCAPI
void $onInvalidPlayerJoinedLobby(
::mce::UUID const& uuid, ::std::string
const& xuid);
816 MCAPI
void $onXboxUserBlocked(::std::string
const& xuid);
818 MCAPI
void $onXboxUserUnblocked(::std::string
const& xuid);
820 MCFOLD
void $onPlayerReady(
::Player& player);
823 MCAPI
void $handlePacketViolation(
824 ::std::shared_ptr<::IPacketSecurityController>
const& packetSecurityController,
825 ::std::error_code
const& errorCode,
826 ::PacketViolationResponse
const response,
827 ::MinecraftPacketIds
const packetId,
830 ::SubClientId
const clientSubId,
831 ::SubClientId
const senderSubId,
832 uint
const packetSize
835 MCAPI
void $sendPacketViolationWarningPacket(
836 ::std::error_code
const& errorCode,
837 ::PacketViolationResponse violationResponse,
838 ::MinecraftPacketIds violatingPacketId,
841 ::SubClientId clientSubId
845 MCAPI
void $sendServerLegacyParticle(::ParticleType name,
::Vec3 const& pos,
::Vec3 const&,
int data);
849 MCAPI
void $onDisconnect(
851 ::Connection::DisconnectFailReason
const discoReason,
852 ::Connection::DisconnectionStage
const disconnectStage,
853 ::std::string
const& message,
855 ::std::string
const& telemetryOverride
858 MCAPI ::IncomingPacketFilterResult $allowIncomingPacketId(
860 ::MinecraftPacketIds packetId,
864 MCAPI ::OutgoingPacketFilterResult
865 $allowOutgoingPacket(::std::vector<::NetworkIdentifierWithSubId>
const& ids,
::Packet const& packet);
873 MCAPI
void $handle(
::NetworkIdentifier const& source, ::std::shared_ptr<::BlockActorDataPacket> packet);
913 MCAPI
void $handle(
::NetworkIdentifier const& source, ::std::shared_ptr<::InventoryTransactionPacket> packet);
921 MCAPI
void $handle(
::NetworkIdentifier const& source, ::std::shared_ptr<::LoginPacket> packet);
927 MCAPI
void $handle(
::NetworkIdentifier const& source, ::std::shared_ptr<::MobEquipmentPacket> packet);
979 MCAPI
void $handle(
::NetworkIdentifier const& source, ::std::shared_ptr<::SubClientLoginPacket> packet);
1017 MCAPI
void $sendSubClientLoginMessageLocal(
1024 MCAPI
void $onTick();
1026 MCAPI ::GameSpecificNetEventCallback* $getGameSpecificNetEventCallback();
1032 MCAPI ::std::optional<::PlayerAuthenticationInfo>
1035 MCAPI
void $_onClientAsyncAuthorized(
1039 ::std::optional<::MessToken>
const& hostMessToken
1043 MCAPI ::ServerPlayer* $_getServerPlayer(
::NetworkIdentifier const& source, ::SubClientId subId);
1052 MCAPI
static void** $vftableForNetEventCallback();
1054 MCAPI
static void** $vftableForMultiplayerServiceObserver();
1056 MCAPI
static void** $vftableForXboxLiveUserObserver();
1058 MCAPI
static void** $vftableForLevelListener();
1060 MCAPI
static void** $vftableForEnableQueueForMainThread();