67class ServerPlayer :
public ::Player {
78 enum class State :
int {
88 ::ll::TypedStorage<1, 1, bool> isAutonomous;
89 ::ll::TypedStorage<4, 4, ::ServerPlayer::NearbyActor::State> state;
90 ::ll::TypedStorage<8, 8, ::Actor*> tempActor;
94 using OnPlayerLoadedCallback = ::std::function<void(::ServerPlayer&)>;
99 ::ll::TypedStorage<4, 4, ::PlatformType> mPlatformType;
100 ::ll::TypedStorage<8, 8, ::ServerNetworkSystem&> mNetwork;
101 ::ll::TypedStorage<8, 64, ::std::function<void(::ServerPlayer&)>> mOnPlayerLoadedCallback;
102 ::ll::TypedStorage<8, 112, ::InventoryMenu> mInventoryMenu;
103 ::ll::TypedStorage<1, 1, ::ContainerID> mContainerCounter;
104 ::ll::TypedStorage<4, 4, uint> mMaxChunkRadius;
105 ::ll::TypedStorage<1, 1, bool> mIsInitialPlayerLoadHappening;
106 ::ll::TypedStorage<1, 1, bool> mIsTeacher;
107 ::ll::TypedStorage<1, 1, bool> mLocalPlayerInitialized;
108 ::ll::TypedStorage<1, 1, bool> mWaitingForTickingAreasPreload;
109 ::ll::TypedStorage<8, 8, ::Tick> mPrevShieldBlockingTick;
110 ::ll::TypedStorage<4, 4, uint> mClientViewRadius;
111 ::ll::TypedStorage<4, 4, uint> mClientRequestedRadius;
112 ::ll::TypedStorage<1, 1, bool> mIsCompatibleWithClientSideChunkGen;
113 ::ll::TypedStorage<4, 4, int> mRemainingStructureRefreshTicks;
114 ::ll::TypedStorage<8, 48, ::HashedString> mCurrentStructureFeature;
115 ::ll::TypedStorage<8, 64, ::std::unordered_map<::ActorUniqueID, ::ServerPlayer::NearbyActor>> mNearbyActors;
116 ::ll::TypedStorage<8, 16, ::CallbackToken> mCloseContainerToken;
117 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::Editor::IEditorPlayer>> mEditorServerPlayer;
118 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::Bedrock::DDUI::DataStoreSyncServer>> mDataStoreSync;
119 ::ll::TypedStorage<1, 1, bool> mHasQueuedViewMove;
120 ::ll::TypedStorage<1, 1, bool> mIsPendingDisconnect;
121 ::ll::TypedStorage<4, 52, ::std::array<::HudVisibility, 13>> mHudElementsVisibilityState;
126 ServerPlayer& operator=(ServerPlayer
const&);
127 ServerPlayer(ServerPlayer
const&);
133 virtual ~ServerPlayer() ;
138 virtual void aiStep() ;
140 virtual void normalTick() ;
142 virtual void knockback(
147 float horizontalPower,
154 virtual void moveView() ;
156 virtual void moveSpawnView(
::Vec3 const& spawnPosition, ::DimensionType dimensionType) ;
160 virtual bool isValidTarget(::Actor* attacker)
const ;
162 virtual bool swing(::ActorSwingSource swingSource) ;
165 hurtArmorSlots(
::ActorDamageSource const& source,
int damage, ::std::bitset<5>
const hurtSlots) ;
167 virtual void sendArmorDamage(::std::bitset<5>
const damagedSlots) ;
169 virtual void sendArmor(::std::bitset<5>
const armorSlots) ;
171 virtual void setDamagedArmor(::SharedTypes::Legacy::ArmorSlot slot,
::ItemStack const& item) ;
173 virtual void sendInventory(
bool shouldSelectSlot) ;
177 virtual void sendComplexInventoryTransaction(::std::unique_ptr<::ComplexInventoryTransaction> transaction)
const
180 virtual void sendNetworkPacket(
::Packet& packet)
const ;
182 virtual void displayTextObjectMessage(
184 ::std::string
const& fromXuid,
185 ::std::string
const& fromPlatformId
188 virtual void displayTextObjectWhisperMessage(
190 ::std::string
const& xuid,
191 ::std::string
const& platformId
194 virtual void displayTextObjectWhisperMessage(
195 ::std::string
const& message,
196 ::std::string
const& xuid,
197 ::std::string
const& platformId
200 virtual void displayWhisperMessage(
201 ::std::string
const& author,
202 ::std::string
const& message,
203 ::std::optional<::std::string>
const filteredMessage,
204 ::std::string
const& xuid,
205 ::std::string
const& platformId
208 virtual void openTrading(
::ActorUniqueID const& uniqueID,
bool useNewScreen) ;
210 virtual void openPortfolio() ;
212 virtual void openNpcInteractScreen(::std::shared_ptr<::INpcDialogueData> npc) ;
214 virtual void openInventory() ;
216 virtual void openBook(
int,
bool,
int,
::BlockActor* lectern) ;
218 virtual void openSign(
::BlockPos const& position,
bool isFrontSide) ;
220 virtual void checkMovementStats(
::Vec3 const& d) ;
222 virtual ::HashedString getCurrentStructureFeature() const ;
224 virtual
void handleEntityEvent(::ActorEvent eventId,
int data) ;
228 virtual
void slotChanged(
239 virtual
void stopSleepInBed(
bool forcefulWakeUp,
bool updateLevelList) ;
241 virtual
void setArmor(::SharedTypes::Legacy::ArmorSlot const slot, ::
ItemStack const& item) ;
243 virtual
void setOffhandSlot(::
ItemStack const& item) ;
245 virtual
void clearVanishEnchantedItemsOnDeath() ;
247 virtual
bool canChangeDimensionsUsingPortal() const ;
249 virtual
void changeDimension(::DimensionType toId) ;
251 virtual
void changeDimensionWithCredits(::DimensionType dimension) ;
253 virtual
void setPlayerGameType(::GameType gameType) ;
255 virtual
void prepareRegion(::
ChunkSource& mainChunkSource) ;
257 virtual
bool isActorRelevant(::Actor const& actor) ;
261 virtual
void destroyRegion() ;
263 virtual
void onSuspension() ;
265 virtual
void onLinkedSlotsChanged() ;
267 virtual
bool isTeacher() const ;
269 virtual
bool isLoading() const ;
273 virtual
bool isPlayerInitialized() const ;
275 virtual
void respawn() ;
279 virtual
void destroyEditorPlayer() ;
281 virtual ::Bedrock::NonOwnerPointer<::Editor::IEditorPlayer> getEditorPlayer() const ;
283 virtual uchar getMaxChunkBuildRadius() const ;
285 virtual
int _getSpawnChunkLimit() const;
287 virtual
void _updateChunkPublisherView(::
Vec3 const& position,
float minDistance);
289 virtual
void _serverInitItemStackIds() ;
299 ::ClientBlobCache::Server::ActiveTransfersManager& clientCacheMirror,
300 ::GameType playerGameType,
301 bool isHostingPlayer,
304 ::
std::function<
void(::ServerPlayer&)> onPlayerLoadedCallback,
306 ::
std::
string const& deviceId,
307 ::PlayerAuthenticationType authType,
310 bool enableItemStackNetManager,
312 ::PlatformType platformType,
313 ::InputMode inputMode,
317 MCAPI
bool _checkForLoadedTickingAreas() const;
319 MCAPI
void _logCDEvent(
320 ::CrashDumpLogStringID option1,
321 ::CrashDumpLogStringID option2,
322 ::CrashDumpLogStringID option3,
323 ::CrashDumpLogStringID option4
326 MCAPI
void _removeNearbyEntities();
330 MCAPI
void _updateNearbyActors();
332 MCAPI
void addActorToReplicationList(::gsl::not_null<::Actor*> actor,
bool autonomous);
334 MCAPI
void createEditorPlayer(::Bedrock::NonOwnerPointer<::Editor::IEditorManager> editorManager);
336 MCAPI
void disconnect();
338 MCAPI
void doDeleteContainerManager(
bool forceDisconnect);
340 MCAPI
void doInitialSpawn();
342 MCAPI
void handleActorPickRequestOnServer(::Actor& target,
bool withData,
bool isActorAgentAndEduMode);
344 MCAPI
void handleBlockPickRequestOnServer(::
BlockPos const& position,
bool withData);
346 MCAPI
void hideAllExcept(::
std::optional<::
std::vector<::HudElement>> const& hudElements);
348 MCAPI
void initiateContainerClose();
350 MCAPI
bool isInPickRangeOf(::
BlockPos const& pos) const;
352 MCAPI ::ContainerID openUnmanagedContainer();
354 MCAPI
void postReplicationTick(::
Tick const& currentTick);
356 MCAPI
void preReplicationTick(::
Tick const& currentTick);
358 MCAPI
bool selectItem(::
ItemStack const& item);
360 MCAPI
void setClientChunkRadius(uint requestedRadius, uchar clientMaxChunkRadius);
362 MCAPI
void setHudVisibilityState(
363 ::HudVisibility hudVisibility,
364 ::
std::optional<::
std::vector<::HudElement>> const& hudElements
367 MCAPI
void setIsShowingCredits(
bool value);
375 MCAPI static ::ServerPlayer* tryGetFromEntity(::
EntityContext& entity,
bool includeRemoved);
385 ::ClientBlobCache::Server::ActiveTransfersManager& clientCacheMirror,
386 ::GameType playerGameType,
387 bool isHostingPlayer,
390 ::
std::function<
void(::ServerPlayer&)> onPlayerLoadedCallback,
392 ::
std::
string const& deviceId,
393 ::PlayerAuthenticationType authType,
396 bool enableItemStackNetManager,
398 ::PlatformType platformType,
399 ::InputMode inputMode,
413 MCAPI
void $initializeComponents(::ActorInitializationMethod method, ::
VariantParameterList const& params);
415 MCAPI
void $aiStep();
417 MCAPI
void $normalTick();
419 MCAPI
void $knockback(
424 float horizontalPower,
431 MCAPI
void $moveView();
433 MCAPI
void $moveSpawnView(::
Vec3 const& spawnPosition, ::DimensionType dimensionType);
437 MCAPI
bool $isValidTarget(::Actor* attacker) const;
439 MCAPI
bool $swing(::ActorSwingSource swingSource);
441 MCAPI
void $hurtArmorSlots(::
ActorDamageSource const& source,
int damage, ::
std::bitset<5> const hurtSlots);
443 MCAPI
void $sendArmorDamage(::
std::bitset<5> const damagedSlots);
445 MCAPI
void $sendArmor(::
std::bitset<5> const armorSlots);
447 MCAPI
void $sendInventory(
bool shouldSelectSlot);
453 MCAPI
void $sendNetworkPacket(::
Packet& packet) const;
455 MCAPI
void $displayTextObjectMessage(
457 ::
std::
string const& fromXuid,
458 ::
std::
string const& fromPlatformId
461 MCAPI
void $displayTextObjectWhisperMessage(
463 ::
std::
string const& xuid,
464 ::
std::
string const& platformId
467 MCAPI
void $displayTextObjectWhisperMessage(
468 ::
std::
string const& message,
469 ::
std::
string const& xuid,
470 ::
std::
string const& platformId
473 MCAPI
void $displayWhisperMessage(
474 ::
std::
string const& author,
475 ::
std::
string const& message,
476 ::
std::optional<::
std::
string> const filteredMessage,
477 ::
std::
string const& xuid,
478 ::
std::
string const& platformId
481 MCAPI
void $openTrading(::
ActorUniqueID const& uniqueID,
bool useNewScreen);
483 MCFOLD
void $openPortfolio();
487 MCAPI
void $openInventory();
489 MCAPI
void $openBook(
int,
bool,
int, ::
BlockActor* lectern);
491 MCAPI
void $openSign(::
BlockPos const& position,
bool isFrontSide);
493 MCAPI
void $checkMovementStats(::
Vec3 const& d);
495 MCAPI ::
HashedString $getCurrentStructureFeature() const;
497 MCAPI
void $handleEntityEvent(::ActorEvent eventId,
int data);
501 MCAPI
void $slotChanged(
512 MCAPI
void $stopSleepInBed(
bool forcefulWakeUp,
bool updateLevelList);
514 MCAPI
void $setOffhandSlot(::
ItemStack const& item);
516 MCAPI
void $clearVanishEnchantedItemsOnDeath();
518 MCAPI
bool $canChangeDimensionsUsingPortal() const;
520 MCAPI
void $changeDimension(::DimensionType toId);
522 MCAPI
void $changeDimensionWithCredits(::DimensionType dimension);
524 MCAPI
void $setPlayerGameType(::GameType gameType);
526 MCAPI
void $prepareRegion(::
ChunkSource& mainChunkSource);
528 MCAPI
bool $isActorRelevant(::Actor const& actor);
532 MCAPI
void $destroyRegion();
534 MCAPI
void $onSuspension();
536 MCAPI
void $onLinkedSlotsChanged();
538 MCAPI
bool $isTeacher() const;
540 MCAPI
bool $isLoading() const;
544 MCAPI
bool $isPlayerInitialized() const;
546 MCAPI
void $respawn();
550 MCAPI
void $destroyEditorPlayer();
552 MCAPI ::Bedrock::NonOwnerPointer<::Editor::IEditorPlayer> $getEditorPlayer() const;
554 MCAPI uchar $getMaxChunkBuildRadius() const;
556 MCAPI
int $_getSpawnChunkLimit() const;
558 MCAPI
void $_updateChunkPublisherView(::
Vec3 const& position,
float minDistance);
560 MCAPI
void $_serverInitItemStackIds();