189 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ConnectionRequest>> mPrimaryRequest;
190 ::ll::TypedStorage<8, 64, ::std::unordered_map<::SubClientId, ::std::unique_ptr<::SubClientConnectionRequest>>>
207 ::std::unordered_map<::NetworkIdentifier, ::std::unique_ptr<::ServerNetworkHandler::Client>>>
209 ::ll::TypedStorage<8, 8, ::GameCallbacks&> mGameCallbacks;
210 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::ILevel>> mLevel;
211 ::ll::TypedStorage<8, 8, ::ServerNetworkSystem&> mNetwork;
212 ::ll::TypedStorage<8, 8, ::PrivateKeyManager&> mServerKeys;
213 ::ll::TypedStorage<8, 8, ::ServerLocator&> mServerLocator;
214 ::ll::TypedStorage<8, 8, ::gsl::not_null<::PacketSender*>> mPacketSender;
215 ::ll::TypedStorage<1, 1, bool> mUseAllowList;
216 ::ll::TypedStorage<8, 8, ::AllowList&> mAllowList;
217 ::ll::TypedStorage<8, 8, ::PermissionsFile*> mPermissionsFile;
218 ::ll::TypedStorage<8, 104, ::DenyList> mServerDenyList;
219 ::ll::TypedStorage<8, 72, ::NetworkServerConfig> mNetworkServerConfig;
220 ::ll::TypedStorage<1, 1, bool> mHasDisplayedPackErrors;
221 ::ll::TypedStorage<8, 176, ::NetworkIdentifier> mMyId;
222 ::ll::TypedStorage<4, 4, int const> mMaxChunkRadius;
223 ::ll::TypedStorage<8, 8, ::MinecraftCommands&> mMinecraftCommands;
224 ::ll::TypedStorage<8, 8, ::IMinecraftApp&> mApp;
225 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::TextFilteringProcessor>> mTextFilteringProcessor;
226 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ClientBlobCache::Server::ActiveTransfersManager>> mClientCacheManager;
227 ::ll::TypedStorage<8, 64, ::std::unordered_map<uint64, ::std::string>> mServerStorageForClientsConnectingAttempt;
228 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ClassroomModeNetworkHandler>> mCompanionHandler;
229 ::ll::TypedStorage<8, 80, ::Bedrock::Threading::Mutex> mValidatePlayerMutex;
230 ::ll::TypedStorage<1, 1, bool> mAllowIncoming;
231 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::IServerNetworkController>> mServerNetworkController;
232 ::ll::TypedStorage<8, 32, ::std::string> mServerName;
233 ::ll::TypedStorage<8, 24, ::std::vector<::std::string>> mTrustedKeys;
234 ::ll::TypedStorage<4, 4, int> mMaxNumPlayers;
235 ::ll::TypedStorage<8, 64, ::std::unordered_set<::mce::UUID>> mKnownEmotePieceIdLookup;
236 ::ll::TypedStorage<8, 24, ::std::vector<::mce::UUID>> mKnownEmotePieceIds;
240 ::std::unordered_map<
242 ::std::unordered_map<::std::string, ::std::shared_ptr<::ResourcePackFileUploadManager>>>>
243 mResourceUploadManagers;
247 ::gsl::not_null<::std::shared_ptr<::std::shared_ptr<::Bedrock::Threading::IAsyncResult<void>>>>>
250 TypedStorage<8, 8, ::gsl::not_null<::std::unique_ptr<::ResourcePackPathLifetimeHelpers::ResourcePackPathCache>>>
251 mResourcePackPathCache;
252 ::ll::TypedStorage<8, 8, ::gsl::not_null<::std::unique_ptr<::TaskGroup>>> mAsyncJoinTaskGroup;
253 ::ll::TypedStorage<8, 8, ::gsl::not_null<::std::unique_ptr<::AsyncJoinTaskManager>>> mAsyncJoinTaskManager;
254 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::TaskGroup>> mIOTaskGroup;
255 ::ll::TypedStorage<1, 1, bool> mIsTrial;
256 ::ll::TypedStorage<8, 64, ::std::unordered_map<::PackIdVersion, ::std::string>> mPackIdToContentKey;
257 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::GameSpecificNetEventCallback>> mGameSpecificNetEventCallback;
261 ::std::unordered_map<::NetworkIdentifier, ::std::unique_ptr<::ServerNetworkHandler::TransferBuilderBatcher>>>
262 mTransferBuilderBatcher;
263 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::GameTestNetworkAdapter>> mGameTestAdapter;
264 ::ll::TypedStorage<8, 40, ::ServiceReference<::AppConfigs>> mAppConfigs;
265 ::ll::TypedStorage<8, 40, ::ServiceReference<::Social::MultiplayerServiceManager>> mMultiplayerServiceManager;
266 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::BiomeDefinitionListPacket const>> mBiomeDefinitionListWithoutCSCG;
267 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::BiomeDefinitionListPacket const>> mBiomeDefinitionListWithCSCG;
268 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::Identity::IEduAuth>> mEduAuth;
269 ::ll::TypedStorage<8, 32, ::std::string> mServerId;
270 ::ll::TypedStorage<8, 32, ::std::string> mScenarioId;
271 ::ll::TypedStorage<8, 32, ::std::string> mWorldId;
272 ::ll::TypedStorage<8, 32, ::std::string> mOwnerId;
288 virtual void onValidPacketReceived(
290 ::MinecraftPacketIds packetId,
291 ::SubClientId senderSubId,
296 virtual void onWebsocketRequest(
297 ::std::string
const& serverAddress,
298 ::std::string
const& payload,
299 ::std::function<
void()> errorCallback
303 virtual void onInvalidPlayerJoinedLobby(
::mce::UUID const& uuid, ::std::string
const& xuid) ;
306 virtual void onXboxUserBlocked(::std::string
const& xuid) ;
309 virtual void onXboxUserUnblocked(::std::string
const& xuid) ;
312 virtual void onPlayerReady(
::Player& player) ;
315 virtual void handlePacketViolation(
316 ::std::shared_ptr<::IPacketSecurityController>
const& packetSecurityController,
317 ::std::error_code
const& errorCode,
318 ::PacketViolationResponse
const response,
319 ::MinecraftPacketIds
const packetId,
322 ::SubClientId
const clientSubId,
323 ::SubClientId
const senderSubId,
324 uint
const packetSize
328 virtual void sendPacketViolationWarningPacket(
329 ::std::error_code
const& errorCode,
330 ::PacketViolationResponse violationResponse,
331 ::MinecraftPacketIds violatingPacketId,
334 ::SubClientId clientSubId
338 virtual void sendServerLegacyParticle(::ParticleType name,
::Vec3 const& pos,
::Vec3 const&,
int data) ;
345 virtual void onDisconnect(
347 ::Connection::DisconnectFailReason
const discoReason,
348 ::std::string
const& message,
350 ::std::string
const& telemetryOverride
354 virtual ::IncomingPacketFilterResult allowIncomingPacketId(
356 ::MinecraftPacketIds packetId,
361 virtual ::OutgoingPacketFilterResult
362 allowOutgoingPacket(::std::vector<::NetworkIdentifierWithSubId>
const& ids,
::Packet const& packet) ;
375 handle(
::NetworkIdentifier const& source, ::std::shared_ptr<::BlockActorDataPacket> packet) ;
437 handle(
::NetworkIdentifier const& source, ::std::shared_ptr<::InventoryTransactionPacket> packet) ;
449 virtual void handle(
::NetworkIdentifier const& source, ::std::shared_ptr<::LoginPacket> packet) ;
541 handle(
::NetworkIdentifier const& source, ::std::shared_ptr<::SubClientLoginPacket> packet) ;
593 virtual void sendSubClientLoginMessageLocal(
600 virtual void onTick() ;
603 virtual ::GameSpecificNetEventCallback* getGameSpecificNetEventCallback() ;
615 virtual void _onClientAsyncAuthorized(
618 ::std::optional<::MessToken>
const& hostMessToken
622 virtual ::ServerPlayer* _getServerPlayer(
::NetworkIdentifier const& source, ::SubClientId subId);
642 ::std::unordered_map<::PackIdVersion, ::std::string>
const& packIdToContentKey,
651 MCAPI
void SetServerIdentifiers(
652 ::std::string
const& serverId,
653 ::std::string
const& worldId,
654 ::std::string
const& scenarioId,
655 ::std::string
const& ownerId
658 MCAPI
void _buildSubChunkPacketData(
664 bool clientCacheEnabled
667 MCAPI ::ServerPlayer& _createNewPlayer(
679 MCAPI
int _getActiveAndInProgressPlayerCount(
::mce::UUID excludePlayer)
const;
681 MCAPI ::std::optional<::MessToken> _getMessToken(::std::string
const& eduTokenChain,
bool isHostingPlayer);
683 MCAPI ::ResourcePackFileUploadManager&
684 _getResourcePackFileUploadManager(
::NetworkIdentifier const& source, ::std::string
const& resourceName);
686 MCAPI
void _handleFinalVerdict(
688 ::std::reference_wrapper<::ConnectionRequest const>,
689 ::std::reference_wrapper<::SubClientConnectionRequest const>>
const& connectionRequest,
691 ::SubClientId subClientId,
692 ::std::optional<::MessToken> messToken,
693 ::nonstd::expected<void, ::AsyncJoinError> finalVerdict
696 MCAPI
void _handleSetDefaultGameType(
703 MCAPI
bool _isServerTextEnabled(::ServerTextEvent
const& textEvent)
const;
705 MCAPI
bool _loadNewPlayer(
::ServerPlayer& newPlayer,
bool isXboxLive);
709 MCAPI
void _onPlayerLeft(
::ServerPlayer* player,
bool skipMessage);
712 _onSubClientAuthenticated(
::NetworkIdentifier const& source, ::std::shared_ptr<::SubClientLoginPacket> packet);
714 MCAPI
bool _playerHasPermissionToFly(
719 MCAPI
void _processServerAuthPlayerActions(
729 MCAPI
bool _updatePermissions(
737 MCAPI
void addToDenyList(
::mce::UUID const& uuid, ::std::string
const& xuid);
739 MCAPI
void allowIncomingConnections(::std::string
const& serverName,
bool shouldAnnounce);
741 MCAPI ::OwnerPtr<::EntityContext>
744 MCAPI ::OwnerPtr<::EntityContext> createSimulatedPlayer(
745 ::std::string
const& name,
746 ::std::string
const& xuid,
747 ::std::optional<::ActorUniqueID> idOverride
750 MCAPI
void disallowIncomingConnections();
752 MCAPI
void disconnectClient(
754 ::Connection::DisconnectFailReason discoReason,
755 ::std::string
const& message,
756 ::std::optional<::std::string> filteredMessage,
760 MCAPI
void disconnectClient(
763 ::Connection::DisconnectFailReason discoReason,
764 ::std::string
const& message,
765 ::std::optional<::std::string> filteredMessage,
772 MCAPI
void engineDownloadingFinishedResponseHelper(
777 MCAPI
void engineDownloadingResponseHelper(
784 MCAPI
void persistPlayerPermissionsToDisk(
786 ::PlayerPermissionLevel playerPermission
789 MCAPI
void removeFromDenyList(
::mce::UUID const& uuid, ::std::string
const& xuid);
791 MCAPI
void sendLoginMessageLocal(
803 MCAPI
void updateServerAnnouncement();
809 MCAPI
static void _updateCommandBlock(
815 MCAPI
static void handle(
::ServerPlayer* player, ::std::shared_ptr<::InventoryTransactionPacket> packet);
837 ::std::unordered_map<::PackIdVersion, ::std::string>
const& packIdToContentKey,
856 MCAPI
void $onValidPacketReceived(
858 ::MinecraftPacketIds packetId,
859 ::SubClientId senderSubId,
863 MCAPI
void $onWebsocketRequest(
864 ::std::string
const& serverAddress,
865 ::std::string
const& payload,
866 ::std::function<
void()> errorCallback
869 MCAPI
void $onInvalidPlayerJoinedLobby(
::mce::UUID const& uuid, ::std::string
const& xuid);
871 MCAPI
void $onXboxUserBlocked(::std::string
const& xuid);
873 MCAPI
void $onXboxUserUnblocked(::std::string
const& xuid);
875 MCFOLD
void $onPlayerReady(
::Player& player);
877 MCAPI
void $handlePacketViolation(
878 ::std::shared_ptr<::IPacketSecurityController>
const& packetSecurityController,
879 ::std::error_code
const& errorCode,
880 ::PacketViolationResponse
const response,
881 ::MinecraftPacketIds
const packetId,
884 ::SubClientId
const clientSubId,
885 ::SubClientId
const senderSubId,
886 uint
const packetSize
889 MCAPI
void $sendPacketViolationWarningPacket(
890 ::std::error_code
const& errorCode,
891 ::PacketViolationResponse violationResponse,
892 ::MinecraftPacketIds violatingPacketId,
895 ::SubClientId clientSubId
898 MCAPI
void $sendServerLegacyParticle(::ParticleType name,
::Vec3 const& pos,
::Vec3 const&,
int data);
902 MCAPI
void $onDisconnect(
904 ::Connection::DisconnectFailReason
const discoReason,
905 ::std::string
const& message,
907 ::std::string
const& telemetryOverride
910 MCAPI ::IncomingPacketFilterResult $allowIncomingPacketId(
912 ::MinecraftPacketIds packetId,
916 MCAPI ::OutgoingPacketFilterResult
917 $allowOutgoingPacket(::std::vector<::NetworkIdentifierWithSubId>
const& ids,
::Packet const& packet);
925 MCAPI
void $handle(
::NetworkIdentifier const& source, ::std::shared_ptr<::BlockActorDataPacket> packet);
965 MCAPI
void $handle(
::NetworkIdentifier const& source, ::std::shared_ptr<::InventoryTransactionPacket> packet);
973 MCAPI
void $handle(
::NetworkIdentifier const& source, ::std::shared_ptr<::LoginPacket> packet);
1031 MCAPI
void $handle(
::NetworkIdentifier const& source, ::std::shared_ptr<::SubClientLoginPacket> packet);
1065 MCAPI
void $sendSubClientLoginMessageLocal(
1071 MCAPI
void $onTick();
1073 MCAPI ::GameSpecificNetEventCallback* $getGameSpecificNetEventCallback();
1081 MCAPI
void $_onClientAsyncAuthorized(
1084 ::std::optional<::MessToken>
const& hostMessToken
1087 MCAPI ::ServerPlayer* $_getServerPlayer(
::NetworkIdentifier const& source, ::SubClientId subId);