41class ItemStackRequestActionHandler {
52 enum class RemoveType :
int {
59 struct PlayerLegacyRequestSlotIdAssignment {
63 ::ll::TypedStorage<1, 1, ::ContainerEnumName const> mContainerName;
64 ::ll::TypedStorage<4, 4, ::ContainerRuntimeId const> mContainerRuntimeId;
65 ::ll::TypedStorage<8, 24, ::std::vector<::std::pair<::ItemStackLegacyRequestId, ::ItemStackNetId>>> mSlots;
70 PlayerLegacyRequestSlotIdAssignment();
75 MCAPI PlayerLegacyRequestSlotIdAssignment(::ContainerEnumName containerName,
::Container& container);
81 MCAPI
void* $ctor(::ContainerEnumName containerName,
::Container& container);
89 ::ll::TypedStorage<1, 1, uchar> mSlot;
90 ::ll::TypedStorage<4, 4, ::ItemStackNetId> mServerNetId;
98 ::ll::TypedStorage<8, 8, ::std::chrono::steady_clock::time_point> mExpireTime;
102 ::std::unordered_map<
103 ::ContainerRuntimeId,
104 ::std::unordered_map<uchar, ::ItemStackRequestActionHandler::RequestSlotIdAssignment>>>
113 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ItemStackRequestActionCraftHandler>> mCraftRequestHandler;
114 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ScreenHandlerBase>> mScreenHandler;
116 TypedStorage<8, 64, ::std::unordered_map<::ContainerRuntimeId, ::std::shared_ptr<::SimpleSparseContainer>>>
117 mRuntimeIdSparseContainerMap;
121 ::std::unordered_map<::ItemStackRequestId, ::ItemStackRequestActionHandler::RequestIdAssignments>>
141 ::ll::TypedStorage<8, 8, ::Player&> mPlayer;
142 ::ll::TypedStorage<8, 8, ::ItemStackNetManagerServer&> mItemStackNetManager;
143 ::ll::TypedStorage<4, 4, ::ContainerRuntimeId const> mPlayerArmorContainerRuntimeId;
144 ::ll::TypedStorage<4, 4, ::ContainerRuntimeId const> mPlayerHandContainerRuntimeId;
145 ::ll::TypedStorage<4, 4, ::ContainerRuntimeId const> mPlayerUIContainerRuntimeId;
146 ::ll::TypedStorage<8, 96, ::std::array<::ItemStackRequestActionHandler::PlayerLegacyRequestSlotIdAssignment, 3>>
147 mPlayerLegacyRequests;
148 ::ll::TypedStorage<8, 8, ::std::chrono::steady_clock::time_point> mLastTime;
149 ::ll::TypedStorage<8, 24, ::WeakRef<::EntityContext>> mCurrentRequestScreen;
150 ::ll::TypedStorage<8, 16, ::ItemStackRequestId> mClientRequestId;
151 ::ll::TypedStorage<8, 24, ::std::vector<::ItemStackResponseContainerInfo>> mResponseContainerInfos;
152 ::ll::TypedStorage<8, 16, ::std::map<::std::string, ::std::vector<::std::string>>> mFilteredStrings;
153 ::ll::TypedStorage<8, 16, ::std::map<::std::string, ::std::vector<::std::string>>> mStrings;
154 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ContainerScreenValidation>> mScreenValidation;
159 ItemStackRequestActionHandler& operator=(ItemStackRequestActionHandler
const&);
160 ItemStackRequestActionHandler(ItemStackRequestActionHandler
const&);
161 ItemStackRequestActionHandler();
170 MCAPI
void _cacheLegacySlotIdAssignment(
171 ::ContainerEnumName containerName,
173 ::ItemStackLegacyRequestId
const& legacyClientRequestId,
174 ::ItemStackNetId
const& serverNetId
177 MCAPI
void _cacheSlotIdAssigment(
178 ::ContainerRuntimeId
const& containerRuntimeId,
181 ::ItemStackNetId
const& serverNetId
186 MCAPI ::std::shared_ptr<::SimpleSparseContainer>
189 MCAPI ::ItemStackNetResult _handleRemove(
192 ::ItemStackRequestActionHandler::RemoveType removeType
195 MCAPI ::ItemStackNetResult _handleTransfer(
204 MCAPI
void _initScreenValidation();
206 MCAPI ::std::optional<::ItemStackRequestActionHandler::RequestSlotIdAssignment> _resolveSlotIdAssignment(
208 ::ContainerRuntimeId
const& containerRuntimeId
211 MCAPI ::ItemStackRequestActionHandler::ScreenData* _tryGetCurrentScreenData()
const;
213 MCAPI ::ItemStackRequestHandlerSlotInfo
216 MCAPI
void addFilteredStrings(::ItemStackRequestId requestId, ::std::vector<::std::string> filteredStrings);
218 MCAPI
void addStrings(::ItemStackRequestId requestId, ::std::vector<::std::string> strings);
222 MCAPI ::std::tuple<::ItemStackNetResult, ::std::vector<::ItemStackResponseContainerInfo>>
223 endRequest(::ItemStackNetResult currentResult);
225 MCAPI ::std::vector<::std::string>
const& getFilteredStrings(::ItemStackRequestId requestId)
const;
227 MCFOLD ::ItemStackRequestId
const& getRequestId()
const;
229 MCAPI ::ContainerScreenContext
const& getScreenContext()
const;
231 MCAPI ::std::vector<::std::string>
const& getStrings(::ItemStackRequestId requestId)
const;
235 MCAPI
bool hasFilteredStrings(::ItemStackRequestId requestId)
const;
237 MCAPI
bool isValidationCraftingImplemented();
239 MCAPI
void normalTick();
241 MCAPI
void removeFilteredStrings(::ItemStackRequestId requestId);
243 MCAPI
void removeStrings(::ItemStackRequestId requestId);
245 MCAPI ::std::vector<::ItemInstance>
246 tryCraft(::std::unique_ptr<::ContainerValidationCraftInputs> craftInputs, uchar numCrafts);
248 MCAPI ~ItemStackRequestActionHandler();
Definition ContainerScreenContext.h:19
Definition EntityContext.h:17