73class ServerPlayer :
public ::Player {
84 enum class State :
int {
94 ::ll::TypedStorage<1, 1, bool> isAutonomous;
95 ::ll::TypedStorage<4, 4, ::ServerPlayer::NearbyActor::State> state;
96 ::ll::TypedStorage<8, 8, ::Actor*> tempActor;
100 using OnPlayerLoadedCallback = ::std::function<void(::ServerPlayer&)>;
103 LLNDAPI
static ServerPlayer* tryGetFromEntity(
::EntityContext& entity,
bool includeRemoved);
108 ::ll::TypedStorage<4, 4, ::PlatformType> mPlatformType;
109 ::ll::TypedStorage<8, 32, ::std::string> mLanguageCode;
110 ::ll::TypedStorage<8, 8, ::ServerNetworkSystem&> mNetwork;
111 ::ll::TypedStorage<8, 64, ::std::function<void(::ServerPlayer&)>> mOnPlayerLoadedCallback;
112 ::ll::TypedStorage<8, 112, ::InventoryMenu> mInventoryMenu;
113 ::ll::TypedStorage<1, 1, ::ContainerID> mContainerCounter;
114 ::ll::TypedStorage<8, 16, ::CallbackToken> mCloseContainerToken;
115 ::ll::TypedStorage<4, 4, uint> mMaxChunkRadius;
116 ::ll::TypedStorage<1, 1, bool> mIsInitialPlayerLoadHappening;
117 ::ll::TypedStorage<1, 1, bool> mIsTeacher;
118 ::ll::TypedStorage<1, 1, bool> mLocalPlayerInitialized;
119 ::ll::TypedStorage<1, 1, bool> mWaitingForTickingAreasPreload;
120 ::ll::TypedStorage<8, 8, ::Tick> mPrevShieldBlockingTick;
121 ::ll::TypedStorage<4, 4, uint> mClientViewRadius;
122 ::ll::TypedStorage<4, 4, uint> mClientRequestedRadius;
123 ::ll::TypedStorage<1, 1, bool> mIsCompatibleWithClientSideChunkGen;
124 ::ll::TypedStorage<8, 48, ::std::optional<::PlayerPartyInfo>> mPartyInfo;
125 ::ll::TypedStorage<4, 4, int> mRemainingStructureRefreshTicks;
126 ::ll::TypedStorage<8, 48, ::HashedString> mCurrentStructureFeature;
127 ::ll::TypedStorage<8, 64, ::std::unordered_map<::ActorUniqueID, ::ServerPlayer::NearbyActor>> mNearbyActors;
128 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::Editor::IEditorPlayer>> mEditorServerPlayer;
129 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::Bedrock::DDUI::DataStoreSyncServer>> mDataStoreSync;
130 ::ll::TypedStorage<1, 1, bool> mHasQueuedViewMove;
131 ::ll::TypedStorage<1, 1, bool> mIsPendingDisconnect;
132 ::ll::TypedStorage<4, 52, ::std::array<::HudVisibility, 13>> mHudElementsVisibilityState;
133 ::ll::TypedStorage<8, 24, ::ServerLocatorBar> mServerLocatorBar;
134 ::ll::TypedStorage<8, 24, ::VanillaWaypointManager> mVanillaWaypointManager;
139 ServerPlayer& operator=(ServerPlayer
const&);
140 ServerPlayer(ServerPlayer
const&);
146 virtual ~ServerPlayer() ;
151 virtual void aiStep() ;
153 virtual void normalTick() ;
156 knockback(::Actor* source,
int damage,
float xd,
float zd,
::KnockbackParameters const& parameters) ;
160 virtual void moveView() ;
162 virtual void moveSpawnView(
::Vec3 const& spawnPosition, ::DimensionType dimension) ;
166 virtual bool isValidTarget(::Actor*)
const ;
168 virtual bool swing(::ActorSwingSource swingSource) ;
171 hurtArmorSlots(
::ActorDamageSource const& source,
int dmg, ::std::bitset<5>
const hurtSlots) ;
173 virtual void sendArmorDamage(::std::bitset<5>
const damagedSlots) ;
175 virtual void sendArmor(::std::bitset<5>
const armorSlots) ;
177 virtual void setDamagedArmor(::SharedTypes::Legacy::ArmorSlot slot,
::ItemStack const& item) ;
179 virtual void sendInventory(
bool shouldSelectSlot) ;
183 virtual void sendComplexInventoryTransaction(::std::unique_ptr<::ComplexInventoryTransaction> transaction)
const
186 virtual void sendNetworkPacket(
::Packet& packet)
const ;
188 virtual void displayTextObjectMessage(
190 ::std::string
const& fromXuid,
191 ::std::string
const& fromPlatformId
194 virtual void displayTextObjectWhisperMessage(
196 ::std::string
const& xuid,
197 ::std::string
const& platformId
200 virtual void displayTextObjectWhisperMessage(
201 ::std::string
const& message,
202 ::std::string
const& xuid,
203 ::std::string
const& platformId
206 virtual void displayWhisperMessage(
207 ::std::string
const& author,
208 ::std::string
const& message,
209 ::std::optional<::std::string>
const filteredMessage,
210 ::std::string
const& xuid,
211 ::std::string
const& platformId
214 virtual void openTrading(
::ActorUniqueID const& uniqueID,
bool useNewScreen) ;
216 virtual void openPortfolio() ;
218 virtual void openNpcInteractScreen(::std::shared_ptr<::INpcDialogueData> npc) ;
220 virtual void openInventory() ;
222 virtual void openBook(
int lectern,
bool,
int,
::BlockActor*) ;
224 virtual void openSign(
::BlockPos const& position,
bool isFrontSide) ;
226 virtual void checkMovementStats(
::Vec3 const& d) ;
228 virtual ::HashedString getCurrentStructureFeature() const ;
230 virtual
void handleEntityEvent(::ActorEvent
id,
int data) ;
234 virtual
void slotChanged(
245 virtual
void stopSleepInBed(
bool forcefulWakeUp,
bool updateLevelList) ;
247 virtual
void setArmor(::SharedTypes::Legacy::ArmorSlot const armorSlot, ::
ItemStack const& item) ;
249 virtual
void setOffhandSlot(::
ItemStack const& item) ;
251 virtual
void clearVanishEnchantedItemsOnDeath() ;
253 virtual
bool canChangeDimensionsUsingPortal() const ;
255 virtual
void changeDimension(::DimensionType toId) ;
257 virtual
void changeDimensionWithCredits(::DimensionType dimension) ;
259 virtual
void setPlayerGameType(::GameType gameType) ;
261 virtual
void prepareRegion(::
ChunkSource& mainChunkSource) ;
263 virtual
bool isActorRelevant(::Actor const& actor) ;
267 virtual
void destroyRegion() ;
269 virtual
void onSuspension() ;
271 virtual
void onLinkedSlotsChanged() ;
273 virtual
bool isTeacher() const ;
275 virtual
bool isLoading() const ;
279 virtual
bool isPlayerInitialized() const ;
281 virtual
void respawn() ;
285 virtual
void destroyEditorPlayer() ;
287 virtual ::Bedrock::NonOwnerPointer<::Editor::IEditorPlayer> getEditorPlayer() const ;
289 virtual uchar getMaxChunkBuildRadius() const ;
293 virtual
int _getSpawnChunkLimit() const;
295 virtual
void _updateChunkPublisherView(::
Vec3 const& position,
float minDistance);
297 virtual
void _serverInitItemStackIds() ;
307 ::ClientBlobCache::Server::ActiveTransfersManager& clientCacheMirror,
308 ::GameType playerGameType,
309 bool isHostingPlayer,
312 ::
std::function<
void(::ServerPlayer&)> onPlayerLoadedCallback,
314 ::
std::
string const& deviceId,
315 ::PlayerAuthenticationType authType,
318 bool enableItemStackNetManager,
320 ::PlatformType platformType,
321 ::InputMode inputMode,
325 MCAPI
bool _checkForLoadedTickingAreas() const;
327 MCAPI
void _logCDEvent(
328 ::CrashDumpLogStringID option1,
329 ::CrashDumpLogStringID option2,
330 ::CrashDumpLogStringID option3,
331 ::CrashDumpLogStringID option4
334 MCAPI ::ContainerID _nextContainerCounter();
336 MCAPI
void _removeNearbyEntities();
340 MCAPI
void _updateNearbyActors();
342 MCAPI
void _updateWaitingForTickingAreasPreload();
344 MCAPI
void addActorToReplicationList(::gsl::not_null<::Actor*> actor,
bool autonomous);
346 MCAPI
void createEditorPlayer(::Bedrock::NonOwnerPointer<::Editor::IEditorManager> editorManager);
348 MCAPI
void disconnect();
350 MCAPI
void doDeleteContainerManager(
bool forceDisconnect);
352 MCAPI
void doInitialSpawn();
354 MCAPI ::Bedrock::DDUI::DataStoreSyncServer& getDataStoreSync();
356 MCAPI
bool getFilterProfanity() const;
358 MCAPI ::
std::array<::HudVisibility, 13> const& getHudVisibilityState() const;
362 MCAPI ::
std::
string getLanguageCode() const;
364 MCAPI
int getMaxClientViewDistance() const;
366 MCAPI ::DeviceMemoryTier getMemoryTier() const;
368 MCAPI ::PlatformType getPlatformType() const;
372 MCAPI ::
std::optional<
int> getTextFilteringDebugTimeoutMilliSeconds() const;
374 MCAPI
void handleActorPickRequestOnServer(::Actor& target,
bool withData,
bool isActorAgentAndEduMode);
376 MCAPI
void handleBlockPickRequestOnServer(::
BlockPos const& position,
bool withData);
378 MCAPI
void hideAllExcept(::
std::optional<::
std::vector<::HudElement>> const& hudElements);
380 MCAPI
void initiateContainerClose();
382 MCAPI
bool isCompatibleWithClientSideChunkGen() const;
384 MCAPI
bool isInPickRangeOf(::
BlockPos const& pos) const;
386 MCAPI
bool isPendingDisconnect() const;
388 MCAPI
bool isShowingCredits() const;
390 MCAPI ::ContainerID openUnmanagedContainer(
391 ::SharedTypes::Legacy::ContainerType containerType,
395 MCAPI
void postLoad(
bool newPlayerCreated);
397 MCAPI
void postReplicationTick(::
Tick const& currentTick);
399 MCAPI
void preReplicationTick(::
Tick const& currentTick);
401 MCAPI
bool selectItem(::
ItemStack const& item);
403 MCAPI
void sendMobEffectPackets();
405 MCAPI
void sendPlayerAuthInputReceivedEvent();
407 MCAPI
void sendPlayerContainerClosedEvent();
409 MCAPI
void sendPlayerContainerOpenedEvent(
410 ::SharedTypes::Legacy::ContainerType type,
414 MCAPI
void setClientChunkRadius(uint requestedRadius, uchar clientMaxChunkRadius);
416 MCAPI
void setHudVisibilityState(
417 ::HudVisibility hudVisibility,
418 ::
std::optional<::
std::vector<::HudElement>> const& hudElements
421 MCAPI
void setIsCompatibleWithClientSideChunkGen(
bool isCompatible);
423 MCAPI
void setIsPendingDisconnect(
bool isPendingDisconnect);
425 MCAPI
void setIsShowingCredits(
bool value);
427 MCAPI
void setLanguageCode(::
std::
string const& languageCode);
429 MCAPI
void setLocalPlayerAsInitialized();
431 MCAPI
void triggerRespawnFromCompletingTheEnd();
451 ::ClientBlobCache::Server::ActiveTransfersManager& clientCacheMirror,
452 ::GameType playerGameType,
453 bool isHostingPlayer,
456 ::
std::function<
void(::ServerPlayer&)> onPlayerLoadedCallback,
458 ::
std::
string const& deviceId,
459 ::PlayerAuthenticationType authType,
462 bool enableItemStackNetManager,
464 ::PlatformType platformType,
465 ::InputMode inputMode,
479 MCAPI
void $initializeComponents(::ActorInitializationMethod method, ::
VariantParameterList const& params);
481 MCAPI
void $aiStep();
483 MCAPI
void $normalTick();
485 MCAPI
void $knockback(::Actor* source,
int damage,
float xd,
float zd, ::
KnockbackParameters const& parameters);
489 MCAPI
void $moveView();
491 MCAPI
void $moveSpawnView(::
Vec3 const& spawnPosition, ::DimensionType dimension);
495 MCAPI
bool $isValidTarget(::Actor*) const;
497 MCAPI
bool $swing(::ActorSwingSource swingSource);
499 MCAPI
void $hurtArmorSlots(::
ActorDamageSource const& source,
int dmg, ::
std::bitset<5> const hurtSlots);
501 MCAPI
void $sendArmorDamage(::
std::bitset<5> const damagedSlots);
503 MCAPI
void $sendArmor(::
std::bitset<5> const armorSlots);
505 MCAPI
void $setDamagedArmor(::SharedTypes::Legacy::ArmorSlot slot, ::
ItemStack const& item);
507 MCAPI
void $sendInventory(
bool shouldSelectSlot);
513 MCAPI
void $sendNetworkPacket(::
Packet& packet) const;
515 MCAPI
void $displayTextObjectMessage(
517 ::
std::
string const& fromXuid,
518 ::
std::
string const& fromPlatformId
521 MCAPI
void $displayTextObjectWhisperMessage(
523 ::
std::
string const& xuid,
524 ::
std::
string const& platformId
527 MCAPI
void $displayTextObjectWhisperMessage(
528 ::
std::
string const& message,
529 ::
std::
string const& xuid,
530 ::
std::
string const& platformId
533 MCAPI
void $displayWhisperMessage(
534 ::
std::
string const& author,
535 ::
std::
string const& message,
536 ::
std::optional<::
std::
string> const filteredMessage,
537 ::
std::
string const& xuid,
538 ::
std::
string const& platformId
541 MCAPI
void $openTrading(::
ActorUniqueID const& uniqueID,
bool useNewScreen);
543 MCFOLD
void $openPortfolio();
547 MCAPI
void $openInventory();
549 MCAPI
void $openBook(
int lectern,
bool,
int, ::
BlockActor*);
551 MCAPI
void $openSign(::
BlockPos const& position,
bool isFrontSide);
553 MCAPI
void $checkMovementStats(::
Vec3 const& d);
555 MCAPI ::
HashedString $getCurrentStructureFeature() const;
557 MCAPI
void $handleEntityEvent(::ActorEvent
id,
int data);
561 MCAPI
void $slotChanged(
572 MCAPI
void $stopSleepInBed(
bool forcefulWakeUp,
bool updateLevelList);
574 MCAPI
void $setArmor(::SharedTypes::Legacy::ArmorSlot const armorSlot, ::
ItemStack const& item);
576 MCAPI
void $setOffhandSlot(::
ItemStack const& item);
578 MCAPI
void $clearVanishEnchantedItemsOnDeath();
580 MCAPI
bool $canChangeDimensionsUsingPortal() const;
582 MCAPI
void $changeDimension(::DimensionType toId);
584 MCAPI
void $changeDimensionWithCredits(::DimensionType dimension);
586 MCAPI
void $setPlayerGameType(::GameType gameType);
588 MCAPI
void $prepareRegion(::
ChunkSource& mainChunkSource);
590 MCAPI
bool $isActorRelevant(::Actor const& actor);
594 MCAPI
void $destroyRegion();
596 MCAPI
void $onSuspension();
598 MCAPI
void $onLinkedSlotsChanged();
600 MCAPI
bool $isTeacher() const;
602 MCAPI
bool $isLoading() const;
606 MCAPI
bool $isPlayerInitialized() const;
608 MCAPI
void $respawn();
612 MCAPI
void $destroyEditorPlayer();
614 MCAPI ::Bedrock::NonOwnerPointer<::Editor::IEditorPlayer> $getEditorPlayer() const;
616 MCAPI uchar $getMaxChunkBuildRadius() const;
620 MCAPI
int $_getSpawnChunkLimit() const;
622 MCAPI
void $_updateChunkPublisherView(::
Vec3 const& position,
float minDistance);
624 MCAPI
void $_serverInitItemStackIds();
632 MCAPI static
void** $vftable();