Skip to content
LeviMC
English
AutoLightDark
LeviLamina
Loading...
Searching...
No Matches
PersonaNetworkHandlerDelegate.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
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"
12
13// auto generated forward declare list
14// clang-format off
15class Actor;
16class IClientInstance;
17class ILevel;
19class PersonaService;
22namespace mce { struct Image; }
23// clang-format on
24
26public:
27 // PersonaNetworkHandlerDelegate inner types declare
28 // clang-format off
29 struct RemoteAppearance;
30 // clang-format on
31
32 // PersonaNetworkHandlerDelegate inner types define
33 struct RemoteAppearance {
34 public:
35 // member variables
36 // NOLINTBEGIN
37 ::ll::TypedStorage<8, 32, ::std::string> mPlayFabId;
38 ::ll::TypedStorage<4, 4, uint> mRequestId;
39 ::ll::TypedStorage<8, 1088, ::std::optional<::PersonaAppearance>> mAppearance;
40 // NOLINTEND
41 };
42
43public:
44 // member variables
45 // NOLINTBEGIN
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>>
54 mRemoteAppearances;
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;
62 // NOLINTEND
63
64public:
65 // prevent constructor by default
66 PersonaNetworkHandlerDelegate();
67
68public:
69 // virtual functions
70 // NOLINTBEGIN
71 virtual void setClientLevel(::Bedrock::NonOwnerPointer<::ILevel> clientLevel) /*override*/;
72
73 virtual void onTick(::IClientInstance& client) /*override*/;
74
75 virtual void onEntityRemoved(::Actor& entity) /*override*/;
76
77 virtual void onLevelDestruction() /*override*/;
78
79 virtual void addSkinToQueue(
80 ::mce::UUID const& playerId,
81 ::SerializedSkinRef const& serializedSkin,
82 ::std::string const& playFabId,
83 ::AppearanceFetchMode appearanceFetchMode
84 ) /*override*/;
85
86 virtual void onPlayerListed(::mce::UUID const& playerId, ::std::string const& playFabId) /*override*/;
87
88 virtual void onPlayerUnlisted(::mce::UUID const& playerId) /*override*/;
89
90 virtual ::PersonaAppearance const* tryGetRemoteAppearance(::mce::UUID const& playerId) const /*override*/;
91
92 virtual void eraseSessionPersona(::mce::UUID const& playerId) /*override*/;
93 // NOLINTEND
94
95public:
96 // member functions
97 // NOLINTBEGIN
99 ::PersonaSessionManager&& personaSessionManager,
100 ::Bedrock::NotNullNonOwnerPtr<::PersonaService> const& service,
101 ::Bedrock::NotNullNonOwnerPtr<::IMinecraftEventing> const& eventing,
102 schar clientSubId
103 );
104
105 MCAPI void _applyPlayerSkin(
106 ::IClientInstance& client,
107 ::SkinProcessingRequest const& skinRequest,
108 ::SerializedSkinRef const& serializableSkin,
109 ::mce::Image const* skinImage,
110 ::mce::Image const* capeImage
111 );
112
114 ::IClientInstance& client,
115 ::std::vector<::std::shared_ptr<::SkinProcessingRequest>>& skinQueue
116 );
117
119 ::IClientInstance& client,
120 ::mce::UUID const& playerId,
121 uint requestId,
122 ::std::string const& playFabId,
123 ::std::string skinName,
124 ::std::string const& profileHash,
125 ::std::weak_ptr<bool> weakExistance
126 );
127
129 ::IClientInstance& client,
130 ::PersonaAppearance const& appearance,
131 ::std::shared_ptr<::SkinProcessingRequest> skinRequest
132 );
133
134 MCNAPI void
135 _queueAppearanceFetch(::mce::UUID const& playerId, ::std::string const& playFabId, ::AppearanceFetchMode mode);
136
137 MCAPI void _removeOldSkinProcessRequests(::mce::UUID const& playerId);
138 // NOLINTEND
139
140public:
141 // static functions
142 // NOLINTBEGIN
144 ::mce::UUID const& playerClientId,
145 ::std::vector<::std::shared_ptr<::SkinProcessingRequest>>& pendingQueueToSearch
146 );
147 // NOLINTEND
148
149public:
150 // constructor thunks
151 // NOLINTBEGIN
152 MCNAPI void* $ctor(
153 ::PersonaSessionManager&& personaSessionManager,
154 ::Bedrock::NotNullNonOwnerPtr<::PersonaService> const& service,
155 ::Bedrock::NotNullNonOwnerPtr<::IMinecraftEventing> const& eventing,
156 schar clientSubId
157 );
158 // NOLINTEND
159
160public:
161 // virtual function thunks
162 // NOLINTBEGIN
164
165 MCNAPI void $onTick(::IClientInstance& client);
166
167 MCNAPI void $onEntityRemoved(::Actor& entity);
168
169 MCNAPI void $onLevelDestruction();
170
171 MCNAPI void $addSkinToQueue(
172 ::mce::UUID const& playerId,
173 ::SerializedSkinRef const& serializedSkin,
174 ::std::string const& playFabId,
175 ::AppearanceFetchMode appearanceFetchMode
176 );
177
178 MCNAPI void $onPlayerListed(::mce::UUID const& playerId, ::std::string const& playFabId);
179
180 MCNAPI void $onPlayerUnlisted(::mce::UUID const& playerId);
181
182 MCNAPI ::PersonaAppearance const* $tryGetRemoteAppearance(::mce::UUID const& playerId) const;
183
184 MCNAPI void $eraseSessionPersona(::mce::UUID const& playerId);
185 // NOLINTEND
186};
Definition Actor.h:116
Definition NonOwnerPointer.h:9
Definition IClientInstance.h:5
Definition ILevel.h:223
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 $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 UUID.h:8
Definition PersonaNetworkHandlerDelegate.h:13
Definition Image.h:13