3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/client/network/AppearanceFetchMode.h"
7#include "mc/client/network/IPersonaNetworkHandlerDelegate.h"
8#include "mc/client/network/PersonaSessionManager.h"
9#include "mc/client/persona/character/PersonaAppearance.h"
10#include "mc/deps/core/utility/NonOwnerPointer.h"
11#include "mc/platform/UUID.h"
22namespace mce {
struct Image; }
37 ::ll::TypedStorage<8, 32, ::std::string> mPlayFabId;
38 ::ll::TypedStorage<4, 4, uint> mRequestId;
39 ::ll::TypedStorage<8, 1088, ::std::optional<::PersonaAppearance>> mAppearance;
46 ::ll::TypedStorage<8, 80, ::PersonaSessionManager> mPersonaSessionManager;
47 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::PersonaService>> mPersonaService;
48 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::IMinecraftEventing>> mEventing;
49 ::ll::TypedStorage<1, 1, schar> mClientSubId;
50 ::ll::TypedStorage<8, 24, ::std::vector<::std::shared_ptr<::SkinProcessingRequest>>> mPendingPersonaSkinsToProcess;
51 ::ll::TypedStorage<8, 24, ::std::vector<::std::shared_ptr<::SkinProcessingRequest>>> mPendingLegacySkinsToProcess;
52 ::ll::TypedStorage<8, 24, ::std::vector<::std::shared_ptr<::SkinProcessingRequest>>> mSkinsCurrentlyProcessing;
53 ::ll::TypedStorage<8, 64, ::std::unordered_map<::mce::UUID, ::PersonaNetworkHandlerDelegate::RemoteAppearance>>
55 ::ll::TypedStorage<4, 4, uint> mAppearanceRequestIdCount;
56 ::ll::TypedStorage<8, 64, ::std::unordered_map<::mce::UUID, uint>> mLastSkinRequestId;
57 ::ll::TypedStorage<4, 4, uint> mSkinsRemainingToProcess;
58 ::ll::TypedStorage<8, 8, ::std::chrono::steady_clock::time_point> mLastSkinBeganProcessingTimePoint;
59 ::ll::TypedStorage<4, 4, uint> mSkinRequestIdCount;
60 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::ILevel>> mClientLevel;
61 ::ll::TypedStorage<8, 16, ::std::shared_ptr<bool>> mExistanceTracker;
66 PersonaNetworkHandlerDelegate();
71 virtual void setClientLevel(::Bedrock::NonOwnerPointer<::ILevel> clientLevel) ;
73 virtual void onTick(::IClientInstance& client) ;
75 virtual void onEntityRemoved(::Actor& entity) ;
77 virtual void onLevelDestruction() ;
79 virtual void addSkinToQueue(
80 ::mce::UUID
const& playerId,
81 ::SerializedSkinRef
const& serializedSkin,
82 ::std::string
const& playFabId,
83 ::AppearanceFetchMode appearanceFetchMode
86 virtual void onPlayerListed(::mce::UUID
const& playerId, ::std::string
const& playFabId) ;
88 virtual void onPlayerUnlisted(::mce::UUID
const& playerId) ;
90 virtual ::PersonaAppearance
const* tryGetRemoteAppearance(::mce::UUID
const& playerId)
const ;
92 virtual void eraseSessionPersona(::mce::UUID
const& playerId) ;
100 ::Bedrock::NotNullNonOwnerPtr<::PersonaService>
const& service,
101 ::Bedrock::NotNullNonOwnerPtr<::IMinecraftEventing>
const& eventing,
105 MCAPI
void _applyPlayerSkin(
115 ::std::vector<::std::shared_ptr<::SkinProcessingRequest>>& skinQueue
122 ::std::string
const& playFabId,
123 ::std::string skinName,
124 ::std::string
const& profileHash,
125 ::std::weak_ptr<bool> weakExistance
131 ::std::shared_ptr<::SkinProcessingRequest> skinRequest
137 MCAPI
void _removeOldSkinProcessRequests(
::mce::UUID const& playerId);
145 ::std::vector<::std::shared_ptr<::SkinProcessingRequest>>& pendingQueueToSearch
154 ::Bedrock::NotNullNonOwnerPtr<::PersonaService>
const& service,
155 ::Bedrock::NotNullNonOwnerPtr<::IMinecraftEventing>
const& eventing,
174 ::std::string
const& playFabId,
175 ::AppearanceFetchMode appearanceFetchMode
Definition NonOwnerPointer.h:9
Definition IClientInstance.h:5
Definition IMinecraftEventing.h:152
Definition IPersonaNetworkHandlerDelegate.h:5
Definition PersonaAppearance.h:5
Definition PersonaNetworkHandlerDelegate.h:5
static MCAPI bool _findAndRemovePendingSkinRequests(::mce::UUID const &playerClientId, ::std::vector<::std::shared_ptr<::SkinProcessingRequest > > &pendingQueueToSearch)
MCAPI void _queueAppearanceFetch(::mce::UUID const &playerId, ::std::string const &playFabId, ::AppearanceFetchMode mode)
MCAPI void $onLevelDestruction()
MCAPI void $onTick(::IClientInstance &client)
MCAPI void $setClientLevel(::Bedrock::NonOwnerPointer<::ILevel > clientLevel)
MCAPI void $onEntityRemoved(::Actor &entity)
MCAPI void * $ctor(::PersonaSessionManager &&personaSessionManager, ::Bedrock::NotNullNonOwnerPtr<::PersonaService > const &service, ::Bedrock::NotNullNonOwnerPtr<::IMinecraftEventing > const &eventing, schar clientSubId)
MCAPI void $eraseSessionPersona(::mce::UUID const &playerId)
MCAPI void _processPersonaSkin(::IClientInstance &client, ::PersonaAppearance const &appearance, ::std::shared_ptr<::SkinProcessingRequest > skinRequest)
MCAPI::PersonaAppearance const * $tryGetRemoteAppearance(::mce::UUID const &playerId) const
MCAPI void $onPlayerUnlisted(::mce::UUID const &playerId)
MCAPI void $addSkinToQueue(::mce::UUID const &playerId, ::SerializedSkinRef const &serializedSkin, ::std::string const &playFabId, ::AppearanceFetchMode appearanceFetchMode)
MCAPI void $onPlayerListed(::mce::UUID const &playerId, ::std::string const &playFabId)
MCAPI PersonaNetworkHandlerDelegate(::PersonaSessionManager &&personaSessionManager, ::Bedrock::NotNullNonOwnerPtr<::PersonaService > const &service, ::Bedrock::NotNullNonOwnerPtr<::IMinecraftEventing > const &eventing, schar clientSubId)
MCAPI void _fetchLodSkinTexture(::IClientInstance &client, ::mce::UUID const &playerId, uint requestId, ::std::string const &playFabId, ::std::string skinName, ::std::string const &profileHash, ::std::weak_ptr< bool > weakExistance)
MCAPI void _enqueuePlayerSkins(::IClientInstance &client, ::std::vector<::std::shared_ptr<::SkinProcessingRequest > > &skinQueue)
Definition PersonaService.h:5
Definition PersonaSessionManager.h:5
Definition SerializedSkinRef.h:26
Definition SkinProcessingRequest.h:5
Definition PersonaNetworkHandlerDelegate.h:13